mirror of https://github.com/kubernetes/kops.git
				
				
				
			Merge pull request #8700 from johngmyers/version-tweaks
Balk at using Kubernetes versions too new to be supported
This commit is contained in:
		
						commit
						502aaacbe2
					
				|  | @ -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) | ||||||
|  |  | ||||||
|  | @ -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") | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue