Merge branch 'kernel-install' into 'main'

tier-0: add kernel-install integration config

See merge request fedora/bootc/base-images!62
This commit is contained in:
Colin Walters (Red Hat) 2025-01-21 22:51:34 +00:00
commit 9bc06392c3
3 changed files with 26 additions and 1 deletions

View File

@ -26,7 +26,7 @@
FROM quay.io/fedora/fedora:rawhide as repos
# BOOTSTRAPPING: This can be any image that has rpm-ostree and selinux-policy-targeted.
FROM quay.io/fedora/fedora:41 as builder
FROM quay.io/fedora/fedora:rawhide as builder
RUN dnf -y install rpm-ostree selinux-policy-targeted
ARG MANIFEST=fedora-bootc.yaml
COPY --from=repos /etc/dnf/vars /etc/dnf/vars

View File

@ -0,0 +1,24 @@
# Configuration to enable kernel-install integration
postprocess:
- |
#!/usr/bin/env bash
set -xeuo pipefail
source /usr/lib/os-release
# Check if the ID is Fedora and VERSION_ID is 42 or higher
if [[ "$ID" == "fedora" && "$VERSION_ID" -ge 42 ]]; then
echo -e "# kernel-install will not try to run dracut and allow rpm-ostree to\n\
# take over. Rpm-ostree will use this to know that it is responsible\n\
# to run dracut and ensure that there is only one kernel in the image\n\
layout=ostree" | tee /usr/lib/kernel/install.conf > /dev/null
fi
# By default dnf keeps multiple versions of the kernel, with this
# configuration we tell dnf to treat the kernel as everything else.
# https://dnf.readthedocs.io/en/latest/conf_ref.html#main-options
# Let's add the config to a distribution configuration file if dnf5
# is used, we append to /etc/dnf/dnf.conf if not.
if [ -d "/usr/share/dnf5/libdnf.conf.d/" ]; then
echo -e "[main]\ninstallonlypkgs=''" >> /usr/share/dnf5/libdnf.conf.d/20-ostree-installonlypkgs.conf
else
echo "installonlypkgs=''" >> /etc/dnf/dnf.conf
fi

View File

@ -21,6 +21,7 @@ include:
- ostree.yaml
- initramfs.yaml
- basic-fixes.yaml
- kernel-install.yaml
packages:
# this is implied by dependencies but let's make it explicit