Skip to content

Commit d66e886

Browse files
authored
Merge pull request #5542 from neolit123/1.35-update-ControlPlaneKubeletLocalMode-to-ga
sig-cl: promote 4471-cp-join-kubelet-local-apiserver to GA
2 parents 47f9f93 + 7ecedfb commit d66e886

File tree

2 files changed

+13
-12
lines changed
  • keps/sig-cluster-lifecycle/kubeadm/4471-cp-join-kubelet-local-apiserver

2 files changed

+13
-12
lines changed

keps/sig-cluster-lifecycle/kubeadm/4471-cp-join-kubelet-local-apiserver/README.md

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
137137
- [ ] (R) Design details are appropriately documented
138138
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
139139
- [ ] e2e Tests for all Beta API Operations (endpoints)
140-
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
140+
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
141141
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
142142
- [ ] (R) Graduation criteria is in place
143-
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
143+
- [ ] (R) [all GA Endpoints](https://github.com/kubernetes/community/pull/1806) must be hit by [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
144144
- [ ] (R) Production readiness review completed
145145
- [ ] (R) Production readiness review approved
146146
- [ ] "Implementation History" section is up-to-date for milestone
@@ -258,10 +258,10 @@ The overall change is:
258258
- for `kubeadm init` to adjust the created kubeconfig to point to the local kube-apiserver, which gets created by kubeadm during the `kubeconfig` phase ([xref](https://github.com/kubernetes/kubernetes/blob/8871513c1b64cae321552abfe9a3a90969637560/cmd/kubeadm/app/cmd/phases/init/kubeconfig.go#L87))
259259
- for `kubeadm upgrade` to edit the kubelet config file to point to the local kube-apiserver.
260260

261-
To make this work for `kubeadm join`, an additional change is required: etcd needs to get started and joined to the etcd cluster before waiting for the kubelet to finish its bootstrap process, instead of the other way around.
261+
To make this work for `kubeadm join`, an additional change is required: etcd needs to get started and joined to the etcd cluster before waiting for the kubelet to finish its bootstrap process, instead of the other way around.
262262
This requires reordering some of the operations done in different kubeadm phases by extracting the relevant parts into separate phases and changing their order.
263263

264-
Because reordering the phases can be considered a breaking change to the CLI of kubeadm for some users, this should get done behind a feature gate, while preserving the previous behavior when the feature gate is disabled.
264+
Because reordering the phases can be considered a breaking change to the CLI of kubeadm for some users, this should get done behind a feature gate, while preserving the previous behavior when the feature gate is disabled.
265265

266266
### User Stories (Optional)
267267

@@ -274,15 +274,15 @@ bogged down.
274274

275275
#### Story 1
276276

277-
As a kubeadm user, I wish no component violates the Kubernetes version skew policy when joining a control plane node.
277+
As a kubeadm user, I wish no component violates the Kubernetes version skew policy when joining a control plane node.
278278

279279
#### Story 2
280280

281281
As a kubeadm user, I wish the kubelet of a joining control plane node points to the local kube-apiserver.
282282

283283
#### Story 3
284284

285-
As a kubeadm user, I wish the CLI of kubeadm to be stable and breaking changes to it to be announced ahead of time.
285+
As a kubeadm user, I wish the CLI of kubeadm to be stable and breaking changes to it to be announced ahead of time.
286286

287287
#### Story 4
288288

@@ -617,7 +617,7 @@ enhancement:
617617

618618
- N/A -> Alpha: users can patch their `ClusterConfiguration` in the `kube-system/kubeadm-config` ConfigMap to enable the `ControlPlaneKubeletLocalMode` feature gate, before calling `kubeadm upgrade apply`. This will allow them to join control plane nodes with this feature enabled. This scenario is anticipated as rare, because usually users maintain a stable control plane with 3 or more members before upgrading it. But it is still plausible and can be documented in the feature gate documentation. The `kubelet.conf` on existing nodes can also be edited to match the new behavior.
619619
- Alpha -> Beta: similarly to the previous stage users can modify the `ClusterConfiguration` to disable the feature gate during upgrade. This will allow them to use the "old way", in case they wish to join more control plane nodes to the cluster while the feature gate is enabled by default.
620-
- Beta -> GA: users could no longer patch the `ClusterConfiguration` to opt-out of the feature and it will be locked to be enabled by default.
620+
- Beta -> GA: users could no longer patch the `ClusterConfiguration` to opt-out of the feature and it will be locked to be enabled by default.
621621

622622
### Version Skew Strategy
623623

@@ -659,14 +659,15 @@ Major milestones might include:
659659
- 12.07.2024: KEP adjusted to match discussed implementation.
660660
- 15.07.2024: KEP alpha implementation merged.
661661
- 06.02.2024: PRs to promote the feature gate to Beta.
662+
- 17.09.2025: PRs to promote the feature gate to GA.
662663

663664
## Drawbacks
664665

665666
<!--
666667
Why should this KEP _not_ be implemented?
667668
-->
668669

669-
Moving or introducing new phases are breaking changes to the CLI of kubeadm.
670+
Moving or introducing new phases are breaking changes to the CLI of kubeadm.
670671
Adding new phases may break users which are executing the single phases manually.
671672
The changes must be well-documented in release notes for users to adapt the changes.
672673

@@ -684,8 +685,8 @@ information to express the idea and why it was not acceptable.
684685

685686
### Take the risk of violating Kubernetes version skew policy
686687

687-
By not introducing the change, users of kubeadm are on risk to hit a case in the future where a violation of the Kubernetes version skew policy happens and joining a control plane node may fail.
688-
We anticipate such cases to be rare.
688+
By not introducing the change, users of kubeadm are on risk to hit a case in the future where a violation of the Kubernetes version skew policy happens and joining a control plane node may fail.
689+
We anticipate such cases to be rare.
689690

690691
### Use external etcd
691692

keps/sig-cluster-lifecycle/kubeadm/4471-cp-join-kubelet-local-apiserver/kep.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ participating-sigs:
77
- sig-cluster-lifecycle
88
status: implementable
99
creation-date: 2024-2-1
10-
last-updated: 2025-02-06
10+
last-updated: 2025-09-17
1111
reviewers:
1212
- "@neolit123"
1313
- "@SataQiu"
@@ -17,4 +17,4 @@ approvers:
1717
- "@SataQiu"
1818
- "@pacoxu"
1919
latest-milestone: "0.0"
20-
stage: "beta"
20+
stage: "stable"

0 commit comments

Comments
 (0)