-
Notifications
You must be signed in to change notification settings - Fork 729
Description
tracking issue in k/e + KEP: kubernetes/enhancements#2915
1.23 Alpha:
- deprecate the old format and introduce the new one controlled by UnversionedKubeletConfigMap:
kubeadm: introduce the UnversionedKubeletConfigMap feature gate kubernetes#105741 - add e2e tests in k/kubeadm:
kinder: add e2e test for UnversionedKubeletConfigMap (Alpha) #2601
1.24 Beta:
- update KEP:
kubeadm: update 2915-kubeadm-replace-kubelet-config-x.y for 1.24 enhancements#3120 - flip the FG to enabled and graduate it to Beta, update the appropriate Beta TODOs introduced in the original PR:
kubeadm: switch UnversionedKubeletConfigMap to true kubernetes#108027 - other k/k fixes:
test/e2e/framework: include the new control plane taint for "--non-blocking-taints" kubernetes#108336
Automated cherry pick of #108127: test/e2e_kubeadm: fix matching UnversionedKubeletConfigMap kubernetes#108128
test/e2e_kubeadm: fix matching UnversionedKubeletConfigMap defaults kubernetes#108127 - cleanup k/kubeadm / update e2e tests:
kinder: add handling of the new/old kubelet-config map #2654 - docs: cleanup any kubelet-config-x.yy instances in at k/website
kubeadm: update legacy kubelet config map information and document feature gates website#31687
1.25 GA:
- update KEP to GA:
sig-cl/kubeadm/2915: update KEP for 1.25 enhancements#3316 - remove logic related to the feature gate and lock it to true. update the appropriate GA TODOs introduced in the original PR:
kubeadm: graduate the UnversionedKubeletConfigMap FG to GA kubernetes#110327
kubeadm: UnversionedKubeletConfigMap is GAed in v1.25 kubernetes#111146 - remove e2e tests in k/kubeadm as the default e2e tests will exercise this
kubeadm: remove unversioned-kubelet-config-map test job test-infra#26461
kinder: remove workflows for UniversionedKubeletConfigMap #2702 - k/website docs (update kubeadm-init page FG section)
kubeadm: update unversioned kubelet config map fg info website#34159
1.26 post-GA:
- remove the feature gate
remove UnversionedKubeletConfigMap feature gate: GAed in v1.25 kubernetes#113448
EDIT: original issue description below
when a control-plane node is created by init
using kubernetesVersion: X.Y
, kubeadm will create a "versioned" ConfigMap called kubelet-config-X.Y
.
when a worker node joins the cluster, it uses the version of the local kubelet to fetch this ConfigMap, but if the version of the local kubelet differs from the control-plane version (X.Y) used to originally create the CM, the join process will just fail.
both init
and upgrade
use the version of the control-plane to manage this ConfigMap,
so it makes some sense for the join
process to use the version of the control-plane as well.
but this raises the question whether this internal config stored in the CM will be compatible with the local kubelet.
however we have a version skew topic to discuss here as well.
Kubernetes itself supports X-1 nodes joining a X cluster, but kubeadm does not.
in our documentation we have no official mentions if e.g a kubeadm 1.13 and a kubelet 1.13 worker node can join a cluster with a CP that is 1.14:
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#version-skew-policy