mirror of
https://github.com/kata-containers/kata-containers.git
synced 2026-07-25 14:18:54 +00:00
Add a composable devkit extension (shell-enabled busybox) cold-plugged alongside the NVIDIA base and gpu images so kata-runtime exec works without rebuilding the shell-less production rootfs. Wire build and packaging, runtime-rs drop-in examples, guest_extension_images append merge, kata-deploy debug cold-plug with dm-verity params, and agent console shell lookup at /run/kata-extensions/devkit. Devkit bin/sh and devkit-apt wrappers use a shebang pointing at the extension busybox (not /bin/sh): the NVIDIA base rootfs is shell-less, so kernel shebang resolution against the guest root would fail and debug console sessions would drop immediately. Signed-off-by: Fabiano Fidêncio <ffidencio@nvidia.com> Assisted-by: Cursor <cursoragent@cursor.com>
453 lines
14 KiB
YAML
453 lines
14 KiB
YAML
#
|
|
# Copyright (c) 2018-2023 Intel Corporation
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
---
|
|
description: |
|
|
This file contains version details that are used by various
|
|
repositories for setting up the correct environment to run
|
|
tests and package components.
|
|
|
|
format: |
|
|
Each entry in this file MUST conform to the following format:
|
|
|
|
<group>:
|
|
description: "<brief-description>"
|
|
notes: "<notes>"
|
|
|
|
<project>:
|
|
description: "<brief-description>"
|
|
notes: "<notes>"
|
|
url: "<project-url>"
|
|
issue: "<bug-url>"
|
|
commit: "<commit>"
|
|
version: "<version>"
|
|
uscan-opts: "<optional uscan options>"
|
|
uscan-url: "<url regex for uscan to list versions>"
|
|
release: "<version>"
|
|
branch: "<git-branch>"
|
|
meta:
|
|
<key-1>: "<value-1>"
|
|
<key-n>: "<value-n>"
|
|
|
|
Notes:
|
|
|
|
- All sections (except "meta") MUST include a description where
|
|
applicable. This is expected to be a brief summary.
|
|
|
|
- A section MAY specify a "notes" section which may be multi-line.
|
|
It is expected to be expand on the information specified in
|
|
"description".
|
|
|
|
- All sections (except "meta") MUST include a URL where applicable.
|
|
|
|
- A section MAY specify a bug URL using the "issue" field.
|
|
|
|
- A section MAY define a "meta" section to store additional
|
|
information about a project or group.
|
|
|
|
- Each entry MUST specify ATLEAST one of "commit", "version", "release"
|
|
and "branch".
|
|
|
|
- WARNING: Gotcha alert! Remember to double-quote all strings
|
|
(except multi-line strings)! This avoids the possibility of a
|
|
version containing a period being treated as a floating point
|
|
number (and truncated!)
|
|
|
|
- NOTE: For the uscan related entries, refer to the following uscan pages:
|
|
https://manpages.debian.org/stretch/devscripts/uscan.1.en.html
|
|
https://wiki.debian.org/debian/watch
|
|
Particularly note the 'Common mistakes' section.
|
|
Also note, if you place the uscan strings on single lines in this file then
|
|
'\'s need to be '\'d, so are replaced with '\\', but this does not apply
|
|
for '>-' multi line entries, which can then use the normal uscan syntax.
|
|
|
|
assets:
|
|
description: "Additional required system elements"
|
|
|
|
hypervisor:
|
|
description: "Component used to create virtual machines"
|
|
|
|
cloud_hypervisor:
|
|
description: "Cloud Hypervisor is an open source Virtual Machine Monitor"
|
|
url: "https://github.com/cloud-hypervisor/cloud-hypervisor"
|
|
version: "v51.1"
|
|
|
|
firecracker:
|
|
description: "Firecracker micro-VMM"
|
|
url: "https://github.com/firecracker-microvm/firecracker"
|
|
version: "v1.12.1"
|
|
|
|
qemu:
|
|
description: "VMM that uses KVM"
|
|
url: "https://github.com/qemu/qemu"
|
|
version: "v11.0.1"
|
|
|
|
qemu-snp-experimental:
|
|
description: "QEMU with GPU+SNP support"
|
|
url: "https://github.com/confidential-containers/qemu.git"
|
|
tag: "gpu-snp-20260430"
|
|
|
|
qemu-tdx-experimental:
|
|
description: "QEMU with GPU+TDX support"
|
|
url: "https://github.com/confidential-containers/qemu.git"
|
|
tag: "gpu-tdx-20260430"
|
|
|
|
stratovirt:
|
|
description: "StratoVirt is an lightweight opensource VMM"
|
|
url: "https://github.com/openeuler-mirror/stratovirt"
|
|
version: "v2.3.0"
|
|
|
|
image:
|
|
description: |
|
|
Root filesystem disk image used to boot the guest virtual
|
|
machine.
|
|
architecture:
|
|
aarch64:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-gpu:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-gpu-confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-gpu-extension:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-devkit-extension:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
ppc64le:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
s390x:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
x86_64:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
mariner:
|
|
name: "cbl-mariner"
|
|
version: "3.0"
|
|
nvidia-gpu:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-gpu-confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-gpu-extension:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-devkit-extension:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
|
|
initrd:
|
|
description: |
|
|
Root filesystem initrd used to boot the guest virtual
|
|
machine.
|
|
architecture:
|
|
aarch64:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-gpu:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-gpu-confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
# Do not use Alpine on ppc64le & s390x, the agent cannot use musl because
|
|
# there is no such Rust target
|
|
ppc64le:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
s390x:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
x86_64:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-gpu:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
nvidia-gpu-confidential:
|
|
name: "ubuntu"
|
|
version: "noble" # 24.04 LTS
|
|
|
|
kernel:
|
|
description: "Linux kernel optimised for virtual machines"
|
|
url: "https://cdn.kernel.org/pub/linux/kernel/v6.x/"
|
|
version: "v6.18.35"
|
|
nvidia:
|
|
url: "https://cdn.kernel.org/pub/linux/kernel/v6.x/"
|
|
version: "v6.18.35"
|
|
|
|
kernel-dragonball-experimental:
|
|
description: "Linux kernel with Dragonball VMM optimizations like upcall"
|
|
url: "https://cdn.kernel.org/pub/linux/kernel/v6.x/"
|
|
version: "v6.18.35"
|
|
|
|
externals:
|
|
description: "Third-party projects used by the system"
|
|
|
|
nvrc:
|
|
# yamllint disable-line rule:line-length
|
|
desc: "The NVRC project provides a Rust binary that implements a simple init system for microVMs"
|
|
version: "v0.1.5"
|
|
url: "https://github.com/NVIDIA/nvrc/releases/download/"
|
|
|
|
alpine:
|
|
# yamllint disable-line rule:line-length
|
|
desc: "Alpine Linux minirootfs used as the base for the NVIDIA devkit debug extension (musl userland + apk; small, self-contained, and its sonames never collide with the base glibc)"
|
|
branch: "v3.21"
|
|
version: "3.21.3"
|
|
# Package integrity is verified by apk against the signed APKINDEX and the
|
|
# keys shipped in the minirootfs, so plain HTTP is safe and avoids needing
|
|
# ca-certificates before the toolset is installed.
|
|
mirror: "http://dl-cdn.alpinelinux.org/alpine"
|
|
|
|
nvidia:
|
|
desc: "NVIDIA compute stack"
|
|
driver:
|
|
desc: "NVIDIA kernel driver"
|
|
version: "595.58.03"
|
|
# yamllint disable-line rule:line-length
|
|
url: "https://github.com/NVIDIA/open-gpu-kernel-modules/archive/refs/tags/"
|
|
cuda:
|
|
desc: "NVIDIA CUDA repository"
|
|
repo:
|
|
x86_64:
|
|
# yamllint disable-line rule:line-length
|
|
url: "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/"
|
|
pkg: "cuda-keyring_1.1-1_all.deb"
|
|
aarch64:
|
|
# yamllint disable-line rule:line-length
|
|
url: "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa/"
|
|
pkg: "cuda-keyring_1.1-1_all.deb"
|
|
tools:
|
|
desc: "NVIDIA container toolkit and tools repository"
|
|
repo:
|
|
x86_64:
|
|
# yamllint disable-line rule:line-length
|
|
url: "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/"
|
|
pkg: "cuda-keyring_1.1-1_all.deb"
|
|
aarch64:
|
|
# yamllint disable-line rule:line-length
|
|
url: "https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/sbsa/"
|
|
pkg: "cuda-keyring_1.1-1_all.deb"
|
|
ctk:
|
|
version: "1.18.1-1"
|
|
url: "https://github.com/NVIDIA/nvidia-container-toolkit"
|
|
nvat:
|
|
desc: "NVIDIA Attestation SDK"
|
|
version: "2026.03.02"
|
|
url: "https://github.com/NVIDIA/attestation-sdk"
|
|
|
|
busybox:
|
|
desc: "The Swiss Army Knife of Embedded Linux"
|
|
version: "1.36.1"
|
|
url: "https://busybox.net/downloads"
|
|
|
|
helm:
|
|
description: "Kubernetes package manager"
|
|
url: "https://get.helm.sh/"
|
|
version: "v4.0.4"
|
|
|
|
cni-plugins:
|
|
description: "CNI network plugins"
|
|
url: "https://github.com/containernetworking/plugins"
|
|
version: "v1.2.0"
|
|
|
|
coco-guest-components:
|
|
description: "Provides attested key unwrapping for image decryption"
|
|
url: "https://github.com/confidential-containers/guest-components/"
|
|
version: "da8d93f2797088a5f0636c8c1eeb31da73784fe8"
|
|
toolchain: "1.90.0"
|
|
|
|
coco-trustee:
|
|
description: "Provides attestation and secret delivery components"
|
|
url: "https://github.com/confidential-containers/trustee"
|
|
version: "258ea4acb7b9bd865fce5c63a539f2120dba8298"
|
|
toolchain: "1.90.0"
|
|
# Helm chart deploys three separate images; tags match version.
|
|
images:
|
|
kbs: "ghcr.io/confidential-containers/staged-images/kbs-grpc-as"
|
|
as: "ghcr.io/confidential-containers/staged-images/coco-as-grpc"
|
|
rvps: "ghcr.io/confidential-containers/staged-images/rvps"
|
|
|
|
containerd:
|
|
description: |
|
|
Containerd for Kubernetes Container Runtime Interface.
|
|
url: "github.com/containerd/containerd"
|
|
# containerd from v1.5.0 used the path unix socket
|
|
# instead of abstract socket, thus kata wouldn's support the containerd's
|
|
# version older than them.
|
|
minimum: "v1.7"
|
|
latest: "v2.3"
|
|
|
|
runc:
|
|
description: "CLI tool for spawning and running containers"
|
|
url: "https://github.com/opencontainers/runc"
|
|
latest: "v1.2"
|
|
|
|
gperf:
|
|
description: "GNU gperf is a perfect hash function generator"
|
|
url: "https://ftp.gnu.org.uk/gnu/gperf/"
|
|
version: "3.3"
|
|
|
|
hadolint:
|
|
description: "the dockerfile linter used by static-checks"
|
|
url: "https://github.com/hadolint/hadolint"
|
|
version: "2.12.0"
|
|
|
|
libseccomp:
|
|
description: "High level interface to Linux seccomp filter"
|
|
url: "https://github.com/seccomp/libseccomp"
|
|
version: "2.6.0"
|
|
|
|
pause:
|
|
description: "Kubernetes pause container image"
|
|
repo: "docker://registry.k8s.io/pause"
|
|
version: "3.10"
|
|
|
|
nydus:
|
|
description: "Nydus image acceleration service"
|
|
url: "https://github.com/dragonflyoss/image-service"
|
|
version: "v2.2.3"
|
|
|
|
nydus-snapshotter:
|
|
description: "Snapshotter for Nydus image acceleration service"
|
|
url: "https://github.com/containerd/nydus-snapshotter"
|
|
version: "v0.15.15"
|
|
|
|
opa:
|
|
description: "Open Policy Agent"
|
|
url: "https://github.com/open-policy-agent/opa"
|
|
version: "v1.9.0"
|
|
|
|
ovmf:
|
|
description: "Firmware, implementation of UEFI for virtual machines."
|
|
url: "https://github.com/tianocore/edk2"
|
|
x86_64:
|
|
description: "Vanilla firmware build"
|
|
version: "edk2-stable202508"
|
|
package: "OvmfPkg/OvmfPkgX64.dsc"
|
|
package_output_dir: "OvmfX64"
|
|
sev:
|
|
# Used by AMD SEV-SNP for measured direct boot
|
|
description: "AmdSev build needed for SEV measured direct boot."
|
|
version: "edk2-stable202508"
|
|
package: "OvmfPkg/AmdSev/AmdSevX64.dsc"
|
|
package_output_dir: "AmdSev"
|
|
tdx:
|
|
description: "UEFI for Intel TDX virtual machines."
|
|
version: "edk2-stable202511"
|
|
package: "OvmfPkg/IntelTdx/IntelTdxX64.dsc"
|
|
package_output_dir: "IntelTdx"
|
|
arm64:
|
|
description: "UEFI for arm64 virtual machines."
|
|
version: "edk2-stable202508"
|
|
package: "ArmVirtPkg/ArmVirtQemu.dsc"
|
|
package_output_dir: "ArmVirtQemu-AARCH64"
|
|
|
|
protoc:
|
|
description: "Protobuf compiler"
|
|
url: "https://github.com/protocolbuffers/protobuf/releases"
|
|
version: "v21.12"
|
|
|
|
protoc-gen-go:
|
|
description: "Protobuf Go compiler"
|
|
url: "https://github.com/protocolbuffers/protobuf-go/releases"
|
|
version: "v1.28.1"
|
|
|
|
ttrpc:
|
|
description: "ttRPC libary and code generation utilities"
|
|
url: "https://github.com/containerd/ttrpc/releases"
|
|
version: "v1.2.7"
|
|
|
|
virtiofsd:
|
|
description: "vhost-user virtio-fs device backend written in Rust"
|
|
url: "https://gitlab.com/virtio-fs/virtiofsd"
|
|
version: "v1.13.3"
|
|
toolchain: "1.85.1"
|
|
meta:
|
|
# From https://gitlab.com/virtio-fs/virtiofsd/-/releases/v1.13.1,
|
|
# this is the link labelled virtiofsd-v1.13.1.zip
|
|
#
|
|
# yamllint disable-line rule:line-length
|
|
binary: "https://gitlab.com/-/project/21523468/uploads/05d4925181301a59b8c322cd9f9d44a7/virtiofsd-v1.13.1.zip"
|
|
|
|
languages:
|
|
description: |
|
|
Details of programming languages required to build system
|
|
components.
|
|
|
|
golang:
|
|
description: "Google's 'go' language"
|
|
notes: "'version' is the default minimum version used by this project."
|
|
# When updating this, also update in go.mod files.
|
|
version: "1.25.12"
|
|
meta:
|
|
description: |
|
|
'newest-version' is the latest version known to work when
|
|
building Kata
|
|
newest-version: "1.25.12"
|
|
|
|
rust:
|
|
description: "Rust language"
|
|
notes: "'version' is the default minimum version used by this project."
|
|
# Keep in sync with rust-toolchain.toml
|
|
version: "1.95"
|
|
meta:
|
|
description: |
|
|
'newest-version' is the latest version known to work when
|
|
building Kata
|
|
newest-version: "1.95"
|
|
|
|
golangci-lint:
|
|
description: "golangci-lint"
|
|
notes: "'version' is the default minimum version used by this project."
|
|
url: "github.com/golangci/golangci-lint"
|
|
version: "2.9.0"
|
|
meta:
|
|
description: |
|
|
'newest-version' is the latest version known to work when
|
|
building Kata
|
|
newest-version: "2.9.0"
|
|
|
|
docker_images:
|
|
description: "Docker images used for testing"
|
|
|
|
nginx:
|
|
description: "Proxy server for HTTP, HTTPS, SMTP, POP3 and IMAP protocols"
|
|
registry: "quay.io/kata-containers/nginx"
|
|
# yamllint disable-line rule:line-length
|
|
digest: "sha256:a905609e0f9adc2607f06da2f76893c6da07caa396c41f2806fee162064cfb4b" # 1.15-alpine
|