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
-[Alternative 1: new API + storage TTL](#alternative-1-new-api--storage-ttl)
@@ -30,17 +37,25 @@
30
37
31
38
Items marked with (R) are required *prior to targeting to a milestone / release*.
32
39
33
-
-[x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
34
-
-[x] (R) KEP approvers have approved the KEP status as `implementable`
35
-
-[x] (R) Design details are appropriately documented
36
-
-[x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input
37
-
-[x] (R) Graduation criteria is in place
40
+
-[X] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
41
+
-[X] (R) KEP approvers have approved the KEP status as `implementable`
42
+
-[X] (R) Design details are appropriately documented
43
+
-[X] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
44
+
-[ ] e2e Tests for all Beta API Operations (endpoints)
45
+
-[ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
46
+
-[ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
47
+
-[X] (R) Graduation criteria is in place
48
+
-[ ] (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)
38
49
-[ ] (R) Production readiness review completed
39
-
-[ ] Production readiness review approved
50
+
-[ ](R) Production readiness review approved
40
51
-[ ] "Implementation History" section is up-to-date for milestone
41
52
-[ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
42
53
-[ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
43
54
55
+
<!--
56
+
**Note:** This checklist is iterative and should be reviewed and updated every time this enhancement is being considered for a milestone.
@@ -154,64 +197,132 @@ Alpha should provide basic functionality covered with tests described above.
154
197
155
198
### Feature Enablement and Rollback
156
199
157
-
***How can this feature be enabled / disabled in a live cluster?**
158
-
-[x] Feature gate (also fill in values in `kep.yaml`)
159
-
- Feature gate name: APIServerIdentity
160
-
- Components depending on the feature gate: kube-apiserver
200
+
###### How can this feature be enabled / disabled in a live cluster?
161
201
162
-
***Does enabling the feature change any default behavior?**
163
-
A namespace "kube-apiserver-lease" will be used to store kube-apiserver
164
-
identity Leases.
202
+
-[X] Feature gate (also fill in values in `kep.yaml`)
203
+
- Feature gate name: APIServerIdentity
204
+
- Components depending on the feature gate: kube-apiserver
165
205
166
-
***Can the feature be disabled once it has been enabled (i.e. can we roll back
167
-
the enablement)?**
168
-
Yes. Stale Lease objects will remain stale (`renewTime` won't get updated)
206
+
###### Does enabling the feature change any default behavior?
169
207
170
-
***What happens if we reenable the feature if it was previously rolled back?**
171
-
Stale Lease objects will be garbage collected.
208
+
A namespace "kube-apiserver-lease" will be used to store kube-apiserver identity Leases.
209
+
210
+
###### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?
211
+
212
+
Yes. Stale Lease objects will remain stale (renewTime won't get updated)
213
+
214
+
###### What happens if we reenable the feature if it was previously rolled back?
215
+
216
+
Stale Lease objects will be garbage collected.
217
+
218
+
###### Are there any tests for feature enablement/disablement?
219
+
220
+
Yes, see [apiserver_identity_test.go](https://github.com/kubernetes/kubernetes/blob/24238425492227fdbb55c687fd4e94c8b58c1ee3/test/integration/controlplane/apiserver_identity_test.go).
172
221
173
222
### Rollout, Upgrade and Rollback Planning
174
223
175
-
_This section must be completed when targeting beta graduation to a release._
224
+
###### How can a rollout or rollback fail? Can it impact already running workloads?
225
+
226
+
Existing workloads should not be impacteded by this feature, unless they were
227
+
looking for Lease objects in the `kube-apiserver-lease` namespace.
228
+
229
+
###### What specific metrics should inform a rollback?
230
+
231
+
Recently added [healthcheck metrics for apiserver](https://github.com/kubernetes/kubernetes/pull/112741), which includes
232
+
the health of the post start hook can be used to inform rollback, specifically `kubernetes_healthcheck{poststarthook/start-kube-apiserver-identity-lease-controller}`
233
+
234
+
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
235
+
236
+
Manual testing for upgrade/rollback will be done prior to Beta. Steps taken for manual tests will be updated here.
237
+
238
+
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
239
+
240
+
No.
176
241
177
242
### Monitoring Requirements
178
243
179
-
_This section must be completed when targeting beta graduation to a release._
244
+
###### How can an operator determine if the feature is in use by workloads?
245
+
246
+
The existence of the `kube-apiserver-lease` namespace and Lease objects in the namespace
247
+
will determine if the feature is working. Operators can check for clients that are accessing
248
+
the Lease object to see if workloads or other controllers are relying on this feature.
249
+
250
+
###### How can someone using this feature know that it is working for their instance?
251
+
252
+
-[ ] Events
253
+
- Event Reason:
254
+
-[X] API .status
255
+
- Condition name:
256
+
- Other field:
257
+
-[X] Other (treat as last resort)
258
+
- Details: audit logs for clients that are reading the Lease objects
259
+
260
+
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
261
+
262
+
A rough SLO here is that kube-apiserver updates leases at the same frequency as kubelet node heart beats,
263
+
since the same mechanism is being used.
264
+
265
+
###### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?
0 commit comments