Skip to content

Commit 3fe6a38

Browse files
committed
KEP-1965: address PRR comments from wojtek-t
Signed-off-by: Andrew Sy Kim <[email protected]>
1 parent 3c01537 commit 3fe6a38

File tree

2 files changed

+11
-8
lines changed
  • keps
    • prod-readiness/sig-api-machinery
    • sig-api-machinery/1965-kube-apiserver-identity

2 files changed

+11
-8
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
kep-number: 1965
22
beta:
3-
approver: "@deads2k"
3+
approver: "@deads2k" # and @wojtek-t

keps/sig-api-machinery/1965-kube-apiserver-identity/README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -201,11 +201,12 @@ N/A
201201

202202
- [X] Feature gate (also fill in values in `kep.yaml`)
203203
- Feature gate name: APIServerIdentity
204-
- Components depending on the feature gate: kube-apiserver
204+
- Components depending on the feature gate: kube-apiserver, kube-controller-manager
205205

206206
###### Does enabling the feature change any default behavior?
207207

208-
A namespace "kube-apiserver-lease" will be used to store kube-apiserver identity Leases.
208+
A namespace `kube-apiserver-lease` will be created to store kube-apiserver identity Leases.
209+
Old leases will be actively garbage collected by kube-controller-manager.
209210

210211
###### Can the feature be disabled once it has been enabled (i.e. can we roll back the enablement)?
211212

@@ -217,7 +218,8 @@ Stale Lease objects will be garbage collected.
217218

218219
###### Are there any tests for feature enablement/disablement?
219220

220-
Yes, see [apiserver_identity_test.go](https://github.com/kubernetes/kubernetes/blob/24238425492227fdbb55c687fd4e94c8b58c1ee3/test/integration/controlplane/apiserver_identity_test.go).
221+
There are some tests that require enabling the feature gate in [apiserver_identity_test.go](https://github.com/kubernetes/kubernetes/blob/24238425492227fdbb55c687fd4e94c8b58c1ee3/test/integration/controlplane/apiserver_identity_test.go).
222+
However, there are no tests validating feature enablement/disablement based on the gate. These tests should be added prior to Beta.
221223

222224
### Rollout, Upgrade and Rollback Planning
223225

@@ -253,14 +255,14 @@ the Lease object to see if workloads or other controllers are relying on this fe
253255
- Event Reason:
254256
- [X] API .status
255257
- Condition name:
256-
- Other field:
258+
- Other field: `.spec.holderIdentity`, `.spec.acquireTime`, `.spec.renewTime`, `.spec.leaseTransitions`
257259
- [X] Other (treat as last resort)
258260
- Details: audit logs for clients that are reading the Lease objects
259261

260262
###### What are the reasonable SLOs (Service Level Objectives) for the enhancement?
261263

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+
A rough SLO here is that healthy kube-apiservers has a lease which is not older than 2 times the frequency of
265+
the lease heart beat 95% of time.
264266

265267
###### What are the SLIs (Service Level Indicators) an operator can use to determine the health of the service?
266268

@@ -271,7 +273,8 @@ since the same mechanism is being used.
271273

272274
###### Are there any missing metrics that would be useful to have to improve observability of this feature?
273275

274-
Yes, heart beat latency could be useful.
276+
A metric measuring the last updated time for a lease could be useful, but it could introduce cardinality problems
277+
since the lease is changed on every restart of kube-apiserver.
275278

276279
### Dependencies
277280

0 commit comments

Comments
 (0)