Skip to content

atenet-router no longer exposes its plaintext xDS server on the pod IP - #2443

Merged
Bowei Du (bowei) merged 1 commit into
agent-substrate:mainfrom
destijl:xds-loopback
Oct 10, 2026
Merged

Bowei Du (bowei) merged 1 commit into
agent-substrate:mainfrom
destijl:xds-loopback

Conversation

@destijl

Copy link
Copy Markdown
Collaborator

Binds the atenet-router's xDS server (ADS/CDS/LDS/RDS/SDS on --port-xds) to 127.0.0.1 instead of all interfaces. It is plaintext and unauthenticated, so any pod that could reach the router pod IP could stream the dataplane's listeners, routes, clusters and secret paths. Envoy in the same pod already dials 127.0.0.1:18000, so nothing changes for it. Also drops the xds containerPort from the Deployment.

Fixes #2276

  • Tests: xds_listen_test.go checks the bound address is loopback (including a real listen), and that the shipped manifest's Envoy bootstrap dials loopback on --port-xds with no container declaring that port. Both tests fail against the old code.
  • Docs: n/a

The router's xDS server (ADS/CDS/LDS/RDS/SDS on --port-xds) is plaintext
and unauthenticated, but listened on all interfaces, so any pod that could
reach the atenet-router pod IP could stream the dataplane's listeners,
routes, clusters and secret paths. Envoy in the same pod already dials it at
127.0.0.1, so bind it there and stop declaring the port on the container.

Tests check the bound address is loopback and that the shipped manifest's
Envoy bootstrap dials a loopback IP on --port-xds, with no container
declaring that port.

Fixes agent-substrate#2276
@bowei
Bowei Du (bowei) added this pull request to the merge queue Oct 10, 2026
Merged via the queue into agent-substrate:main with commit fd7a9cd Oct 10, 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 dynamic xDS gRPC control plane runs plaintext on 0.0.0.0:18000

2 participants