plans: installer I4 hostcheck row brief, split out of I3 (darkwing row 233 G2, sage-1650)

This commit is contained in:
jason.woltje committed 2026-10-20 20:38:37 -05:00
1 parent 9d24ff9b28
commit a0e3d7cfdd
1 file changed
+33
+33
View File
@@ -227,3 +227,36 @@ host prep into the command is #437.
Filbert approves the manifest. The test file, the cli suite and every `scripts/test-*.sh` are green on
Sage's gate, with the mutants killed. Target: in review 10-24, landed 10-25 (sage-1528 line 12).
## I4 hostcheck: the bwrap profile check, pins and boot unit
Sage, 2026-10-21, split out of I3 (darkwing row 233 G2, sage-1650). Owner Darkwing, reviewer Filbert, gate
owner Sage. Darkwing builds it right after I3, and it must land before the ops-01 proof.
### Problem
The host run sheet (I3, line 182 above) lists r6's `hostcheck` among the host items for any host that runs
bwrap, and I3's A1 refuses `profile-drift` unless `/usr/local/lib/mosaic-stack/hostcheck.sh --check` exits 0.
No hostcheck exists on refactor. It's r6 B2 (row 195 DESIGN.md at b7239bb66, :262-303 and :839-860), sized at
150-200 lines of bash and 350-450 of test. That's work separate from the upgrade sequence: the root-side bwrap
stop and a network fetch.
### What ships
r6 B2 as designed:
- `case1-pins.sh` holds the pins: the profile sha256, the apparmor-profiles version and the bubblewrap pin.
- `hostcheck.sh` covers the seven items in three modes:
- `--check` exits 0 or 1.
- `--enforce` stops bwrap: `apparmor_parser -R`, then `root:root 0700` on `/usr/bin/bwrap`. It writes
`/etc/mosaic-stack/DRIFT` and a `hostcheck.log` line, and exits 0.
- `--upstream` compares the current apparmor-profiles deb to the pin.
- `mosaic-hostcheck.service`, a boot oneshot.
- `case1-hostcheck.test.mjs` uses fakes for every host tool and covers r6's seven case groups and seven
mutants.
The I3 run sheet's hostcheck item points at this row. I3's A1 and its fake don't change.
### Gate
Filbert approves the manifest. The test file, the cli suite and every `scripts/test-*.sh` are green on
Sage's gate, with the mutants killed. Target: in review 10-25, landed 10-26, before the ops-01 proof.