Cross-site warm standby for k3s control plane (operational resilience, not HA) #99
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/infrastructure#99
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Title: Cross-site warm standby for k3s control plane (operational resilience, not HA)
Context
Today the cluster has one always-on failure domain, the home-1 server, which holds the control plane, the datastore, and the orchestrator. The failure mode being designed against is the home-1 site going dark for days with no advance notice. A second home is available as a genuinely independent failure domain with separate power, ISP, and physical location.
Decision
Pursue operational resilience via a cross-site warm standby with manual promotion, explicitly not first-class k3s HA. HA is a failure-domain-count problem, and with a single always-on domain it is unachievable at any spend. A two-domain etcd is also worse for writes than a single node, since losing either member drops below quorum. A public-cloud third domain is off the table by preference, so automated quorum is out, and a manual promote step is the accepted trade for keeping everything inside the homelab.
Topology
Replication and recovery
Why this is acceptable
Running workloads survive a dead control plane because the kubelet keeps existing pods alive without the apiserver. A home-1 outage therefore degrades the cluster to cannot deploy, reschedule, or scale, rather than everything stops, and the manual promote restores write capability when it is actually needed. The result doubles as a demonstrable DR story with concrete RTO and RPO numbers.
Next action
Purchase the home-2 mini-PC. Everything downstream targets a host that does not exist yet, so the build is blocked on the box being bought and joined to Tailscale.
Follow-ups, file once the box exists
Iceboxed in the 2026-05-29 backlog burn-down: cross-site warm standby, far-future resilience play. Reopen anytime if it becomes real.