From 2b9f79cfc98d809a0c4e31a96a596e2488328825 Mon Sep 17 00:00:00 2001 From: Julio Montes Date: Fri, 15 Oct 2021 15:15:32 -0500 Subject: [PATCH] snap: add cloud-hypervisor and experimental kernel Add cloud-hypervisor and experimental kernel as part of the kata snap fixes #2852 Signed-off-by: Julio Montes --- snap/snapcraft.yaml | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 7179db8eec..a9bbb8529d 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -139,7 +139,7 @@ parts: cp kata-containers*.img ${kata_image_dir} runtime: - after: [godeps, image] + after: [godeps, image, cloud-hypervisor] plugin: nil build-attributes: [no-patchelf] override-build: | @@ -185,6 +185,7 @@ parts: - flex override-build: | yq=${SNAPCRAFT_STAGE}/yq + export PATH="${PATH}:${SNAPCRAFT_STAGE}" export GOPATH=${SNAPCRAFT_STAGE}/gopath kata_dir=${GOPATH}/src/github.com/${SNAPCRAFT_PROJECT_NAME}/${SNAPCRAFT_PROJECT_NAME} versions_file="${kata_dir}/versions.yaml" @@ -199,10 +200,17 @@ parts: kata_dir=${GOPATH}/src/github.com/${SNAPCRAFT_PROJECT_NAME}/${SNAPCRAFT_PROJECT_NAME} cd ${kata_dir}/tools/packaging/kernel + kernel_dir_prefix="kata-linux-" # Setup and build kernel - ./build-kernel.sh -v ${kernel_version} -d setup - kernel_dir_prefix="kata-linux-" + if [ "$(uname -m)" = "x86_64" ]; then + kernel_version="$(${yq} r $versions_file assets.kernel-experimental.tag)" + kernel_version=${kernel_version#v} + kernel_dir_prefix="kata-linux-experimental-" + ./build-kernel.sh -e -v ${kernel_version} -d setup + else + ./build-kernel.sh -v ${kernel_version} -d setup + fi cd ${kernel_dir_prefix}* make -j $(($(nproc)-1)) EXTRAVERSION=".container" @@ -327,6 +335,22 @@ parts: # Hack: move qemu to / "snap/kata-containers/current/": "./" + cloud-hypervisor: + plugin: nil + after: [godeps] + override-build: | + export GOPATH=${SNAPCRAFT_STAGE}/gopath + yq=${SNAPCRAFT_STAGE}/yq + kata_dir=${GOPATH}/src/github.com/${SNAPCRAFT_PROJECT_NAME}/${SNAPCRAFT_PROJECT_NAME} + versions_file="${kata_dir}/versions.yaml" + version="$(${yq} r ${versions_file} assets.hypervisor.cloud_hypervisor.version)" + url="https://github.com/cloud-hypervisor/cloud-hypervisor/releases/download/${version}" + curl -L ${url}/cloud-hypervisor-static -o cloud-hypervisor + curl -LO ${url}/clh-remote + + install -D cloud-hypervisor ${SNAPCRAFT_PART_INSTALL}/usr/bin/cloud-hypervisor + install -D clh-remote ${SNAPCRAFT_PART_INSTALL}/usr/bin/clh-remote + apps: runtime: command: usr/bin/kata-runtime