Skip to content

Commit a1db1a1

Browse files
authored
Merge pull request kubernetes#3964 from zshihang/master
update kep-2799
2 parents 5b75598 + ea77f8c commit a1db1a1

File tree

1 file changed

+19
-17
lines changed
  • keps/sig-auth/2799-reduction-of-secret-based-service-account-token

1 file changed

+19
-17
lines changed

keps/sig-auth/2799-reduction-of-secret-based-service-account-token/README.md

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,15 @@ sure new clusters are in good state.
134134
### LegacyServiceAccountTokenTracking
135135

136136
To facilitate LegacyServiceAccountTokenCleanUp, we implement a simple controller
137-
in kube-apiserver that maintains a bool value configmap in `kube-system` to
137+
in kube-apiserver that maintains a bool value configmap `kube-apiserver-legacy-service-account-token-tracking` in `kube-system` to
138138
indicates if tracking is enabled in the cluster. It is similar to the existing
139139
`ClusterAuthenticationTrustController` that maintains `configmap/extension-apiserver-authentication`.
140140

141141
- When LegacyServiceAccountTokenTracking is enabled in all apiservers,
142142

143-
- the controller creates/updates a configmap in `kube-system` namespace that
144-
stores the current date as `tracked-since`.
145-
- when a legacy token is used, issue a warning, update the label `last-used`
143+
- the controller creates/updates the configmap `kube-apiserver-legacy-service-account-token-tracking` in `kube-system` namespace that
144+
stores the current date as `since`.
145+
- when a legacy token is used, issue a warning, update the label `kubernetes.io/legacy-token-last-used`
146146
on the secret at date granularity, and record in a metric.
147147

148148
- When LegacyServiceAccountTokenTracking is disabled in any apiserver,
@@ -160,10 +160,10 @@ can be configured by cluster admins.
160160

161161
Determine the date that a given secret was last used:
162162

163-
1. `last-used` if exists and after `tracked-since`.
164-
2. defaults to `tracked-since`
163+
1. `kubernetes.io/legacy-token-last-used` if exists and after `since` stored in the configmap `kube-apiserver-legacy-service-account-token-tracking`.
164+
2. defaults to `since`
165165

166-
If `tracked-since` is unavailable, no secret would be removed.
166+
If `kube-apiserver-legacy-service-account-token-tracking` is unavailable, no secret would be removed.
167167

168168
### Test Plan
169169

@@ -227,10 +227,12 @@ legacy tokens for security practices.
227227

228228
#### Beta -> GA Graduation
229229

230-
- [ ] In use by multiple distributions
231-
- [ ] Approved by PRR and scalability
232-
- [ ] Any known bugs fixed
233-
- [ ] Tests passing
230+
- [x] In use by multiple distributions
231+
- Google
232+
- RedHat
233+
- [x] Approved by PRR and scalability
234+
- [x] Any known bugs fixed
235+
- [x] Tests passing
234236

235237
#### Alpha -> Beta Graduation
236238

@@ -242,7 +244,7 @@ legacy tokens for security practices.
242244

243245
| Alpha | Beta | GA |
244246
| ----- | ---- | ---- |
245-
| 1.27 | 1.28 | 1.29 |
247+
| 1.28 | 1.29 | 1.30 |
246248

247249
#### Beta -> GA Graduation
248250

@@ -296,7 +298,7 @@ yes for all feature gates.
296298
before the reenablement, Token Controller would create tokens for
297299
serviceaccounts while the feature was off.
298300
- LegacyServiceAccountTokenTracking: during this sequence of operations,
299-
only the label `last-used` is persisted, but there is no impact on the
301+
only the label `kubernetes.io/legacy-token-last-used` is persisted, but there is no impact on the
300302
functionality of this feature.
301303
- LegacyServiceAccountTokenCleanUp: the same as enable the feature.
302304

@@ -351,7 +353,7 @@ checking if there are objects with field X set) may be a last resort. Avoid
351353
logs or events for this purpose.
352354
-->
353355

354-
check if there is a configmap `tracked-since` in namespace `kube-system`.
356+
check if there is a configmap `kube-apiserver-legacy-service-account-token-tracking` in namespace `kube-system`.
355357

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

@@ -435,13 +437,13 @@ details). For now, we leave it here.
435437

436438
###### How does this feature react if the API server and/or etcd is unavailable?
437439

438-
- `tracked-since` configmap cannout be created.
440+
- `kube-apiserver-legacy-service-account-token-tracking` configmap cannout be created.
439441
- unable to remove unused auto-generated secrets.
440442

441443
###### What are other known failure modes?
442444

443-
- failure to create `tracked-since` config map
444-
- Detection: check if `tracked-since` exists in `kube-system`
445+
- failure to create `kube-apiserver-legacy-service-account-token-tracking` config map
446+
- Detection: check if `kube-apiserver-legacy-service-account-token-tracking` exists in `kube-system`
445447
- Mitigations: there is no impact on existing systems.
446448
- Diagnostics: check kube-apiserver log.
447449
- Testing: TBD.

0 commit comments

Comments
 (0)