mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-09-13 04:49:36 +00:00
Merge pull request #5828 from fidencio/topic/cached-components-add-support-for-caching-firmwares
CC | Add support for caching firmwares
This commit is contained in:
@@ -41,6 +41,7 @@ RUN apt-get update && \
|
||||
git \
|
||||
make \
|
||||
unzip \
|
||||
wget \
|
||||
xz-utils && \
|
||||
apt-get clean && rm -rf /var/lib/apt/lists
|
||||
|
||||
|
@@ -126,12 +126,11 @@ install_cached_component() {
|
||||
[ "${cached_version}" != "${current_version}" ] && return 1
|
||||
|
||||
info "Using cached tarball of ${component}"
|
||||
pushd ${workdir}
|
||||
echo "Downloading tarball from: ${jenkins_build_url}/${component_tarball_name}"
|
||||
curl -fL --progress-bar "${jenkins_build_url}/${component_tarball_name}" -o "${component_tarball_path}" || return cleanup_and_fail
|
||||
curl -fsOL "${jenkins_build_url}/sha256sum-${component_tarball_name}" || return cleanup_and_fail
|
||||
wget "${jenkins_build_url}/${component_tarball_name}" || return cleanup_and_fail
|
||||
wget "${jenkins_build_url}/sha256sum-${component_tarball_name}" || return cleanup_and_fail
|
||||
sha256sum -c "sha256sum-${component_tarball_name}" || return cleanup_and_fail
|
||||
popd
|
||||
mv "${component_tarball_name}" "${component_tarball_path}"
|
||||
}
|
||||
|
||||
# Install static CC cloud-hypervisor asset
|
||||
@@ -318,7 +317,7 @@ install_cc_tdx_td_shim() {
|
||||
install_cached_component \
|
||||
"td-shim" \
|
||||
"${jenkins_url}/job/kata-containers-2.0-td-shim-cc-$(uname -m)/${cached_artifacts_path}" \
|
||||
"$(get_from_kata_deps "assets.externals.td-shim.version")" \
|
||||
"$(get_from_kata_deps "externals.td-shim.version")-$(get_from_kata_deps "externals.td-shim.toolchain")" \
|
||||
"$(get_td_shim_image_name)" \
|
||||
"${final_tarball_name}" \
|
||||
"${final_tarball_path}" \
|
||||
@@ -333,7 +332,7 @@ install_cc_tee_ovmf() {
|
||||
tarball_name="${2}"
|
||||
|
||||
local component_name="ovmf"
|
||||
local component_version="$(get_from_kata_deps "assets.external.ovmf.${tee}.version")"
|
||||
local component_version="$(get_from_kata_deps "externals.ovmf.${tee}.version")"
|
||||
[ "${tee}" == "tdx" ] && component_name="tdvf"
|
||||
install_cached_component \
|
||||
"${component_name}" \
|
||||
|
@@ -14,6 +14,7 @@ source "${script_dir}/../scripts/lib.sh"
|
||||
|
||||
export KATA_BUILD_CC="${KATA_BUILD_CC:-}"
|
||||
export TEE="${TEE:-}"
|
||||
export FIRMWARE="${FIRMWARE:-}"
|
||||
|
||||
cache_qemu_artifacts() {
|
||||
local qemu_tarball_name="kata-static-cc-qemu.tar.xz"
|
||||
@@ -22,7 +23,6 @@ cache_qemu_artifacts() {
|
||||
qemu_tarball_name="kata-static-cc-${TEE}-qemu.tar.xz"
|
||||
[ "${TEE}" == "tdx" ] && current_qemu_version=$(get_from_kata_deps "assets.hypervisor.qemu.tdx.tag")
|
||||
fi
|
||||
local qemu_script_dir="${repo_root_dir}/tools/packaging/static-build/qemu"
|
||||
local qemu_sha=$(calc_qemu_files_sha256sum)
|
||||
local current_qemu_image="$(get_qemu_image_name)"
|
||||
|
||||
@@ -47,6 +47,26 @@ cache_kernel_artifacts() {
|
||||
create_cache_asset "${kernel_tarball_name}" "${current_kernel_version}" "${current_kernel_image}"
|
||||
}
|
||||
|
||||
cache_firmware_artifacts() {
|
||||
case ${FIRMWARE} in
|
||||
"td-shim")
|
||||
firmware_tarball_name="kata-static-cc-tdx-td-shim.tar.xz"
|
||||
current_firmware_image="$(get_td_shim_image_name)"
|
||||
current_firmware_version="$(get_from_kata_deps "externals.td-shim.version")-$(get_from_kata_deps "externals.td-shim.toolchain")"
|
||||
;;
|
||||
"tdvf")
|
||||
firmware_tarball_name="kata-static-cc-tdx-tdvf.tar.xz"
|
||||
current_firmware_image="$(get_ovmf_image_name)"
|
||||
current_firmware_version="$(get_from_kata_deps "externals.ovmf.tdx.version")"
|
||||
;;
|
||||
*)
|
||||
die "Not a valid firmware (td-shim, tdvf) wass set as the FIRMWARE environment variable."
|
||||
|
||||
;;
|
||||
esac
|
||||
create_cache_asset "${firmware_tarball_name}" "${current_firmware_version}" "${current_firmware_image}"
|
||||
}
|
||||
|
||||
create_cache_asset() {
|
||||
local component_name="${1}"
|
||||
local component_version="${2}"
|
||||
@@ -70,7 +90,17 @@ Usage: $0 "[options]"
|
||||
Options:
|
||||
-c Cloud hypervisor cache
|
||||
-k Kernel cache
|
||||
* Can receive a TEE environnment variable value, valid values are:
|
||||
* tdx
|
||||
If no TEE environment is passed, the kernel is built without TEE support.
|
||||
-q Qemu cache
|
||||
* Can receive a TEE environnment variable value, valid values are:
|
||||
* tdx
|
||||
If no TEE environment is passed, QEMU is built without TEE support.
|
||||
-f Firmware cache
|
||||
* Requires FIRMWARE environment variable set, valid values are:
|
||||
* tdvf
|
||||
* td-shim
|
||||
-h Shows help
|
||||
EOF
|
||||
)"
|
||||
@@ -80,8 +110,9 @@ main() {
|
||||
local cloud_hypervisor_component="${cloud_hypervisor_component:-}"
|
||||
local qemu_component="${qemu_component:-}"
|
||||
local kernel_component="${kernel_component:-}"
|
||||
local firmware_component="${firmware_component:-}"
|
||||
local OPTIND
|
||||
while getopts ":ckqh:" opt
|
||||
while getopts ":ckqfh:" opt
|
||||
do
|
||||
case "$opt" in
|
||||
c)
|
||||
@@ -93,6 +124,9 @@ main() {
|
||||
q)
|
||||
qemu_component="1"
|
||||
;;
|
||||
f)
|
||||
firmware_component="1"
|
||||
;;
|
||||
h)
|
||||
help
|
||||
exit 0;
|
||||
@@ -109,6 +143,7 @@ main() {
|
||||
[[ -z "${cloud_hypervisor_component}" ]] && \
|
||||
[[ -z "${kernel_component}" ]] && \
|
||||
[[ -z "${qemu_component}" ]] && \
|
||||
[[ -z "${firmware_component}" ]] && \
|
||||
help && die "Must choose at least one option"
|
||||
|
||||
mkdir -p "${WORKSPACE}/artifacts"
|
||||
@@ -118,6 +153,7 @@ main() {
|
||||
[ "${cloud_hypervisor_component}" == "1" ] && cache_clh_artifacts
|
||||
[ "${kernel_component}" == "1" ] && cache_kernel_artifacts
|
||||
[ "${qemu_component}" == "1" ] && cache_qemu_artifacts
|
||||
[ "${firmware_component}" == "1" ] && cache_firmware_artifacts
|
||||
|
||||
ls -la "${WORKSPACE}/artifacts/"
|
||||
popd
|
||||
|
Reference in New Issue
Block a user