Skip to content

feat(helm): further credential providers for the egress gateway - #90

Open
QuentinBisson wants to merge 1 commit into
kagent-dev:mainfrom
QuentinBisson:feat/egress-credential-providers
Open

QuentinBisson wants to merge 1 commit into
kagent-dev:mainfrom
QuentinBisson:feat/egress-credential-providers

Conversation

@QuentinBisson

Copy link
Copy Markdown

Problem

The egress gateway already selects a credential provider by the ate-secret:// URI authority (credentialProviders is a list), but the chart renders the bundled k8s.io provider only. An installation that keeps k8s.io for API keys cannot add a provider of its own beside it, such as one that resolves a caller's credential or exchanges a service account key for a short-lived token, without patching the template.

Change

credentialProvider.additionalProviders adds entries (uriAuthority, host as <service>.<namespace>.svc:<port>) to both egress listeners next to k8s.io, dialed with the gateway's pod identity and verified against the servicedns.podcert.ate.dev trust bundle. Entries are validated: a lowercase DNS name, no replacing k8s.io, no repeated authority. The default render is unchanged; a helm unittest suite covers the entries and the refusals.

@QuentinBisson
QuentinBisson marked this pull request as ready for review October 18, 2026 12:56
QuentinBisson added a commit to giantswarm/substrate that referenced this pull request Oct 18, 2026
…he dropped class

FORK.md names kagent-dev#90 as the upstream exit of the routing
value, which covers the chart only. The upgrade step describes the window
in which the bundled provider refuses a Google access-token fetch without
claiming a status code or retry. The parser keeps refusing an unknown
k8s.io subdomain and now refuses google-access-token.k8s.io explicitly.
QuentinBisson added a commit to giantswarm/substrate that referenced this pull request Oct 18, 2026
…he dropped class

FORK.md names kagent-dev#90 as the upstream exit of the routing
value, which covers the chart only. The upgrade step describes the window
in which the bundled provider refuses a Google access-token fetch without
claiming a status code or retry. The parser keeps refusing an unknown
k8s.io subdomain and now refuses google-access-token.k8s.io explicitly.
The egress gateway already selects a credential provider by URI authority,
but the chart rendered the bundled k8s.io provider only. The value
credentialProvider.additionalProviders adds providers beside it on both the
HTTPS and the HTTP listener, each dialed with the gateway's pod identity and
verified against the servicedns.podcert.ate.dev trust bundle. An entry needs
a lowercase DNS name as uriAuthority and <service>.<namespace>.svc:<port> as
host, cannot replace k8s.io and cannot repeat an authority. The default
render is unchanged.

Signed-off-by: QuentinBisson <quentin@giantswarm.io>
@QuentinBisson
QuentinBisson force-pushed the feat/egress-credential-providers branch from 6f1241f to 9a4ce16 Compare October 26, 2026 13:15
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.

1 participant