-
Notifications
You must be signed in to change notification settings - Fork 631
Agent gateway integration #11151
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Agent gateway integration #11151
Conversation
2cc3b17 to
529e77d
Compare
Signed-off-by: npolshakova <[email protected]>
529e77d to
b4acbe3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds integration between kgateway and AgentGateway by introducing a new syncer to translate Gateway API resources into AgentGateway xDS configurations for both A2A and MCP traffic. The changes include new e2e tests, updates to Helm chart values, and modifications in internal controller and proxy syncer components to support the integration.
Reviewed Changes
Copilot reviewed 24 out of 27 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| test/kubernetes/e2e/features/agentgateway/* | Added new end-to-end tests for AgentGateway integration |
| internal/kgateway/extensions2/settings/settings.go | Added a new settings field to enable AgentGateway integration |
| internal/kgateway/proxy_syncer/proxy_syncer.go | Minor comment fix in the proxy syncer logic |
| internal/kgateway/agentgatewaysyncer/* | New syncer and supporting proto files for AgentGateway functionality |
| internal/kgateway/krtcollections/setup.go | Updated type registration to include rest config for new collections |
Files not reviewed (3)
- Makefile: Language not supported
- hack/kind/setup-kind.sh: Language not supported
- test/kubernetes/e2e/features/agentgateway/a2a-example/Dockerfile: Language not supported
Signed-off-by: npolshakova <[email protected]>
Signed-off-by: npolshakova <[email protected]> github action Signed-off-by: npolshakova <[email protected]>
3b85fc7 to
2ecefd8
Compare
Signed-off-by: npolshakova <[email protected]>
Signed-off-by: npolshakova <[email protected]>
1ea2711 to
88f3669
Compare
Signed-off-by: npolshakova <[email protected]>
bf272d2 to
3966be8
Compare
EItanya
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gonna leave the syncer changes to other who are more familiar with the code
Signed-off-by: npolshakova <[email protected]>
Signed-off-by: npolshakova <[email protected]> separate agentgateway proto gen Signed-off-by: npolshakova <[email protected]>
b075b87 to
cab759b
Compare
Signed-off-by: npolshakova <[email protected]>
Signed-off-by: npolshakova <[email protected]>
2876361 to
0929383
Compare
Signed-off-by: npolshakova <[email protected]>
Signed-off-by: npolshakova <[email protected]>
3ba437a to
238bdb4
Compare
Signed-off-by: npolshakova <[email protected]>
1638598 to
7a0af56
Compare
jenshu
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
approved with non-blocking comments
Description
This feature adds integration between kgateway and AgentGateway, enabling users to configure AgentGateway as a data plane for agent-to-agent (A2A) and Model Context Protocol (MCP) traffic. The new syncer translates Gateway API resources into AgentGateway xDS-compatible Listener and Target configurations.
API changes
NONE
Code changes
CI changes
Docs changes
Context
Enhancement Proposal: #11152
Interesting decisions
The self managed gateway status can't be updated by the proxy syncer (since the deployment is self managed). The old behavior would block the syncer from sending updates because the status was in an invalid state. Open to suggestions what the behavior should be (skip statuses for self-managed gateways, use an "unknown" status, partially report, etc.)
Testing steps
You can manually verify the integration with the following steps:
Setup cluster and package helm chart:
Install:
For the mcp tool discovery, you can also use this mcp setup with AgentGateway:
Port-forward the UI dashboard:
Port-forward the Gateway listener (9090 for a2a, 8080 for mcp):
Then navigate to the playground in the UI:

If you port-forward 8080, you should also be able to use the MCP server in the playground:

You can also test the deployer behavior for agentgateway (where kgateway creates the proxy deployment based on the k8s gateway api resource):
Then apply:
You can also scope the gateway to either allow from any namespace or only the namespace the Gateway is defined via
allowedRoutes.Notes for reviewers
Checklist:
Change Type
Changelog