Skip to content

v0.2.6

Choose a tag to compare

@bradpenney bradpenney released this 17 Sep 01:04
· 10 commits to main since this release
2cce623

v0.2.6 — the fleet is not two hosts

Phase A of ADR-199: substrate stops assuming a second hypervisor exists, and stops assuming only one does. Nothing on a two-host estate changes — the posture line, the count and the unit files render as before — but a one-host site and a three-host site now get the same tooling with the truth told about each.

Fixed

  • bug-173 — peers are a list. deploy-updates paired each hypervisor with the first other host by name, so at three hosts two of them gated their nightly reboot on the same third host and could reboot together. The reboot interlock now checks every other host's lock, VMs and reachability (PEER_HOSTS); posture-check probes every peer's SELinux and units and asks the firewall matrix from every vantage point; a one-host site has an empty list, says so, and still checks the cluster.
  • bug-174 — nothing unasserted is counted. "unreachable, not checked", "not configured, check skipped" and "site config incomplete" were filed as invariants that held. They are now [ -- ] information: printed, never counted, never published. The count on the strip is the number of things actually asserted. check_credentials is not asked at all where no secrets manager is configured.
  • validate no longer demands a peer_target on a site with one hypervisor.

Added

  • tests/fixtures/site-one-host.yml and site-three-hosts.yml — every fleet-shape assumption is a test against one of them. A node's cloud-config is proven byte-identical across one, two and three hosts.
  • updates::peers_of, peer_hosts_value; Report.info; posture::note_no_peers.

Operator notes

  • install.sh v0.2.6 on each host, then substrate deploy-updates --apply (rewrites /etc/homelab/update.env with PEER_HOSTS=; the script honours an old PEER_HOST= until then) and substrate deploy-posture --apply.
  • Expect the same fifteen lines tomorrow morning.

157 tests.