Go to file
Jonathan Lebon 035de97f61
tier-x: new tier for cross-variant collaboration
One of the main goals of the bootable containers initiative in Fedora
is to have all the image-based Fedora variants share a common base onto
which we can maintain CI, develop features, fix bugs, etc...

While I believe in the long-term, we should try to have literal
derivation from a base image, this is not currently desirable for
various reasons. Instead, for now we can share things at the manifest
level by having this repo be a submodule in the every variant's repo.

Currently, tier-0 is much smaller than it needs to be for sharing
purposes. Crucially, it doesn't include NetworkManager. At the same
time, tier-1 is much too large as a shared target. As a first step, we
should try to match variants where they currently are and not force them
to ship many more packages than they currently do.

For this purpose, I'm proposing a new tier: tier-x. The "x" stands for
"cross-variant". This tier is composed of tier-0 + a set of packages
that is currently in common to all the involved variants. The most
notable additions are NetworkManager, openssh, and rpm-ostree.

The intention then is to have every Fedora variant `include` this tier
and have it become the point of collaboration between variants. E.g. new
packages/bug fixes/temporary workarounds relevant to all variants likely
should land in this tier instead of in the downstreams. CI of course
will also be an important discussion point.
2024-09-16 16:52:36 -04:00
tier-0 tier-0: pull in dnf5, not dnf 2024-09-15 23:05:14 -04:00
tier-1 tier-1: drop redundant tier-0 symlinks 2024-09-16 09:18:05 -04:00
tier-x tier-x: new tier for cross-variant collaboration 2024-09-16 16:52:36 -04:00
.gitlab-ci.yml Use gitlab ci until Konflux is onboarded 2024-05-21 20:46:44 +03:00
.mdl_style.rb Update .mdl_style.rb 2023-11-09 16:14:45 +02:00
.mdlrc Update .mdlrc 2023-11-09 16:18:33 +02:00
.pre-commit-config.yaml chore(deps): update pre-commit hook pre-commit/pre-commit-hooks to v4.6.0 2024-06-03 00:05:58 +00:00
COPYING Enable pre-commit 2023-10-30 22:27:12 +02:00
Containerfile Only rawhide 2024-05-28 19:53:56 +03:00
LICENSE Initial split from Fedora CoreOS 2022-12-09 15:32:25 -05:00
README.md README.md: Fix broken links to docs 2024-05-16 11:55:39 -04:00
fedora-bootc-config.json Only rawhide 2024-05-28 19:53:56 +03:00
fedora-bootc.yaml Add fedora-repos-archive 2024-05-28 17:15:53 -04:00
fedora-generic.yaml Add fedora-repos-archive 2024-05-28 17:15:53 -04:00
fedora-tier-0.yaml Add fedora-repos-archive 2024-05-28 17:15:53 -04:00
fedora-tier-x.yaml tier-x: new tier for cross-variant collaboration 2024-09-16 16:52:36 -04:00
fedora.repo fedora.repo: Drop trailing whitespace 2024-04-18 16:33:36 -04:00
renovate.json Update renovate.json 2024-08-21 07:22:28 +00:00

README.md

Fedora bootc base images

Create and maintain base bootable container images from Fedora packages.

Motivation

The original Docker container model of using "layers" to model applications has been extremely successful. This project aims to apply the same technique for bootable host systems - using standard OCI/Docker containers as a transport and delivery format for base operating system updates.

Building

First, the expectation is that most users will want to build layered images on top of the official base images. See the documentation5 for more info.

Building the images in this repo can be done with podman build as with any other application image (note that building with docker is not currently supported). You need to enable some privileges for technical reasons.

podman build --security-opt=label=disable --cap-add=all \
  --device /dev/fuse -t localhost/fedora-bootc .

See the Containerfile for more details.

You are of course also free to fork, customize, and build base images yourself. See this page6 of the documentation for more information.

More information

Documentation: https://docs.fedoraproject.org/en-US/bootc/

Badges

Badge Description Service
Renovate Dependencies Renovate
Pre-commit Static quality gates pre-commit