bootc-base-images/docs/index.md

3.5 KiB

Goals

This project's toplevel goal is to maintain default definitions for base bootable container images, locked with Fedora ELN and CentOS Stream 9.

Status

This is an in-development project not intended for production use yet.

Container images

The primary output of this project is container images. The current main development targets are Fedora ELN and CentOS Stream 9.

Distribution locked images

These images are intended to exactly match the content of the underlying distribution.

  • quay.io/centos-bootc/fedora-bootc:eln
  • quay.io/centos-bootc/centos-bootc:stream9

Layered images

There are also layered images; for more information on these, see the centos-bootc-layered repository.

Development images

Some components of this project move quickly, and it's often useful to see things as they appear in git main instead of waiting for package releases.

The following images track git main of selected components:

  • quay.io/centos-bootc/fedora-bootc-dev:eln
  • quay.io/centos-bootc/centos-bootc-dev:stream9

For more information, see the dev repository.

Trying it out

See install.md.

Differences from Fedora CoreOS

Fedora CoreOS today is not small; there are multiple reasons for this, but primarily because it was created in a pre-bootable-container time. Not everyone wants e.g. moby-engine.

But going beyond size, the images produced by this project will focus on a container-native flow. We will ship a (container) image that does not include Ignition for example.

Differences from RHEL CoreOS

We sometimes say that RHEL CoreOS has FCOS as an upstream but this is only kind of true; RHEL CoreOS includes a subset of FCOS content, and is lifecycled with OCP.

An explicit goal of this project is to produce bootable container images that can be used as base images for RHEL CoreOS; for more on this, see e.g. https://github.com/openshift/os/issues/799

Differences from RHEL for Edge

It is an explicit goal that CentOS boot also becomes a "base input" to RHEL for Edge.

Understanding "tiers"

There is a "tier-0" image, but it is not yet being automatically built. The "tier-0" contains:

  • kernel
  • systemd
  • bootc
  • selinux-policy-targeted

The tier-1 is a reasonably large system:

  • NetworkManager, chrony
  • openssh-server
  • dnf (for installing packages in container builds)
  • rpm-ostree (A lot of tooling uses this too)

The content set for these images is subject to change.

Building

Here's an example command:

sudo rpm-ostree compose image --authfile ~/.config/containers/myquay.json --cachedir=cache -i --format=ociarchive centos-tier-0-stream9.yaml centos-tier-0-stream9.ociarchive

In some situations, copying to a local .ociarchive file is convenient. You can also push to a registry with --format=registry.

More information at https://coreos.github.io/rpm-ostree/container/

Badges

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