Skip to content

Commit 3545801

Browse files
committed
KEP-740: promote external token signing to beta
1 parent c1a01d2 commit 3545801

File tree

3 files changed

+25
-25
lines changed

3 files changed

+25
-25
lines changed

keps/prod-readiness/sig-auth/740.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
kep-number: 740
22
alpha:
3-
approver: "@soltysh"
3+
approver: "@soltysh"
4+
beta:
5+
approver: "@soltysh"

keps/sig-auth/740-service-account-external-signing/README.md

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
- [Prerequisite testing updates](#prerequisite-testing-updates)
2525
- [Unit tests](#unit-tests)
2626
- [Integration tests](#integration-tests)
27-
- [e2e tests](#e2e-tests)
2827
- [Graduation Criteria](#graduation-criteria)
2928
- [Alpha](#alpha)
3029
- [Beta](#beta)
@@ -50,20 +49,16 @@
5049

5150
Items marked with (R) are required *prior to targeting to a milestone / release*.
5251

53-
- [ ] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
54-
- [ ] (R) KEP approvers have approved the KEP status as `implementable`
52+
- [x] (R) Enhancement issue in release milestone, which links to KEP dir in [kubernetes/enhancements] (not the initial KEP PR)
53+
- [x] (R) KEP approvers have approved the KEP status as `implementable`
5554
- [x] (R) Design details are appropriately documented
56-
- [ ] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
57-
- [ ] e2e Tests for all Beta API Operations (endpoints)
58-
- [ ] (R) Ensure GA e2e tests meet requirements for [Conformance Tests](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/conformance-tests.md)
59-
- [ ] (R) Minimum Two Week Window for GA e2e tests to prove flake free
60-
- [ ] (R) Graduation criteria is in place
61-
- [ ] (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)
62-
- [ ] (R) Production readiness review completed
63-
- [ ] (R) Production readiness review approved
55+
- [x] (R) Test plan is in place, giving consideration to SIG Architecture and SIG Testing input (including test refactors)
56+
- [x] (R) Graduation criteria is in place
57+
- [x] (R) Production readiness review completed
58+
- [x] (R) Production readiness review approved
6459
- [ ] "Implementation History" section is up-to-date for milestone
65-
- [ ] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
66-
- [ ] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
60+
- [x] User-facing documentation has been created in [kubernetes/website], for publication to [kubernetes.io]
61+
- [x] Supporting documentation—e.g., additional design documents, links to mailing list discussions/SIG meetings, relevant PRs/issues, release notes
6762

6863
[kubernetes.io]: https://kubernetes.io/
6964
[kubernetes/enhancements]: https://git.k8s.io/enhancements
@@ -142,9 +137,9 @@ A new versioned grpc API (ExternalJWTSigner) will be created under `k8s.io/kuber
142137
#### Support for Legacy Tokens
143138

144139
Implementers will have following options for legacy token support:
145-
1. Let the Controller loop run as it is with static signing keys. Stitch the public keys in external signer's JWKs.
146-
2. Turn off the loop (don't support legacy tokens) if external signing is enabled.
147-
3. Create a custom external signer for legacy tokens using Controller loop from staging repo (This option will only be available if demanded by Community as part of feedback for Beta graduation).
140+
1. Turn off the loop (don't support legacy tokens) if external signing is enabled. (recommended to avoid non-expiring tokens)
141+
2. Let the Controller loop run as it is with static signing keys. Stitch the public keys in external signer's JWKs.
142+
3. Turn off the loop in kube-controller-manager and create a custom external signer for legacy tokens that obtains them via the external signer.
148143

149144
### Risks and Mitigations
150145

@@ -280,10 +275,6 @@ to implement this enhancement.
280275
##### Integration tests
281276

282277
- Create a cluster with ExternalJWTSigner to configure an external signer and verify TokenRequest and TokenReview APIs work properly.
283-
284-
##### e2e tests
285-
286-
- Create a cluster with ExternalJWTSigner configured.
287278
- Request a token for a service account principal.
288279
- Use a token as bearer for making requests to kube-apiserver and ensure it succeeds.
289280

@@ -296,13 +287,15 @@ to implement this enhancement.
296287

297288
#### Beta
298289

299-
- E2E tests are completed.
300-
- We have at least one ExternalSigner implementation working with this change.
290+
- All tests are completed.
291+
- We have at least one ExternalSigner integration working with this change.
292+
- GKE integration is complete
301293
- Decide whether to externalize legacy token controller code in a staging repo. Check [Support for Legacy Tokens](#support-for-legacy-tokens) for details.
294+
- Decided not to externalize legacy token controller code
302295

303296
#### GA
304297

305-
- More than one ExternalSigner implementations are completed.
298+
- More than one ExternalSigner integration are completed.
306299
- Feature is tuned with feedback from distributions.
307300

308301
### Upgrade/Downgrade Strategy
@@ -590,6 +583,10 @@ Initial PRs:
590583
- kubernetes/kubernetes#73110
591584
- kubernetes/kubernetes#125177
592585
586+
1.32: Alpha release
587+
588+
1.34: Beta release
589+
593590
## Drawbacks
594591
595592
Enabling the feature puts a remote service in the critical path of kube-apiserver. Thus, it can easily cause an outage. However, we have some relief in that it is an opt-in/configurable feature.

keps/sig-auth/740-service-account-external-signing/kep.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,11 @@ approvers:
1717

1818
stage: alpha
1919

20-
latest-milestone: "v1.33"
20+
latest-milestone: "v1.34"
2121

2222
milestone:
2323
alpha: "v1.32"
24+
beta: "v1.34"
2425

2526
feature-gates:
2627
- name: ExternalServiceAccountTokenSigner

0 commit comments

Comments
 (0)