Skip to content

Router status private - #2573

Merged
Lior Lieberman (LiorLieberman) merged 3 commits into
agent-substrate:mainfrom
LiorLieberman:router-status-private
Oct 13, 2026
Merged

Lior Lieberman (LiorLieberman) merged 3 commits into
agent-substrate:mainfrom
LiorLieberman:router-status-private

Conversation

@LiorLieberman

@LiorLieberman Lior Lieberman (LiorLieberman) commented Oct 13, 2026 •

Copy link
Copy Markdown
Collaborator

This picks up #2297 from aiqubits, rebased on main, with the e2e failure fixed.

The router's unauthenticated /statusz dashboard shows recent cross-tenant requests, worker destinations, and process configuration to any pod that can reach it. This binds it to 127.0.0.1 by default through a new --status-address flag and removes its port from the router Service. Admins can still get to it with kubectl -n ate-system port-forward deployment/atenet-router 4040:4040.

On top of the original change, the e2e parking suite now port-forwards to the status port on a router pod rather than the Service, since the Service no longer publishes it.

Breaking change

GKE HealthCheckPolicy configs using port 4040 and /statusz should move to port 9091 and /readyz. The router Deployment no longer declares the status container port either.

Fixes #2275

  • Tests pass
  • Appropriate changes to documentation are included in the PR

aiqubits and others added 2 commits October 13, 2026 10:14
Bind the unauthenticated status dashboard to loopback and remove its port
from the router Service to prevent other pods from reading recent requests
and process configuration.

Retain diagnostic access through pod port-forwarding and document health
checks through the existing metrics listener.
The router Service no longer publishes the status port, so the parking
suite's port-forward to the Service failed with "service atenet-router has
no port 4040". Forward to the status container port on a ready router pod
instead, as kubectl port-forward deployment/atenet-router does.

@JeffLuoo Jeff Luo (JeffLuoo) left a comment •

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comments I posted in #2297

In manifests/ate-install/atenet-router.yaml (lines 295–296), the Deployment still declares - name: status / containerPort: 4040. Nothing listens on the pod IP at that port now, so a PodMonitor, NetworkPolicy, or health check using the named port gets a refused connection. Please remove the entry (matching --port-xds noted at lines 290–291 and atenet-egress.yaml), or add a comment that the port is loopback-only.

Comment thread cmd/atenet/internal/router/README.md Resolved
Comment thread cmd/atenet/internal/router/cmd.go Resolved
Comment thread cmd/atenet/internal/router/router.go Resolved
Bind the status listener before any background server starts, so a bad
--status-address fails startup cleanly. Point the health-check docs and
flag help at the health listener (:9091). Drop the status container port,
which nothing on the pod IP serves anymore. Test the status address and
port the manifest actually configures, and share the manifest decoding
between the router's manifest tests.
Merged via the queue into agent-substrate:main with commit 46a602d Oct 13, 2026
14 checks passed
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.

Router /statusz exposes cross-tenant request log and worker pod IPs on ClusterIP Service

3 participants