fix: inspect, confirm and monit on a Keel Core (keel#60, keel#61) #64
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Keel-Linux/keel!64
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/inspect-on-a-keel-core"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The keel bugs in the maintainer's screenshots of the Core image (2026-10-02), plus keel#60 and item 1 of keel#61. keel 0.15.1.
Root causes
appliance: not inferred, header "unknown appliance"probe_applianceaccepted only theturnkey-prefix; a Keel image writeskeel-core-19.0-trixie-amd64keel-read liketurnkey-inspectexits 13 on a fresh Coreinstance.fqdnwas inREQUIRED, whose rule is "a hook prompts when unset"; no hook asks for it, apply skips/etc/hostswithout it, and no appliance has one out of the boxREQUIRED(still reported as not inferred)hub.api_key: skipwith a Keel Cloud key savedprobe_hublooked only for a TurnKey Hub registration/etc/keel/secrets/cloud_api_keygives{file: <secrets-dir>/cloud_api_key}, never readeth1the container does not haveallow-hotplug eth1placeholder stanza, and inspect reported every stanza/sys/class/netis left out with a report line;autoones and offline roots unchangedupdates_at_first_boot: forceafter Skip/var/lib/inithooks/sec-updates, which inithooks' 95secupdates now writes (Keel-Linux/inithooks#33, keel16)/var/lib/keel/network/last.json(0600); already confirmed exits 0 and says so, reverted is called revertedmonit summaryalways failskeel.confsetsset httpd unixsocket /run/monit.sock uid root gid root permission 0600+allow localhost: root-only socket, no network listener (decision 0021). monit 5.34.3 supports it; checked withmonit -t -v/etc/keel/monitor.jsononline_api_credentials.yamlread as registeredkeel#61 item 2 (monit's first cycle) is fixed in keel-core (a monit drop-in ordered after Core's units); its PR links here.
Tests
Tests written first, then the code. 2308 pass, 8 skip; coverage 99% (same 12 lines missed as on main, all new code covered). The real-monit tests ran against monit 5.34.3 via
KEEL_MONIT. New fixturetests/fixtures/inspect/keelcoreis a fresh Core after first boot.Real test
LXC container from
debian-13-keel-core_19.0-3+step7b-20261001_amd64.tar.zston the test VM, with keel 0.15.1 and the inithooks, confconsole and keel-core packages of their PRs (built before the renumbering to keel16 and keel11) installed before the first boot. The review fixes (record last, forget on arm) are covered by unit tests:inspect:
core 19.0 (trixie, amd64), exit 0, no eth1,updates_at_first_boot: skip,hub.api_key: {file: ...cloud_api_key},monitor.notifyread back;emitted spec (with the overlay states inspect cannot infer added) re-applied: 0 changes;
overlay confirmed from
lxc-attach, then from the console: "already confirmed ... it stays", exit 0;monit summaryworks;/run/monit.sockissrw------- root root; no TCP listener;container destroyed afterwards.
CI green
Review
Closes #60. Refs #61.