topology.yaml (per its own rule that hosts/*/services.yaml are authoritative, recon F20.1): - add status field; chelsty-infra + chelsty-ha -> dormant (site hardware down since ~2026-06-01, revival planned) - add lustro as a full active node (runs node-agent, ships events, F20.11) - drop per-node service lists (vps list contradicted hosts/vps, F20.1; piha/solaria lists were stale too, F20.8/F20.9) — node-level truth only - deployment.mode pull -> push: every deploy script SSH-pushes from saturn (F20.10) Dormant semantics in code: - observer (scripts/observer/observer.py): loads status from topology; _prune_stale_world skips dormant nodes — last-known world state stays frozen, no node_offline/node_stale/node_online events emitted - supervisor (services/control-plane/src/supervisor.py): reloads dormant set each reconcile; dormant hosts' services excluded from desired state (existing pending actions auto-cancel via service_removed_from_desired_state), disk_cleanup skipped, node/HA events from dormant nodes not routed to alerts Tests: services/control-plane/tests/test_dormant_nodes.py (9 cases); full suite 145 passed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| templates | ||
| topology.yaml | ||