gpu: Rebuild initrd and image for kernel bump

We need to make sure that we use the latest kernel
and rebuild the initrd and image for the nvidia-gpu
use-cases otherwise the tests will fail since
the modules are not build against the new kernel and
they simply fail to load.

Signed-off-by: Zvonko Kaiser <zkaiser@nvidia.com>
This commit is contained in:
Zvonko Kaiser 2025-08-19 21:17:14 +00:00
parent e20f6b2f9d
commit bce8efca67

View File

@ -343,6 +343,20 @@ get_latest_kernel_confidential_artefact_and_builder_image_version() {
echo "${latest_kernel_artefact}-${latest_kernel_builder_image}"
}
get_latest_kernel_artefact_and_builder_image_version() {
local kernel_version
local kernel_kata_config_version
local latest_kernel_artefact
local latest_kernel_builder_image
kernel_version=$(get_from_kata_deps ".assets.kernel.version")
kernel_kata_config_version="$(cat "${repo_root_dir}"/tools/packaging/kernel/kata_config_version)"
latest_kernel_artefact="${kernel_version}-${kernel_kata_config_version}-$(get_last_modification "$(dirname "${kernel_builder}")")"
latest_kernel_builder_image="$(get_kernel_image_name)"
echo "${latest_kernel_artefact}-${latest_kernel_builder_image}"
}
#Install guest image
install_image() {
local variant="${1:-}"
@ -370,7 +384,7 @@ install_image() {
latest_artefact="$(get_kata_version)-${os_name}-${os_version}-${osbuilder_last_commit}-${guest_image_last_commit}-${agent_last_commit}-${libs_last_commit}-${gperf_version}-${libseccomp_version}-${rust_version}-${image_type}"
if [ "${variant}" == "confidential" ]; then
if [[ "${variant}" == *confidential ]]; then
# For the confidential image we depend on the kernel built in order to ensure that
# measured boot is used
latest_artefact+="-$(get_latest_kernel_confidential_artefact_and_builder_image_version)"
@ -378,6 +392,11 @@ install_image() {
latest_artefact+="-$(get_latest_pause_image_artefact_and_builder_image_version)"
fi
if [[ "${variant}" == "nvidia-gpu" ]]; then
# If we bump the kernel we need to rebuild the image
latest_artefact+="-$(get_latest_kernel_artefact_and_builder_image_version "${variant}")"
fi
latest_builder_image=""
install_cached_tarball_component \
@ -465,7 +484,7 @@ install_initrd() {
"$(get_last_modification "${repo_root_dir}/tools/packaging/static-build/agent")")
latest_artefact="$(get_kata_version)-${os_name}-${os_version}-${osbuilder_last_commit}-${guest_image_last_commit}-${agent_last_commit}-${libs_last_commit}-${gperf_version}-${libseccomp_version}-${rust_version}-${initrd_type}"
if [ "${variant}" == "confidential" ]; then
if [[ "${variant}" == *confidential ]]; then
# For the confidential initrd we depend on the kernel built in order to ensure that
# measured boot is used
latest_artefact+="-$(get_latest_kernel_confidential_artefact_and_builder_image_version)"
@ -473,6 +492,11 @@ install_initrd() {
latest_artefact+="-$(get_latest_pause_image_artefact_and_builder_image_version)"
fi
if [[ "${variant}" == "nvidia-gpu" ]]; then
# If we bump the kernel we need to rebuild the initrd as well
latest_artefact+="-$(get_latest_kernel_artefact_and_builder_image_version "${variant}")"
fi
latest_builder_image=""
[[ "${ARCH}" == "aarch64" && "${CROSS_BUILD}" == "true" ]] && echo "warning: Don't cross build initrd for aarch64 as it's too slow" && exit 0