diff --git a/tools/packaging/kernel/kata_config_version b/tools/packaging/kernel/kata_config_version index 398050c62c..257e563266 100644 --- a/tools/packaging/kernel/kata_config_version +++ b/tools/packaging/kernel/kata_config_version @@ -1 +1 @@ -101 +102 diff --git a/tools/packaging/scripts/lib.sh b/tools/packaging/scripts/lib.sh index 10c5351727..deece4ede9 100644 --- a/tools/packaging/scripts/lib.sh +++ b/tools/packaging/scripts/lib.sh @@ -129,3 +129,8 @@ push_to_registry() { fi fi } + +get_kernel_image_name() { + kernel_script_dir="${repo_root_dir}/tools/packaging/static-build/kernel" + echo "${BUILDER_REGISTRY}:kernel-$(get_last_modification ${kernel_script_dir})-$(uname -m)" +} diff --git a/tools/packaging/static-build/cache_components_main.sh b/tools/packaging/static-build/cache_components_main.sh index 4ba3d16e09..3f620887c6 100755 --- a/tools/packaging/static-build/cache_components_main.sh +++ b/tools/packaging/static-build/cache_components_main.sh @@ -12,6 +12,8 @@ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "${script_dir}/../scripts/lib.sh" +KERNEL_FLAVOUR="${KERNEL_FLAVOUR:-kernel}" # kernel | kernel-experimental | kernel-arm-experimetnal | kernel-dragonball-experimental + cache_clh_artifacts() { local clh_tarball_name="kata-static-cloud-hypervisor.tar.xz" local current_clh_version="$(get_from_kata_deps "assets.hypervisor.cloud_hypervisor.version")" @@ -24,6 +26,14 @@ cache_firecracker_artifacts() { create_cache_asset "${fc_tarball_name}" "${current_fc_version}" "" } +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}" +} + create_cache_asset() { local component_name="${1}" local component_version="${2}" @@ -47,6 +57,9 @@ Usage: $0 "[options]" Options: -c Cloud hypervisor cache -F Firecracker cache + -k Kernel cache + * Export KERNEL_FLAVOUR="kernel|kernek-experimental|kernel-arm-experimental|kernel-dragonball-experimental" for a specific build + The default KERNEL_FLAVOUR value is "kernel" -h Shows help EOF )" @@ -55,8 +68,9 @@ EOF main() { local cloud_hypervisor_component="${cloud_hypervisor_component:-}" local firecracker_component="${firecracker_component:-}" + local kernel_component="${kernel_component:-}" local OPTIND - while getopts ":cFh:" opt + while getopts ":cFkh:" opt do case "$opt" in c) @@ -65,6 +79,9 @@ main() { F) firecracker_component="1" ;; + k) + kernel_component="1" + ;; h) help exit 0; @@ -80,6 +97,7 @@ main() { [[ -z "${cloud_hypervisor_component}" ]] && \ [[ -z "${firecracker_component}" ]] && \ + [[ -z "${kernel_component}" ]] && \ help && die "Must choose at least one option" mkdir -p "${WORKSPACE}/artifacts" @@ -88,6 +106,7 @@ main() { [ "${cloud_hypervisor_component}" == "1" ] && cache_clh_artifacts [ "${firecracker_component}" == "1" ] && cache_firecracker_artifacts + [ "${kernel_component}" == "1" ] && cache_kernel_artifacts ls -la "${WORKSPACE}/artifacts/" popd diff --git a/tools/packaging/static-build/kernel/build.sh b/tools/packaging/static-build/kernel/build.sh index f85ba4ec11..d9f6ccd90e 100755 --- a/tools/packaging/static-build/kernel/build.sh +++ b/tools/packaging/static-build/kernel/build.sh @@ -16,7 +16,7 @@ readonly kernel_builder="${repo_root_dir}/tools/packaging/kernel/build-kernel.sh DESTDIR=${DESTDIR:-${PWD}} PREFIX=${PREFIX:-/opt/kata} -container_image="${KERNEL_CONTAINER_BUILDER:-${BUILDER_REGISTRY}:kernel-$(get_last_modification ${script_dir})-$(uname -m)}" +container_image="${KERNEL_CONTAINER_BUILDER:-$(get_kernel_image_name)}" sudo docker pull ${container_image} || \ (sudo docker build -t "${container_image}" "${script_dir}" && \