Skip to content

Commit

Permalink
kola/kernel-replace: Replace kernel based on OS_ID
Browse files Browse the repository at this point in the history
In one of the older issues, kola switch-kernel test was failing. In the discussion @jlebon suggested to remove named test and make it external, so that it can be utilized by FCOS, and also SCOS/RHCOS.
Additionally, the kernel version for FCOS was updated in this PR to the latest stable version `6.9.8-200.fc40`.

See: coreos/coreos-assembler#1245
  • Loading branch information
c4rt0 committed Jul 15, 2024
1 parent dfb0b16 commit 03d962c
Showing 1 changed file with 30 additions and 15 deletions.
45 changes: 30 additions & 15 deletions tests/kola/rpm-ostree/kernel-replace
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
## # We've seen some OOM when 1024M is used:
## # https://github.com/coreos/fedora-coreos-tracker/issues/1506
## minMemory: 2048
## # This test only runs on FCOS due to a problem with skopeo copy on
## # RHCOS. See: https://github.com/containers/skopeo/issues/1846
## distros: fcos
## # Needs internet access as we fetch files from koji
## # We add the "reprovision" tag here even though we aren't
## # reprovisioning as a hack so that in our pipeline the test
Expand Down Expand Up @@ -43,13 +40,24 @@ set -euxo pipefail
cd $(mktemp -d)

# TODO: It'd be much better to test this via a registry
image_dir=/var/tmp/fcos
image=oci:$image_dir

# define OS ID in order to assign appropriate kernel later
OS_ID=$(. /etc/os-release; echo $ID)
image_dir=/var/tmp/coreos
image=oci:${image_dir}
image_pull=ostree-unverified-image:$image
tmp_imagedir=/var/tmp/fcos-tmp
tmp_imagedir=${image_dir}-tmp
arch=$(arch)
kver="6.2.9-300.fc38.${arch}"

case "$OS_ID" in
rhcos|scos|rhel|centos)
kver="5.14.0-472.el9.${arch}"
url="https://mirror.stream.centos.org/9-stream/BaseOS/${arch}/os/Packages/kernel"
;;
fedora)
kver="6.9.8-200.fc40.${arch}"
url="https://kojipkgs.fedoraproject.org//packages/kernel/6.9.8/200.fc40/${arch}/kernel"
;;
esac
case "${AUTOPKGTEST_REBOOT_MARK:-}" in
"")
# Take the existing ostree commit, and export it to a container image, then rebase to it.
Expand Down Expand Up @@ -80,16 +88,16 @@ case "${AUTOPKGTEST_REBOOT_MARK:-}" in
1)
# Setup
# copy the OCI dir to containers-storage for a local build
skopeo copy $image containers-storage:localhost/fcos
skopeo copy $image containers-storage:localhost/coreos
rm "${image_dir}" -rf
td=$(mktemp -d)
cd ${td}
version=$(rpm-ostree --version | grep Version)
cat > Dockerfile << EOF
FROM localhost/fcos
RUN rpm-ostree cliwrap install-to-root /
cat > Containerfile << EOF
FROM localhost/coreos
RUN rpm-ostree override replace \
https://koji.fedoraproject.org/koji/buildinfo?buildID=2178613 && \
$url-{,core-,modules-,modules-core-,modules-extra-}$kver.rpm && \
rpm-ostree cleanup -m && \
ostree container commit
EOF
# Older podman found in RHEL8 blows up without /etc/resolv.conf
Expand All @@ -101,12 +109,12 @@ EOF
3.*) touched_resolv_conf=1; touch /etc/resolv.conf;;
esac
fi
podman build --net=host -t localhost/fcos-derived --squash .
podman build --net=host -t localhost/coreos-derived --squash .
if test "${touched_resolv_conf}" -eq 1; then
rm -vf /etc/resolv.conf
fi
derived=oci:$image_dir:derived
skopeo copy containers-storage:localhost/fcos-derived $derived
skopeo copy containers-storage:localhost/coreos-derived $derived
rpm-ostree --version
rpm-ostree rebase ostree-unverified-image:$derived
ostree container image list --repo=/ostree/repo
Expand All @@ -118,7 +126,14 @@ EOF
if test "$un" != "$kver"; then
echo "Expected kernel $kver but found $un"
exit 1
else
echo "Kernel switch to $un was successfull"
fi
test -f /usr/lib/modules/$kver/initramfs.img
test -f /usr/lib/modules/$kver/vmlinuz
;;
*)
echo "Unknown AUTOPKGTEST_REBOOT_MARK: ${AUTOPKGTEST_REBOOT_MARK:-}"
exit 1
;;
esac

0 comments on commit 03d962c

Please sign in to comment.