Merge pull request #6825 from fidencio/topic/kata-deploy-build-improvements

kata-deploy: Build improvements
This commit is contained in:
Fabiano Fidêncio 2023-05-15 13:49:15 +02:00 committed by GitHub
commit 9e83795fca
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 24 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
@ -436,6 +438,8 @@ install_virtiofsd() {
# Install static nydus asset # Install static nydus asset
install_nydus() { install_nydus() {
[ "${ARCH}" == "aarch64" ] && ARCH=arm64
install_cached_tarball_component \ install_cached_tarball_component \
"nydus" \ "nydus" \
"${jenkins_url}/job/kata-containers-main-nydus-$(uname -m)/${cached_artifacts_path}" \ "${jenkins_url}/job/kata-containers-main-nydus-$(uname -m)/${cached_artifacts_path}" \

View File

@ -44,6 +44,9 @@ pull_clh_released_binary() {
info "Download cloud-hypervisor version: ${cloud_hypervisor_version}" info "Download cloud-hypervisor version: ${cloud_hypervisor_version}"
cloud_hypervisor_binary="https://github.com/cloud-hypervisor/cloud-hypervisor/releases/download/${cloud_hypervisor_version}/cloud-hypervisor-static" cloud_hypervisor_binary="https://github.com/cloud-hypervisor/cloud-hypervisor/releases/download/${cloud_hypervisor_version}/cloud-hypervisor-static"
[ "${ARCH}" == "aarch64" ] && \
cloud_hypervisor_binary="${cloud_hypervisor_binary}-aarch64"
curl --fail -L ${cloud_hypervisor_binary} -o cloud-hypervisor-static || return 1 curl --fail -L ${cloud_hypervisor_binary} -o cloud-hypervisor-static || return 1
mkdir -p cloud-hypervisor mkdir -p cloud-hypervisor
mv -f cloud-hypervisor-static cloud-hypervisor/cloud-hypervisor mv -f cloud-hypervisor-static cloud-hypervisor/cloud-hypervisor
@ -82,11 +85,6 @@ build_clh_from_source() {
popd popd
} }
if [ "${ARCH}" == "aarch64" ]; then
info "aarch64 binaries are not distributed as part of the Cloud Hypervisor releases, forcing to build from source"
force_build_from_source="true"
fi
if [ -n "${features}" ]; then if [ -n "${features}" ]; then
info "As an extra build argument has been passed to the script, forcing to build from source" info "As an extra build argument has been passed to the script, forcing to build from source"
force_build_from_source="true" force_build_from_source="true"

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"
firecracker_url=$(get_from_kata_deps "assets.hypervisor.firecracker.url")
[ -n "$firecracker_url" ] || die "failed to get 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}