- Embed the manifests into the container image
- Add bootc-base-imagectl which is a tightly controlled frontend
to execute on those manifests.
For now, we don't attempt to rework how we build the standard
image to actually look like `dnf install`, but we show that
it can work.
Signed-off-by: Colin Walters <walters@verbum.org>
I want to make it clearer which manifests are actually
"toplevels" versus which are just for inclusion.
Move fedora-generic to its own subdirectory for this reason.
Signed-off-by: Colin Walters <walters@verbum.org>
Followup to the naming standardization. Now `fedora-bootc.yaml`
is effectively a deprecated alias only used by the legacy pungi configs.
Signed-off-by: Colin Walters <walters@verbum.org>
This is generally useful for the same reason dpkg/rpm packages
have descriptions. But it's also specifically preparation
for the base image builder having a list operation to show
available configurations.
Signed-off-by: Colin Walters <walters@verbum.org>
We have a legacy of trying to support using e.g. kernel-rt. But
it adds complexity in the inheritance because minimal/manifest.yaml
isn't standalone, it also needs a kernel.
As part of custom base images I want to simplify this.
In order to use kernel-rt, we'll just say that you build a
minimal base, and then swap to kernel-rt as a secondary step
for now.
Signed-off-by: Colin Walters <walters@verbum.org>
The "tiers" nomenclature ended up being unhelpful since
we introduced "tier-x" which is between tier-0 and tier-1.
We also never exposed the tier naming outside of our source
code. In preparation for doing so, rename to tier-0 to
"minimal" which is a bit more descriptive.
Renaming the other images will follow.
Signed-off-by: Colin Walters <walters@verbum.org>
The platform-engineering include is using a truly ancient buildah
image. Stop including that and bump to the latest.
Signed-off-by: Colin Walters <walters@verbum.org>
This takes some of the logic from what's currently in custom base image branch
and applies it here for the main branch.
We need this in order to not depend on the logic that was
removed in https://github.com/containers/buildah/issues/5952
Note that with the latest rpm-ostree v2025.5 `--source-root`
is significantly improved and we don't need to manually copy
dnf variables or gpg keys.
Signed-off-by: Colin Walters <walters@verbum.org>
It's not desired by default in RHEL 10 or below yet, ref
https://issues.redhat.com/browse/RHEL-77077
AFAICS, it's already explicitly specified in the fedora-coreos manifest,
so dropping it here shouldn't affect FCOS.
Of course I think what we *really* want here is distribution
conditionals.
Signed-off-by: Colin Walters <walters@verbum.org>
This empty directory is required by some RPM scripts. Historically
rpm-ostree's script invocations made this by default, but that
doesn't happen with direct rpm or dnf.
Signed-off-by: Colin Walters <walters@verbum.org>
This MR adds two configurations to enable kernel-install integration,
this will enable using dnf or rpm to install kernels.
- /usr/lib/kernel/install.conf: enables the hook that tells kernel-install
to defer the logic to rpm-ostree, this currently only on f42
- dnf.conf: ensures dnf only keeps one kernel package
The sbin/bin merge happened in Fedora so it's now /usr/bin/zipl
in rawhide. While we're in here just name the package now since
the transient issue where it was coming from two different
packages upstream and downstream has settled. We can use s390utils-core
everywhere.
Hopefully eventually this gets rewritten in not-shell-script
and put somewhere saner. For now, avoid failing if people have
trimmed their images.
The growpart problem only comes with bootc-image-builder and
cloud environments anyways, it's not something we hit with
Anaconda installs or `bootc install to-filesystem`, so we can
avoid this.
Closes: https://gitlab.com/fedora/bootc/base-images/-/issues/34
Signed-off-by: Colin Walters <walters@verbum.org>
We will have a better way to make derived container images
that doesn't require having dnf in the base image.
Prep for more minimal and custom images.
Signed-off-by: Colin Walters <walters@verbum.org>
Prep for working on custom base images. We want to support
operating on rootfs that may not have been generated by
rpm-ostree.
Split this out as something that can gets passed separately
to `rpm-ostree compose postprocess/commit`.
The crun package was excluded from s390x and ppc64le rawhide builds due to
differing dependencies across architectures. This caused kola tests to
fail as the crun was missing. We are adding crun explicitly to the tier-x
manifest in the base images to ensure it is included in all architectures
Using `--from` to set the target releasever doesn't work yet because we
_need_ to set the `releasever` field since the repo files reference it.
There's a pending rpm-ostree PR to fix this but for now hack around it
by manually injecting the necessary variables in the treefile.
As agreed in https://gitlab.com/fedora/bootc/tracker/-/issues/39, we're
going to be maintaining the treefile for all Fedora versions in the
`main` branch. Accordingly stop hardcoding releasevers and repos in
the treefiles.
But for now, we're still building the official image in pungi using the
non-container-native path, so add compatibility stubs to not break it.
Coincidentally, this doubles down on the proposed API to build the base
images for different Fedora versions using the `--from` switch. Document
this in the README. But note this doesn't work yet because nothing is
telling rpm-ostree which repos to use or what the releasever should be.