Allow --kubernetes-version to be specified without the leading v

pull/4568/head
Thomas Stromberg 2019-06-24 10:29:09 +08:00
parent ce79abade5
commit a9ec145bcb
2 changed files with 9 additions and 6 deletions

View File

@ -586,15 +586,17 @@ func validateNetwork(h *host.Host) string {
// validateKubernetesVersions ensures that the requested version is reasonable
func validateKubernetesVersions(old *cfg.Config) (string, bool) {
nv := viper.GetString(kubernetesVersion)
rawVersion := viper.GetString(kubernetesVersion)
isUpgrade := false
if nv == "" {
nv = constants.DefaultKubernetesVersion
if rawVersion == "" {
rawVersion = constants.DefaultKubernetesVersion
}
nvs, err := semver.Make(strings.TrimPrefix(nv, version.VersionPrefix))
nvs, err := semver.Make(strings.TrimPrefix(rawVersion, version.VersionPrefix))
if err != nil {
exit.WithCode(exit.Data, "Unable to parse %q: %v", nv, err)
exit.WithCode(exit.Data, "Unable to parse %q: %v", rawVersion, err)
}
nv := version.VersionPrefix + nvs.String()
if old == nil || old.KubernetesConfig.KubernetesVersion == "" {
return nv, isUpgrade

View File

@ -82,7 +82,8 @@ func TestVersionUpgrade(t *testing.T) {
releaseRunner.RunCommand("stop", true)
releaseRunner.CheckStatus(state.Stopped.String())
currentRunner.Start(fmt.Sprintf("--kubernetes-version=%s", constants.NewestKubernetesVersion))
// Trim the leading "v" prefix to assert that we handle it properly.
currentRunner.Start(fmt.Sprintf("--kubernetes-version=%s", strings.TrimPrefix(constants.NewestKubernetesVersion, "v"))
currentRunner.CheckStatus(state.Running.String())
currentRunner.RunCommand("delete", true)
currentRunner.CheckStatus(state.None.String())