mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-04-30 04:34:27 +00:00
tools: Add support for caching Kernel artefacts
Let's add support for caching Kernel artefacts that are generated using the kata-deploy local-build scripts. Right now those are not used, but we'll switch to using them very soon as part of upcoming changes of how we build the components we test in our CI. Fixes: #6480 Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com> Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
This commit is contained in:
parent
762f9f4c3e
commit
cb4cbe2958
@ -1 +1 @@
|
||||
101
|
||||
102
|
||||
|
@ -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)"
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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}" && \
|
||||
|
Loading…
Reference in New Issue
Block a user