-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: Utilize sysext-kitchen for our systemd extensions #684
Comments
I'm using two "modes" to build the sysexts in https://github.com/travier/fedora-sysexts:
But overall, this is a great initiative. Some questions:
|
It can be feed with root file systems and use them as a "base". Right now, I'm fetching a container image from ours (per example, bazzite) and extract that very root filesystem. After that, it mounts an overlayfs and installs the requested packages/files, and later on takes that overlay upper layer plus other necessary files like Then, in an additional step, mkosi takes that output and feeds into both a sysext and confext "step". In these final touches are made, like preparing extension-release.NAME files, etc, and the final phase it uses mkfs.erofs to create the final raw file. TL;DR: Basically it uses overlayfs to do diffing of the base/sysext files plus some other files.
Right now, erofs raw image files, though an additional step can be added to extract these into directories or tars if wished.
Ideally with containers/bootc#7 or rpm-software-management/dnf5#1731, but in early stages as of right now, Im thinking of sysupdate with some tweaks like using the ostree lock file with a systemd.path unit to sync both updates |
Also forgot to mention, mkosi allows for OCI images as output, so in theory should be easy to plug-in with a container based ecosystem |
I propose adding https://github.com/Zeglius/sysext-kitchen as an organization repo, and use such as the core for building and shipping our Systemd extensions.
Currently it is not production-ready, and needs further development (at the time of writing, I'm working in a refactor that allows us to build multiple extensions in one go, see
multi-image
branch), but that's the main reason why I want to submit this to the org, as it would help to reduce the workload off my shoulders.And yeah, I noticed there is https://github.com/ublue-os/sysext, based in flatcar, and if I were to list the pros of using sysext-kitchen over flatcar, these would be:
Sysext-kitchen is 99% powered by mkosi, which is a project under the direct umbrella of Systemd org, and thus is more tightly coupled with Systemd extensions development on the long run.
Mkosi has a more consistent and restrictive yet flexible systemd extension building configuration system compared to flatcar, utilizing a well structured layout of conf files and drop-ins, compared to flatcar, that is composed mostly of scripts with a less consistent/restrictive layout.
Mkosi has a really consistent and concise image building system, see Execution Flow, which would allow to avoid future complexity and inconsistency, as flatcar seems way too less restrictive.
Mkosi is not limited to systemd extensions, it can as well deal with signing sysext using MOK(?).
I'm not gonna delve further in this point, I feel there is more experienced that should take deeper look into this, It would be interesting to use this system to reinforce security in our sysexts.
There is as well fedora-sysext, but suffers of the same issues than flatcar.
The text was updated successfully, but these errors were encountered: