From 0afcc57a9201466ac0cf9d822e3e33f766be8a11 Mon Sep 17 00:00:00 2001 From: Bin Liu Date: Tue, 15 Nov 2022 15:32:31 +0800 Subject: [PATCH] package: add nydus to release artifacts Install nydus related binaries under /opt/kata/libexec/ Fixes: #5726 Signed-off-by: Bin Liu (cherry picked from commit abb9ebeecef29c25542f8ad2a3755f96c18b3418) --- .github/workflows/kata-deploy-push.yaml | 1 + .github/workflows/kata-deploy-test.yaml | 1 + .github/workflows/release.yaml | 1 + .../kata-deploy/local-build/Makefile | 3 ++ .../local-build/kata-deploy-binaries.sh | 17 ++++++++ tools/packaging/static-build/nydus/build.sh | 41 +++++++++++++++++++ 6 files changed, 64 insertions(+) create mode 100755 tools/packaging/static-build/nydus/build.sh diff --git a/.github/workflows/kata-deploy-push.yaml b/.github/workflows/kata-deploy-push.yaml index 090f89195e..bdd0aeb2bd 100644 --- a/.github/workflows/kata-deploy-push.yaml +++ b/.github/workflows/kata-deploy-push.yaml @@ -25,6 +25,7 @@ jobs: - rootfs-image - rootfs-initrd - virtiofsd + - nydus steps: - uses: actions/checkout@v2 - name: Install docker diff --git a/.github/workflows/kata-deploy-test.yaml b/.github/workflows/kata-deploy-test.yaml index e0d6afd7c1..746f94c9b2 100644 --- a/.github/workflows/kata-deploy-test.yaml +++ b/.github/workflows/kata-deploy-test.yaml @@ -44,6 +44,7 @@ jobs: - cloud-hypervisor - firecracker - kernel + - nydus - qemu - rootfs-image - rootfs-initrd diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 544d50fb4e..b5f585937e 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -13,6 +13,7 @@ jobs: - cloud-hypervisor - firecracker - kernel + - nydus - qemu - rootfs-image - rootfs-initrd diff --git a/tools/packaging/kata-deploy/local-build/Makefile b/tools/packaging/kata-deploy/local-build/Makefile index d68d101832..078a679d85 100644 --- a/tools/packaging/kata-deploy/local-build/Makefile +++ b/tools/packaging/kata-deploy/local-build/Makefile @@ -24,6 +24,7 @@ all-parallel: $(MK_DIR)/dockerbuild/install_yq.sh all: serial-targets \ firecracker-tarball \ kernel-tarball \ + nydus-tarball \ qemu-tarball \ shim-v2-tarball \ virtiofsd-tarball @@ -49,6 +50,8 @@ kernel-tarball: kernel-experimental-tarball: ${MAKE} $@-build +nydus-tarball: + ${MAKE} $@-build qemu-tarball: ${MAKE} $@-build 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 e1e7250788..3e36d710db 100755 --- a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh +++ b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh @@ -27,6 +27,7 @@ readonly kernel_builder="${static_build_dir}/kernel/build.sh" readonly qemu_builder="${static_build_dir}/qemu/build-static-qemu.sh" readonly shimv2_builder="${static_build_dir}/shim-v2/build.sh" readonly virtiofsd_builder="${static_build_dir}/virtiofsd/build.sh" +readonly nydus_builder="${static_build_dir}/nydus/build.sh" readonly rootfs_builder="${repo_root_dir}/tools/packaging/guest-image/build_image.sh" @@ -73,6 +74,7 @@ options: firecracker kernel kernel-experimental + nydus qemu rootfs-image rootfs-initrd @@ -151,6 +153,17 @@ install_virtiofsd() { sudo install -D --owner root --group root --mode 0744 virtiofsd/virtiofsd "${destdir}/opt/kata/libexec/virtiofsd" } +# Install static nydus asset +install_nydus() { + info "build static nydus" + "${nydus_builder}" + info "Install static nydus" + mkdir -p "${destdir}/opt/kata/libexec/" + ls -tl . || true + ls -tl nydus-static || true + sudo install -D --owner root --group root --mode 0744 nydus-static/nydusd "${destdir}/opt/kata/libexec/nydusd" +} + #Install all components that are not assets install_shimv2() { GO_VERSION="$(yq r ${versions_yaml} languages.golang.meta.newest-version)" @@ -177,6 +190,7 @@ handle_build() { install_image install_initrd install_kernel + install_nydus install_qemu install_shimv2 install_virtiofsd @@ -188,6 +202,8 @@ handle_build() { kernel) install_kernel ;; + nydus) install_nydus ;; + kernel-experimental) install_experimental_kernel;; qemu) install_qemu ;; @@ -234,6 +250,7 @@ main() { firecracker kernel kernel-experimental + nydus qemu rootfs-image rootfs-initrd diff --git a/tools/packaging/static-build/nydus/build.sh b/tools/packaging/static-build/nydus/build.sh new file mode 100755 index 0000000000..97686642ab --- /dev/null +++ b/tools/packaging/static-build/nydus/build.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2022 Ant Group +# +# SPDX-License-Identifier: Apache-2.0 + +set -o errexit +set -o nounset +set -o pipefail + +script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" + +source "${script_dir}/../../scripts/lib.sh" + +ARCH=${ARCH:-$(arch_to_golang "$(uname -m)")} + +nydus_url="${nydus_url:-}" +nydus_version="${nydus_version:-}" + +info "Get nydus information from runtime versions.yaml" +[ -n "$nydus_url" ] || nydus_url=$(get_from_kata_deps "externals.nydus.url") +[ -n "$nydus_url" ] || die "failed to get nydus url" +[ -n "$nydus_version" ] || nydus_version=$(get_from_kata_deps "externals.nydus.version") +[ -n "$nydus_version" ] || die "failed to get nydus version" + +nydus_tarball_url="${nydus_url}/releases/download" + +file_name="nydus-static-${nydus_version}-linux-${ARCH}.tgz" +download_url="${nydus_tarball_url}/${nydus_version}/${file_name}" + +info "Download nydus version: ${nydus_version} from ${download_url}" +curl -o ${file_name} -L $download_url + +sha256sum="${file_name}.sha256sum" +sha256sum_url="${nydus_tarball_url}/${nydus_version}/${sha256sum}" + +info "Download nydus ${sha256sum} from ${sha256sum_url}" +curl -o ${sha256sum} -L $sha256sum_url + +sha256sum -c ${sha256sum} +tar zxvf ${file_name}