Merge pull request #8700 from johngmyers/version-tweaks

Balk at using Kubernetes versions too new to be supported
This commit is contained in:
Kubernetes Prow Robot 2020-04-05 07:17:45 -07:00 committed by GitHub
commit 502aaacbe2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 43 additions and 0 deletions

View File

@ -72,6 +72,26 @@ func ParseKubernetesVersion(version string) (*semver.Version, error) {
sv = semver.Version{Major: 1, Minor: 18} sv = semver.Version{Major: 1, Minor: 18}
} else if strings.Contains(v, "/v1.19.") { } else if strings.Contains(v, "/v1.19.") {
sv = semver.Version{Major: 1, Minor: 19} sv = semver.Version{Major: 1, Minor: 19}
} else if strings.Contains(v, "/v1.20.") {
sv = semver.Version{Major: 1, Minor: 20}
} else if strings.Contains(v, "/v1.21.") {
sv = semver.Version{Major: 1, Minor: 21}
} else if strings.Contains(v, "/v1.22.") {
sv = semver.Version{Major: 1, Minor: 22}
} else if strings.Contains(v, "/v1.23.") {
sv = semver.Version{Major: 1, Minor: 23}
} else if strings.Contains(v, "/v1.24.") {
sv = semver.Version{Major: 1, Minor: 24}
} else if strings.Contains(v, "/v1.25.") {
sv = semver.Version{Major: 1, Minor: 25}
} else if strings.Contains(v, "/v1.26.") {
sv = semver.Version{Major: 1, Minor: 26}
} else if strings.Contains(v, "/v1.27.") {
sv = semver.Version{Major: 1, Minor: 27}
} else if strings.Contains(v, "/v1.28.") {
sv = semver.Version{Major: 1, Minor: 28}
} else if strings.Contains(v, "/v1.29.") {
sv = semver.Version{Major: 1, Minor: 29}
} else { } else {
klog.Errorf("unable to parse Kubernetes version %q", version) klog.Errorf("unable to parse Kubernetes version %q", version)
return nil, fmt.Errorf("unable to parse kubernetes version %q", version) return nil, fmt.Errorf("unable to parse kubernetes version %q", version)

View File

@ -1053,6 +1053,29 @@ func (c *ApplyClusterCmd) validateKubernetesVersion() error {
return nil return nil
} }
kopsVersion, err := semver.Parse(kopsbase.KOPS_RELEASE_VERSION)
if err != nil {
klog.Warningf("unable to parse kops version %q", kopsVersion)
} else {
tooNewVersion := kopsVersion
tooNewVersion.Minor += 1
tooNewVersion.Pre = nil
tooNewVersion.Build = nil
if util.IsKubernetesGTE(tooNewVersion.String(), *parsed) {
fmt.Printf("\n")
fmt.Printf("%s\n", starline)
fmt.Printf("\n")
fmt.Printf("This version of kubernetes is not yet supported; upgrading kops is required\n")
fmt.Printf("(you can bypass this check by exporting KOPS_RUN_TOO_NEW_VERSION)\n")
fmt.Printf("\n")
fmt.Printf("%s\n", starline)
fmt.Printf("\n")
if os.Getenv("KOPS_RUN_TOO_NEW_VERSION") == "" {
return fmt.Errorf("kops upgrade is required")
}
}
}
if !util.IsKubernetesGTE(OldestSupportedKubernetesVersion, *parsed) { if !util.IsKubernetesGTE(OldestSupportedKubernetesVersion, *parsed) {
fmt.Printf("This version of Kubernetes is no longer supported; upgrading Kubernetes is required\n") fmt.Printf("This version of Kubernetes is no longer supported; upgrading Kubernetes is required\n")
fmt.Printf("\n") fmt.Printf("\n")