diff --git a/tools/packaging/kata-deploy/local-build/dockerbuild/Dockerfile b/tools/packaging/kata-deploy/local-build/dockerbuild/Dockerfile index 1f8d0de51..b640e1ca3 100644 --- a/tools/packaging/kata-deploy/local-build/dockerbuild/Dockerfile +++ b/tools/packaging/kata-deploy/local-build/dockerbuild/Dockerfile @@ -41,6 +41,7 @@ RUN apt-get update && \ git \ make \ unzip \ + wget \ xz-utils && \ apt-get clean && rm -rf /var/lib/apt/lists 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 c3b17f65b..8a10f7ed8 100755 --- a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh +++ b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh @@ -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}" \ diff --git a/tools/packaging/static-build/cache_components.sh b/tools/packaging/static-build/cache_components.sh index 93b5fb22c..93fed54cf 100755 --- a/tools/packaging/static-build/cache_components.sh +++ b/tools/packaging/static-build/cache_components.sh @@ -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