Repository navigation
egress: add credential injector - #1360
Merged
Eitan Yarmush (EItanya) merged 10 commits intoSep 16, 2026
Merged
Eitan Yarmush (EItanya) merged 10 commits into
Eitan Yarmush (EItanya) merged 10 commits into
Conversation
Yufan Su (yufan-su)
force-pushed
the
egress-cred-injector
branch
8 times, most recently
from
September 9, 2026 00:17
a6aa602 to
649b2d3
Compare
Eitan Yarmush (EItanya)
left a comment
Collaborator
There was a problem hiding this comment.
🤖 AI-assisted transfer of my actor-identity concern from #1335, since this PR is planned to merge first.
Yufan Su (yufan-su)
force-pushed
the
egress-cred-injector
branch
3 times, most recently
from
September 15, 2026 05:14
401b4f5 to
9a7e250
Compare
Yufan Su (yufan-su)
requested review from
Eitan Yarmush (EItanya) and
Taahir Ahmed (ahmedtd)
September 15, 2026 16:28
This was referenced Sep 15, 2026
…can't reach it via pod network
Yufan Su (yufan-su)
force-pushed
the
egress-cred-injector
branch
from
September 15, 2026 18:57
80922b2 to
1ede701
Compare
…in various places
…t uri and interpreted in the provider.
Yufan Su (yufan-su)
force-pushed
the
egress-cred-injector
branch
from
September 16, 2026 21:52
f68af4d to
15a5594
Compare
Yufan Su (yufan-su)
force-pushed
the
egress-cred-injector
branch
2 times, most recently
from
September 16, 2026 22:15
389904c to
24d88cf
Compare
Yufan Su (yufan-su)
force-pushed
the
egress-cred-injector
branch
from
September 16, 2026 22:16
24d88cf to
8b7f975
Compare
Comment on lines
+40
to
+41
| // The SPIFFE ID of the actor on whose behalf the secret is fetched, as | ||
| // verified by the egress gateway. This field always contains a SPIFFE ID. |
Collaborator
There was a problem hiding this comment.
Instead of "this field always contains a SPIFFE ID" maybe just say the format?
Lior Lieberman (LiorLieberman)
approved these changes
Sep 16, 2026
Lior Lieberman (LiorLieberman)
left a comment
Collaborator
There was a problem hiding this comment.
LGTM
Eitan Yarmush (EItanya)
approved these changes
Sep 16, 2026
Eitan Yarmush (EItanya)
merged commit Sep 16, 2026
85ce8ed
into
agent-substrate:main
11 checks passed
1 task done
Keith Mattix II (keithmattix)
pushed a commit
to agentgateway/agentgateway
that referenced
this pull request
Sep 17, 2026
Upgrade to the new codified protobuf contract: agent-substrate/substrate#1360. - [x] As required by the [Code of Conduct](https://github.com/agentgateway/agentgateway/blob/main/CODE_OF_CONDUCT.md#generative-ai-policy), the description, docs, and comments (words meant for humans) are written by a human, not by an LLM. Signed-off-by: Eitan Yarmush <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds egress credential injection: on the sdsmint egress gateway's decrypted MITM leg, when an actor's
EgressPolicyrule matches and carries aninject_static_headerseffect, the gateway resolves the referenced credential from a credential provider and sets it as a request header (e.g.Authorization: Bearer <token>) before re-originating upstream.This implements the
applyEffectsin the egress handler. Injector runs as part of the existing egress ext_proc handler that already fetches/caches/evaluates each actor'sEgressPolicy, so the MITM leg gains injection without a second ext_proc hop.How it works
CredentialProvider.FetchSecretplugin API (pkg/proto/credproviderpb): the gateway calls it with the credential URI and the actor's attested SPIFFE identity; the provider authenticates the gateway (mTLS) and resolves the secret.egress.DialProvider) and injects on matched, allowed requests (egress.applyEffects).Installation
One flag stands up and wires the whole stack:
--experimental-egress-credential-injectiondeploys credprovider and the injector, then re-wires the sdsmint egress gateway to route through the injector. It implies--experimental-use-sdsmintNew install flags
Two flags configure which credential provider the injector targets:
--credential-provider-nameate-secret://prefix; a policy URI of any other class is refusedate-secret://kubernetes.io--credential-provider-addresscredprovider.ate-system.svc:50051