diff --git a/cmd/kubeadm/app/util/version.go b/cmd/kubeadm/app/util/version.go index 1e0c512f3c6..80e75d5a7d4 100644 --- a/cmd/kubeadm/app/util/version.go +++ b/cmd/kubeadm/app/util/version.go @@ -96,10 +96,6 @@ func kubernetesReleaseVersion(version string, fetcher func(string, time.Duration url := fmt.Sprintf("%s/%s.txt", bucketURL, versionLabel) body, err := fetcher(url, getReleaseVersionTimeout) if err != nil { - // If the network operaton was successful but the server did not reply with StatusOK - if body != "" { - return "", err - } if clientVersionErr == nil { // Handle air-gapped environments by falling back to the client version. klog.Warningf("could not fetch a Kubernetes version from the internet: %v", err) diff --git a/cmd/kubeadm/app/util/version_test.go b/cmd/kubeadm/app/util/version_test.go index 48dfd02ec45..7029d1d802b 100644 --- a/cmd/kubeadm/app/util/version_test.go +++ b/cmd/kubeadm/app/util/version_test.go @@ -19,6 +19,7 @@ package util import ( "errors" "fmt" + "k8s.io/kubernetes/cmd/kubeadm/app/constants" "path" "strings" "testing" @@ -106,19 +107,23 @@ func TestValidConvenientForUserVersion(t *testing.T) { func TestVersionFromNetwork(t *testing.T) { type T struct { - Content string - Expected string - ErrorExpected bool + Content string + Expected string + FetcherErrorExpected bool + ErrorExpected bool } + + currentVersion := normalizedBuildVersion(constants.CurrentKubernetesVersion.String()) + cases := map[string]T{ - "stable": {"stable-1", "v1.4.6", false}, // recursive pointer to stable-1 - "stable-1": {"v1.4.6", "v1.4.6", false}, - "stable-1.3": {"v1.3.10", "v1.3.10", false}, - "latest": {"v1.6.0-alpha.0", "v1.6.0-alpha.0", false}, - "latest-1.3": {"v1.3.11-beta.0", "v1.3.11-beta.0", false}, - "empty": {"", "", true}, - "garbage": {"NoSuchKeyThe specified key does not exist.", "", true}, - "unknown": {"The requested URL was not found on this server.", "", true}, + "stable": {"stable-1", "v1.4.6", false, false}, // recursive pointer to stable-1 + "stable-1": {"v1.4.6", "v1.4.6", false, false}, + "stable-1.3": {"v1.3.10", "v1.3.10", false, false}, + "latest": {"v1.6.0-alpha.0", "v1.6.0-alpha.0", false, false}, + "latest-1.3": {"v1.3.11-beta.0", "v1.3.11-beta.0", false, false}, + "empty": {"", currentVersion, true, false}, + "garbage": {"NoSuchKeyThe specified key does not exist.", currentVersion, true, false}, + "unknown": {"The requested URL was not found on this server.", currentVersion, true, false}, } for k, v := range cases { @@ -128,7 +133,7 @@ func TestVersionFromNetwork(t *testing.T) { key := strings.TrimSuffix(path.Base(url), ".txt") res, found := cases[key] if found { - if v.ErrorExpected { + if v.FetcherErrorExpected { return "error", errors.New("expected error") } return res.Content, nil