func IsWithinVersionSkew()

in pkg/clusters/versions.go [168:189]


func IsWithinVersionSkew(npVersion, cpVersion string, allowedSkew int) error {
	npMinor, err := GetMinorVersion(npVersion)
	if err != nil {
		return err
	}
	cpMinor, err := GetMinorVersion(cpVersion)
	if err != nil {
		return err
	}

	diff := cpMinor - npMinor
	if diff < 0 {
		return fmt.Errorf("desired node version %s minor version (%d) cannot be greater than desired control plane version %s minor version (%d)",
			npVersion, npMinor, cpVersion, cpMinor)
	}
	if diff > allowedSkew {
		return fmt.Errorf("desired node version %s must be no less than %d minor versions from the desired control plane version %s",
			npVersion, allowedSkew, cpVersion)
	}

	return nil
}