Skip to content

feat(cluster): add rolling-safe internode relay endpoints#512

Merged
wolfy-j merged 4 commits into
mainfrom
feat/harness-network-routing
Jul 22, 2026
Merged

feat(cluster): add rolling-safe internode relay endpoints#512
wolfy-j merged 4 commits into
mainfrom
feat/harness-network-routing

Conversation

@skhaz

@skhaz skhaz commented Jul 20, 2026

Copy link
Copy Markdown
Member

Summary

  • Advertise an optional internode endpoint for nodes reached through a relay, proxy, or different externally visible port.
  • Preserve the existing membership-IP plus internode_port metadata so older peers continue to connect during a rolling upgrade.
  • Let upgraded peers select the advertised endpoint when both fields are present and valid; the legacy endpoint is used only when both new fields are absent.
  • Fail closed on incomplete or malformed advertised metadata instead of silently dialing a different endpoint.
  • Accept IP literals and DNS hostnames, with ports represented and validated separately.

The metadata keys are centralized as the wire contract shared by the boot publisher and internode consumer.

Validation

  • go test -race ./cluster/internode ./boot/components/system
  • make lint
  • Tests cover legacy endpoint selection, advertised IP/DNS endpoint selection, incomplete metadata, malformed hosts, and malformed ports.

Advertise additive relay metadata for upgraded peers while retaining the v1 endpoint used by existing nodes during a rolling upgrade.
@skhaz
skhaz requested a review from wolfy-j July 20, 2026 22:01
@wolfy-j
wolfy-j merged commit 590b28c into main Jul 22, 2026
4 checks passed
@wolfy-j
wolfy-j deleted the feat/harness-network-routing branch July 22, 2026 01:16
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.

2 participants