docs: controller updates — Phase 1 shipped (agentic), Phase 2 next
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TtXesNa2LGbMmE4DNL6SE7
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# Controller updates (agentic) — status
|
||||
|
||||
**Day-0 controller updates work** as of 2026-06-26 (Phase 1).
|
||||
|
||||
## Phase 1 — customer self-update (latest-only) — SHIPPED
|
||||
|
||||
felhom-agent **v0.42.0** + felhom-controller **v0.85.0**.
|
||||
|
||||
The controller's old in-container self-update (`docker compose -f
|
||||
/opt/docker/felhom-controller/docker-compose.yml up -d`) was dead in the LXC architecture — that path
|
||||
does not exist in the guest. Phase 1 replaces it:
|
||||
|
||||
- The in-guest **controller pulls** the target image (its existing registry token, shared docker socket).
|
||||
- The **host agent swaps** it: `POST /controller/swap` rewrites `/etc/felhom-controller-image`, restarts
|
||||
`felhom-controller-bootstrap.service`, verifies the new controller is healthy, and **rolls back** to the
|
||||
previous image if not. The agent is external to the controller container, so it survives the controller
|
||||
being killed mid-swap — which the controller cannot do to itself.
|
||||
- The customer "Frissítés telepítése" button drives it (latest-only); the page polls and reloads.
|
||||
|
||||
Live-validated on demo 9201: agent-primitive swap `0.77 → 0.84`, rollback on a broken image (reverted to
|
||||
`0.84`, guest never left without a controller), and the **real UI button** `0.85.0 → 0.85.1` (in-guest
|
||||
pull → agent swap → "Sikeres"). See `felhom-agent/REPORT.md` + `felhom-controller/REPORT.md`.
|
||||
|
||||
## Phase 2 — operator fleet control — NEXT (not started)
|
||||
|
||||
- Hub **per-customer version floor** (with a default global floor).
|
||||
- Operator **desired-version push** across the fleet (hub-driven, not just the customer's latest-only
|
||||
button).
|
||||
|
||||
## Independent follow-up — golden freshness
|
||||
|
||||
The golden still bakes controller **0.77.0**, so a fresh Day-0 provision starts at 0.77.0 and then needs
|
||||
an update. A **golden rebuild at the current controller** is wanted so new provisions start current
|
||||
(independent of this feature).
|
||||
Reference in New Issue
Block a user