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/VERSION b/VERSION index 4a36342fca..cb2b00e4f7 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.0.0 +3.0.1 diff --git a/src/runtime/virtcontainers/nydusd.go b/src/runtime/virtcontainers/nydusd.go index 177e3044d1..56cd263cff 100644 --- a/src/runtime/virtcontainers/nydusd.go +++ b/src/runtime/virtcontainers/nydusd.go @@ -167,6 +167,7 @@ func (nd *nydusd) args() ([]string, error) { logLevel = "debug" } args := []string{ + "virtiofs", "--hybrid-mode", "--log-level", logLevel, "--apisock", nd.apiSockPath, "--sock", nd.sockPath, diff --git a/src/runtime/virtcontainers/nydusd_test.go b/src/runtime/virtcontainers/nydusd_test.go index 34e0111ac4..481866ffcc 100644 --- a/src/runtime/virtcontainers/nydusd_test.go +++ b/src/runtime/virtcontainers/nydusd_test.go @@ -99,13 +99,13 @@ func TestNydusdArgs(t *testing.T) { apiSockPath: "/var/lib/api.sock", debug: true, } - expected := "--log-level debug --apisock /var/lib/api.sock --sock /var/lib/vhost-user.sock" + expected := "virtiofs --hybrid-mode --log-level debug --apisock /var/lib/api.sock --sock /var/lib/vhost-user.sock" args, err := nd.args() assert.NoError(err) assert.Equal(expected, strings.Join(args, " ")) nd.debug = false - expected = "--log-level info --apisock /var/lib/api.sock --sock /var/lib/vhost-user.sock" + expected = "virtiofs --hybrid-mode --log-level info --apisock /var/lib/api.sock --sock /var/lib/vhost-user.sock" args, err = nd.args() assert.NoError(err) assert.Equal(expected, strings.Join(args, " ")) diff --git a/tools/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml b/tools/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml index 9302495a0c..90f2c698c8 100644 --- a/tools/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml +++ b/tools/packaging/kata-deploy/kata-cleanup/base/kata-cleanup.yaml @@ -18,7 +18,7 @@ spec: katacontainers.io/kata-runtime: cleanup containers: - name: kube-kata-cleanup - image: quay.io/kata-containers/kata-deploy:3.0.0 + image: quay.io/kata-containers/kata-deploy:3.0.1 imagePullPolicy: Always command: [ "bash", "-c", "/opt/kata-artifacts/scripts/kata-deploy.sh reset" ] env: diff --git a/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml b/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml index 7dadc094fe..408de3e248 100644 --- a/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml +++ b/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml @@ -16,7 +16,7 @@ spec: serviceAccountName: kata-label-node containers: - name: kube-kata - image: quay.io/kata-containers/kata-deploy:3.0.0 + image: quay.io/kata-containers/kata-deploy:3.0.1 imagePullPolicy: Always lifecycle: preStop: 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} diff --git a/versions.yaml b/versions.yaml index c0be81c376..56aa353a3b 100644 --- a/versions.yaml +++ b/versions.yaml @@ -240,12 +240,12 @@ externals: nydus: description: "Nydus image acceleration service" url: "https://github.com/dragonflyoss/image-service" - version: "v2.1.0-alpha.4" + version: "v2.1.1" nydus-snapshotter: description: "Snapshotter for Nydus image acceleration service" url: "https://github.com/containerd/nydus-snapshotter" - version: "v0.2.3" + version: "v0.3.3" ovmf: description: "Firmware, implementation of UEFI for virtual machines."