Roadmap to Fedora Bootable Containers
Important initial notes
- This is a proposed roadmap that is subject to change and refinement
- While not complete nor matching the current Fedora bootable container images, you can already use the Fedora Atomic Desktops using container images, with caveats. See: https://gitlab.com/fedora/ostree/ci-test#experimental-ostree-native-container-images-for-rpm-ostree-based-fedora-desktop-variants
With that out of the way, let's look at the work ahead.
Roadmap
Building and publishing Bootable Container images
- Tracked in #2
- Container images built on Fedora's infra using support in Pungi:
- Manifests are in https://pagure.io/workstation-ostree-config, shared with the classic ostree ones
- Work in progress to publish those images in the official Fedora registry:
Note that https://gitlab.com/fedora/ostree/ci-test is synced from the same repo but the images are not built on Fedora's infra. Those images are the ones used by https://universal-blue.org/ and derivatives (Bluefin, Bazzite, etc.) right now
Switching to Bootable Container images by default
- Needs work and testing to migrate existing users to the new format
- Need solutions or alternatives for users currently using local package layering and overrides
- Needs work on the installer part:
- Initial work for the lorax one: https://github.com/ublue-os/isogenerator
DNF5 integration
- Adding dnf5 to the images should be easy
- https://fedoraproject.org/wiki/Changes/DNFAndBootcInImageModeFedora
- Better error handling / messages in dnf (on running systems) would make this less confusing to our users
- A lot of testing needed, especially regarding alternative kernels, custom kernel modules, /var and /opt handling, etc.
bootc integration
- rpm-ostree likely to stay in the image for a while until this is resolved
- Integration of bootc will require integration in GNOME Software & Plasma Discover
- Bootc is currently root only: no unprivileged interface, no DBus interface
- Related discussions:
Local package layering
- Figure out a solution for users that want to locally layer packages
- Similar to what's needed for Fedora CoreOS
- Tracked in fedora/bootc/tracker#4
bootupd integration
- Tracked in: #1
- Moving to static GRUB config:
Switching to composefs
- Tracked in #35
- Use composefs by default and update all current systems to it
- Will not use signatures at the beginning
- See: fedora/bootc/tracker#11 (comment 1929159362)
- See: https://github.com/coreos/fedora-coreos-tracker/issues/1718
Rebasing on Fedora Bootc manifests
- Might mean using a Git submodule or merging all manifests into a single repo
- To be investigated
- Can we keep a single repo for the classic ostree and the container images manifests?
- Related to:
Rebasing on Fedora Bootc container images
- Needs better support for container builds in the Fedora Infrastructure (via gitlab.com/fedora?)
- Support for container deltas / zstd:chunked:
- Investigate if rebasing to a container based workflow for those image would bring benefits
- Investigate the new Experimental Base Images Builder:
Anaconda
-
We are already using Anaconda
Documentation updates
- We will likely have to update the documentation to link to the Fedora Bootable Containers docs.
- We could also take this opportunity to work on unifying the docs for Atomic Desktops: #10
References
See:
- https://fedoramagazine.org/get-involved-with-fedora-bootable-containers/
- https://fedoraproject.org/wiki/Initiatives/Fedora_bootc
For Fedora CoreOS, see: https://github.com/coreos/fedora-coreos-tracker/issues/1726
Edited by Timothée Ravier