Repository navigation
Reserve the trace collector's ports - #17
Merged
Merged
Conversation
ipni/infra's alloy-traces collector (ipni/infra#163) listens on the host network of sing-1, lith-1 and chic-1, bound to 127.0.0.1: 4317 and 4318 for OTLP from the services, 9812 for its own HTTP server. With the ephemeral range starting at 1024, an outbound socket could take one of them and the collector would fail to re-bind after a restart. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of ipni/infra#163.
What
Adds
4317-4318and9812tonet.ipv4.ip_local_reserved_portsingroup_vars/ipfs_nodes/main.yml(9812 joins the metrics proxy's9810-9811), with a line in the comment that lists the ports.ipni/infra is adding a trace collector,
alloy-traces(kubernetes/platform/alloy-traces, deployed by Argo CD to sing-1, lith-1 and chic-1). It runs on the host network so the services can send it traces on the box's loopback, and binds to 127.0.0.1 only:With
ip_local_port_rangeat1024 65535, an outbound socket could be handed one of these as its source port, and the collector would fail to re-bind after a restart. Same convention as every other host-network port.Not changed
No firewall rule: everything binds to 127.0.0.1, and nothing outside the box needs to reach it.
Merge order
Merge and apply this before ipni/infra's tracing PR, so the ports are reserved before the collector first binds them. Turning traces on in needle and route-origin's Envoy is a separate, later PR here, since it restarts needle.
Rollout
group_vars/changes, so CI dry-runssite.yml(andplatform.yml) on this PR. After merge, the apply waits for a required reviewer to approve theproductionrun. It only changes a sysctl and restarts nothing.Before merging, it's worth confirming nothing already listens on these ports on any box (expect no output):
Checked
ansible-playbook --syntax-check site.yml.ansible-inventory --host sing-1: the reserved list includes4317-4318and9810-9812, in order.🤖 Generated with Claude Code