diff --git a/cmd/kubeadm/app/cmd/config_test.go b/cmd/kubeadm/app/cmd/config_test.go index 8062145b083..5c3aad9066e 100644 --- a/cmd/kubeadm/app/cmd/config_test.go +++ b/cmd/kubeadm/app/cmd/config_test.go @@ -62,12 +62,12 @@ func TestImagesListRunWithCustomConfigPath(t *testing.T) { name: "set k8s version", expectedImageCount: defaultNumberOfImages, expectedImageSubstrings: []string{ - ":v1.9.1", + ":v1.10.1", }, configContents: []byte(dedent.Dedent(` apiVersion: kubeadm.k8s.io/v1alpha1 kind: MasterConfiguration - kubernetesVersion: 1.9.1 + kubernetesVersion: 1.10.1 `)), }, { diff --git a/cmd/kubeadm/app/cmd/phases/certs_test.go b/cmd/kubeadm/app/cmd/phases/certs_test.go index 97c5438031a..0b35c435650 100644 --- a/cmd/kubeadm/app/cmd/phases/certs_test.go +++ b/cmd/kubeadm/app/cmd/phases/certs_test.go @@ -31,7 +31,7 @@ import ( ) // phaseTestK8sVersion is a fake kubernetes version to use when testing -const phaseTestK8sVersion = "v1.9.0" +const phaseTestK8sVersion = "v1.10.0" func TestCertsSubCommandsHasFlags(t *testing.T) { diff --git a/cmd/kubeadm/app/cmd/phases/controlplane_test.go b/cmd/kubeadm/app/cmd/phases/controlplane_test.go index 8f741a499f1..c8c5d3b8e01 100644 --- a/cmd/kubeadm/app/cmd/phases/controlplane_test.go +++ b/cmd/kubeadm/app/cmd/phases/controlplane_test.go @@ -90,7 +90,7 @@ func TestControlPlaneCreateFilesWithFlags(t *testing.T) { { command: "all", additionalFlags: []string{ - "--kubernetes-version=v1.9.0", + "--kubernetes-version=v1.10.0", "--apiserver-advertise-address=1.2.3.4", "--apiserver-bind-port=6443", "--service-cidr=1.2.3.4/16", @@ -105,7 +105,7 @@ func TestControlPlaneCreateFilesWithFlags(t *testing.T) { { command: "apiserver", additionalFlags: []string{ - "--kubernetes-version=v1.9.0", + "--kubernetes-version=v1.10.0", "--apiserver-advertise-address=1.2.3.4", "--apiserver-bind-port=6443", "--service-cidr=1.2.3.4/16", @@ -115,7 +115,7 @@ func TestControlPlaneCreateFilesWithFlags(t *testing.T) { { command: "controller-manager", additionalFlags: []string{ - "--kubernetes-version=v1.9.0", + "--kubernetes-version=v1.10.0", "--pod-network-cidr=1.2.3.4/16", }, expectedFiles: []string{"kube-controller-manager.yaml"}, @@ -123,7 +123,7 @@ func TestControlPlaneCreateFilesWithFlags(t *testing.T) { { command: "scheduler", additionalFlags: []string{ - "--kubernetes-version=v1.9.0", + "--kubernetes-version=v1.10.0", }, expectedFiles: []string{"kube-scheduler.yaml"}, }, diff --git a/cmd/kubeadm/app/cmd/token_test.go b/cmd/kubeadm/app/cmd/token_test.go index 68a80cf96a9..02f71074d0e 100644 --- a/cmd/kubeadm/app/cmd/token_test.go +++ b/cmd/kubeadm/app/cmd/token_test.go @@ -184,7 +184,7 @@ func TestRunCreateToken(t *testing.T) { // KubernetesVersion is not used by bootstrap-token, but we set this explicitly to avoid // the lookup of the version from the internet when executing ConfigFileAndDefaultsToInternalConfig - KubernetesVersion: "v1.9.0", + KubernetesVersion: "v1.10.0", Token: tc.token, TokenTTL: &metav1.Duration{Duration: 0}, TokenUsages: tc.usages, diff --git a/cmd/kubeadm/app/constants/constants.go b/cmd/kubeadm/app/constants/constants.go index dde8866bfe0..cd7ff67a6eb 100644 --- a/cmd/kubeadm/app/constants/constants.go +++ b/cmd/kubeadm/app/constants/constants.go @@ -285,10 +285,10 @@ var ( MasterComponents = []string{KubeAPIServer, KubeControllerManager, KubeScheduler} // MinimumControlPlaneVersion specifies the minimum control plane version kubeadm can deploy - MinimumControlPlaneVersion = version.MustParseSemantic("v1.9.0") + MinimumControlPlaneVersion = version.MustParseSemantic("v1.10.0") // MinimumKubeletVersion specifies the minimum version of kubelet which kubeadm supports - MinimumKubeletVersion = version.MustParseSemantic("v1.9.0") + MinimumKubeletVersion = version.MustParseSemantic("v1.10.0") // SupportedEtcdVersion lists officially supported etcd versions with corresponding kubernetes releases SupportedEtcdVersion = map[uint8]string{ diff --git a/cmd/kubeadm/app/phases/addons/proxy/proxy_test.go b/cmd/kubeadm/app/phases/addons/proxy/proxy_test.go index a47d0ca98d0..c8b80894bcc 100644 --- a/cmd/kubeadm/app/phases/addons/proxy/proxy_test.go +++ b/cmd/kubeadm/app/phases/addons/proxy/proxy_test.go @@ -197,7 +197,7 @@ func TestEnsureProxyAddon(t *testing.T) { PodSubnet: "5.6.7.8/24", }, ImageRepository: "someRepo", - KubernetesVersion: "v1.9.0", + KubernetesVersion: "v1.10.0", UnifiedControlPlaneImage: "someImage", } diff --git a/cmd/kubeadm/app/phases/upgrade/policy_test.go b/cmd/kubeadm/app/phases/upgrade/policy_test.go index beb378193db..870ec47045b 100644 --- a/cmd/kubeadm/app/phases/upgrade/policy_test.go +++ b/cmd/kubeadm/app/phases/upgrade/policy_test.go @@ -34,159 +34,159 @@ func TestEnforceVersionPolicies(t *testing.T) { { name: "minor upgrade", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.9.5", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.10.5", }, - newK8sVersion: "v1.9.5", + newK8sVersion: "v1.10.5", }, { name: "major upgrade", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.2", - kubeadmVersion: "v1.10.1", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.2", + kubeadmVersion: "v1.11.1", }, - newK8sVersion: "v1.10.0", + newK8sVersion: "v1.11.0", }, { name: "downgrade", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.9.3", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.10.3", }, - newK8sVersion: "v1.9.2", + newK8sVersion: "v1.10.2", }, { name: "same version upgrade", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.9.3", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.10.3", }, - newK8sVersion: "v1.9.3", + newK8sVersion: "v1.10.3", }, { - name: "new version must be higher than v1.9.0", + name: "new version must be higher than v1.10.0", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.9.3", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.10.3", }, - newK8sVersion: "v1.8.10", - expectedMandatoryErrs: 2, // version must be higher than v1.9.0, can't upgrade old k8s with newer kubeadm + newK8sVersion: "v1.9.10", + expectedMandatoryErrs: 2, // version must be higher than v1.10.0, can't upgrade old k8s with newer kubeadm }, { name: "upgrading two minor versions in one go is not supported", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.11.0", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.12.0", }, - newK8sVersion: "v1.11.0", + newK8sVersion: "v1.12.0", expectedMandatoryErrs: 1, // can't upgrade two minor versions expectedSkippableErrs: 1, // kubelet <-> apiserver skew too large }, { name: "downgrading two minor versions in one go is not supported", vg: &fakeVersionGetter{ - clusterVersion: "v1.11.3", - kubeletVersion: "v1.11.3", - kubeadmVersion: "v1.11.0", + clusterVersion: "v1.12.3", + kubeletVersion: "v1.12.3", + kubeadmVersion: "v1.12.0", }, - newK8sVersion: "v1.9.3", + newK8sVersion: "v1.10.3", expectedMandatoryErrs: 2, // can't downgrade two minor versions, can't upgrade old k8s with newer kubeadm }, { name: "kubeadm version must be higher than the new kube version. However, patch version skews may be forced", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.9.3", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.10.3", }, - newK8sVersion: "v1.9.5", + newK8sVersion: "v1.10.5", expectedSkippableErrs: 1, }, { name: "kubeadm version must be higher than the new kube version. Trying to upgrade k8s to a higher minor version than kubeadm itself should never be supported", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.9.3", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.10.3", }, - newK8sVersion: "v1.10.0", + newK8sVersion: "v1.11.0", expectedMandatoryErrs: 1, }, { name: "the maximum skew between the cluster version and the kubelet versions should be one minor version. This may be forced through though.", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.8.8", - kubeadmVersion: "v1.10.0", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.9.8", + kubeadmVersion: "v1.11.0", }, - newK8sVersion: "v1.10.0", + newK8sVersion: "v1.11.0", expectedSkippableErrs: 1, }, { name: "experimental upgrades supported if the flag is set", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.10.0-beta.1", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.11.0-beta.1", }, - newK8sVersion: "v1.10.0-beta.1", + newK8sVersion: "v1.11.0-beta.1", allowExperimental: true, }, { name: "release candidate upgrades supported if the flag is set", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.10.0-rc.1", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.11.0-rc.1", }, - newK8sVersion: "v1.10.0-rc.1", + newK8sVersion: "v1.11.0-rc.1", allowRCs: true, }, { name: "release candidate upgrades supported if the flag is set", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.10.0-rc.1", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.11.0-rc.1", }, - newK8sVersion: "v1.10.0-rc.1", + newK8sVersion: "v1.11.0-rc.1", allowExperimental: true, }, { name: "the user should not be able to upgrade to an experimental version if they haven't opted into that", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.10.0-beta.1", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.11.0-beta.1", }, - newK8sVersion: "v1.10.0-beta.1", + newK8sVersion: "v1.11.0-beta.1", allowRCs: true, expectedSkippableErrs: 1, }, { name: "the user should not be able to upgrade to an release candidate version if they haven't opted into that", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.10.0-rc.1", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.11.0-rc.1", }, - newK8sVersion: "v1.10.0-rc.1", + newK8sVersion: "v1.11.0-rc.1", expectedSkippableErrs: 1, }, { name: "the user can't use a newer minor version of kubeadm to upgrade an older version of kubeadm", vg: &fakeVersionGetter{ - clusterVersion: "v1.9.3", - kubeletVersion: "v1.9.3", - kubeadmVersion: "v1.10.0", + clusterVersion: "v1.10.3", + kubeletVersion: "v1.10.3", + kubeadmVersion: "v1.11.0", }, - newK8sVersion: "v1.9.6", + newK8sVersion: "v1.10.6", expectedMandatoryErrs: 1, // can't upgrade old k8s with newer kubeadm }, } diff --git a/cmd/kubeadm/app/preflight/checks_test.go b/cmd/kubeadm/app/preflight/checks_test.go index 2436bd8f408..0c533a67f17 100644 --- a/cmd/kubeadm/app/preflight/checks_test.go +++ b/cmd/kubeadm/app/preflight/checks_test.go @@ -627,13 +627,13 @@ func TestKubeletVersionCheck(t *testing.T) { expectErrors bool expectWarnings bool }{ - {"v1.10.2", "", false, false}, // check minimally supported version when there is no information about control plane - {"v1.7.3", "v1.7.8", true, false}, // too old kubelet (older than kubeadmconstants.MinimumKubeletVersion), should fail. - {"v1.9.0", "v1.9.5", false, false}, // kubelet within same major.minor as control plane - {"v1.9.5", "v1.9.1", false, false}, // kubelet is newer, but still within same major.minor as control plane - {"v1.9.0", "v1.10.1", false, false}, // kubelet is lower than control plane, but newer than minimally supported - {"v1.10.0-alpha.1", "v1.9.1", true, false}, // kubelet is newer (development build) than control plane, should fail. - {"v1.10.0", "v1.9.5", true, false}, // kubelet is newer (release) than control plane, should fail. + {"v1.11.2", "", false, false}, // check minimally supported version when there is no information about control plane + {"v1.8.3", "v1.8.8", true, false}, // too old kubelet (older than kubeadmconstants.MinimumKubeletVersion), should fail. + {"v1.10.0", "v1.10.5", false, false}, // kubelet within same major.minor as control plane + {"v1.10.5", "v1.10.1", false, false}, // kubelet is newer, but still within same major.minor as control plane + {"v1.10.0", "v1.11.1", false, false}, // kubelet is lower than control plane, but newer than minimally supported + {"v1.11.0-alpha.1", "v1.10.1", true, false}, // kubelet is newer (development build) than control plane, should fail. + {"v1.11.0", "v1.10.5", true, false}, // kubelet is newer (release) than control plane, should fail. } for _, tc := range cases {