Repository navigation
feat: the kernel, initrd, firmware, bootloaders and installer move to plans/keel-boot - #47
Merged
Merged
Conversation
… plans/keel-boot Decision 0052: a separate boot layer per appliance, used only by the ISO, carries what a machine boots and installs with, so the layers a container template is assembled from never do. plans/turnkey/base no longer includes plans/boot and no longer lists grub-pc, tkl-installer, efivar, eject, jitterentropy-rngd, qemu-guest-agent and acpi-support-base; it lists systemd and systemd-sysv, which plans/boot used to bring. plans/keel-boot has them, with GRUB's overlay (overlays/keel-boot, was overlays/turnkey.d/grub) and conf (conf/keel-boot). grub-debug is split: its journald half, which a container needs as well, is conf/turnkey.d/journald-no-wall. tests/plans-boot.bats resolves the plans with cpp as fab-plan-resolve does and fails when turnkey/base names a package keel assemble refuses in a template.
This was referenced Oct 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Decision 0052, point 1: a separate boot layer per appliance, used only by the ISO. The kernel, initrd, firmware, bootloaders and installer leave the shared layers, so the container template never carries them.
Change
plans/turnkey/baseno longer includesplans/bootand no longer lists grub-pc, tkl-installer, efivar, eject, jitterentropy-rngd, qemu-guest-agent or acpi-support-base. It now listssystemdandsystemd-sysvitself, becauseplans/bootused to bring them.plans/keel-bootholds all of them (#include <boot>plus the list above). Keel-Linux/buildtasksproducts/bootbuilds it withbt-layer --boot APP.overlays/keel-bootandconf/keel-boot.grub-debugis split in two: its journald half (ForwardToWall=no) is something a container needs as well, so it moves toconf/turnkey.d/journald-no-wall.mk/turnkey-desktop.mknow points at the moved overlay.tests/plans-boot.batsresolves the plans with cpp the way fab-plan-resolve does. It fails ifturnkey/basenames a package thatkeel assemblerefuses in a template. CI now installscpp.Why each package is VM-only
These stay in the container: lvm2, parted and fdisk (webmin-lvm and webmin-fdisk depend on them), kmod, udev, file, zstd and man-db.
Measured
The published core 19.0-9 and web 19.0-4 layers were assembled locally with
keel assemble, and the same set of packages was then purged with dpkg.dpkg --auditcame back clean andapt-get checkpassed.Cheap wins I checked, none of which needs a change: the apt lists and caches are already empty, because fab cleans them and bt-layer excludes
var/cache/apt./var/logholds 13 KB. Locale and man path-excludes are already in place through localepurge, which keepsman[0-9]. There are no doc path-excludes and none were added (/usr/share/docis 33 MB).Merge order
bt-layer --boot).keel-releasedoes not rebuild a layer whose tarball still matches its manifest, so run it with--rebuild.If keel is merged before the layers are rebuilt, it refuses the old layers.