Repository navigation
fix(demo): onboarding demo step order, a static github-tool outbound route, and phase PREP #235
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
base: main
Are you sure you want to change the base?
Changes from 6 commits
9da433e
9d58b79
dc7d0bf
9657d5f
de906e5
ad7a196
0dc171c
76faef9
9c16b8f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -52,7 +52,23 @@ data: | |
| # This allows the agent to call LLM APIs, telemetry endpoints, and other | ||
| # services without interference from the token exchange proxy. | ||
| # | ||
| # Update the host pattern if the github-tool service name or namespace changes. | ||
| # Two routes, one per tool host: | ||
| # github-tool-mcp the production tool, which the agent's MCP_URL targets. | ||
| # github-tool the onboarding demo's stand-in tool, which this install path | ||
| # deploys instead of github-tool-mcp. Its fields: | ||
| # host the tool's Service name; decides whether token exchange fires. | ||
| # target_audience the tool's SPIFFE ID, the audience its inbound validates | ||
| # (target side) and input.identity.service_id on the agent's | ||
| # outbound leg (agent side). | ||
| # token_scopes agent-team1-github-tool-aud is the audience scope the operator | ||
| # creates when it registers github-tool. The onboarding demo's | ||
| # driver.sh (phase PREP) and the system tests grant it to | ||
| # github-agent's client. | ||
| # The stand-in route is static, so it is fixed to namespace team1 and trust domain | ||
| # localtest.me — the values the demo and the system tests use by default. For | ||
| # another namespace or trust domain, edit target_audience and token_scopes to match. | ||
| # The sidecar reads this at start, so apply it before the agent Deployment, or | ||
| # restart the agent after a change. | ||
| apiVersion: v1 | ||
| kind: ConfigMap | ||
| metadata: | ||
|
|
@@ -63,3 +79,6 @@ data: | |
| - host: "github-tool-mcp" | ||
| target_audience: "github-tool" | ||
| token_scopes: "openid github-tool-aud github-full-access" | ||
| - host: "github-tool" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [Low] A route that only the demo uses is now in a shared manifest, with fixed values. Every consumer of
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not changed in this PR. Rendering at deploy time would make a plain |
||
| target_audience: "spiffe://localtest.me/ns/team1/sa/github-tool" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 4. Static route hardcodes The route that is now static hardcodes Failure scenario: Run the system lane with
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Kept static on purpose. The manifest is already fixed to
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [High] The trust domain The removed
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Kept static, as in the reply to finding 4. The route is fixed to |
||
| token_scopes: "openid agent-team1-github-tool-aud" | ||
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.
3. Route for production
github-tool-mcphost is replaced, not keptThe route for the production
github-tool-mcphost is replaced instead of kept next to the new one. But the agent's ownMCP_URL(http://github-tool-mcp:9090/mcp) and thegithub-agent.mdprerequisite still targetgithub-tool-mcp. The agent's real tool calls now pass through with no token exchange.routes.yamlis a list, so both routes can be kept.Failure scenario: Deploy github-agent with the production github-tool-mcp as
docs/specs/demo/github-agent.mddescribes. The agent's MCP calls to github-tool-mcp match no route, so token-exchange never fires and the call reaches the tool with the agent's inbound token. The tool's jwt-validation rejects it (401), or OPA sees no identity.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.
Fixed in de906e5.
routes.yamlnow lists both routes: the originalgithub-tool-mcproute (matchesMCP_URL) and the stand-ingithub-toolroute. The deployment manifest's invariant comment andgithub-agent.mdsay to keep both.