diff --git a/cmd/minikube/cmd/start.go b/cmd/minikube/cmd/start.go index 22af428aeddf..b01f3e5c7d12 100644 --- a/cmd/minikube/cmd/start.go +++ b/cmd/minikube/cmd/start.go @@ -596,15 +596,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 diff --git a/test/integration/version_upgrade_test.go b/test/integration/version_upgrade_test.go index 53e32deb4ec6..8b92f259cd39 100644 --- a/test/integration/version_upgrade_test.go +++ b/test/integration/version_upgrade_test.go @@ -22,6 +22,7 @@ import ( "io/ioutil" "os" "runtime" + "strings" "testing" "github.com/docker/machine/libmachine/state" @@ -82,7 +83,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())