Skip to content
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

update KEP 740 #4852

Merged
Merged

Conversation

HarshalNeelkamal
Copy link
Contributor

@HarshalNeelkamal HarshalNeelkamal commented Sep 13, 2024

  • One-line PR description: Update KEP for External ServiceAccount JWT signing

  • Issue link: API for external signing of Service Account tokens #740

  • Other comments:

    • The KEP was marked provisional in KEP-740: fix incorrect status #3653 due to being stale for over 3 years.
    • This PR attempts to bring the KEP up to speed with recent changes.
    • The intention is that underlying implementation can be picked back up.
    • A consensus regarding external JWT signing was achieved in the community (as documented here)

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/kep Categorizes KEP tracking issues and PRs modifying the KEP directory sig/auth Categorizes an issue or PR as relevant to SIG Auth. labels Sep 13, 2024
@k8s-ci-robot
Copy link
Contributor

Welcome @HarshalNeelkamal!

It looks like this is your first PR to kubernetes/enhancements 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/enhancements has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Sep 13, 2024
@k8s-ci-robot
Copy link
Contributor

Hi @HarshalNeelkamal. 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 /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

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-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Sep 13, 2024
Copy link
Contributor

@ahmedtd ahmedtd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One high-level point of discussion... does this need any feature gates? It seems like it is explicitly controlled by a kube-apiserver flag, so there's no point in additionally adding a feature gate.

@HarshalNeelkamal
Copy link
Contributor Author

/cc @liggitt @enj @micahhausler

@dims
Copy link
Member

dims commented Sep 18, 2024

/ok-to-test

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Sep 18, 2024
@k8s-ci-robot k8s-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Sep 20, 2024
@liggitt liggitt added this to the v1.32 milestone Oct 2, 2024
Copy link
Member

@enj enj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

First pass.


No.

### Monitoring Requirements
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to fill out this section. Maybe we would want some part of this in the kube audit logs?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Waiting until beta to release to fill it out. Let me know if you think we need it sooner?

Copy link
Contributor Author

@HarshalNeelkamal HarshalNeelkamal Oct 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

have filled the parts that I could. Would add the remaining after starting implementation. Might need benchmarking on SLIs.

@BenTheElder
Copy link
Member

#740 (comment)
/assign @soltysh

Copy link
Contributor

@soltysh soltysh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few minor nits from PRR

keps/prod-readiness/sig-auth/740.yaml Outdated Show resolved Hide resolved
Copy link
Contributor

@soltysh soltysh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the PRR for alpha looks good
/approve

Comment on lines +282 to +288
- Create a cluster with ExternalJWTSigner configured.
- Request a token for a service account principal.
- Use a token as bearer for making requests to kube-apiserver and ensure it succeeds.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no change needed, just FYI, but integration tests will be way easier to test... to configure this for an e2e, we'd have to set up a completely new job with the cluster configured this way

See the KMS e2e tests:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would still expect an e2e like the encrypt-all-kind one to exercise all the wiring, but I would expect ~95% of the testing to be done via unit/integration tests.

@liggitt
Copy link
Member

liggitt commented Oct 9, 2024

once you do the final sweep, also run hack/update-toc.sh to fixup to table of contents to pass the verify script

Copy link
Member

@enj enj left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Second pass.


The Feature would not be used by workload directly but will be used by kube-apiserver.

The usage should be visible to the operator using Audit logs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please be more specific.

@enj
Copy link
Member

enj commented Oct 9, 2024

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Oct 9, 2024
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: enj, HarshalNeelkamal, soltysh

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 9, 2024
@k8s-ci-robot k8s-ci-robot merged commit d13c2f2 into kubernetes:master Oct 9, 2024
4 checks passed
@HarshalNeelkamal HarshalNeelkamal deleted the external-sa-signing branch October 10, 2024 16:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/kep Categorizes KEP tracking issues and PRs modifying the KEP directory lgtm "Looks good to me", indicates that a PR is ready to be merged. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. sig/auth Categorizes an issue or PR as relevant to SIG Auth. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

10 participants