diff --git a/src/tools/csi-kata-directvolume/.gitignore b/src/tools/csi-kata-directvolume/.gitignore new file mode 100644 index 0000000000..e660fd93d3 --- /dev/null +++ b/src/tools/csi-kata-directvolume/.gitignore @@ -0,0 +1 @@ +bin/ diff --git a/tools/packaging/kata-deploy/local-build/Makefile b/tools/packaging/kata-deploy/local-build/Makefile index 77a1660b96..f5fb753481 100644 --- a/tools/packaging/kata-deploy/local-build/Makefile +++ b/tools/packaging/kata-deploy/local-build/Makefile @@ -99,7 +99,7 @@ cloud-hypervisor-glibc-tarball: ${MAKE} $@-build csi-kata-directvolume-tarball: copy-scripts-for-the-tools-build - $(call DUMMY,$@) + ${MAKE} $@-build firecracker-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 04208dca08..04fba73aba 100755 --- a/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh +++ b/tools/packaging/kata-deploy/local-build/kata-deploy-binaries.sh @@ -99,6 +99,7 @@ options: coco-guest-components cloud-hypervisor cloud-hypervisor-glibc + csi-kata-directvolume firecracker genpolicy kata-ctl @@ -1022,6 +1023,7 @@ install_tools_helper() { tool_binary=${tool} [ ${tool} = "agent-ctl" ] && tool_binary="kata-agent-ctl" + [ ${tool} = "csi-kata-directvolume" ] && tool_binary="directvolplugin" [ ${tool} = "trace-forwarder" ] && tool_binary="kata-trace-forwarder" binary=$(find ${repo_root_dir}/src/tools/${tool}/ -type f -name ${tool_binary}) @@ -1043,6 +1045,7 @@ install_tools_helper() { info "Install static ${tool_binary}" mkdir -p "${destdir}/opt/kata/bin/" + [ ${tool} = "csi-kata-directvolume" ] && tool_binary="csi-kata-directvolume" install -D --mode ${binary_permissions} ${binary} "${destdir}/opt/kata/bin/${tool_binary}" } @@ -1054,6 +1057,10 @@ install_genpolicy() { install_tools_helper "genpolicy" } +install_csi_kata_directvolume() { + install_tools_helper "csi-kata-directvolume" +} + install_kata_ctl() { install_tools_helper "kata-ctl" } @@ -1131,6 +1138,8 @@ handle_build() { cloud-hypervisor-glibc) install_clh_glibc ;; + csi-kata-directvolume) install_csi_kata_directvolume ;; + firecracker) install_firecracker ;; genpolicy) install_genpolicy ;; @@ -1350,6 +1359,7 @@ main() { agent-ctl cloud-hypervisor coco-guest-components + csi-kata-directvolume firecracker genpolicy kata-ctl diff --git a/tools/packaging/static-build/tools/.gitignore b/tools/packaging/static-build/tools/.gitignore new file mode 100644 index 0000000000..86def50b86 --- /dev/null +++ b/tools/packaging/static-build/tools/.gitignore @@ -0,0 +1 @@ +install_libseccomp.sh diff --git a/tools/packaging/static-build/tools/Dockerfile b/tools/packaging/static-build/tools/Dockerfile index c60fcb237c..fed9729061 100644 --- a/tools/packaging/static-build/tools/Dockerfile +++ b/tools/packaging/static-build/tools/Dockerfile @@ -10,9 +10,12 @@ COPY install_libseccomp.sh /usr/bin/install_libseccomp.sh ENV DEBIAN_FRONTEND=noninteractive +ENV GO_HOME="/opt" +ENV GOCACHE="${GO_HOME}/.cache" +ENV GOMODCACHE="${GO_HOME}/.modcache" ENV RUSTUP_HOME="/opt/rustup" ENV CARGO_HOME="/opt/cargo" -ENV PATH="/opt/cargo/bin/:${PATH}" +ENV PATH="/opt/cargo/bin/:/opt/go/bin:${PATH}" ENV OPT_LIB="/opt/lib" ENV LIBSECCOMP_LINK_TYPE=static @@ -44,6 +47,11 @@ RUN apt-get update && \ # Tools only build for x86_64 RUN rustup target add x86_64-unknown-linux-musl +RUN kernelname=$(uname -s | tr '[:upper:]' '[:lower:]'); \ + curl -OL "https://storage.googleapis.com/golang/go${GO_TOOLCHAIN}.${kernelname}-amd64.tar.gz" && \ + tar -C "${GO_HOME}" -xzf "go${GO_TOOLCHAIN}.${kernelname}-amd64.tar.gz" && \ + rm "go${GO_TOOLCHAIN}.${kernelname}-amd64.tar.gz" + # cmake looks for musl binutils # For setting CMAKE_AR, find_program searches for musl-ar. # Symlink to system ar. diff --git a/tools/packaging/static-build/tools/build.sh b/tools/packaging/static-build/tools/build.sh index 4862e376da..cf5df09f09 100755 --- a/tools/packaging/static-build/tools/build.sh +++ b/tools/packaging/static-build/tools/build.sh @@ -20,6 +20,7 @@ container_image="${TOOLS_CONTAINER_BUILDER:-$(get_tools_image_name)}" docker pull ${container_image} || \ (docker $BUILDX build $PLATFORM \ + --build-arg GO_TOOLCHAIN="$(get_from_kata_deps ".languages.golang.meta.newest-version")" \ --build-arg RUST_TOOLCHAIN="$(get_from_kata_deps ".languages.rust.meta.newest-version")" \ -t "${container_image}" "${script_dir}" && \ # No-op unless PUSH_TO_REGISTRY is exported as "yes"