Skip to content

[v18] Add new oidc subtype for Kubernetes joining (#57538)#57683

Merged
timothyb89 merged 1 commit intobranch/v18from
timothyb89/v18/kubernetes-jwks-uri
Aug 8, 2025
Merged

[v18] Add new oidc subtype for Kubernetes joining (#57538)#57683
timothyb89 merged 1 commit intobranch/v18from
timothyb89/v18/kubernetes-jwks-uri

Conversation

@timothyb89
Copy link
Copy Markdown
Contributor

@timothyb89 timothyb89 commented Aug 7, 2025

Backport of #57538 for branch/v18

changelog: Add new oidc joining mode for Kubernetes delegated joining to support providers that can be configured to provide public OIDC endpoints, like EKS, AKS, and GKE


  • MWI: Add oidc subtype for Kubernetes joining

This adds a new oidc subtype for Kubernetes joining, which allows workloads to join using a Kubernetes service account token (JWT) as usual, but verifies it using an OIDC flow rather than a static JWKS keyset. This should better support platforms like EKS where the JWKS keyset is rotated regularly.

  • Validate OIDC subtype properly

  • Initialize OIDC validator at startup

  • Fix OIDC claims implementation

  • Force use of cluster name as audience

  • Remove authorized party workaround

  • Reintroduce kubernetes claims check

  • Remove unused constant

  • Update generated operator resources

  • Update generated TF docs

  • Add validator tests

  • Improve proto docs, enforce HTTP issuers, and add insecure override

  • Update autogenerated docs

* MWI: Add `oidc` subtype for Kubernetes joining

This adds a new `oidc` subtype for Kubernetes joining, which allows
workloads to join using a Kubernetes service account token (JWT)
as usual, but verifies it using an OIDC flow rather than a static JWKS
keyset. This should better support platforms like EKS where the JWKS
keyset is rotated regularly.

* Validate OIDC subtype properly

* Initialize OIDC validator at startup

* Fix OIDC claims implementation

* Force use of cluster name as audience

* Remove authorized party workaround

* Reintroduce kubernetes claims check

* Remove unused constant

* Update generated operator resources

* Update generated TF docs

* Add validator tests

* Improve proto docs, enforce HTTP issuers, and add insecure override

* Update autogenerated docs
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Aug 7, 2025

Amplify deployment status

Branch Commit Job ID Status Preview Updated (UTC)
timothyb89/v18/kubernetes-jwks-uri HEAD 1 ✅SUCCEED timothyb89-v18-kubernetes-jwks-uri 2025-08-08 00:00:29

@timothyb89 timothyb89 added this pull request to the merge queue Aug 8, 2025
Merged via the queue into branch/v18 with commit c316da8 Aug 8, 2025
46 of 47 checks passed
@timothyb89 timothyb89 deleted the timothyb89/v18/kubernetes-jwks-uri branch August 8, 2025 19:43
timothyb89 added a commit that referenced this pull request Aug 12, 2025
* MWI: Add `oidc` subtype for Kubernetes joining

This adds a new `oidc` subtype for Kubernetes joining, which allows
workloads to join using a Kubernetes service account token (JWT)
as usual, but verifies it using an OIDC flow rather than a static JWKS
keyset. This should better support platforms like EKS where the JWKS
keyset is rotated regularly.

* Validate OIDC subtype properly

* Initialize OIDC validator at startup

* Fix OIDC claims implementation

* Force use of cluster name as audience

* Remove authorized party workaround

* Reintroduce kubernetes claims check

* Remove unused constant

* Update generated operator resources

* Update generated TF docs

* Add validator tests

* Improve proto docs, enforce HTTP issuers, and add insecure override

* Update autogenerated docs
@doggydogworld doggydogworld mentioned this pull request Aug 18, 2025
github-merge-queue bot pushed a commit that referenced this pull request Aug 22, 2025
* [v18] Add new `oidc` subtype for Kubernetes joining (#57538) (#57683)

* MWI: Add `oidc` subtype for Kubernetes joining

This adds a new `oidc` subtype for Kubernetes joining, which allows
workloads to join using a Kubernetes service account token (JWT)
as usual, but verifies it using an OIDC flow rather than a static JWKS
keyset. This should better support platforms like EKS where the JWKS
keyset is rotated regularly.

* Validate OIDC subtype properly

* Initialize OIDC validator at startup

* Fix OIDC claims implementation

* Force use of cluster name as audience

* Remove authorized party workaround

* Reintroduce kubernetes claims check

* Remove unused constant

* Update generated operator resources

* Update generated TF docs

* Add validator tests

* Improve proto docs, enforce HTTP issuers, and add insecure override

* Update autogenerated docs

* Partially backport OIDC changes to fix build, include #57789

This partially backports various dependencies of the original change.
Note that this is not a clean backport, and minor code and
organizational changes were made to facilitate this backport,
including copying some OIDC code directly into the token validator.

Additionally, caching support from #57789 was integrated directly. It
inherently depends on the same OIDC code that required modification,
so it has been pulled in directly.

* Remove caching support from the backport

I've abandoned the caching approach in #57789, so this PR will proceed
without caching, as in branch/v18.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants