mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-24 06:27:39 +00:00
kernel: Add caching of kernel-headers
Fixes: #9481 We need to cache the kernel-headers for the NVIDIA GPU initrd/image build. Signed-off-by: Zvonko Kaiser <zkaiser@nvidia.com>
This commit is contained in:
parent
e5e0983b56
commit
fb0b821771
@ -48,6 +48,7 @@ ARTEFACT_REGISTRY_USERNAME="${ARTEFACT_REGISTRY_USERNAME:-}"
|
|||||||
ARTEFACT_REGISTRY_PASSWORD="${ARTEFACT_REGISTRY_PASSWORD:-}"
|
ARTEFACT_REGISTRY_PASSWORD="${ARTEFACT_REGISTRY_PASSWORD:-}"
|
||||||
TARGET_BRANCH="${TARGET_BRANCH:-main}"
|
TARGET_BRANCH="${TARGET_BRANCH:-main}"
|
||||||
PUSH_TO_REGISTRY="${PUSH_TO_REGISTRY:-}"
|
PUSH_TO_REGISTRY="${PUSH_TO_REGISTRY:-}"
|
||||||
|
KERNEL_HEADERS_PKG_TYPE="${KERNEL_HEADERS_PKG_TYPE:-deb}"
|
||||||
|
|
||||||
workdir="${WORKDIR:-$PWD}"
|
workdir="${WORKDIR:-$PWD}"
|
||||||
|
|
||||||
@ -127,6 +128,15 @@ EOF
|
|||||||
exit "${return_code}"
|
exit "${return_code}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get_kernel_headers_dir() {
|
||||||
|
local kernel_name"=${1:-}"
|
||||||
|
[ -z "${kernel_name}" ] && die "kernel name is a required argument"
|
||||||
|
|
||||||
|
local kernel_headers_dir="${repo_root_dir}/tools/packaging/kata-deploy/local-build/build/${kernel_name}/builddir"
|
||||||
|
|
||||||
|
echo "${kernel_headers_dir}"
|
||||||
|
}
|
||||||
|
|
||||||
get_kernel_modules_dir() {
|
get_kernel_modules_dir() {
|
||||||
local kernel_version="${1:-}"
|
local kernel_version="${1:-}"
|
||||||
local kernel_kata_config_version="${2:-}"
|
local kernel_kata_config_version="${2:-}"
|
||||||
@ -459,6 +469,12 @@ install_kernel_helper() {
|
|||||||
extra_tarballs="${kernel_modules_tarball_name}:${kernel_modules_tarball_path}"
|
extra_tarballs="${kernel_modules_tarball_name}:${kernel_modules_tarball_path}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "${kernel_name}" == "kernel-nvidia-gpu*" ]]; then
|
||||||
|
local kernel_headers_tarball_name="kata-static-${kernel_name}-headers.tar.xz"
|
||||||
|
local kernel_headers_tarball_path="${workdir}/${kernel_headers_tarball_name}"
|
||||||
|
extra_tarballs+=" ${kernel_headers_tarball_name}:${kernel_headers_tarball_path}"
|
||||||
|
fi
|
||||||
|
|
||||||
default_patches_dir="${repo_root_dir}/tools/packaging/kernel/patches"
|
default_patches_dir="${repo_root_dir}/tools/packaging/kernel/patches"
|
||||||
|
|
||||||
install_cached_kernel_tarball_component ${kernel_name} ${extra_tarballs} && return 0
|
install_cached_kernel_tarball_component ${kernel_name} ${extra_tarballs} && return 0
|
||||||
@ -1053,6 +1069,19 @@ handle_build() {
|
|||||||
tar tvf "${final_tarball_path}"
|
tar tvf "${final_tarball_path}"
|
||||||
|
|
||||||
case ${build_target} in
|
case ${build_target} in
|
||||||
|
kernel-nvidia-gpu*)
|
||||||
|
local kernel_headers_final_tarball_path="${workdir}/kata-static-${build_target}-headers.tar.xz"
|
||||||
|
if [ ! -f "${kernel_headers_final_tarball_path}" ]; then
|
||||||
|
local kernel_headers_dir
|
||||||
|
kernel_headers_dir=$(get_kernel_headers_dir "${build_target}")
|
||||||
|
|
||||||
|
pushd "${kernel_headers_dir}"
|
||||||
|
find . -type f -name "*.${KERNEL_HEADERS_PKG_TYPE}" -exec sudo tar cvfJ "${kernel_headers_final_tarball_path}" {} +
|
||||||
|
popd
|
||||||
|
fi
|
||||||
|
tar tvf "${kernel_headers_final_tarball_path}"
|
||||||
|
;;& # fallthrough in the confidential case we need the modules.tar.xz and for every kernel-nvidia-gpu we need the headers
|
||||||
|
|
||||||
kernel*-confidential)
|
kernel*-confidential)
|
||||||
local modules_final_tarball_path="${workdir}/kata-static-${build_target}-modules.tar.xz"
|
local modules_final_tarball_path="${workdir}/kata-static-${build_target}-modules.tar.xz"
|
||||||
if [ ! -f "${modules_final_tarball_path}" ]; then
|
if [ ! -f "${modules_final_tarball_path}" ]; then
|
||||||
@ -1083,6 +1112,16 @@ handle_build() {
|
|||||||
echo "${ARTEFACT_REGISTRY_PASSWORD}" | sudo oras login "${ARTEFACT_REGISTRY}" -u "${ARTEFACT_REGISTRY_USERNAME}" --password-stdin
|
echo "${ARTEFACT_REGISTRY_PASSWORD}" | sudo oras login "${ARTEFACT_REGISTRY}" -u "${ARTEFACT_REGISTRY_USERNAME}" --password-stdin
|
||||||
|
|
||||||
case ${build_target} in
|
case ${build_target} in
|
||||||
|
kernel-nvidia-gpu*)
|
||||||
|
sudo oras push \
|
||||||
|
${ARTEFACT_REGISTRY}/kata-containers/cached-artefacts/${build_target}:latest-${TARGET_BRANCH}-$(uname -m) \
|
||||||
|
${final_tarball_name} \
|
||||||
|
"kata-static-${build_target}-modules.tar.xz" \
|
||||||
|
"kata-static-${build_target}-headers.tar.xz" \
|
||||||
|
${build_target}-version \
|
||||||
|
${build_target}-builder-image-version \
|
||||||
|
${build_target}-sha256sum
|
||||||
|
;;
|
||||||
kernel*-confidential)
|
kernel*-confidential)
|
||||||
sudo oras push \
|
sudo oras push \
|
||||||
${ARTEFACT_REGISTRY}/kata-containers/cached-artefacts/${build_target}:latest-${TARGET_BRANCH}-$(uname -m) \
|
${ARTEFACT_REGISTRY}/kata-containers/cached-artefacts/${build_target}:latest-${TARGET_BRANCH}-$(uname -m) \
|
||||||
|
@ -1 +1 @@
|
|||||||
128
|
129
|
||||||
|
Loading…
Reference in New Issue
Block a user