Merge pull request #4568 from kubernetes/allow-naked-version

Allow --kubernetes-version to be specified without the leading v
pull/4571/head
Thomas Strömberg 2019-06-24 13:03:34 +08:00 committed by GitHub
commit e851619553
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View File

@ -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

View File

@ -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())