- runtime: Use static_sandbox_resource_mgmt=true for TEEs - update tokio dependency - resource-control: fix setting CPU affinities on Linux - runtime: use enable_vcpus_pinning from toml - gha: k8s: Make the tests more reliable - gha: Enable SEV-SNP tests on main - gha: tdx: Use the k3s overlay for kata-cleanup - runtime: Port sev package to main - gpu: Rename the last bits from `gpu` to `nvidia-gpu` - deploy: fix shell script error - ppc64le: switch virtiofsd from C to rust version - osbuilder: Fix indentation in rootfs.sh - virtcontainers/qemu_test.go: Improve coverage - agent: Add context to errors that may occur when AgentConfig file is … - virtcontainers/pkg/compatoci/: Improved coverage for for Kata 2.0 - kata-manager: Fix '-o' syntax and logic error - kata-ctl: Add the option to install kata-ctl to a user specified directory - runtime-rs: fix building instructions to use correct required Rust ve… - Dragonball: use LinuxBootConfigurator::write_bootparams - kata-deploy: Add http_proxy as part of the docker build - kata-deploy: Do not ship the kata tarball - kata-deploy: Build improvements - deploy: Fix arch in image tag - Revert "kata-deploy: Use readinessProbe to ensure everything is ready" - virtcontainers: Improved test coverage for fc.go from 4.6% to 18.5% - main | release: Fix multi-arch publishing is not supported - cache: More fixes to nvidia-gpu kernels caching - runtime: remove overriding ARCH value by default for ppc64le - gha: Fix Body Line Length action flagging empty body commit messages - gha: Fix snap creation workflow - cache: Fix nvidia-gpu version - cache: Update the KERNEL_FLAVOUR list to include nvidia-gpu - packaging: Add SEV-SNP artifacts to main - docs: Mark snap installation method as unmaintained - packaging: Add sev artifacts to main - kata-ctl: add generic kvm check & unit test - Log-parser-rs - warning_fix: fix warnings when build with cargo-1.68.0 - cross-compile: Include documentation and configuration for cross-compile - runtime: Fix virtiofs fd leak - gpu: cold plug VFIO devices - pkg/signals: Improved test coverage 60% to 100% - virtcontainers/persist: Improved test coverage 65% to 87.5% - virtcontainers/clh_test.go: improve unit test coverage - virtcontainers/factory: Improved test coverage - gha: Also run k8s tests on qemu-snp - gha: sev: fix for kata-deploy error - gha: Also run k8s tests on qemu-sev - Implement the "kata-ctl env" command - runtime-rs: support keep_abnormal in toml config - gpu: Build and Ship an GPU enabled Kernel - kata-ctl: checks for kvm, kvm_intel modules loaded - osbuilder: Fix D-Bus enabling in the dracut case - snap: fix docker start fail issue - kata-manager: Fix containerd download - agent: Fix ut issue caused by fd double closed - Bump ttrpc to 0.7.2 and protobuf to 3.2.0 - gpu: Add GPU enabled confguration and runtime - gpu: Do not pass-through PCI (Host) Bridges - cache-components: Fix caching of TDVF and QEMU for TDX - gha: tdx: Ensure kata-deploy is removed after the tests run - versions: Upgrade to Cloud Hypervisor v31.0 - osbuilder: Enable dbus in the dracut case - runtime: Don't create socket file in /run/kata - nydus_rootfs/prefetch_files: add prefetch_files for RAFS - runtime-rs/virtio-fs: add support extra handler for cache mode. - runtime-rs: enable nerdctl to setup cni plugin - tdx: Add artefacts from the latest TDX tools release into main - runtime: support non-root for clh - gha: ci-on-push: Run k8s tests with dragonball - rustjail: Use CPUWeight with systemd and CgroupsV2 - gha: k8s-on-aks: {create,delete} AKS must be a coded-in step - docs: update the rust version from version.yaml - gha: k8s-on-aks: Set {create,delete}_aks as steps - gha: k8s-on-aks: Fix cluster name - gha: Also run k8s tests on AKS with dragonball - gha: Only push images to registry after merging a PR - gha: aks: Use D4s_v5 instance - tools: Avoid building the kernel twice - rustjail: Fix panic when cgroup manager fails - runtime: add filter metrics with specific names - gha: Use ghcr.io for the k8s CI - GHA |Switch "kubernetes tests" from jenkins to GitHub actions - docs: Update CNM url in networking document - kata-ctl: add function to get platform protection.f6e1b1152
agent: update tokio dependency4cb83dc21
kata-ctl: update tokio dependencydf615ff25
runk: update tokio dependencyca6892ddb
runtime-rs: update tokio dependencyca1531fe9
runtime: Use static_sandbox_resource_mgmt=true for TEEsfa832f470
gha: k8s: Make the tests more reliablecbb9fe8b8
config: Use standard OVMF with SEV724437efb
kata-deploy: add kata-qemu-sev runtimeclass521dad2a4
Tests: skip CPU constraints test on SEV and SNP72308ddb0
gha: ci-on-push: Don't skip tests for SEVda0f92cef
gha: ci-on-push: Don't skip tests for SEV-SNP12f43bea0
gha: tdx: Use the k3s overlay for kata-cleanup1a3f8fc1a
deploy: fix shell script error87cb98c01
osbuilder: Fix indentation in rootfs.shc5a59caca
ppc64le: switch virtiofsd from C to rust versionbfdf0144a
versions: Bump virtiofsd to 1.6.1dd7562522
runtime: pkg/sev: Add kbs utility package for SEV pre-attestation05de7b260
runtime: Add sev package3a9d3c72a
gpu: Rename the last bits from `gpu` to `nvidia-gpu`4cde844f7
local-build: Fix kernel-nvidia-gpu target name593840e07
kata-ctl: Allow INSTALL_PATH= to be specifiedbdb75fb21
runtime: use enable_vcpus_pinning from toml20cb87508
virtcontainers/qemu_test.go: Improve test coverageb9a1db260
kata-deploy: Add http_proxy as part of the docker build3e85bf5b1
resource-control: fix setting CPU affinities on Linux5f3f844a1
runtime-rs: fix building instructions with respect to required Rust version777c3dc8d
kata-deploy: Do not ship the kata tarball50cc9c582
tests: Improve coverage for virtcontainers/pkg/compatoci/ for Kata 2.0136e2415d
static-build: Download firecracker instead of building it3bf767cfc
static-build: Adjust ARCH for nydusac88d34e0
static-build: Use relased binary for CLH (aarch64)73913c8eb
kata-manager: Fix '-o' syntax and logic error2856d3f23
deploy: Fix arch in image tage8f81ee93
Revert "kata-deploy: Use readinessProbe to ensure everything is ready"cfe63527c
release: Fix multi-arch publishing is not supported197c33651
Dragonball: use LinuxBootConfigurator::write_bootparams to writes the boot parameters into guest memory.4d17ea4a0
cache: Fix nvidia-snp caching versiona133fadbf
cache: Fix nvidia-gpu-tdx-experimental cache URLb9990c201
cache: Fix nvidia-gpu versionc9bf7808b
cache: Update the KERNEL_FLAVOUR list to include nvidia-gpu3665b4204
gpu: Rename `gpu` targets to `nvidia-gpu`2c90cac75
local-build: fixup alphabetization4da6eb588
kata-deploy: Add qemu-snp shim14dd05375
kata-deploy: add kata-qemu-snp runtimeclass0bb37bff7
config: Add SNP configurationaf7f2519b
versions: update SEV kernel descriptiondbcc3b5cc
local-build: fix default values for OVMF buildb8bbe6325
gha: build OVMF for tests and releasecf0ca265f
local-build: Add x86_64 OVMF targetdb095ddeb
cache: add SNP flavor to commentsf4ee00576
gha: Build and ship QEMU for SNP7a58a91fa
docs: update SNP guide879333bfc
versions: update SNP QEMU version38ce4a32a
local-build: add support to build QEMU for SEV-SNP5f8008b69
kata-ctl: add unit test for kvm checka085a6d7b
kata-ctl: add generic kvm check772d4db26
gha: Build and ship SEV initrd45fa36692
gha: Build and ship SEV OVMF4770d3064
gha: Build and ship SEV kernel.fb9c1fc36
runtime: Add qemu-sev config813e4c576
runtimeClasses: add sev runtime classaf18806a8
static-build: Add caching support to sev ovmf76ae7a3ab
packaging: adding caching capability for kernel12c5ef902
packaging: add support to build OVMF for SEVb87820ee8
packaging: add support to build initrd for seve1f3b871c
docs: Mark snap installation method as unmaintained022a33de9
agent: Add context to errors when AgentConfig file is missingb0e6a094b
packaging: Add sev kernel build capabilitya4c0303d8
virtcontainers: Fixed static checks for improved test coverage for fc.go8495f830b
cross-compile: Include documentation and configuration for cross-compile13d7f39c7
gpu: Check for VFIO port assignments6594a9329
tools: made log-parser-rs03a8cd69c
virtcontainers: Improved test coverage for fc.go from 4.6% to 18.5%9e2b7ff17
gha: sev: fix for kata-deploy error5c9246db1
gha: Also run k8s tests on qemu-snpc57a44436
gha: Add the ability to test qemu-snp406419289
env: Utilize arch specific functionality to get cpu detailsfb40c71a2
env: Check for root privileges1016bc17b
config: Add api to fetch config from default config pathb908a780a
kata-env: Pass cmd option for file pathb1920198b
config: Workaround the way agent and hypervisor configs are fetchedf2b2621de
kata-env: Implement the kata-env command.c849bdb0a
gha: Also run k8s tests on qemu-sev6bf1fc605
virtcontainers/factory: Improved test coverage0d49ceee0
gha: Fix snap creation workflow warnings138ada049
gpu: Cold Plug VFIO toml settingdefb64334
runtime: remove overriding ARCH value by default for ppc64lef7ad75cb1
gpu: Cold-plug extend the api.md0fec2e698
gpu: Add cold-plug testf2ebdd81c
utils: Get rid of spurious print statement left behind.9a94f1f14
make: Export VERSION and COMMIT2f81f48da
config: Add file under /opt as another location to look for the config07f7d17db
config: Make the pipe_size field optional68f635773
config: Make function to get the default conf file public7565b3356
kata-ctl: Implement Display trait for GuestProtection enum94a00f934
utils: Make certain constants in utils.rs public572b338b3
gitignore: Ignore .swp and .swo editor backup files376884b8a
cargo: Update version of clap to 4.1.1317daeb9dd
warning_fix: fix warnings when build with cargo-1.68.0521519d74
gha: Add the ability to test qemu-sev205909fbe
runtime: Fix virtiofs fd leak5226f15c8
gha: Fix Body Line Length action flagging empty body commit messages0f45b0faa
virtcontainers/clh_test.go: improve unit test coveragedded731db
gpu: Add OVMF setting for MMIO aperture2a830177c
gpu: Add fwcfg helper function131f056a1
gpu: Extract VFIO Functions to driversc8cf7ed3b
gpu: Add ColdPlug of VFIO devices with devManagere2b5e7f73
gpu: Add Rawdevices to hypervisor6107c32d7
gpu: Assign default value to cold-plug377ebc2ad
gpu: Add configuration option for cold-plug VFIOc18ceae10
gpu: Add new struct PCIePort9c38204f1
virtcontainers/persist: Improved test coverage 65% to 87.5%1c1ee8057
pkg/signals: Improved test coverage 60% to 100%cc8ea3232
runtime-rs: support keep_abnormal in toml config96e8470db
kata-manager: Fix containerd download432d40744
kata-ctl: checks for kvm, kvm_intel modules loadedb1730e4a6
gpu: Add new kernel build option to usage()3e7b90226
osbuilder: Fix D-Bus enabling in the dracut case53c749a9d
agent: Fix ut issue caused by fd double closed2e3f19af9
agent: fix clippy warnings caused by protobuf34849c56fa
agent: Fix unit test issue cuased by protobuf upgrade0a582f781
trace-forwarder: remove unused crate protobuf73253850e
kata-ctl: remove unused crate ttrpc76d2e3054
agent-ctl: Bump ttrpc from 0.6.0 to 0.7.1eb3d20dcc
protocols: Add ut for Serde59568c79d
protocols: add support for Serdea6b4d92c8
runtime-rs: Bump ttrpc from 0.6.0 to 0.7.1ac7c63bc6
gpu: Add containerd shim for qemu-gpua0cc8a75f
gpu: Add a kube runtime classa81fff706
gpu: Adding a GPU enabled configuration8af6fc77c
agent: Bump ttrpc from 0.6.0 to 0.7.1009b42dbf
protocols: Fix unit test392732e21
protocols: Bump ttrpc from 0.6.0 to 0.7.1f4f958d53
gpu: Do not pass-through PCI (Host) Bridges825e76948
gpu: Add GPU support to default kernel without any TEEe4ee07f7d
gpu: Add GPU TDX experimental kernela1272bcf1
gha: tdx: Fix typo overlay -> overlays3fa0890e5
cache-components: Fix TDVF caching80e3a2d40
cache-components: Fix TDX QEMU caching87ea43cd4
gpu: Add configuration fragmentaca6ff728
gpu: Build and Ship an GPU enabled Kerneldc662333d
runtime: Increase the dial_timeouteb1762e81
osbuilder: Enable dbus in the dracut casef478b9115
clh: tdx: Update timeouts for confidential guest3b76abb36
kata-deploy: Ensure node is ready after CRI Engine restart5ec9ae0f0
kata-deploy: Use readinessProbe to ensure everything is readyea386700f
kata-deploy: Update podOverhead for TDXe31efc861
gha: tdx: Use the k3s overlay542bb0f3f
gha: tdx: Set KUBECONFIG env at the job leveld7fdf19e9
gha: tdx: Delete kata-deploy after the tests finishda35241a9
tests: k8s: Skip k8s-cpu-ns when testing TDXdb2cac34d
runtime: Don't create socket file in /run/kata6d315719f
snap: fix docker start fail issuee4b3b0887
gpu: Add proper CONFIG_LOCALVERSION depending on TEE69ba2098f
runtime-rs: remove network entities and netnsb31f103d1
runtime-rs: enable nerdctl cni plugin69d7a959c
gha: ci-on-push: Run tests on TDX5a0727ecb
kata-deploy: Ship kata-qemu-tdx runtimeClass98682805b
config: Add configuration for QEMU TDX3e1580019
govmm: Directly pass the firmware using -bios with TDX3c5ffb0c8
govmm: Set "sept-ve-disable=on"ed145365e
runtime/qemu: Drop "kvm-type=tdx"25b3cdd38
virtcontainers: Drop check for the `tdx` CPU flag01bdacb4e
virtcontainers: Also check /sys/firmwares/tdx for TDX9feec533c
cache: Add ability to cache OVMFce8d98251
gha: Build and ship the OVMF for TDX39c3fab7b
local-build: Add support to build OVMF for TDX054174d3e
versions: Bump OVMF for TDX800fb49da
packaging: Add get_ovmf_image_name() helperfbf03d7ac
cache: Document kernel-tdx-experimental5d79e9696
cache: Add a space to ease the reading of the kernel flavours6e4726e45
cache: Fix typosfc22ed0a8
gha: Build and ship the Kernel for TDX502844ced
local-build: Add support to build Kernel for TDXb2585eecf
local-build: Avoid code duplication building the kernelf33345c31
versions: Update Kernel TDX version20ab2c242
versions: Move Kernel TDX to its own experimental entry3d9ce3982
cache: Allow specifying the QEMU_FLAVOUR33dc6c65a
gha: Build and ship QEMU for TDXeceaae30a
local-build: Add support to build QEMU for TDXf7b7c187e
static-build: Improve qemu-experimental build script3018c9ad5
versions: Update QEMU TDX version800ee5cd8
versions: Move QEMU TDX to its own experimental entry1315bb45f
local-build: Add dragonball kernel to the `all` target73e108136
local-build: Rename non vanilla kernel build functions1d851b4be
local-build: Cosmetic changes in build targets49ce685eb
gha: k8s-on-aks: Always delete the AKS clustere2a770df5
gha: ci-on-push: Run k8s tests with dragonballd1f550bd1
docs: update the rust version from versions.yamlf3595e48b
nydus_rootfs/prefetch_files: add prefetch_files for RAFS3bfaafbf4
fix: oci hookc1fbaae8d
rustjail: Use CPUWeight with systemd and CgroupsV2375187e04
versions: Upgrade to Cloud Hypervisor v31.079f3047f0
gha: k8s-on-aks: {create,delete} AKS must be a coded-in step2f35b4d4e
gha: ci-on-push: Only run on `main` branche7bd2545e
Revert "gha: ci-on-push: Depend on Commit Message Check"0d96d4963
Revert "gha: ci-on-push: Adjust to using workflow_run"c7ee45f7e
Revert "gha: ci-on-push: Adapt chained jobs to workflow_run"5d4d72064
Revert "gha: k8s-on-aks: Fix cluster name"13d857a56
gha: k8s-on-aks: Set {create,delete}_aks as stepsdc6569dbb
runtime-rs/virtio-fs: add support extra handler for cache mode.85cc5bb53
gha: k8s-on-aks: Fix cluster name1688e4f3f
gha: aks: Use D4s_v5 instance108d80a86
gha: Add the ability to also test Dragonball2550d4462
gha: build-kata-static-tarball: Only push to registry after mergee81b8b8ee
local-build: build-and-upload-payload is not quay.io specific13929fc61
gha: publish-kata-deploy-payload: Improve registry login41026f003
gha: payload-after-push: Pass registry / repo as inputs7855b4306
gha: ci-on-push: Adapt chained jobs to workflow_run3a760a157
gha: ci-on-push: Adjust to using workflow_runa159ffdba
gha: ci-on-push: Depend on Commit Message Check8086c75f6
gha: Also run k8s tests on AKS with dragonballfe86c08a6
tools: Avoid building the kernel twice3215860a4
gha: Set ci-on-push to run on `pull_request_target`d17dfe4cd
gha: Use ghcr.io for the k8s CIb661e0cf3
rustjail: Add anyhow context for D-Bus connections60c62c3b6
gha: Remove kata-deploy-test.yaml43894e945
gha: Remove kata-deploy-push.yamlcab9ca043
gha: Add a CI pipeline for Kata Containers53b526b6b
gha: k8s: Add snippet to run k8s tests on aks clustersc444c24bc
gha: aks: Add snippets to create / delete aks clusters11e0099fb
tests: Move k8s tests to this repo73be4bd3f
gha: Update actions for release.yamld38d7fbf1
gha: Remove code duplication from release.yaml56331bd7b
gha: Split payload-after-push-*.yamla552a1953
docs: Update CNM url in networking document7796e6ccc
rustjail: Fix minor grammatical error in function name41fdda1d8
rustjail: Do not unwrap potential error with cgroup managera914283ce
kata-ctl: add function to get platform protection.0f7351556
runtime: add filter metrics with specific namescbe6ad903
runtime: support non-root for clhd3bb25418
utils: Add function to check vhost-vsock Signed-off-by: Fabiano Fidêncio <fabiano.fidencio@intel.com>

