You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -30,157 +31,209 @@ Items marked with (R) are required *prior to targeting to a milestone / release*
30
31
-[X] (R) Design details are appropriately documented
31
32
-[X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
32
33
-[X] (R) Graduation criteria is in place
33
-
-[] (R) Production readiness review completed
34
+
-[X] (R) Production readiness review completed
34
35
-[ ] Production readiness review approved
35
36
-[ ] "Implementation History" section is up-to-date for milestone
36
37
-[ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
37
38
-[ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
38
39
39
40
## Summary
40
41
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.
42
44
43
45
The feature predates the KEP process as it is defined today. Please find
44
46
motivation, goals, and design section in [community repository](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/node/dynamic-kubelet-configuration.md).
45
47
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
+
46
59
### Risks and Mitigations
47
60
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.
49
69
50
70
### Test Plan
51
71
52
-
TODO for the feature deprecation effort
72
+
All tests will be running while the feature is marked as deprecated.
53
73
54
74
### Graduation Criteria
55
75
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.
57
88
58
89
### Upgrade / Downgrade Strategy
59
90
60
-
TODO for the feature deprecation effort
91
+
Not applicable for deprecation.
61
92
62
93
### Version Skew Strategy
63
94
64
-
TODO for the feature deprecation effort
95
+
N/A
96
+
97
+
TODO: Section is to be updated once feature is scheduled for removal.
65
98
66
-
## Production Readiness Review Questionnaire
99
+
## Deprecation Readiness Review Questionnaire
100
+
101
+
Note, this is **deprecation** readiness questionnaire.
67
102
68
103
### Feature Enablement and Rollback
69
104
70
105
_This section must be completed when targeting alpha to a release._
71
106
72
107
***How can this feature be enabled / disabled in a live cluster?**
73
108
74
-
TODO for the feature deprecation effort
109
+
Feature will be marked as deprecated and deprecated warnings will be displayed.
75
110
76
111
***Does enabling the feature change any default behavior?**
77
112
78
-
TODO for the feature deprecation effort
113
+
Deprecated warnings will be shown when the feature is being used.
79
114
80
115
***Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?**
81
116
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.
83
119
84
120
***What happens if we reenable the feature if it was previously rolled back?**
85
121
86
-
TODO for the feature deprecation effort
122
+
N/A
123
+
124
+
TODO: Section is to be updated once feature is scheduled for removal.
87
125
88
126
***Are there any tests for feature enablement/disablement?**
89
127
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.
91
131
92
-
### Rollout, Upgrade and Rollback Planning
132
+
### Rollout, Upgrade, and Rollback Planning
93
133
94
134
***How can a rollout fail? Can it impact already running workloads?**
95
135
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.
97
139
98
140
***What specific metrics should inform a rollback?**
99
141
100
-
TODO for the feature deprecation effort
142
+
TODO: Section is to be updated once feature is scheduled for removal.
101
143
102
144
***Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?**
103
145
104
-
TODO for the feature deprecation effort
146
+
TODO: Section is to be updated once feature is scheduled for removal.
105
147
106
148
### Monitoring Requirements
107
149
108
150
***How can an operator determine if the feature is in use by workloads?**
109
151
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.
111
158
112
159
***What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?**
113
160
114
-
TODO for the feature deprecation effort
161
+
TODO: Section is to be updated once feature is scheduled for removal.
115
162
116
163
***What are the reasonable SLOs (Service Level Objectives) for the above SLIs?**
117
164
118
-
TODO for the feature deprecation effort
165
+
TODO: Section is to be updated once feature is scheduled for removal.
119
166
120
167
***Are there any missing metrics that would be useful to have to improve observability of this feature?**
121
168
122
-
TODO for the feature deprecation effort
169
+
TODO: Section is to be updated once feature is scheduled for removal.
123
170
124
171
### Dependencies
125
172
126
173
***Does this feature depend on any specific services running in the cluster?**
127
174
128
-
TODO for the feature deprecation effort
175
+
No
129
176
130
177
### Scalability
131
178
132
179
***Will enabling / using this feature result in any new API calls?**
133
180
134
-
TODO for the feature deprecation effort
181
+
No
135
182
136
183
***Will enabling / using this feature result in introducing new API types?**
137
184
138
-
TODO for the feature deprecation effort
185
+
No
186
+
187
+
TODO: Section is to be updated once feature is scheduled for removal.
139
188
140
189
***Will enabling / using this feature result in any new calls to the cloud provider?**
141
190
142
-
TODO for the feature deprecation effort
191
+
No
143
192
144
193
***Will enabling / using this feature result in increasing size or count of the existing API objects?**
145
194
146
-
TODO for the feature deprecation effort
195
+
No
147
196
148
197
***Will enabling / using this feature result in increasing time taken by any operations covered by [existing SLIs/SLOs]?**
149
198
150
-
TODO for the feature deprecation effort
199
+
No
151
200
152
201
***Will enabling / using this feature result in non-negligible increase of resource usage (CPU, RAM, disk, IO, ...) in any components?**
153
202
154
-
TODO for the feature deprecation effort
203
+
No
155
204
156
205
### Troubleshooting
157
206
158
207
***How does this feature react if the API server and/or etcd is unavailable?**
159
208
160
-
TODO for the feature deprecation effort
209
+
N/A
161
210
162
211
***What are other known failure modes?**
163
212
164
-
TODO for the feature deprecation effort
213
+
None
165
214
166
215
***What steps should be taken if SLOs are not being met to determine the problem?**
167
216
168
-
TODO for the feature deprecation effort
217
+
N/A
169
218
170
219
## Implementation History
171
220
172
221
- 1.8 Alpha release
173
222
- 1.9 Incremental improvements working towards 1.10 goals
174
223
- 1.11 Beta release
224
+
- 1.21 Feature is marked for deprecation
175
225
176
226
## Drawbacks
177
227
178
-
TODO for the feature deprecation effort
228
+
The biggest drawback of feature deprecation is potential use of the feature.
179
229
180
230
## Alternatives
181
231
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.
0 commit comments