diff --git a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh index 25e05da55b..81784379a9 100755 --- a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh +++ b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh @@ -188,6 +188,39 @@ install_initrd_sev() { install_initrd "initrd-sev" "sev" } +#Install kernel component helper +install_cached_kernel_tarball_component() { + local kernel_name=${1} + + install_cached_tarball_component \ + "${kernel_name}" \ + "${jenkins_url}/job/kata-containers-main-${kernel_name}-$(uname -m)/${cached_artifacts_path}" \ + "${kernel_version}-${kernel_kata_config_version}" \ + "$(get_kernel_image_name)" \ + "${final_tarball_name}" \ + "${final_tarball_path}" \ + || return 1 + + if [[ "${kernel_name}" != "kernel-sev" ]]; then + return 0 + fi + + # SEV specific code path + install_cached_tarball_component \ + "${kernel_name}" \ + "${jenkins_url}/job/kata-containers-main-${kernel_name}-$(uname -m)/${cached_artifacts_path}" \ + "${kernel_version}-${kernel_kata_config_version}" \ + "$(get_kernel_image_name)" \ + "kata-static-kernel-sev-modules.tar.xz" \ + "${workdir}/kata-static-kernel-sev-modules.tar.xz" \ + || return 1 + + mkdir -p "${module_dir}" + tar xvf "${workdir}/kata-static-kernel-sev-modules.tar.xz" -C "${module_dir}" && return 0 + + return 1 +} + #Install kernel asset install_kernel_helper() { local kernel_version_yaml_path="${1}" @@ -199,7 +232,9 @@ install_kernel_helper() { local module_dir="" if [[ "${kernel_name}" == "kernel-sev" ]]; then - job_name="kata-containers-main-${kernel_name}-sev-$(uname -m)" + kernel_version="$(get_from_kata_deps assets.kernel.sev.version)" + default_patches_dir="${repo_root_dir}/tools/packaging/kernel/patches" + module_dir="${repo_root_dir}/tools/packaging/kata-deploy/local-build/build/kernel-sev/builddir/kata-linux-${kernel_version#v}-${kernel_kata_config_version}/lib/modules/${kernel_version#v}" fi install_cached_kernel_tarball_component ${kernel_name} ${module_dir} && return 0 diff --git a/tools/packaging/static-build/cache_components_main.sh b/tools/packaging/static-build/cache_components_main.sh index 0e8a0120f8..fc0019c7f3 100755 --- a/tools/packaging/static-build/cache_components_main.sh +++ b/tools/packaging/static-build/cache_components_main.sh @@ -33,8 +33,21 @@ cache_kernel_artifacts() { local kernel_tarball_name="kata-static-${KERNEL_FLAVOUR}.tar.xz" local current_kernel_image="$(get_kernel_image_name)" local current_kernel_kata_config_version="$(cat ${repo_root_dir}/tools/packaging/kernel/kata_config_version)" - local current_kernel_version="$(get_from_kata_deps "assets.${KERNEL_FLAVOUR}.version")-${current_kernel_kata_config_version}" - create_cache_asset "${kernel_tarball_name}" "${current_kernel_version}" "${current_kernel_image}" + local current_kernel_version="$(get_from_kata_deps "assets.${KERNEL_FLAVOUR}.version")" + local kernel_modules_tarball_path="${repo_root_dir}/tools/packaging/kata-deploy/local-build/build/kata-static-kernel-sev-modules.tar.xz" + + if [[ "${KERNEL_FLAVOUR}" == "kernel-sev" ]]; then + current_kernel_version="$(get_from_kata_deps "assets.kernel.sev.version")" + fi + + create_cache_asset "${kernel_tarball_name}" "${current_kernel_version}-${current_kernel_kata_config_version}" "${current_kernel_image}" + if [[ "${KERNEL_FLAVOUR}" == "kernel-sev" ]]; then + module_dir="${repo_root_dir}/tools/packaging/kata-deploy/local-build/build/kernel-sev/builddir/kata-linux-${current_kernel_version#v}-${current_kernel_kata_config_version}/lib/modules/${current_kernel_version#v}" + if [ ! -f "${kernel_modules_tarball_path}" ]; then + tar cvfJ "${kernel_modules_tarball_path}" "${module_dir}/kernel/drivers/virt/coco/efi_secret/" + fi + create_cache_asset "kata-static-kernel-sev-modules.tar.xz" "${current_kernel_version}-${current_kernel_kata_config_version}" "${current_kernel_image}" + fi } cache_nydus_artifacts() {