Files
Davanum Srinivas ef4b3a3314 script/setup/install-runc: build runc statically
The test tarball from test/build.sh is built on the kubekins image and
run on other distros. A dynamic runc built on Debian trixie needs
GLIBC_2.38 and fails on AL2023 (kubernetes/kubernetes#142987).

Build with `make static` like the runc release binaries. EL has no
libseccomp-static, so the Fedora/EL VMs keep the dynamic build via
RUNC_DYNAMIC=1.

Signed-off-by: Davanum Srinivas <davanum@gmail.com>
2026-10-25 20:50:56 -04:00
..
2026-07-08 21:09:27 +09:00

VM scripts

The scripts in this directory run the containerd integration tests inside a virtual machine (Fedora or an EL distribution, with SELinux Enforcing by default). They are used by the integration-vm job in .github/workflows/ci.yml, but do not depend on Lima and can be used with other VM environments too.

Local usage with Lima

# Boot a plain VM. template:almalinux-8, -9, and -10 are tested too.
# --plain keeps the guest pristine (no guest agent, no mounts, no port forwards).
limactl start --plain --name=default --cpus=2 --memory=4 --disk=60 template:fedora-44

# Copy the source tree into the guest.
limactl cp -r . default:containerd
lima bash -c 'sudo mkdir -p /go/src/github.com/containerd && sudo mv ~/containerd /go/src/github.com/containerd/containerd'

export LIMA_WORKDIR=/go/src/github.com/containerd/containerd

# Provision the guest (packages, Go, runc, CNI plugins, cri-tools, containerd, ...).
lima sudo script/vm/provision.sh

# Run the test suites.
lima sudo script/vm/test-integration.sh
lima sudo CGROUP_DRIVER=systemd script/vm/test-cri-integration.sh
lima sudo CGROUP_DRIVER=systemd script/vm/test-cri.sh

# Clean up.
limactl delete -f default

Environment variables

  • provision.sh: GO_VERSION, RUNC_FLAVOR (runc or crun), SELINUX (Enforcing, Permissive, or Disabled), INSTALL_PACKAGES
  • test-integration.sh: RUNC_FLAVOR
  • test-cri-integration.sh: CGROUP_DRIVER (empty or systemd), RUNC_FLAVOR
  • test-cri.sh: CGROUP_DRIVER (empty or systemd), REPORT_DIR