fix(v0.92.0): the guestnet probes need their own sudoers grant (found live)
The first sweep on felhom-pve logged 'dhclient liveness probe failed: sudo: a password is required' and reported state=unknown — the watchdog fail-safed correctly, but it was blind. TASK-D assumed no sudoers change; the existing grant only covered lanresolver's address read. FELHOM_GUESTNET adds four FIXED vectors (route, interfaces, pgrep, and the incident's heal invocation). Every argument after the numeric vmid is a literal, so nothing the guest or the hub says can widen the grant. Plus four guestnet-* capability rows, non-critical, so a host that has not taken the new sudoers is visibly degraded without paging an operator per box.
This commit is contained in:
@@ -129,6 +129,16 @@ var manifest = []Capability{
|
||||
{"dnsmasq-guest-ip", "guest LAN IP discovery", "/usr/sbin/pct", []string{"exec", "9201", "--", "ip", "-4", "-o", "addr", "show", "dev", "eth0"}, false, ""},
|
||||
{"dnsmasq-guest-domain", "guest domain discovery", "/usr/sbin/pct", []string{"exec", "9201", "--", "docker", "exec", "felhom-controller", "cat", "/opt/docker/felhom-controller/controller.yaml"}, false, ""},
|
||||
|
||||
// ---- Guest-network watchdog (FELHOM_GUESTNET, R-54, v0.92.0) ----
|
||||
// Deliberately NOT Critical: a host that has not yet taken the new sudoers file should show
|
||||
// degraded (visible, diagnosable) without paging an operator for every box on rollout day —
|
||||
// the R-50b lesson that an amber fleet is background noise. The address read is covered by
|
||||
// dnsmasq-guest-ip above and is not duplicated here (one command, one capability row).
|
||||
{"guestnet-route", "guest default-route probe", "/usr/sbin/pct", []string{"exec", "9201", "--", "ip", "route", "show", "default"}, false, ""},
|
||||
{"guestnet-ifaces", "guest interface-mode read", "/usr/sbin/pct", []string{"exec", "9201", "--", "cat", "/etc/network/interfaces"}, false, ""},
|
||||
{"guestnet-dhclient-probe", "guest DHCP-client liveness probe", "/usr/sbin/pct", []string{"exec", "9201", "--", "pgrep", "-x", "dhclient"}, false, ""},
|
||||
{"guestnet-heal", "guest DHCP-client restart (the 2026-07-20 heal)", "/usr/sbin/pct", []string{"exec", "9201", "--", "dhclient", "-pf", "/run/dhclient.eth0.pid", "-lf", "/var/lib/dhcp/dhclient.eth0.leases", "eth0"}, false, ""},
|
||||
|
||||
// ---- Controller-swap / managed auto-update (FELHOM_CONTROLLERSWAP, v0.45.0; Critical: a
|
||||
// silently-broken fleet auto-update is operator-alert-worthy) ----
|
||||
{"controllerswap-read", "controller-swap / managed auto-update", "/usr/sbin/pct", []string{"exec", "9201", "--", "cat", "/etc/felhom-controller-image"}, true, ""},
|
||||
|
||||
Reference in New Issue
Block a user