static-build: Download firecracker instead of building it

There's no reason for us to build firecracker instead of simply
downloading the official released tarball, as tarballs are provided for
the architectures we want to use them.

Fixes: #6770

Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>
This commit is contained in:
Fabiano Fidêncio 2023-05-12 21:37:49 +02:00
parent 3bf767cfcd
commit 136e2415da
2 changed files with 22 additions and 19 deletions

View File

@ -377,10 +377,12 @@ install_qemu_snp_experimental() {
# Install static firecracker asset # Install static firecracker asset
install_firecracker() { install_firecracker() {
local firecracker_version=$(get_from_kata_deps "assets.hypervisor.firecracker.version")
install_cached_tarball_component \ install_cached_tarball_component \
"firecracker" \ "firecracker" \
"${jenkins_url}/job/kata-containers-main-firecracker-$(uname -m)/${cached_artifacts_path}" \ "${jenkins_url}/job/kata-containers-main-firecracker-$(uname -m)/${cached_artifacts_path}" \
"$(get_from_kata_deps "assets.hypervisor.firecracker.version")" \ "${firecracker_version}" \
"" \ "" \
"${final_tarball_name}" \ "${final_tarball_name}" \
"${final_tarball_path}" \ "${final_tarball_path}" \
@ -390,8 +392,8 @@ install_firecracker() {
"${firecracker_builder}" "${firecracker_builder}"
info "Install static firecracker" info "Install static firecracker"
mkdir -p "${destdir}/opt/kata/bin/" mkdir -p "${destdir}/opt/kata/bin/"
sudo install -D --owner root --group root --mode 0744 firecracker/firecracker-static "${destdir}/opt/kata/bin/firecracker" sudo install -D --owner root --group root --mode 0744 release-${firecracker_version}-${ARCH}/firecracker-${firecracker_version}-${ARCH} "${destdir}/opt/kata/bin/firecracker"
sudo install -D --owner root --group root --mode 0744 firecracker/jailer-static "${destdir}/opt/kata/bin/jailer" sudo install -D --owner root --group root --mode 0744 release-${firecracker_version}-${ARCH}/jailer-${firecracker_version}-${ARCH} "${destdir}/opt/kata/bin/jailer"
} }
# Install static cloud-hypervisor asset # Install static cloud-hypervisor asset

View File

@ -14,30 +14,31 @@ source "${script_dir}/../../scripts/lib.sh"
config_dir="${script_dir}/../../scripts/" config_dir="${script_dir}/../../scripts/"
firecracker_repo="${firecracker_repo:-}" firecracker_url="${firecracker_url:-}"
firecracker_dir="firecracker" firecracker_dir="firecracker"
firecracker_version="${firecracker_version:-}" firecracker_version="${firecracker_version:-}"
arch=$(uname -m) arch=$(uname -m)
if [ -z "$firecracker_repo" ]; then [ -n "$firecracker_url" ] ||firecracker_url=$(get_from_kata_deps "assets.hypervisor.firecracker.url")
info "Get firecracker information from runtime versions.yaml" [ -n "$firecracker_url" ] || die "failed to get firecracker url"
firecracker_url=$(get_from_kata_deps "assets.hypervisor.firecracker.url")
[ -n "$firecracker_url" ] || die "failed to get firecracker url"
firecracker_repo="${firecracker_url}.git"
fi
[ -n "$firecracker_repo" ] || die "failed to get firecracker repo"
[ -n "$firecracker_version" ] || firecracker_version=$(get_from_kata_deps "assets.hypervisor.firecracker.version") [ -n "$firecracker_version" ] || firecracker_version=$(get_from_kata_deps "assets.hypervisor.firecracker.version")
[ -n "$firecracker_version" ] || die "failed to get firecracker version" [ -n "$firecracker_version" ] || die "failed to get firecracker version"
info "Build ${firecracker_repo} version: ${firecracker_version}" firecracker_tarball_url="${firecracker_url}/releases/download"
[ -d "${firecracker_dir}" ] || git clone ${firecracker_repo} file_name="firecracker-${firecracker_version}-${ARCH}.tgz"
cd "${firecracker_dir}" download_url="${firecracker_tarball_url}/${firecracker_version}/${file_name}"
git fetch
git checkout ${firecracker_version}
sudo ./tools/devtool --unattended build --release
ln -sf ./build/cargo_target/${arch}-unknown-linux-musl/release/firecracker ./firecracker-static info "Download firecracker version: ${firecracker_version} from ${download_url}"
ln -sf ./build/cargo_target/${arch}-unknown-linux-musl/release/jailer ./jailer-static curl -o ${file_name} -L $download_url
sha256sum="${file_name}.sha256.txt"
sha256sum_url="${firecracker_tarball_url}/${firecracker_version}/${sha256sum}"
info "Download firecracker ${sha256sum} from ${sha256sum_url}"
curl -o ${sha256sum} -L $sha256sum_url
sha256sum -c ${sha256sum}
tar zxvf ${file_name}