Skip to content

Commit 7234073

Browse files
authored
Merge pull request kubernetes#2627 from neolit123/1.22-kubeadm-config-kep
sig-cluster-lifecycle: update the kubeadm config KEP for 1.22
2 parents e10329f + 7896a00 commit 7234073

File tree

2 files changed

+35
-12
lines changed

2 files changed

+35
-12
lines changed

keps/sig-cluster-lifecycle/kubeadm/970-kubeadm-config/README.md

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# kubeadm Config file graduation (v1beta2)
1+
# kubeadm Config file graduation
22

33
## Table of Contents
44

@@ -16,13 +16,16 @@
1616
- [Add config options for new and existing kubeadm features](#add-config-options-for-new-and-existing-kubeadm-features)
1717
- [v1beta3](#v1beta3)
1818
- [Make kubeadm's config format more CRD and third party friendly](#make-kubeadms-config-format-more-crd-and-third-party-friendly)
19-
- [Opt-in AddOns](#opt-in-addons)
19+
- [Allow skipping phases via config](#allow-skipping-phases-via-config)
20+
- [Remove deprecated structures and fields](#remove-deprecated-structures-and-fields)
21+
- [Other changes](#other-changes)
2022
- [Risks and Mitigations](#risks-and-mitigations)
2123
- [Graduation Criteria](#graduation-criteria)
2224
- [Implementation History](#implementation-history)
2325
- [v1alpha3 released with Kubernetes 1.12](#v1alpha3-released-with-kubernetes-112)
2426
- [v1beta1 released with Kubernetes 1.13](#v1beta1-released-with-kubernetes-113)
2527
- [v1beta2 released with Kubernetes 1.15](#v1beta2-released-with-kubernetes-115)
28+
- [v1beta3 released with Kubernetes 1.22](#v1beta3-released-with-kubernetes-122)
2629
- [Drawbacks](#drawbacks)
2730
<!-- /toc -->
2831

@@ -176,7 +179,7 @@ etcd configuration in the `v1alpha2` version.
176179

177180
### v1beta2
178181

179-
This section outlines changes to be introduced in a second iteration of the kubeadm config format.
182+
This section outlines changes to be introduced in a second Beta iteration of the kubeadm configuration.
180183

181184
#### Add config options for new and existing kubeadm features
182185

@@ -195,7 +198,10 @@ limited use cases.
195198

196199
### v1beta3
197200

198-
This section outlines changes to be introduced in the third iteration of the kubeadm config format.
201+
This section outlines changes to be introduced in a third Beta iteration of the kubeadm configuration.
202+
203+
The version introduces no drastic changes since v1beta2. It performs cleanup of deprecated features
204+
and introduces features that have seen high demand.
199205

200206
#### Make kubeadm's config format more CRD and third party friendly
201207

@@ -204,10 +210,21 @@ This includes:
204210
- Adding metadata fields to InitConfiguration, JoinConfiguration and ClusterConfiguration.
205211
- Marking omitempty fields as `+optional`.
206212

207-
#### Opt-in AddOns
213+
#### Allow skipping phases via config
214+
215+
In the past few releases users have been increasingly using the kubeadm phases feature to skip the
216+
installation of the bundled kube-proxy and CoreDNS addon. From the configuration API this will be
217+
done with a `skipPhases` field (string slice) that is part of InitConfiguration and JoinConfiguration.
218+
219+
#### Remove deprecated structures and fields
220+
221+
- `ClusterStatus`: deprecated and replaced by annotating the kube-apiserver Pod.
222+
- `ClusterConfiguration.dns.type`: no longer needed since kubeadm only supports CoreDNS.
223+
- `ClusterConfiguration.useHyperkubeImage`: hyperkube was previously deprecated.
208224

209-
In the past few releases users have been increasingly using the kubeadm phases feature to skip the installation of the Kube-Proxy and CoreDNS/Kube-DNS addons. This, however, causes some problems when joining new nodes to the cluster or upgrading existing ones, as there are no means of persisting the user wish to not install some of the addons.
210-
This, combined with recent developments in the Cluster AddOns sub-project of SIG Cluster Lifecycle, led us to believe, that the best way to tackle the problem at hand is to allow for users to specify precisely which addons should be installed by kubeadm and persist the choice in the ClusterConfiguration.
225+
#### Other changes
226+
227+
Lower priority changes will be a best effort.
211228

212229
### Risks and Mitigations
213230

@@ -265,6 +282,12 @@ This risk will be mitigated by implementing the change according to following ap
265282
- Added new fields for specifying the encryption key for certificates and for specifying which pre-flight errors to be ignored.
266283
- **omitempty** has a wider use, but is removed from the *taints* field of NodeRegistrationOptions.
267284

285+
### v1beta3 released with Kubernetes 1.22
286+
287+
- Details for the changes in v1beta3 since v1beta2 can be seen in the
288+
[changelog](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3).
289+
- v1beta1 removed.
290+
268291
## Drawbacks
269292

270293
The differences from the current kubeadm config are relevant and kubeadm users can get confused.
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
title: Kubeadm config file graduation (v1beta2)
1+
title: Kubeadm config file graduation
22
kep-number: 970
33
authors:
44
- "@fabriziopandini"
55
- "@luxas"
6+
- "@rosti"
7+
- "@neolit123"
68
owning-sig: sig-cluster-lifecycle
79
reviewers:
810
- "@chuckha"
@@ -13,9 +15,7 @@ approvers:
1315
- "@timothysc"
1416
- "@fabriziopandini"
1517
- "@neolit123"
16-
editor: "@fabriziopandini"
18+
editor: "@neolit123"
1719
creation-date: 2018-08-01
18-
last-updated: 2019-04-29
20+
last-updated: 2021-04-15
1921
status: implementable
20-
see-also:
21-
- KEP 0008

0 commit comments

Comments
 (0)