host-install v1.5.0: felhom pool by default + --adopt-pool + uninstall teardown
Every managed guest joins a dedicated `felhom` pool (fleet uniformity; foundation for the later pool-scoped ACL). All pool ops run as root@pam from the installer — NO agent/token/ACL change (PVE_PRIVS untouched). step_provision creates the pool + adds the guest; new --adopt-pool retrofits existing guests non-destructively (ours-checked, membership-only); --uninstall deletes the pool only if empty. Confirmed pveum pool / /pools syntax live; validated dry-run + SAFE live adopt of 9201 on felhom-pve. bash -n + shellcheck clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,34 @@
|
||||
# Felhom scripts — Changelog
|
||||
|
||||
## felhom-host-install.sh v1.5.0 — `felhom` pool by default + `--adopt-pool` retrofit + uninstall teardown (2026-07-01)
|
||||
|
||||
Colleague-safety batch #4 phase a. Every Felhom-managed guest now joins a dedicated **`felhom` pool**
|
||||
for fleet uniformity (and as the environment the later pool-scoped ACL — 3b — will spike against). All
|
||||
pool ops run as `root@pam` from the installer, so there is **NO agent/token/ACL change** and zero
|
||||
permission-model risk (`PVE_PRIVS` untouched; the `FelhomAgent` token stays scoped at `/`).
|
||||
|
||||
- **New `felhom` pool default.** `step_provision` calls `ensure_felhom_pool` (create if absent,
|
||||
idempotent) and, after a successful provision, adds the guest via `pveum pool modify felhom -vms
|
||||
<vmid>` (skip-if-already-member). New helpers `pool_exists` / `pool_members` / `ensure_felhom_pool` /
|
||||
`pool_add_guest`; const `PVE_POOL="felhom"`. PVE 9 syntax + `/pools` JSON shape confirmed live before
|
||||
wiring (`pveum pool add|delete|modify`; `pvesh get /pools` → `[{poolid,comment}]`, `/pools/<id>` →
|
||||
`{members:[{vmid,…}]}`).
|
||||
- **`--adopt-pool` retrofit mode.** Non-destructive: adds an EXISTING Felhom guest to the pool (creating
|
||||
it if needed), resolving the guest from `--vmid` else the recorded `provisioned_vmid`. Reuses the
|
||||
ours-check (`/etc/felhom-bootstrap` mount) — refuses a non-Felhom guest unless `--force`. Touches ONLY
|
||||
pool membership: never reconfigures/restarts the guest, never contacts the hub. Idempotent
|
||||
(skip-if-member).
|
||||
- **`--uninstall` pool teardown (step 5b).** After the pveum removal, deletes the `felhom` pool **only
|
||||
if empty** (a destroyed guest is auto-removed from its pool); a pool that still has members is left
|
||||
with a `log_skip` naming them. Not reached on the Spec-1 safe-skip path (other Felhom guests remain).
|
||||
- **Validated on felhom-pve** (dry-run + SAFE live): T-A fresh-install dry-run shows the pool create +
|
||||
membership lines; T-B **live adopt of guest 9201** → `pvesh get /pools/felhom` lists 9201, guest still
|
||||
running, config unchanged (the demo node is now pool-uniform); re-run = no-op; T-B' non-Felhom vmid →
|
||||
refusal; T-C uninstall dry-run → "pool felhom not empty (members: 9201) — leaving it". `bash -n` +
|
||||
`shellcheck` clean (0 new warnings; the 2 pre-existing SC2015 in `step_verify` unchanged).
|
||||
- **NOT changed:** `PVE_PRIVS`, the ACL grants, the agent, the provision-call args. 3b (pool-scoped ACL
|
||||
+ agent restore-into-pool under a scoped token) is the separate spike-gated task.
|
||||
|
||||
## felhom-host-install.sh v1.4.0 — appliance CPU/RAM cap passthrough (`--cores` / `--memory`) (2026-07-01)
|
||||
|
||||
Colleague-safety batch #3 (host-install half; the mechanism is agent v0.52.0). Lets an operator cap the
|
||||
|
||||
Reference in New Issue
Block a user