You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Move SWIM settings under spec.membership.swim, so Local networks carry none #488
GridNetwork.spec.swim (gossipNodes, probeInterval, suspicionTimeout) and spec.seeds are top-level fields with schema defaults, so the API server writes them into every GridNetwork, including networks that declare membership.mode: Local. A Local GridNetwork therefore carries SWIM settings that do not apply to it.
spec.swim is never read. SwimConfig and its defaults are defined in crates/operator/src/crd/grid_network.rs, and outside that file's tests nothing references it.
spec.seeds is read, but only to join SWIM.
Observed on both lab members on v0.3.0-rc.2: each Local GridNetwork carries the defaulted swim block and seeds: [].
Proposal
Move the SWIM settings under the membership mode that uses them, as a discriminated union:
spec.membership.swim is optional, with no schema default.
A CEL rule allows membership.swim only when mode is Swim, alongside the existing rule that Local requires poll.
Remove top-level spec.swim and spec.seeds.
Wire gossipNodes, probeInterval and suspicionTimeout into the SWIM runtime, or leave them out of membership.swim if nothing should read them.
Breaking for v0.3.0. Document the move in the 0.3.x migration guide: a Swim network moves its seeds and swim values under membership.swim; a Local network drops them.
Acceptance criteria
A Local GridNetwork has no SWIM fields after admission, and the API refuses one that declares membership.swim.
A Swim GridNetwork's membership.swim.seeds are announced to the SWIM runtime as spec.seeds is today.
Any SWIM tuning kept under membership.swim reaches the runtime, with a test.
docs/architecture/crds.md and the migration guide match the new shape.
changed the title [-]GridNetwork spec.swim is defaulted into every network, Local included, and never read[/-][+]GridNetwork spec.swim and spec.seeds are defaulted into every network, Local included[/+]on Oct 29, 2026
changed the title [-]GridNetwork spec.swim and spec.seeds are defaulted into every network, Local included[/-][+]Move SWIM settings under spec.membership.swim, so Local networks carry none[/+]on Oct 29, 2026
Activity
[-]GridNetwork spec.swim is defaulted into every network, Local included, and never read[/-][+]GridNetwork spec.swim and spec.seeds are defaulted into every network, Local included[/+][-]GridNetwork spec.swim and spec.seeds are defaulted into every network, Local included[/-][+]Move SWIM settings under spec.membership.swim, so Local networks carry none[/+]hexfusion commentedon Oct 29, 2026
cc @nerdalert curious your thoughts here
nerdalert commentedon Oct 29, 2026
I'm all for it. It helps demystify the combined site topology. Ty!