Skip to content

feat(chart): further credential providers for the egress gateway - #248

Merged
teemow merged 4 commits into
giantswarmfrom
feat/egress-credential-providers-carry
Oct 10, 2026
Merged

teemow merged 4 commits into
giantswarmfrom
feat/egress-credential-providers-carry

Conversation

@teemow

@teemow teemow commented Oct 10, 2026

Copy link
Copy Markdown
Member

Problem

The egress gateway resolves ate-secret:// URIs through a list of credential providers keyed by URI authority, but the chart renders only the bundled k8s.io one. kagent needs further providers, such as one that answers with the credential of the turn's caller, so a credential is injected at egress and never enters the actor.

Change

QuentinBisson's #104, carried onto the line after its re-pin onto v0.4.0-alpha1, with his authorship kept on all three commits (cherry-pick -x). #104 conflicted with its base, so it couldn't be rebased at merge.

  • credentialProvider.additionalProviders adds providers on both egress listeners, rendered by the helper substrate.egressCredentialProviders next to the bundled k8s.io one.
  • uriAuthority must be a lowercase DNS name, and host must be <service>.<namespace>.svc:<port>, the name the provider's servicedns.podcert.ate.dev serving certificate carries. The gateway presents its pod identity, which the provider must require.
  • The bundled provider can't be replaced, and an authority can't appear twice. The default render is unchanged.
  • The only conflicts were the README values table and the FORK.md ledger, where the line's rows and this one both stay.

Replaces #104.

Testing

helm unittest charts/substrate passes (90 tests, including atenet_egress_credential_providers_test.yaml). helm template renders the bundled provider alone by default, and k8s.io plus kagent.dev on both listeners with one additional provider set.

Written by an agent.

credentialProvider.additionalProviders adds providers to the egress
gateway's credentialProviders list beside the bundled kubernetes.io one,
on both the HTTPS and the HTTP listener. The gateway dials each with its
pod identity and verifies a servicedns.podcert.ate.dev serving
certificate. An entry needs uriAuthority and host, cannot replace
kubernetes.io and cannot name an authority twice. The default render is
unchanged.

(cherry picked from commit dbdb520)
uriAuthority must be a lowercase DNS name and host must be
<service>.<namespace>.svc:<port>, the name a servicedns serving
certificate carries, so a value can neither inject YAML into the gateway
config nor name a provider the gateway can never match or verify. The
values and README say which client identity the provider must require.

(cherry picked from commit 9b4f838)
@teemow
teemow requested a review from a team as a code owner October 10, 2026 06:11
@teemow
teemow merged commit 3022e8e into giantswarm Oct 10, 2026
17 checks passed
@teemow
teemow deleted the feat/egress-credential-providers-carry branch October 10, 2026 06:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants