diff --git a/.gitignore b/.gitignore index b34d877..ad07063 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,30 @@ /kata-containers-3.6.0.tar.gz /kata-containers-3.7.0-vendor.tar.gz /kata-containers-3.7.0.tar.gz +/kata-containers-3.9.0-vendor.tar.gz +/kata-containers-3.9.0.tar.gz +/kata-containers-3.11.0-vendor.tar.gz +/kata-containers-3.11.0.tar.gz +/kata-containers-3.12.0-vendor.tar.gz +/kata-containers-3.12.0.tar.gz +/kata-containers-3.13.0-vendor.tar.gz +/kata-containers-3.13.0.tar.gz +/kata-containers-3.14.0-vendor.tar.gz +/kata-containers-3.14.0.tar.gz +/kata-containers-3.15.0.tar.gz +/kata-containers-3.15.0-vendor.tar.gz +/kata-containers-3.16.0.tar.gz +/kata-containers-3.16.0-vendor.tar.gz +/kata-containers-3.16.0-fedora-vendor.tar.gz +/kata-containers-3.17.0.tar.gz +/kata-containers-3.17.0-vendor.tar.gz +/kata-containers-3.18.0.tar.gz +/kata-containers-3.18.0-vendor.tar.gz +/kata-containers-3.19.1.tar.gz +/kata-containers-3.19.1-vendor.tar.gz +/kata-containers-3.20.0.tar.gz +/kata-containers-3.20.0-vendor.tar.gz +/kata-containers-3.21.0.tar.gz +/kata-containers-3.21.0-vendor.tar.gz +/kata-containers-3.22.0.tar.gz +/kata-containers-3.22.0-vendor.tar.gz diff --git a/1000-Remove-shebang-in-non-executable-completion-script.patch b/1000-Remove-shebang-in-non-executable-completion-script.patch deleted file mode 100644 index 6122484..0000000 --- a/1000-Remove-shebang-in-non-executable-completion-script.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 1c65024709d7c28bf78b42c59a135df17513d78d Mon Sep 17 00:00:00 2001 -From: Christophe de Dinechin -Date: Thu, 12 Sep 2019 12:57:39 +0200 -Subject: [PATCH] Remove shebang in non-executable completion script - -Raised during package review [1] by rpmlint - -[1] https://bugzilla.redhat.com/show_bug.cgi?id=1590425#c8 - -Signed-off-by: Christophe de Dinechin ---- - src/runtime/data/completions/bash/kata-runtime | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/src/runtime/data/completions/bash/kata-runtime b/src/runtime/data/completions/bash/kata-runtime -index c293483..58ab978 100644 ---- a/src/runtime/data/completions/bash/kata-runtime -+++ b/src/runtime/data/completions/bash/kata-runtime -@@ -1,4 +1,3 @@ --#!/usr/bin/env bash - # - # Copyright (c) 2018 Intel Corporation - # --- -2.21.0 diff --git a/1001-Remove-warnings-as-compilation-errors.patch b/1001-Remove-warnings-as-compilation-errors.patch index a4450fa..140375f 100644 --- a/1001-Remove-warnings-as-compilation-errors.patch +++ b/1001-Remove-warnings-as-compilation-errors.patch @@ -1,34 +1,32 @@ -From f8f40b91620577323b0167eda66b2a3885d1031e Mon Sep 17 00:00:00 2001 +From 983b1fb5ba4a4b8ecbb24938b3fd055c007a73d8 Mon Sep 17 00:00:00 2001 From: Emanuel Lima -Date: Thu, 25 Jul 2024 12:01:32 -0300 +Date: Mon, 6 Jan 2025 16:11:19 -0300 Subject: [PATCH] Remove warnings as compilation errors -This is blocking kata-containers to be built with rust 1.79 - Signed-off-by: Emanuel Lima --- - src/agent/Makefile | 4 +- - src/dragonball/Makefile | 1 - - src/libs/Makefile | 1 - - src/runtime-rs/Makefile | 4 +- - src/tools/agent-ctl/Makefile | 4 +- - src/tools/genpolicy/Makefile | 4 +- - src/tools/kata-ctl/Makefile | 6 +- - src/tools/runk/Makefile | 2 +- - src/tools/trace-forwarder/Makefile | 2 +- - utils.mk | 1 - - 10 files changed + src/agent/Makefile | 4 ++-- + src/dragonball/Makefile | 4 ++-- + src/libs/Makefile | 2 +- + src/runtime-rs/Makefile | 4 ++-- + src/tools/agent-ctl/Makefile | 4 ++-- + src/tools/genpolicy/Makefile | 6 +++--- + src/tools/kata-ctl/Makefile | 6 +++--- + src/tools/runk/Makefile | 2 +- + src/tools/trace-forwarder/Makefile | 2 +- + utils.mk | 2 +- + 10 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/agent/Makefile b/src/agent/Makefile -index e0e76a9cd..5b8b3b0d5 100644 +index e62a894aa..39d351213 100644 --- a/src/agent/Makefile +++ b/src/agent/Makefile -@@ -134,14 +134,14 @@ static-checks-build: $(GENERATED_CODE) +@@ -130,14 +130,14 @@ static-checks-build: $(GENERATED_CODE) $(TARGET): $(GENERATED_CODE) $(TARGET_PATH) $(TARGET_PATH): show-summary - @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) $(GENERATED_FILES): %: %.in @sed $(foreach r,$(GENERATED_REPLACEMENTS),-e 's|@$r@|$($r)|g') "$<" > "$@" @@ -36,102 +34,109 @@ index e0e76a9cd..5b8b3b0d5 100644 ##TARGET optimize: optimized build optimize: show-summary show-header - @RUSTFLAGS="-C link-arg=-s $(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) -+ @RUSTFLAGS="-C link-arg=-s $(EXTRA_RUSTFLAGS)" cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) ++ @RUSTFLAGS="-C link-arg=-s $(EXTRA_RUSTFLAGS) " cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) ##TARGET install: install agent install: install-services diff --git a/src/dragonball/Makefile b/src/dragonball/Makefile -index 40bb7f915..27f12c30b 100644 +index 40bb7f915..5eb2c1016 100644 --- a/src/dragonball/Makefile +++ b/src/dragonball/Makefile -@@ -27,7 +27,6 @@ clippy: +@@ -27,8 +27,8 @@ clippy: @echo "INFO: cargo clippy..." cargo clippy --all-targets --all-features \ -- \ - -D warnings ++ vendor: @echo "INFO: vendor do nothing.." + diff --git a/src/libs/Makefile b/src/libs/Makefile -index aabaa3391..c79d437f9 100644 +index aabaa3391..1fb6b20c3 100644 --- a/src/libs/Makefile +++ b/src/libs/Makefile -@@ -25,7 +25,6 @@ clippy: +@@ -25,7 +25,7 @@ clippy: @echo "INFO: cargo clippy..." cargo clippy --all-targets --all-features --release \ -- \ - -D warnings ++ format: @echo "INFO: cargo fmt..." diff --git a/src/runtime-rs/Makefile b/src/runtime-rs/Makefile -index 7e1c787cc..f282facff 100644 +index 0bb0617ff..188040864 100644 --- a/src/runtime-rs/Makefile +++ b/src/runtime-rs/Makefile -@@ -559,7 +559,7 @@ static-checks-build: $(GENERATED_FILES) +@@ -600,7 +600,7 @@ static-checks-build: $(GENERATED_FILES) $(TARGET): $(GENERATED_FILES) $(TARGET_PATH) $(TARGET_PATH): $(SOURCES) | show-summary -- @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) --$(BUILD_TYPE) $(EXTRA_RUSTFEATURES) -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo build --target $(TRIPLE) --$(BUILD_TYPE) $(EXTRA_RUSTFEATURES) +- @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) $(GENERATED_FILES): %: %.in @sed \ -@@ -569,7 +569,7 @@ $(GENERATED_FILES): %: %.in +@@ -610,7 +610,7 @@ $(GENERATED_FILES): %: %.in ##TARGET optimize: optimized build optimize: $(SOURCES) | show-summary show-header - @RUSTFLAGS="-C link-arg=-s $(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) --$(BUILD_TYPE) $(EXTRA_RUSTFEATURES) -+ @RUSTFLAGS="-C link-arg=-s $(EXTRA_RUSTFLAGS)" cargo build --target $(TRIPLE) --$(BUILD_TYPE) $(EXTRA_RUSTFEATURES) ++ @RUSTFLAGS="-C link-arg=-s $(EXTRA_RUSTFLAGS) " cargo build --target $(TRIPLE) --$(BUILD_TYPE) $(EXTRA_RUSTFEATURES) ##TARGET clean: clean build clean: clean-generated-files diff --git a/src/tools/agent-ctl/Makefile b/src/tools/agent-ctl/Makefile -index a49f88e6b..3a7354b70 100644 +index a49f88e6b..855017db4 100644 --- a/src/tools/agent-ctl/Makefile +++ b/src/tools/agent-ctl/Makefile -@@ -13,7 +13,7 @@ endif +@@ -9,7 +9,7 @@ endif default: build build: - @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) --$(BUILD_TYPE) -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo build --target $(TRIPLE) --$(BUILD_TYPE) ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo build --target $(TRIPLE) --$(BUILD_TYPE) static-checks-build: @echo "INFO: static-checks-build do nothing.." -@@ -27,7 +27,7 @@ vendor: +@@ -23,7 +23,7 @@ vendor: test: install: - @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo install --locked --target $(TRIPLE) --path . -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo install --locked --target $(TRIPLE) --path . ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo install --locked --target $(TRIPLE) --path . check: standard_rust_check diff --git a/src/tools/genpolicy/Makefile b/src/tools/genpolicy/Makefile -index fe56fa098..fdedf2027 100644 +index 7410e20ed..b33541467 100644 --- a/src/tools/genpolicy/Makefile +++ b/src/tools/genpolicy/Makefile -@@ -13,7 +13,7 @@ ifeq ($(ARCH), ppc64le) +@@ -24,7 +24,7 @@ $(GENERATED_FILES): %: %.in default: build - build: -- @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) --$(BUILD_TYPE) -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo build --target $(TRIPLE) --$(BUILD_TYPE) + build: $(GENERATED_FILES) +- @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) static-checks-build: @echo "INFO: static-checks-build do nothing.." -@@ -27,7 +27,7 @@ vendor: - test: +@@ -37,10 +37,10 @@ vendor: + cargo vendor - install: + test: $(GENERATED_FILES) +- @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo test --all-targets --all-features --target $(TRIPLE) ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo test --all-targets --all-features --target $(TRIPLE) + + install: $(GENERATED_FILES) - @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo install --locked --target $(TRIPLE) --path . -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo install --locked --target $(TRIPLE) --path . ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo install --locked --target $(TRIPLE) --path . - check: standard_rust_check + check: $(GENERATED_CODE) standard_rust_check diff --git a/src/tools/kata-ctl/Makefile b/src/tools/kata-ctl/Makefile -index 7595c0c23..0fb312c63 100644 +index 7595c0c23..05d171f5a 100644 --- a/src/tools/kata-ctl/Makefile +++ b/src/tools/kata-ctl/Makefile @@ -43,7 +43,7 @@ default: $(TARGET) build @@ -139,7 +144,7 @@ index 7595c0c23..0fb312c63 100644 build: - @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo build --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) static-checks-build: $(GENERATED_CODE) @@ -148,51 +153,52 @@ index 7595c0c23..0fb312c63 100644 test: $(GENERATED_CODE) - @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo test --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) -- --nocapture -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo test --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) -- --nocapture ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo test --target $(TRIPLE) $(if $(findstring release,$(BUILD_TYPE)),--release) $(EXTRA_RUSTFEATURES) -- --nocapture install: - @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo install --locked --target $(TRIPLE) --path . --root $(INSTALL_PATH) -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo install --locked --target $(TRIPLE) --path . --root $(INSTALL_PATH) ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo install --locked --target $(TRIPLE) --path . --root $(INSTALL_PATH) check: $(GENERATED_CODE) standard_rust_check diff --git a/src/tools/runk/Makefile b/src/tools/runk/Makefile -index 186955679..633e0416a 100644 +index 186955679..b23cab145 100644 --- a/src/tools/runk/Makefile +++ b/src/tools/runk/Makefile -@@ -36,7 +36,7 @@ endif +@@ -32,7 +32,7 @@ endif default: build build: - @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) --$(BUILD_TYPE) $(EXTRA_RUSTFEATURES) -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo build --target $(TRIPLE) --$(BUILD_TYPE) $(EXTRA_RUSTFEATURES) ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo build --target $(TRIPLE) --$(BUILD_TYPE) $(EXTRA_RUSTFEATURES) static-checks-build: @echo "INFO: static-checks-build do nothing.." diff --git a/src/tools/trace-forwarder/Makefile b/src/tools/trace-forwarder/Makefile -index 5d9f71856..249520a1f 100644 +index 5d9f71856..bf6b80a54 100644 --- a/src/tools/trace-forwarder/Makefile +++ b/src/tools/trace-forwarder/Makefile -@@ -13,7 +13,7 @@ endif +@@ -9,7 +9,7 @@ endif default: build build: - @RUSTFLAGS="$(EXTRA_RUSTFLAGS) --deny warnings" cargo build --target $(TRIPLE) --$(BUILD_TYPE) -+ @RUSTFLAGS="$(EXTRA_RUSTFLAGS)" cargo build --target $(TRIPLE) --$(BUILD_TYPE) ++ @RUSTFLAGS="$(EXTRA_RUSTFLAGS) " cargo build --target $(TRIPLE) --$(BUILD_TYPE) static-checks-build: @echo "INFO: static-checks-build do nothing.." diff --git a/utils.mk b/utils.mk -index 1a153e26c..14c575f8d 100644 +index 1a153e26c..4edba5524 100644 --- a/utils.mk +++ b/utils.mk -@@ -176,7 +176,6 @@ standard_rust_check: +@@ -183,7 +183,7 @@ standard_rust_check: cargo fmt -- --check cargo clippy --all-targets --all-features --release \ -- \ - -D warnings ++ # Install a file (full version). # -- -2.43.5 +2.47.1 diff --git a/kata-containers.spec b/kata-containers.spec index 1ee2de9..7542729 100644 --- a/kata-containers.spec +++ b/kata-containers.spec @@ -27,8 +27,8 @@ %global rcstr -%{rcver} %endif -# htps://github.com/kata-containers/kata-containers -Version: 3.7.0 +# https://github.com/kata-containers/kata-containers +Version: 3.22.0 %global tag %{version}%{?rcstr} %global domain github.com @@ -52,8 +52,11 @@ workload isolation and security advantages of VMs. https://katacontainers.io/.} CONTRIBUTING.md\\\ src/agent/README.md +# Note: the original vendor tarball is quite big (918M for 3.16) +# Unlike for RHEL, we cannot strip it down because we build all components +# (RHEL builds only build kata-agent) Name: %{repo} -Release: 1%{?rcrel}%{?dist}.0 +Release: 1%{?rcrel}%{?dist} Summary: Kata Containers version 3.x repository License: Apache-2.0 Url: https://%{download} @@ -66,7 +69,6 @@ Source5: 50-kata # Keep this patch downstream as it'd be hard to justify such change upstream Patch0999: 0999-osbuilder-Adjust-agent_version-for-our-builds.patch -Patch1000: 1000-Remove-shebang-in-non-executable-completion-script.patch Patch1001: 1001-Remove-warnings-as-compilation-errors.patch %if 0%{?have_go_rpm_macros} @@ -93,6 +95,7 @@ BuildRequires: dbus-daemon BuildRequires: dracut BuildRequires: kernel BuildRequires: busybox +BuildRequires: rsyslog %if 0%{?bundled_rust_deps} BuildRequires: cargo @@ -135,6 +138,7 @@ BuildRequires: crate(ttrpc/default) >= 0.0.0 %endif Requires: busybox +Requires: binutils Requires: dracut Requires: kernel Requires: qemu-kvm-core >= 8.2.0-1 @@ -380,14 +384,63 @@ fi %exclude %{katadefaults}/configuration-*.toml %exclude %{kataosbuilderdir}/rootfs-builder/alpine %exclude %{kataosbuilderdir}/rootfs-builder/centos -%exclude %{kataosbuilderdir}/rootfs-builder/clearlinux %exclude %{kataosbuilderdir}/rootfs-builder/debian %exclude %{kataosbuilderdir}/rootfs-builder/template %exclude %{kataosbuilderdir}/rootfs-builder/ubuntu %changelog -* Thu Jul 25 2024 Emanuel Lima - 3.7.0-1 +* Tue Nov 04 2025 Christophe de Dinechin - 3.22.0-1 +- kata-containers 3.22.0 + +* Thu Sep 25 2025 Christophe de Dinechin - 3.21.0-1 +- kata-containers 3.21.0 + +* Wed Sep 10 2025 Christophe de Dinechin - 3.20.0-1 +- kata-containers 3.20.0 + +* Fri Aug 15 2025 Maxwell G - 3.19.1-1.1 +- Rebuild for golang-1.25.0 + +* Mon Jul 28 2025 Christophe de Dinechin - 3.19.1-1 +- kata-containers 3.19.0 + +* Mon Jul 28 2025 Christophe de Dinechin - 3.18.0-1 +- kata-containers 3.18.0 + +* Fri Jul 25 2025 Christophe de Dinechin - 3.17.0-1 +- kata-containers 3.17.0 + +* Thu Jul 24 2025 Christophe de Dinechin - 3.16.0-1 +- kata-containers 3.16.0 + +* Thu Jul 24 2025 Christophe de Dinechin - 3.15.0-1 +- kata-containers 3.15.0 + +* Wed Jul 23 2025 Christophe de Dinechin - 3.14.1-1 +- kata-containers 3.14.1, add fix for systemd configuration and rpm sanity test + +* Tue Jul 08 2025 Christophe de Dinechin - 3.14.0-1 +- kata-containers 3.14.0, update to latest release + +* Mon Jul 07 2025 Christophe de Dinechin - 3.13.0-1 +- kata-containers 3.13.0, required vendor source correction + +* Mon Jan 06 2025 Emanuel Lima - 3.12.0-1 +- kata-containers 3.12.0 + +* Tue Nov 26 2024 Emanuel Lima - 3.11.0-1 +- kata-containers 3.11.0 + +* Mon Oct 07 2024 Emanuel Lima - 3.9.0-1 +- kata-containers 3.9.0 + Fix warnings as compilation errors patch + Add time dependency compilation error patch + Add arch name compilation failure patch + Add binutils and rsyslog as dependencies + Add AGENT_POLICY patch + +* Mon Sep 16 2024 Emanuel Lima - 3.7.0-1 - kata-containers 3.7.0 Add "io.kubernetes.cri-o.Devices" to cri-o config Remove the openssl feature patch diff --git a/kata-osbuilder.sh b/kata-osbuilder.sh index 15c7842..c523d05 100755 --- a/kata-osbuilder.sh +++ b/kata-osbuilder.sh @@ -210,6 +210,11 @@ generate_rootfs() # Generate modules-load.d file generate_modules_load_conf + + # Mask initrd.target and default to multi-user.target + # Temporary workaround for KATA-3944 + systemctl mask --root=${DRACUT_ROOTFS} initrd.target + systemctl set-default --root=${DRACUT_ROOTFS} multi-user.target } diff --git a/sources b/sources index e52fe18..c82bc85 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (kata-containers-3.7.0-vendor.tar.gz) = 7f3e6de72b65647757207d06e93e3e4f66e7eb8780be464db1df707a991202428bc0dbbf56f0f131e7eff6602be4ccfda615e562bc12d02bae226e700e632b6d -SHA512 (kata-containers-3.7.0.tar.gz) = ae084f8765a82d725167078ba0494d0eeb11d1d7af95a010e943ac262fd7f0556a06903337a2a52820a35c7b12da5493a28fb66f48afaa9a4b680a587e6d4db0 +SHA512 (kata-containers-3.22.0.tar.gz) = 142bc70b6455f545d534371a845980ed00985d7225b5f672f3fef046a6f0a31871bd69ee2c931ab94c10089086123fe5987ec6615d7a7308027531269c4dae48 +SHA512 (kata-containers-3.22.0-vendor.tar.gz) = 10b28d746d5176acce4abcb902213edcfb43b0b390a5d20f114b7dc4e11bc8de26098f180bdf75bcff3e6d03f2b3a31908f4386d7ca24119f9e001cd99c52060 diff --git a/test-kata-rpm-containerd.sh b/test-kata-rpm-containerd.sh new file mode 100755 index 0000000..f34c27a --- /dev/null +++ b/test-kata-rpm-containerd.sh @@ -0,0 +1,93 @@ +#!/bin/bash +set -euo pipefail + +# Usage: ./test_kata_rpm_containerd.sh /path/to/kata-containers-*.rpm + +RPM_PATH=${1:-} + +if [[ -z "$RPM_PATH" ]]; then + echo "Usage: $0 /path/to/kata-containers-*.rpm" + exit 1 +fi + +# 1. Remove existing kata-containers packages and install the RPM +echo "[1/7] Removing existing kata-containers packages..." +sudo rpm -e --allmatches kata-containers 2>/dev/null || echo "No existing kata-containers packages to remove" + +echo "[2/7] Installing Kata Containers RPM: $RPM_PATH" +sudo rpm -i "$RPM_PATH" + +echo "[3/7] Checking installed binaries and versions..." +# kata-agent is not expected on the host; it runs inside the Kata VM image. +if command -v kata-runtime >/dev/null 2>&1; then + kata-runtime --version +else + echo "kata-runtime not found in PATH!"; exit 1 +fi +if command -v kata-ctl >/dev/null 2>&1; then + kata-ctl version +else + echo "kata-ctl not found in PATH!"; exit 1 +fi + +echo "[4/7] Checking QEMU version..." +if command -v qemu-system-x86_64 >/dev/null 2>&1; then + qemu-system-x86_64 --version +else + echo "qemu-system-x86_64 not found in PATH!"; exit 1 +fi + +echo "[5/7] Loading vhost_net kernel module (required for Kata networking)..." +sudo modprobe vhost_net + +# 6. Run kata-runtime check (system compatibility) +echo "[6/7] Running kata-runtime check (system compatibility)..." +if ! kata-runtime check; then + echo "[ERROR] System is not capable of running Kata Containers." + exit 1 +fi + +# 7. Run a simple Kata container using containerd (if available) +echo "[7/7] Attempting to run a test container with Kata runtime (containerd)..." +if command -v ctr >/dev/null 2>&1; then + # Clean up any existing test containers + echo "[Test] Cleaning up any existing test containers..." + sudo ctr task kill kata-test-bg 2>/dev/null || true + sudo ctr task rm kata-test-bg 2>/dev/null || true + sudo ctr container rm kata-test-bg 2>/dev/null || true + + sudo ctr images pull docker.io/library/alpine:latest + # Start a container in the background (do not use --rm so we can exec into it) + sudo ctr run -d --runtime io.containerd.kata.v2 docker.io/library/alpine:latest kata-test-bg sleep 300 + # Wait a moment for the container to be up + sleep 2 + echo "[Test] Exec into the running container and run 'uname -a'..." + sudo ctr task exec --exec-id kata-uname kata-test-bg uname -a + echo "[Test] Show /etc/os-release inside the container..." + sudo ctr task exec --exec-id kata-osrel kata-test-bg cat /etc/os-release + + echo "[Test] Verify we're running in a Kata VM by checking /proc/cmdline..." + HOST_CMDLINE=$(cat /proc/cmdline) + GUEST_CMDLINE=$(sudo ctr task exec --exec-id kata-cmdline kata-test-bg cat /proc/cmdline) + echo "[Test] Host cmdline: ${HOST_CMDLINE}" + echo "[Test] Container cmdline: ${GUEST_CMDLINE}" + if [[ "${HOST_CMDLINE}" == "${GUEST_CMDLINE}" ]]; then + echo "[ERROR] VM verification: Container cmdline is the same as host - this indicates the container is NOT running in a Kata VM!" + exit 1 + else + echo "[SUCCESS] Kata VM isolation is working correctly!" + fi + # Clean up: kill the task and delete the container + echo "[Cleanup] Deleting test container..." + sudo ctr task kill kata-test-bg || true + sudo ctr task rm kata-test-bg || true + sudo ctr container rm kata-test-bg || true + # Also run the original test (run+rm) + sudo ctr run --runtime io.containerd.kata.v2 --rm docker.io/library/alpine:latest kata-test uname -a || { + echo "Failed to run container with Kata runtime."; exit 1; + } +else + echo "containerd (ctr) not found, skipping container test." +fi + +echo "All tests completed. If no errors above, the RPM is likely working with containerd." diff --git a/test-kata-rpm-crio.sh b/test-kata-rpm-crio.sh new file mode 100755 index 0000000..fc5365b --- /dev/null +++ b/test-kata-rpm-crio.sh @@ -0,0 +1,208 @@ +#!/bin/bash +set -euo pipefail + +# Usage: ./test_kata_rpm_crio.sh /path/to/kata-containers-3.20*.rpm + +RPM_PATH=${1:-} + +if [[ -z "$RPM_PATH" ]]; then + echo "Usage: $0 /path/to/kata-containers-*.rpm" + exit 1 +fi + +# 1. Remove existing kata-containers packages and install the RPM +echo "[1/7] Removing existing kata-containers packages..." +sudo rpm -e --allmatches kata-containers 2>/dev/null || echo "No existing kata-containers packages to remove" + +echo "[2/7] Installing Kata Containers RPM: $RPM_PATH" +sudo rpm -i "$RPM_PATH" + +echo "[3/7] Checking installed binaries and versions..." +# kata-agent is not expected on the host; it runs inside the Kata VM image. +if command -v kata-runtime >/dev/null 2>&1; then + kata-runtime --version +else + echo "kata-runtime not found in PATH!"; exit 1 +fi +if command -v kata-ctl >/dev/null 2>&1; then + kata-ctl version +else + echo "kata-ctl not found in PATH!"; exit 1 +fi + +echo "[4/7] Checking QEMU version..." +if command -v qemu-system-x86_64 >/dev/null 2>&1; then + qemu-system-x86_64 --version +else + echo "qemu-system-x86_64 not found in PATH!"; exit 1 +fi + +echo "[5/7] Loading vhost_net kernel module (required for Kata networking)..." +sudo modprobe vhost_net + +# 6. Run kata-runtime check (system compatibility) +echo "[6/7] Running kata-runtime check (system compatibility)..." +if ! kata-runtime check; then + echo "[ERROR] System is not capable of running Kata Containers." + exit 1 +fi + +# 7. Run a simple Kata container using CRI-O (if available) +echo "[7/7] Attempting to run a test container with Kata runtime (CRI-O)..." +if command -v crictl >/dev/null 2>&1; then + # Check if CRI-O is running, if not try to start it + if ! systemctl is-active --quiet crio; then + echo "[Test] CRI-O is not running, attempting to start it..." + sudo systemctl start crio || { + echo "[WARNING] Failed to start CRI-O..." + exit 1 + } + fi + + # Configure crictl to use CRI-O instead of containerd + echo "[Test] Configuring crictl to use CRI-O..." + sudo crictl config --set runtime-endpoint=unix:///var/run/crio/crio.sock + sudo crictl config --set image-endpoint=unix:///var/run/crio/crio.sock + # Pull the image + echo "[Test] Pulling alpine image..." + sudo crictl pull docker.io/library/alpine:latest + + # Create temporary pod and container config files + echo "[Test] Creating pod and container configurations..." + + # Create pod config (minimal Kata documentation config) + cat > /tmp/pod-config.json << 'EOF' +{ + "metadata": { + "name": "busybox-pod", + "uid": "busybox-pod", + "namespace": "test.kata" + }, + "hostname": "busybox_host", + "log_directory": "", + "dns_config": { + }, + "port_mappings": [], + "resources": { + }, + "labels": { + }, + "annotations": { + }, + "linux": { + } +} +EOF + + # Create container config + cat > /tmp/container-config.json << 'EOF' +{ + "metadata": { + "name": "busybox-container" + }, + "image": { + "image": "docker.io/library/alpine:latest" + }, + "command": ["sleep", "300"], + "linux": {} +} +EOF + + # Create pod sandbox + echo "[Test] Creating pod sandbox with kata runtime..." + POD_ID=$(sudo crictl runp --runtime kata /tmp/pod-config.json 2>/dev/null || echo "") + if [[ -z "$POD_ID" ]]; then + echo "[Test] Failed to create pod sandbox with Kata runtime" + journalctl -g kata + echo "[Test] Failed to create pod sandbox with Kata runtime, exiting" + exit 1 + fi + + if [[ -n "$POD_ID" ]]; then + echo "[Test] Pod created with ID: $POD_ID, waiting for it to be ready..." + # Wait for pod to be ready (up to 30 seconds) + for i in {1..30}; do + if sudo crictl inspectp $POD_ID >/dev/null 2>&1; then + echo "[Test] Pod is ready!" + break + fi + echo "[Test] Waiting for pod to be ready... ($i/30)" + sleep 1 + done + + # Create container + echo "[Test] Creating container..." + CONTAINER_ID=$(sudo crictl create $POD_ID /tmp/container-config.json /tmp/pod-config.json 2>/dev/null || echo "") + if [[ -z "$CONTAINER_ID" ]]; then + echo "[Test] Creating container with default runtime..." + CONTAINER_ID=$(sudo crictl create $POD_ID /tmp/container-config.json /tmp/pod-config.json 2>/dev/null || echo "") + fi + + if [[ -n "$CONTAINER_ID" ]]; then + echo "[Test] Container created with ID: $CONTAINER_ID" + + # Start container + echo "[Test] Starting container..." + if ! sudo crictl start $CONTAINER_ID 2>/dev/null; then + # Clean up and retry + echo "[Test] Container start failed, cleaning up and retrying..." + sudo crictl stop $CONTAINER_ID 2>/dev/null || true + sudo crictl rm $CONTAINER_ID 2>/dev/null || true + CONTAINER_ID=$(sudo crictl create $POD_ID /tmp/container-config.json /tmp/pod-config.json 2>/dev/null || echo "") + if [[ -z "$CONTAINER_ID" ]] || ! sudo crictl start $CONTAINER_ID; then + echo "[ERROR] Failed to start container after cleanup" + exit 1 + fi + fi + + # Wait a moment for the container to be up + sleep 2 + + # Execute commands in the container + echo "[Test] Exec into the running container and run 'uname -a'..." + sudo crictl exec $CONTAINER_ID uname -a || echo "uname command failed" + + echo "[Test] Show /etc/os-release inside the container..." + sudo crictl exec $CONTAINER_ID cat /etc/os-release || echo "cat /etc/os-release failed" + + echo "[Test] Verify we're running in a Kata VM by checking /proc/cmdline..." + HOST_CMDLINE=$(cat /proc/cmdline) + GUEST_CMDLINE=$(sudo crictl exec $CONTAINER_ID cat /proc/cmdline || echo "cat /proc/cmdline command failed") + echo "[Test] Host cmdline: ${HOST_CMDLINE}" + echo "[Test] Container cmdline: ${GUEST_CMDLINE}" + if [[ "${HOST_CMDLINE}" == "${GUEST_CMDLINE}" ]]; then + echo "[ERROR] The container is NOT running in a Kata VM!" + else + echo "[SUCCESS] Kata VM isolation is working correctly!" + fi + + # Clean up + echo "[Cleanup] Stopping and removing container..." + sudo crictl stop $CONTAINER_ID || true + sudo crictl rm $CONTAINER_ID || true + + if [[ "${HOST_CMDLINE}" == "${GUEST_CMDLINE}" ]]; then + echo "[ERROR] Container was running but not with Kata runtime" + exit 1 + fi + else + echo "[ERROR] Failed to create container" + fi + + # Clean up pod + echo "[Cleanup] Removing pod sandbox..." + sudo crictl stopp $POD_ID || true + sudo crictl rmp $POD_ID || true + else + echo "[ERROR] Failed to create pod sandbox" + fi + + # Clean up temp files + rm -f /tmp/pod-config.json /tmp/container-config.json + + echo "[Test] CRI-O container test completed." +else + echo "CRI-O (crictl) not found, skipping container test." +fi + +echo "All tests completed. If no errors above, the RPM is likely working with CRI-O." diff --git a/vendor-tarball.sh b/vendor-tarball.sh new file mode 100755 index 0000000..6676c88 --- /dev/null +++ b/vendor-tarball.sh @@ -0,0 +1,59 @@ +#!/bin/bash +set -xeuo pipefail + +# Kata version +KATA_VERSION=3.20.0 +RUST_SOURCES_TO_FIX="src/agent src/tools/kata-ctl" + +# Original vendor tarball downloaded from upstream +ORIG_TARBALL="kata-containers-${KATA_VERSION}.tar.gz" +ORIG_VENDOR_TARBALL="kata-containers-${KATA_VERSION}-vendor.tar.gz" +TMPDIR="tmp_vendor_extract" + +# Build directories for agent and kata-ctl +RPM_BUILD_DIR="$HOME/rpmbuild/BUILD/kata-containers-${KATA_VERSION}-build/kata-containers-${KATA_VERSION}" +KATA_AGENT_BUILD_DIR="$RPM_BUILD_DIR/src/agent" +KATA_CTL_BUILD_DIR="$RPM_BUILD_DIR/src/tools/kata-ctl" + +# Extracted directories in the tarball +KATA_AGENT_EXTRACTED_DIR="$TMPDIR/src/agent" +KATA_CTL_EXTRACTED_DIR="$TMPDIR/src/tools/kata-ctl" + +# 1. Extract the original vendor tarball +rm -rf "$TMPDIR" +mkdir -p "$TMPDIR" +[ -f "$ORIG_VENDOR_TARBALL" ] || wget https://github.com/kata-containers/kata-containers/releases/download/$KATA_VERSION/$ORIG_VENDOR_TARBALL + +tar xzf "$ORIG_VENDOR_TARBALL" -C "$TMPDIR" + +# 2. Run cargo vendor in both build directories +mkdir -p $RPM_BUILD_DIR +[ -f "$ORIG_TARBALL" ] || wget https://github.com/kata-containers/kata-containers/archive/$KATA_VERSION/$ORIG_TARBALL +tar xzf "$ORIG_TARBALL" -C $RPM_BUILD_DIR/.. +for dir in "$KATA_AGENT_BUILD_DIR" "$KATA_CTL_BUILD_DIR"; do + pushd "$dir" + cargo vendor + popd +done + +# 3. Copy updated vendor and Cargo.lock into the extracted tree for both components +for src_dir in $RUST_SOURCES_TO_FIX; do + BUILD_DIR="$HOME/rpmbuild/BUILD/kata-containers-${KATA_VERSION}-build/kata-containers-${KATA_VERSION}/$src_dir" + EXTRACTED_DIR="$TMPDIR/$src_dir" + rm -rf "$EXTRACTED_DIR/vendor" + cp -a "$BUILD_DIR/vendor" "$EXTRACTED_DIR/" + cp "$BUILD_DIR/Cargo.lock" "$EXTRACTED_DIR/" +done + +# 4. Remove stale ext.rs if both ext.rs and ext/mod.rs exist in time crate for both +for EXTRACTED_DIR in "$KATA_AGENT_EXTRACTED_DIR" "$KATA_CTL_EXTRACTED_DIR"; do + TIME_SRC="$EXTRACTED_DIR/vendor/time/src" + if [[ -f "$TIME_SRC/ext.rs" && -d "$TIME_SRC/ext" ]]; then + rm -f "$TIME_SRC/ext.rs" + fi +done + +# 5. Repack the updated vendor tarball +tar czf "$ORIG_VENDOR_TARBALL" -C "$TMPDIR" . + +echo "Updated vendor tarball created: $ORIG_VENDOR_TARBALL"