add kubelet policy skew test for kubeadm

This commit is contained in:
Paco Xu 2023-10-08 11:08:59 +08:00
parent 534a0941e8
commit 7b1d87383e
3 changed files with 31 additions and 6 deletions

View File

@ -453,7 +453,6 @@ var (
MinimumControlPlaneVersion = getSkewedKubernetesVersion(-1) MinimumControlPlaneVersion = getSkewedKubernetesVersion(-1)
// MinimumKubeletVersion specifies the minimum version of kubelet which kubeadm supports // MinimumKubeletVersion specifies the minimum version of kubelet which kubeadm supports
// Refer to https://kubernetes.io/releases/version-skew-policy/#kubelet-1
MinimumKubeletVersion = getSkewedKubernetesVersion(-3) MinimumKubeletVersion = getSkewedKubernetesVersion(-3)
// CurrentKubernetesVersion specifies current Kubernetes version supported by kubeadm // CurrentKubernetesVersion specifies current Kubernetes version supported by kubeadm

View File

@ -35,7 +35,6 @@ const (
MaximumAllowedMinorVersionDowngradeSkew = 1 MaximumAllowedMinorVersionDowngradeSkew = 1
// MaximumAllowedMinorVersionKubeletSkew describes how many minor versions the control plane version and the kubelet can skew in a kubeadm cluster // MaximumAllowedMinorVersionKubeletSkew describes how many minor versions the control plane version and the kubelet can skew in a kubeadm cluster
// Refer to https://kubernetes.io/releases/version-skew-policy/#kubelet-1
MaximumAllowedMinorVersionKubeletSkew = 3 MaximumAllowedMinorVersionKubeletSkew = 3
) )

View File

@ -90,6 +90,24 @@ func TestEnforceVersionPolicies(t *testing.T) {
}, },
newK8sVersion: "v1.13.0", newK8sVersion: "v1.13.0",
expectedMandatoryErrs: 1, // can't upgrade two minor versions expectedMandatoryErrs: 1, // can't upgrade two minor versions
},
{
name: "upgrading with n-3 kubelet is supported",
vg: &fakeVersionGetter{
clusterVersion: "v1.14.3",
kubeletVersion: "v1.12.3",
kubeadmVersion: "v1.15.0",
},
newK8sVersion: "v1.15.0",
},
{
name: "upgrading with n-4 kubelet is not supported",
vg: &fakeVersionGetter{
clusterVersion: "v1.14.3",
kubeletVersion: "v1.11.3",
kubeadmVersion: "v1.15.0",
},
newK8sVersion: "v1.15.0",
expectedSkippableErrs: 1, // kubelet <-> apiserver skew too large expectedSkippableErrs: 1, // kubelet <-> apiserver skew too large
}, },
{ {
@ -123,13 +141,22 @@ func TestEnforceVersionPolicies(t *testing.T) {
expectedMandatoryErrs: 1, 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.", name: "the maximum skew between the cluster version and the kubelet versions should be three minor version.",
vg: &fakeVersionGetter{ vg: &fakeVersionGetter{
clusterVersion: "v1.12.0", clusterVersion: "v1.13.0",
kubeletVersion: "v1.10.8", kubeletVersion: "v1.10.8",
kubeadmVersion: "v1.12.0", kubeadmVersion: "v1.13.0",
}, },
newK8sVersion: "v1.12.0", newK8sVersion: "v1.13.0",
},
{
name: "the maximum skew between the cluster version and the kubelet versions should be three minor version. This may be forced through though.",
vg: &fakeVersionGetter{
clusterVersion: "v1.14.0",
kubeletVersion: "v1.10.8",
kubeadmVersion: "v1.14.0",
},
newK8sVersion: "v1.14.0",
expectedSkippableErrs: 1, expectedSkippableErrs: 1,
}, },
{ {