diff --git a/.github/workflows/image-pr.yaml b/.github/workflows/image-pr.yaml index 150d87912..8150fdfa8 100644 --- a/.github/workflows/image-pr.yaml +++ b/.github/workflows/image-pr.yaml @@ -15,6 +15,38 @@ jobs: with: flavor: ubuntu + core-opensuse-tumbleweed: + uses: ./.github/workflows/reusable-build-flavor.yaml + with: + flavor: opensuse-tumbleweed + core-debian: + uses: ./.github/workflows/reusable-build-flavor.yaml + with: + flavor: debian + core-almalinux: + uses: ./.github/workflows/reusable-build-flavor.yaml + with: + flavor: almalinux + core-rockylinux: + uses: ./.github/workflows/reusable-build-flavor.yaml + with: + flavor: rockylinux + + core-fedora: + uses: ./.github/workflows/reusable-build-flavor.yaml + with: + flavor: fedora + + core-ubuntu-20-lts: + uses: ./.github/workflows/reusable-build-flavor.yaml + with: + flavor: ubuntu-20-lts + + core-ubuntu-22-lts: + uses: ./.github/workflows/reusable-build-flavor.yaml + with: + flavor: ubuntu-22-lts + install: uses: ./.github/workflows/reusable-install-test.yaml with: diff --git a/90-kairos-sysext.conf b/90-kairos-sysext.conf new file mode 100644 index 000000000..0938eb06e --- /dev/null +++ b/90-kairos-sysext.conf @@ -0,0 +1 @@ +add_dracutmodules+=" kairos-sysext " diff --git a/90kairos-sysext/module-setup.sh b/90kairos-sysext/module-setup.sh new file mode 100644 index 000000000..e5b22fe2d --- /dev/null +++ b/90kairos-sysext/module-setup.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# This module tries to add systemd-sysext module to the initramfs if its in the system, otherwise it does nothing + +# called by dracut +check() { + return 0 +} + +# called by dracut +depends() { + # If the binary(s) requirements are not fulfilled the module can't be installed. + require_binaries systemd-sysext || return 1 + # Check if the module files exists + # This is not normal but on ubuntu-22 the binary for sysext exists but the dracut module doesnt, so we + # need to do further checks + files=( "${dracutbasedir}"/modules.d/??systemd-sysext ) + [ "${#files[@]}" -ge 2 ] && return 1 + if [ -d "${files[0]}" ]; then + echo "systemd-sysext" + return 0 + fi + return 1 +} + +# called by dracut +installkernel() { + return 0 +} + +# called by dracut +install() { + return 0 +} diff --git a/Earthfile b/Earthfile index ef78d82db..260fb2dfe 100644 --- a/Earthfile +++ b/Earthfile @@ -273,6 +273,9 @@ framework: COPY +luet/luet /framework/usr/bin/luet COPY framework-profile.yaml /framework/etc/luet/luet.yaml + + COPY 90-kairos-sysext.conf /framework/etc/dracut.conf.d/90-kairos-sysext.conf + COPY 90kairos-sysext /framework/usr/lib/dracut/modules.d/90kairos-sysext SAVE ARTIFACT --keep-own /framework/ framework build-framework-image: diff --git a/framework-profile.yaml b/framework-profile.yaml index 7d1946a57..358da3203 100755 --- a/framework-profile.yaml +++ b/framework-profile.yaml @@ -76,25 +76,21 @@ flavors: - common-packages - kairos-toolchain - systemd-base - - systemd-latest - dracut-network-legacy opensuse-tumbleweed-arm-rpi: - common-packages - kairos-toolchain - systemd-base - - systemd-latest - dracut-network-legacy opensuse-leap: - common-packages - kairos-toolchain - systemd-base - - systemd-latest - dracut-network-legacy opensuse-leap-arm-rpi: - common-packages - kairos-toolchain - systemd-base - - systemd-latest - dracut-network-legacy alpine-arm-rpi: - common-packages @@ -159,9 +155,6 @@ ubuntu-kernel: packages: - distro-kernels/ubuntu - distro-initrd/ubuntu -systemd-latest: - packages: - - dracut/sysext repositories: - &kairos name: "kairos"