Skip to content

feat(agentgateway-bootstrap): wire up Bedrock IRSA auth via pod-identity webhook - #304

Merged
Andy Lo-A-Foe (loafoe) merged 1 commit into
mainfrom
feat/agentgateway-bootstrap-bedrock-irsa
Jul 23, 2026
Merged

feat(agentgateway-bootstrap): wire up Bedrock IRSA auth via pod-identity webhook#304
Andy Lo-A-Foe (loafoe) merged 1 commit into
mainfrom
feat/agentgateway-bootstrap-bedrock-irsa

Conversation

@loafoe

Copy link
Copy Markdown
Member

Summary

Defaults bedrock.auth.type to irsa and adds bedrock.auth.roleArn. When set,
annotates the dynamically-provisioned dataplane's ServiceAccount with
eks.amazonaws.com/role-arn - the cluster's amazon-eks-pod-identity-webhook then
injects the AWS STS web-identity env vars into the pod automatically, and agentgateway's
Rust dataplane (which signs Bedrock requests) picks these up via the standard AWS SDK
credential chain with zero further wiring. No AssumeRole config needed in
AgentgatewayBackend - ambient/implicit auth is exactly the webhook-injected
credentials.

Same pattern already used by hermes-agent/picoclaw on this cluster. The IAM role
(trust policy + permissions) is provisioned externally; this chart only consumes the
ARN.

Test plan

  • helm template with no roleArn set renders identically to before (no ServiceAccount block)
  • helm template with roleArn set renders the annotation correctly, alongside the existing service block
  • helm template confirms auth.type: secret does NOT render the annotation even if roleArn happens to be set
  • helm lint passes

…ity webhook

Defaults bedrock.auth.type to "irsa" (was "secret") and adds
bedrock.auth.roleArn. When set, gateway-parameters.yaml annotates the
dynamically-provisioned dataplane's ServiceAccount with
eks.amazonaws.com/role-arn - the cluster's amazon-eks-pod-identity-webhook
then injects AWS_ROLE_ARN/AWS_WEB_IDENTITY_TOKEN_FILE into the dataplane
pod automatically, and agentgateway's Rust dataplane (which is what
actually signs Bedrock requests, not the Go controller) picks these up
via the standard AWS SDK credential chain with no further chart-side
wiring - no AssumeRole config needed in AgentgatewayBackend at all, since
implicit/ambient auth is exactly the webhook-injected credentials.

Same pattern already proven working for hermes-agent and picoclaw on this
cluster. The IAM role itself (trust policy + Bedrock permissions) is
provisioned externally - this chart only takes the ARN, never creates it.

roleArn defaults to empty, in which case the ServiceAccount renders
identically to before this change (no annotation) - existing deployments
using auth.type: secret, or a fresh irsa deploy before the IAM role
exists yet, are unaffected.
@loafoe
Andy Lo-A-Foe (loafoe) requested a review from a team as a code owner July 23, 2026 11:40
@loafoe
Andy Lo-A-Foe (loafoe) merged commit ac15b26 into main Jul 23, 2026
5 checks passed
@loafoe
Andy Lo-A-Foe (loafoe) deleted the feat/agentgateway-bootstrap-bedrock-irsa branch July 23, 2026 11:46
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