Files
felhom.eu/REPORT.md
T
admin a2500532c3 R-50: A4 fresh-provision validated (agent auto-net1 live); spike caveat closed
- A4: scratch guest provisioned from golden on the island-configured drill came
  up with net1 automatically (zero manual edits) — the v0.96.0 provisioning path
  proven live. Spike method caveat CLOSED.
- REPORT: Phase A done + vouched 0.96.0; B0/B1/A4 done; B2/B3 await operator go.
2026-07-25 14:36:56 +02:00

3.1 KiB

REPORT — R-50 island control plane: Phase A artifacts (felhom.eu) (2026-07-25)

Phase A of the R-50 implementation (spike GO). Fresh appliance installs are now born on the island (F1-immune). Pairs with agent v0.96.0 (which attaches the guest's island net1). byo unchanged.

Changed here

  • scripts/felhom-host-install.shv1.19.0: ensure_island_bridge() (portless vmbr9, 169.254.253.1/30, idempotent); appliance default binds local_api on the island (169.254.253.1:8443), writes island_bridge/island_guest_addr, and pins lan_resolver.host_ip to the LAN IP explicitly (Finding-1 — else moving the bind silently kills LAN DNS). --no-island opt-out; explicit --bridge-ip overrides. Gate hostinstall_gates.py ALL PASS.
  • hub/internal/web/configs.gohostInstallVersion 1.16.0 → 1.19.0 (F-1 sync; clears prior drift). Hub CHANGELOG → v0.73.2. Web render test green.

Determination (A0/A3) — recorded

  • A0 = config-only for the bootstrap endpoint (main.go sets it from listen_addr); the version bump lives in the agent's net1-attach. The operator chose agent-bringup (v0.96.0) over golden-bake to eliminate the golden-coupling failure mode.
  • A3 = healer verify-only — eth0-only (parseMode dev-scoped); red-proof test in the agent.
  • net1 deviation from the spike inventory (it placed net1 in host-install, but host-install doesn't create the guest — the agent does) resolved by attaching net1 in the agent at bring-up.

Coupling / deploy order (important)

An island host-install REQUIRES agent ≥ 0.96.0. Vouch 0.96.0 before island installs go live, else a fresh install writes island config an older agent ignores → guest has no island NIC → broken control plane. This is the one hard ordering constraint.

Status of the phases

  • Phase A (artifacts): DONE. Agent v0.96.0 committed (dfd5d73), published (sha af938601…) and VOUCHED in the hub Day-0 manifest (agent 0.96.0; golden 0.161.0 / min_agent 0.93.0 / wrapper preserved). host-install v1.19.0 + hub sync committed (485321f). Golden unchanged (net1 comes from the agent). Live site serves 1.19.0.
  • Phase B (migration): B0+B1+A4 DONE; B2/B3 pending operator go.
    • B0 RUNBOOK-island-migration.md written (4650493).
    • B1 drill migration ran verbatim → island /storage HTTP 200, LAN DNS held on the LAN IP (Finding-1 pin), apps healthy, hub reports 0.96.0. No rollback.
    • A4 the agent auto-attached net1 on the island at provision (scratch guest from golden, zero manual edits) → the provisioning path is proven live (spike method caveat CLOSED). F1 replay + cold reboot were proven on the same drill (spike P6/P7). (A literal ISO wipe-reinstall was not run — the surgical provision proves the R-50-specific behavior; the ISO/first-boot/day-0 glue is unchanged.)
    • B2 demo-hp / B3 demo-felhom: await your go/no-go (each its own STOP). The runbook + rollback table are ready; apps stay up throughout.
  • Phase C (Peti cluster): parked — its own supervised runbook + a new ROADMAP row (to add at Phase 5).