Skip to content

Commit e324e84

Browse files
deprecate Dynamic Kubelet Config feature
1 parent d035eac commit e324e84

File tree

2 files changed

+95
-40
lines changed

2 files changed

+95
-40
lines changed

keps/sig-node/281-dynamic-kubelet-configuration/README.md

Lines changed: 89 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
<!-- toc -->
44
- [Release Signoff Checklist](#release-signoff-checklist)
55
- [Summary](#summary)
6+
- [Deprecation](#deprecation)
67
- [Risks and Mitigations](#risks-and-mitigations)
78
- [Test Plan](#test-plan)
89
- [Graduation Criteria](#graduation-criteria)
910
- [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy)
1011
- [Version Skew Strategy](#version-skew-strategy)
11-
- [Production Readiness Review Questionnaire](#production-readiness-review-questionnaire)
12+
- [Deprecation Readiness Review Questionnaire](#deprecation-readiness-review-questionnaire)
1213
- [Feature Enablement and Rollback](#feature-enablement-and-rollback)
13-
- [Rollout, Upgrade and Rollback Planning](#rollout-upgrade-and-rollback-planning)
14+
- [Rollout, Upgrade, and Rollback Planning](#rollout-upgrade-and-rollback-planning)
1415
- [Monitoring Requirements](#monitoring-requirements)
1516
- [Dependencies](#dependencies)
1617
- [Scalability](#scalability)
@@ -30,157 +31,209 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
3031
- [X] (R) Design details are appropriately documented
3132
- [X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
3233
- [X] (R) Graduation criteria is in place
33-
- [ ] (R) Production readiness review completed
34+
- [X] (R) Production readiness review completed
3435
- [ ] Production readiness review approved
3536
- [ ] "Implementation History" section is up-to-date for milestone
3637
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
3738
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
3839

3940
## Summary
4041

41-
Dynamic Kubelet Configuration allows a new Kubelet configurations to be rolled out in a live cluster.
42+
Dynamic Kubelet Configuration allows a new Kubelet configurations to be rolled
43+
out in a live cluster.
4244

4345
The feature predates the KEP process as it is defined today. Please find
4446
motivation, goals, and design section in [community repository](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/dynamic-kubelet-configuration.md).
4547

48+
Dynamic Kubelet Configuration feature is deprecated at the version v1.22 due to
49+
lack of interest in promoting it to stable. See [Deprecation](#deprecation).
50+
51+
## Deprecation
52+
53+
Dynamic Kubelet Configuration feature was promoted to beta in [v1.11, 3 July 2018](https://kubernetes.io/blog/2018/06/27/kubernetes-1.11-release-announcement).
54+
As per the [Avoiding Permanent Beta](https://kubernetes.io/blog/2020/08/21/moving-forward-from-beta/#avoiding-permanent-beta)
55+
policy this feature is marked for deprecation as there were no interest expressed to
56+
promote the feature to stable. Removal of Dynamic Kubelet Configuration logic will
57+
simplify code and improve code reliability.
58+
4659
### Risks and Mitigations
4760

48-
TODO for the feature deprecation effort
61+
The deprecation announcement may uncover wide feature usage.
62+
So far only one complain [was expressed](https://github.com/kubernetes/enhancements/issues/281#issuecomment-695751859).
63+
64+
Mitigation is to suggest adoption of alternative solutions for
65+
configuration management. Since the feature existed for many releases,
66+
deprecation period may be prolonged comparing to the obligated one release
67+
as documented in [Rule #5b](https://kubernetes.io/docs/reference/using-api/deprecation-policy/#:~:text=rule%20%235b%3A)
68+
of the deprecation policy.
4969

5070
### Test Plan
5171

52-
TODO for the feature deprecation effort
72+
All tests will be running while the feature is marked as deprecated.
5373

5474
### Graduation Criteria
5575

56-
TODO for the feature deprecation effort
76+
Graduation criteria for Dynamic Kubelet Config was to receive feedback on
77+
feature usage and shortcomings and address those before promoting it to stable.
78+
So far the big feedback is that the feature needs to be expanded to provide
79+
better reliability promises and allow to restrict the set of configuration
80+
options available for change. Some Kubernetes vendors already using alternative
81+
solutions for Kubelet Configuration distribution and update.
82+
83+
Since graduation criteria wasn't met for many releases, the feature is marked for
84+
deprecation.
85+
86+
Note, there will be a separate update of this doc when feature will be marked
87+
for removal.
5788

5889
### Upgrade / Downgrade Strategy
5990

60-
TODO for the feature deprecation effort
91+
Not applicable for deprecation.
6192

6293
### Version Skew Strategy
6394

64-
TODO for the feature deprecation effort
95+
N/A
96+
97+
TODO: Section is to be updated once feature is scheduled for removal.
6598

66-
## Production Readiness Review Questionnaire
99+
## Deprecation Readiness Review Questionnaire
100+
101+
Note, this is **deprecation** readiness questionnaire.
67102

68103
### Feature Enablement and Rollback
69104

70105
_This section must be completed when targeting alpha to a release._
71106

72107
* **How can this feature be enabled / disabled in a live cluster?**
73108

74-
TODO for the feature deprecation effort
109+
Feature will be marked as deprecated and deprecated warnings will be displayed.
75110

76111
* **Does enabling the feature change any default behavior?**
77112

78-
TODO for the feature deprecation effort
113+
Deprecated warnings will be shown when the feature is being used.
79114

80115
* **Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?**
81116

82-
TODO for the feature deprecation effort
117+
There is a slight chance the feature will be un-deprecated if it will
118+
find an owner committed to it.
83119

84120
* **What happens if we reenable the feature if it was previously rolled back?**
85121

86-
TODO for the feature deprecation effort
122+
N/A
123+
124+
TODO: Section is to be updated once feature is scheduled for removal.
87125

88126
* **Are there any tests for feature enablement/disablement?**
89127

90-
TODO for the feature deprecation effort
128+
There will be no tests for the deprecation warnings.
129+
130+
TODO: Section is to be updated once feature is scheduled for removal.
91131

92-
### Rollout, Upgrade and Rollback Planning
132+
### Rollout, Upgrade, and Rollback Planning
93133

94134
* **How can a rollout fail? Can it impact already running workloads?**
95135

96-
TODO for the feature deprecation effort
136+
No, feature deprecation will not impact any workload.
137+
138+
TODO: Section is to be updated once feature is scheduled for removal.
97139

98140
* **What specific metrics should inform a rollback?**
99141

100-
TODO for the feature deprecation effort
142+
TODO: Section is to be updated once feature is scheduled for removal.
101143

102144
* **Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?**
103145

104-
TODO for the feature deprecation effort
146+
TODO: Section is to be updated once feature is scheduled for removal.
105147

106148
### Monitoring Requirements
107149

108150
* **How can an operator determine if the feature is in use by workloads?**
109151

110-
TODO for the feature deprecation effort
152+
Deprecated warnings will be displayed for the operator to learn about deprecation.
153+
154+
Operator can also track metrics that report the assigned (node_config_assigned),
155+
last-known-good (node_config_last_known_good), and active (node_config_active)
156+
config sources. Metrics will indicate that the feature is in use and the migration
157+
effort needs to be scheduled.
111158

112159
* **What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?**
113160

114-
TODO for the feature deprecation effort
161+
TODO: Section is to be updated once feature is scheduled for removal.
115162

116163
* **What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
117164

118-
TODO for the feature deprecation effort
165+
TODO: Section is to be updated once feature is scheduled for removal.
119166

120167
* **Are there any missing metrics that would be useful to have to improve observability of this feature?**
121168

122-
TODO for the feature deprecation effort
169+
TODO: Section is to be updated once feature is scheduled for removal.
123170

124171
### Dependencies
125172

126173
* **Does this feature depend on any specific services running in the cluster?**
127174

128-
TODO for the feature deprecation effort
175+
No
129176

130177
### Scalability
131178

132179
* **Will enabling / using this feature result in any new API calls?**
133180

134-
TODO for the feature deprecation effort
181+
No
135182

136183
* **Will enabling / using this feature result in introducing new API types?**
137184

138-
TODO for the feature deprecation effort
185+
No
186+
187+
TODO: Section is to be updated once feature is scheduled for removal.
139188

140189
* **Will enabling / using this feature result in any new calls to the cloud provider?**
141190

142-
TODO for the feature deprecation effort
191+
No
143192

144193
* **Will enabling / using this feature result in increasing size or count of the existing API objects?**
145194

146-
TODO for the feature deprecation effort
195+
No
147196

148197
* **Will enabling / using this feature result in increasing time taken by any operations covered by [existing SLIs/SLOs]?**
149198

150-
TODO for the feature deprecation effort
199+
No
151200

152201
* **Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, ...) in any components?**
153202

154-
TODO for the feature deprecation effort
203+
No
155204

156205
### Troubleshooting
157206

158207
* **How does this feature react if the API server and/or etcd is unavailable?**
159208

160-
TODO for the feature deprecation effort
209+
N/A
161210

162211
* **What are other known failure modes?**
163212

164-
TODO for the feature deprecation effort
213+
None
165214

166215
* **What steps should be taken if SLOs are not being met to determine the problem?**
167216

168-
TODO for the feature deprecation effort
217+
N/A
169218

170219
## Implementation History
171220

172221
- 1.8 Alpha release
173222
- 1.9 Incremental improvements working towards 1.10 goals
174223
- 1.11 Beta release
224+
- 1.21 Feature is marked for deprecation
175225

176226
## Drawbacks
177227

178-
TODO for the feature deprecation effort
228+
The biggest drawback of feature deprecation is potential use of the feature.
179229

180230
## Alternatives
181231

182-
TODO for the feature deprecation effort
232+
Alternatives for Dynamic Kubelet Configuration feature is a solution that updates
233+
kubelet configuration file and restarts kubelet which is preferred solution as it
234+
increases kubelet reliability and simplifies it's code. While allowing extra features
235+
for kubelet configuring be implemented faster and specific to the kubernetes environment.
183236

184237
## Infrastructure Needed (Optional)
185238

186-
TODO for the feature deprecation effort
239+
None

keps/sig-node/281-dynamic-kubelet-configuration/kep.yaml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,25 @@ approvers:
1616
- "@dchen1107"
1717
- "@derekwaynecarr"
1818
prr-approvers:
19-
- "TODO"
19+
- "@johnbelamaric"
2020
see-also:
2121
replaces:
2222

2323
# The target maturity stage in the current dev cycle for this KEP.
24-
stage: beta
24+
stage: beta (deprecated)
2525

2626
# The most recent milestone for which work toward delivery of this KEP has been
2727
# done. This can be the current (upcoming) milestone, if it is being actively
2828
# worked on.
29-
latest-milestone: "v1.11"
29+
latest-milestone: "v1.22"
3030

3131
# The milestone at which this feature was, or is targeted to be, at each stage.
3232
milestone:
3333
alpha: "v1.8"
3434
beta: "v1.11"
35-
stable:
35+
stable: "never"
36+
deprecated: "v1.22"
37+
removed: "v1.24"
3638

3739
# The following PRR answers are required at alpha release
3840
# List the feature gate name and the components for which it must be enabled

0 commit comments

Comments
 (0)