Kata Containers
Welcome to Kata Containers!
This repository is the home of the Kata Containers code for the 2.0 and newer releases.
If you want to learn about Kata Containers, visit the main Kata Containers website.
Introduction
Kata Containers is an open source project and community working to build a standard implementation of lightweight Virtual Machines (VMs) that feel and perform like containers, but provide the workload isolation and security advantages of VMs.
License
The code is licensed under the Apache 2.0 license. See the license file for further details.
Platform support
Kata Containers currently runs on 64-bit systems supporting the following technologies:
Architecture | Virtualization technology |
---|---|
x86_64 , amd64 |
Intel VT-x, AMD SVM |
aarch64 ("arm64 ") |
ARM Hyp |
ppc64le |
IBM Power |
s390x |
IBM Z & LinuxONE SIE |
Hardware requirements
The Kata Containers runtime provides a command to determine if your host system is capable of running and creating a Kata Container:
$ kata-runtime check
Notes:
This command runs a number of checks including connecting to the network to determine if a newer release of Kata Containers is available on GitHub. If you do not wish this to check to run, add the
--no-network-checks
option.By default, only a brief success / failure message is printed. If more details are needed, the
--verbose
flag can be used to display the list of all the checks performed.If the command is run as the
root
user additional checks are run (including checking if another incompatible hypervisor is running). When running asroot
, network checks are automatically disabled.
Getting started
See the installation documentation.
Documentation
See the official documentation including:
Configuration
Kata Containers uses a single configuration file which contains a number of sections for various parts of the Kata Containers system including the runtime, the agent and the hypervisor.
Hypervisors
See the hypervisors document and the Hypervisor specific configuration details.
Community
To learn more about the project, its community and governance, see the community repository. This is the first place to go if you wish to contribute to the project.
Getting help
See the community section for ways to contact us.
Raising issues
Please raise an issue in this repository.
Note: If you are reporting a security issue, please follow the vulnerability reporting process
Developers
See the developer guide.
Components
Main components
The table below lists the core parts of the project:
Component | Type | Description |
---|---|---|
runtime | core | Main component run by a container manager and providing a containerd shimv2 runtime implementation. |
runtime-rs | core | The Rust version runtime. |
agent | core | Management process running inside the virtual machine / POD that sets up the container environment. |
dragonball |
core | An optional built-in VMM brings out-of-the-box Kata Containers experience with optimizations on container workloads |
documentation | documentation | Documentation common to all components (such as design and install documentation). |
tests | tests | Excludes unit tests which live with the main code. |
Additional components
The table below lists the remaining parts of the project:
Component | Type | Description |
---|---|---|
packaging | infrastructure | Scripts and metadata for producing packaged binaries (components, hypervisors, kernel and rootfs). |
kernel | kernel | Linux kernel used by the hypervisor to boot the guest image. Patches are stored here. |
osbuilder | infrastructure | Tool to create "mini O/S" rootfs and initrd images and kernel for the hypervisor. |
agent-ctl |
utility | Tool that provides low-level access for testing the agent. |
kata-ctl |
utility | Tool that provides advanced commands and debug facilities. |
log-parser-rs |
utility | Tool that aid in analyzing logs from the kata runtime. |
trace-forwarder |
utility | Agent tracing helper. |
runk |
utility | Standard OCI container runtime based on the agent. |
ci |
CI | Continuous Integration configuration files and scripts. |
katacontainers.io |
Source for the katacontainers.io site. |
Packaging and releases
Kata Containers is now available natively for most distributions. However, packaging scripts and metadata are still used to generate snap and GitHub releases. See the components section for further details.
Glossary of Terms
See the glossary of terms related to Kata Containers.