v0.6.9
Federation signal & cross-region reachability
Two fixes found while analyzing a healthy federated cluster's PeerUnreachable condition. Both are signal-quality / reachability improvements — neither was an availability issue.
Bug fix — PeerUnreachable no longer cries wolf
The condition flagged dead roleless identities — node IDs Garage still remembers but that hold no layout role (e.g. a gateway whose metadata PVC was recreated, leaving its old identity in the peer list). For those the "ConnectClusterNodes will recover it" remediation is impossible (the node is gone), so the alarm was permanently noisy and buried the genuinely-actionable case. PeerUnreachable now flags only peers that hold a current-layout role or are draining — so a real missing member (roled cross-region gateway, or a stuck drain) still trips it, while discarded identities are ignored.
Hardening — per-pod gateway rpc_public_addr for cross-region reachability
A multi-pod gateway tier with a single gateway.rpcPublicAddr made every pod advertise the same hostname, so remote regions could reach only one of them (the rest showed "never seen"). The gateway tier now substitutes an {ordinal} placeholder per pod (symmetric with remoteClusters[].gatewayRpcEndpointTemplate); an address without the placeholder is used verbatim. A webhook warning fires when a unified multi-pod gateway tier sets a shared rpc_public_addr with no {ordinal}.
Upgrade notes
- Operator-only upgrade — no Garage pod restart. The
PeerUnreachablecleanup takes effect immediately. - The
{ordinal}gateway support ships dormant: it changes nothing untilspec.gateway.rpcPublicAddruses the placeholder (which, on an existing tier, triggers a gateway config update + rolling restart). Adopt it when you want per-pod cross-region gateway peering. - No API/CRD changes.