Various container runtimes exist on Linux to run software without installing packages on the host system. The nature of containers implies separation of the host system which sometimes is a gap that needs to be bridged again. For systemd services the "portable service" format allows to run a service with its own dependencies bundled in a filesystem image. However, like a container it still does not make any CLI tools directly available to the host system. Therefore, a common solution is to copy a set of static binaries to the system to use the same deployment mechanism for the service and the CLI tools. The new systemd-sysext format allows to extend the host system through an overlay that integrates the bundled software similar as traditional packages do. The binaries and config files can be updated and managed through a single sysext image file. A version matching logic allows to ensure that a particular host system version is used for depending on certain features or for dynamical linking. We demonstrate how systemd-sysext helps to extend an immutable host system such as Flatcar Container Linux, both for third party user software as well as an internal building block for more modularity. |