From 8c51e02f55e0692f095ddcffdcde978bdd29da9a Mon Sep 17 00:00:00 2001 From: "James O. D. Hunt" Date: Tue, 13 Feb 2024 17:57:01 +0000 Subject: [PATCH] packaging: Add the kata manager script Add `kata-manager.sh` to the release packages. Fixes: #9066. Signed-off-by: James O. D. Hunt --- .../build-kata-static-tarball-amd64.yaml | 1 + .../kata-deploy/local-build/Makefile | 3 + .../local-build/kata-deploy-binaries.sh | 56 +++++++++++++++++++ 3 files changed, 60 insertions(+) diff --git a/.github/workflows/build-kata-static-tarball-amd64.yaml b/.github/workflows/build-kata-static-tarball-amd64.yaml index 02ee00b07b..f797fe8d85 100644 --- a/.github/workflows/build-kata-static-tarball-amd64.yaml +++ b/.github/workflows/build-kata-static-tarball-amd64.yaml @@ -36,6 +36,7 @@ jobs: - firecracker - genpolicy - kata-ctl + - kata-manager - kernel - kernel-confidential - kernel-dragonball-experimental diff --git a/tools/packaging/kata-deploy/local-build/Makefile b/tools/packaging/kata-deploy/local-build/Makefile index fa35544e49..472df2ace4 100644 --- a/tools/packaging/kata-deploy/local-build/Makefile +++ b/tools/packaging/kata-deploy/local-build/Makefile @@ -111,6 +111,9 @@ pause-image-tarball: kata-ctl-tarball: ${MAKE} $@-build +kata-manager-tarball: + ${MAKE} $@-build + kernel-dragonball-experimental-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 091860bc5b..2ebfcc1971 100755 --- a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh +++ b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh @@ -97,6 +97,7 @@ options: firecracker genpolicy kata-ctl + kata-manager kernel kernel-confidential kernel-dragonball-experimental @@ -825,6 +826,53 @@ install_pause_image() { } +install_script_helper() { + local script="${1:-}" + [ -n "$script" ] || die "need script" + + local script_path + + # If the script isn't specified as an absolute or relative path, + # find it. + if grep -q '/' <<< "$script" + then + script_path="$script" + else + script_path=$(find "${repo_root_dir}/" -type f -name "$script") + fi + + local script_file + script_file=$(basename "$script_path") + + local script_file_name + + # Remove any extension + script_file_name="${script_file%%.*}" + + info "installing utility script ${script}" + + local bin_dir + bin_dir="${destdir}/opt/kata/bin/" + + mkdir -p "$bin_dir" + + sudo install -D \ + --owner root \ + --group root \ + --mode "${default_binary_permissions}" \ + "${script_path}" \ + "${bin_dir}/${script_file}" + + [ "$script_file" = "$script_file_name" ] && return 0 + + pushd "$bin_dir" &>/dev/null + + # Create a sym-link with the extension removed + sudo ln -sf "$script_file" "$script_file_name" + + popd &>/dev/null +} + install_tools_helper() { tool=${1} @@ -875,6 +923,10 @@ install_kata_ctl() { install_tools_helper "kata-ctl" } +install_kata_manager() { + install_script_helper "kata-manager.sh" +} + install_runk() { install_tools_helper "runk" } @@ -913,6 +965,7 @@ handle_build() { install_initrd_confidential install_initrd_mariner install_kata_ctl + install_kata_manager install_kernel install_kernel_confidential install_kernel_dragonball_experimental @@ -951,6 +1004,8 @@ handle_build() { kata-ctl) install_kata_ctl ;; + kata-manager) install_kata_manager ;; + kernel) install_kernel ;; kernel-confidential) install_kernel_confidential ;; @@ -1089,6 +1144,7 @@ main() { firecracker genpolicy kata-ctl + kata-manager kernel kernel-experimental nydus