Repository navigation
feat: render external local-root groups separately - #69
Merged
Merged
Conversation
Add `topology.extra_local_root_groups` so an instance can peer with nodes outside its fleet (for example another operator's relay) in its own non-advertised local-root group, after the fleet group. Each group's valency equals its access-point count. The fleet group's rendered bytes are unchanged, and extra groups alone do not create a `nodes-<salt>` peer Service. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
"Extra" did not say what the groups are for; they hold peers outside the fleet, such as another operator's relay. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
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.
Why
Reciprocal peering with another operator's relay (Blink Labs) needs its own hot, non-advertised local-root group. That way the cross-provider edge can be added or removed without touching the internal b01–b04 fleet mesh. Today the module renders every
topology.local_rootsentry into one group withvalency = count, so an external endpoint would merge into the fleet group.Change
topology.external_local_root_groups = [{ access_points = [{ address, port }] }];advertise: false,trustable: false,valency = length(access_points);nodes-<salt>peer Service, which stays scoped tolocal_roots;Compatibility
For an instance with only
local_roots, and for the baseline topology, the renderedtopology.jsonis byte-identical to0245c40. I checked this withterraform consoleon the b01 mesh input. Bumping the pin without using the new input should therefore produce no ConfigMap diff.Verification
terraform fmt -checkon the changed files (the unformattedcrds/,feature/, andrelay/files are unchanged from main)terraform -chdir=bootstrap validateterraform -chdir=bootstrap test: 5 passed, including two new runs covering the separate group and an external-group-only instance🤖 Generated with Claude Code