-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
KEP-3331: Structured Authentication Config #3332
KEP-3331: Structured Authentication Config #3332
Conversation
nabokihms
commented
Jun 2, 2022
- One-line PR description: Structured config for OIDC authentication
- Issue link: Structured Authentication Config #3331
- Other comments: -
Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>
Hi @nabokihms. Thanks for your PR. I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/assign |
Signed-off-by: m.nabokikh <maksim.nabokikh@flant.com>
3ebbb28
to
6da022b
Compare
@nabokihms are you targeting this for v1.26? |
@enj Yeah, I'd like to take it to v1.26 if it is possible. |
/ok-to-test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
did a first pass on the proposed config structure
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/kep.yaml
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
(shadowing @deads2k on PRR)
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
|
||
###### How can a rollout or rollback fail? Can it impact already running workloads? | ||
|
||
It cannot fail. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some possible rollout/rollback failures I can imagine are:
- General bugs in kube-apiserver's parsing of the structured config file. Maybe more relevant in future versions where there could be bugs in the conversion logic between multiple versions (v1alpha1, v1beta1, etc) of the config.
- Cluster admin rolls out the feature with the addition of some validation rules that may have some untended consequences
- Rolling back would mean losing validation functionality offered from structured config that some other component may depend on
(not suggesting much can be done about all of these, especially if they are due to user error, but probably worth noting here)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. And noting that failures are intended to prevent process startup means that HA clusters that ripple-start will survive intact.
keps/sig-auth/3331-structured-config-for-oidc-authentication/README.md
Outdated
Show resolved
Hide resolved
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
address API review comments for extra mappings
Signed-off-by: Anish Ramasekar <anish.ramasekar@gmail.com>
address review feedback (part 2)
This is ready from an API perspective (have addressed all of Jordan's API review feedback). /approve Just waiting on PRR now. /assign @deads2k |
- Feature implemented behind a feature flag | ||
- Unit tests to validate CEL semantics | ||
- Unit tests for config validation | ||
- Initial e2e tests completed and enabled |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Any reason integration tests aren't included here? Is it because we need to test with a OIDC provider?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a typo and should say integration tests, will fix.
[supported limits]: https://git.k8s.io/community//sig-scalability/configs-and-limits/thresholds.md | ||
--> | ||
|
||
TBA. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would just say No
here, reading and serializing the config on start-up is negligible, unless we plan to watch for file changes and allow for dynamic changes to the authentication config
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do plan to watch for config changes and dynamically update the authenticators (and likely throw away the token cache). This also involves re-parsing the CEL functions (and we have new overhead of CEL functions per authentication as well).
PRR is complete enough for alpha. Please consider what metrics you'll add for beta when this gets enabled by default. /approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: deads2k, enj, nabokihms The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/lgtm |