ci: upgrade the published layer from trixie-testing before its first boot #20
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/.github!20
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "ci/boot-upgraded-layer"
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?
Fixes Keel-Linux/tracker#53, option (a).
What changes
The first time a boot test starts a container, the broker in
bin/unprivileged-lxcruns an upgrade boot before the real one:systemd.mask=for inithooks, keel-host-keys, turnkey-init-fence and systemd-machine-id-commit. Before anything else runs, it checks that these units reportmasked-runtime.bin/upgrade-rootfsinside the container, throughlxc-attach … bash -s.Inside the container,
bin/upgrade-rootfs:apt-get update --error-on=anyandfull-upgrade. Sources are the image's ownkeel.sourceswith trixie-testing on, plus Debian trixie, trixie-updates and trixie-security.policy-rc.dreturns 101 during the upgrade..debfiles of the newpackage_artifactinput and checks that each one is installed at its own version.The versions that differ from the published layer go to the job log and the job summary before the first boot. None of the nine boot tests needs a change.
Security
This addresses the review of the first version:
/proc.keel.sourcesis refused if any stanza names a host other than https://archive.keellinux.org, has noSigned-By, or is trusted or insecure.file:copy ofkeel.sourcesthat keeps itsSigned-By, so the signature and every hash are still checked inside the container.refs/heads/main, and the refusal of fork PRs.persist-credentials: false.For callers
An artifact is visible only inside the run that uploaded it. A repo that wants its own
.debin the boot moves itsappliancejob intopackages.yml, withneeds: buildandpackage_artifact: <name>. The check keeps its name. This is a follow-up in each repo.Evidence
test-appliance.yml@mainwithtooling_ref: ci/boot-upgraded-layerat3206594: run 37129396959 passed. During the upgrade boot it moved confconsole 2.2.3+keel14 -> +keel15, inithooks 2.3.6+keel21 -> +keel23 and keel 0.15.3 -> 0.15.4. Then the real first boot finished and the core boot test passed. The branch has been deleted.package_artifactcannot be exercised through main's workflow. It is covered by the bats cases, which check the copy into the container, the install arguments and the version check.tests / coverageis at 100 percent on every file, and actionlint 1.7.7 reports nothing.