- kata-deploy: Install protobuf-compiler explicitly in shim-v2 Dockerfile - runtime: tracing: Fix missing ctx return - runtime: add reconnect timeout for vhost user block - SEV: Update ReducedPhysBits - shim-v2/build.sh: Only build runtime-rs for the supported arches - kata-ctl: Expand unit tests for CPU check - runtime: support cgroup v2 metrics marshal guest metrics - Typo: change tabs in comment to spaces - rootfs: support EROFS filesystem - versions: Update runc version - runtime: Improve documentation of appendFDs - Minor cleanups in make file - main | docs: Fix missing critical steps in how-to-hotplug-memory-arm64.md - Action check kernel config version - clh: Enforce API timeout only for vm.boot request - virtiofsd: change cache mod to const - runtime-rs: ignor "no such process" error when delete cgroup for a thread to let it go - kernel: Add console kernel config for s390 - runtime: remove not used shim configurations - improvement: Fix naming conventions for span name and log subsystem - Dragonball: add cpu resize ability - arm64/CI: fix unit test failure on arm64 - CI: Make docker version stick to v20.10 in ubuntu:20.04 for s390x|ppc64le - virtiofsd: fix the build on ppc64le - runtime:fix stat uds path - cni: Update cni plugins version to 1.2.0 - Built-in Sandbox: add more unit tests for dragonball. Part 5 - runtime: Drop QEMU log file support - docs: Add documentation for building agent with seccomp support. - Add kernel-dragonball-experimental to kata-deploy, kata-deploy-test, and the release - runtime-rs: add missing config section for share-fs - runtime: Add hmp for qemu - upcall: add document for upcall - runtime: Start QEMU undaemonized and get logs - docs: Update url link in QAT documentation - versions: update cni plugins version - versions: Upgrade to Cloud Hypervisor v29.0 - runtime: Use consts in `kata-runtime check` - versions: Bump QEMU to v7.2.0 - agent: Eliminate unnecessary metrics - runtime:all APIs are hang in the service.mu - Utility functions for kata-env - versions: Update conmon version - runtime: paas enablevhostuserstore annotation to hypervisor config - runk: Upgrade liboci-cli to v0.0.4 - runtime: use system pagesize for hugepage test - dependency: update cgroups-rs - runtime: Use git rev-parse for the kata-monitor tag - virtcontainers: split out linux-specific bits for mount, factory - Add darwin skeletons - vendor: revendor netlink to get latest - Address issues with the initial vCPU pinning functionality - virtcontainers: Fix misspelling in error message - runtime: add test generated file to .gitignore - runtime: fix up disable_netns handling - docs: add hint of probing loop module - tools: add --locked option for cargo install - runtime-rs: add Single Container support - virtcontainers: tests: Ensure Linux specific tests are just run on Linux - Change cache mode from none to never - tools: Fix indentation for setup aks script - virtcontainers: fs_share: Add Darwin skeleton - virtcontainers: Add a Virtualization.framework skeleton - kata-ctl: remove get_kata_version_by_url function - kata-ctl: fix build error on s390x - virtcontainers: Introduce hypervisor_darwin - runtime: Define Darwin handled signals list - nydus: net-ns handling needs to be only executed on Linux hosts - clh: Ensure it works with Docker / Moby - agent: refactor guest hooks - fix moby prestart hook handling - schedcore: Make buildable on !linux - Built-in Sandbox: add more unit tests for dragonball. Part 4 - runtime-rs: cleanup the run dir of hypervisor when shut down - Feat: implementation of kata-ctl direct-volume operations - Runtime: Clarify mutability of global var - kata-runtime: add rust runtime path for kata-runtime exec - versions: Upgrade to Cloud Hypervisor v28.1 - runtime-rs: add dbs-upcall feature - runtime/Makefile: Get some bits happy on darwin - docs: remove old and misleading instructions for minikube - packaging: fix indents in build-kernel.sh - kernel: adding kmod to do docker env - versions: Update the rust toolchain to 1.66.0 - kata-ctl: skip test if access GitHub.com fail - agent: unset `CC` for cross-build - runtime-rs: enable hugepage - runtime-rs: Clean up mount points shared to guest - kata-ctl: fix checkcpu bug in non-x86 archesd144ded12
release: Adapt kata-deploy for 3.1.0-rc08e3863cec
kata-deploy: Install protobuf-compiler explicitly in shim-v2 Dockerfilec45391991
runtime: tracing: Fix missing ctx return4139d68d5
runtime-rs: Include target install in conditional branchca02c9f51
runtime: add reconnect timeout for vhost user block2f5bc0f40
kata-ctl: Expand unit tests for CPU check67b8f0773
SEV: Update ReducedPhysBitsbdf20b5d2
rootfs: support EROFS filesystemfff0e50a7
versions: Update runc versioned02c8a05
docs: add guide for building rootfs with EROFS01765e173
runtime: support cgroup v2 metrics marshal guest metrics49326fe4e
fix(clippy): fix hypervisor clippy checks94b1d9814
cargo: Update Cargo.lock filesf1855594a
make: Get rid of verbose output while creating tarc3836010a
make: clean up obsolete targetsac64b021a
clh: Enforce API timeout only for vm.boot request56071c6e7
virtiofsd: change cache mod to const5d37d31ac
cgroups: upgrade cgroupfs to 0.3.1ab59a65c9
runtime-rs: neglect a certain error when delete cgroup390916b33
runtime: remove not used shim configurations9794c52c6
improvement: Fix naming conventions for span name and log subsystemf49b89b63
CI: Set docker version to v20.10 in ubuntu:20.04 for s390x|ppc64le3c24e2340
README: Update Readme under packaging/kerneld73f3a8a2
github-action: Add step to verify kernel config version id updated59f104c02
runtime: skip unit test that fail regularly on aarch64b7dd97cac
kata-ctl: fix permission deny issue in test_add_remove57c5e5629
Dragonball: add cpu resize ability3c48f2202
runtime: Improve documentation of appendFDs856ab6687
virtiofsd: fix the build on ppc64lef83115a83
docs: Fix missing critical steps in how-to-hotplug-memory-arm64.mde071d9251
Typo: change tabs in comment to spaces56f0a27fe
kernel: Add console kernel config for s390334c4b8bd
runtime: Drop QEMU log file support3a63e3c1f
cni: Update cni plugins version to 1.2.0510798155
dragonball: Improve test casesdc90c6e30
dragonball: add more unit test for vmc07135535
runtime-rs: Improve s390x error message4e2db96ef
runtime-rs: Don't try to build on Power8e8c720d5
kata-deploy-push: Ensure we build Dragonball specific kernel1e531b44d
runtime:fix stat uds path9092c23a2
runtime: Add hmp for qemub7f4e96ff
kata-deploy-test: Ensure we build dragonball specific kernel063dec37c
release: Add the dragonball-experimental kernel0b3c91d2a
kata-deploy: Add kernel-dragonball-experimental target00dcd900f
docs: Add documentation for building agent with seccomp support.2b779cba0
docs: Update url link in QAT documentation39fe4a4b6
runtime: Collect QEMU's stderra5319c6be
runtime: Start QEMU undaemonizedbf4e3a618
runtime: Launch QEMU with cmd.Start()8a1723a5c
runtime: Pre-establish the QMP connection8a4f08cb0
govmm: Optionally pass QMP listener to QEMU219bb8e7d
govmm: Optionally start QMP with a pre-configured connectiona85d0e465
versions: update cni plugins version676d02850
versions: Bump QEMU to v7.2.0861c38b6a
versions: Upgrade to Cloud Hypervisor v29.0ba87e0afe
runtime: Use consts in `kata-runtime check`9f490d16f
upcall: add document for upcall596037e20
versions: Update conmon version095e8fdef
runk: Use the original Kill command instead of the customed it.0f9e23a3d
runk: Upgrade liboci-cli to v0.0.469fc8de71
runtime:all APIs are hang in the service.mu8d4c2cf1b
kata-ctl: Allow certain constants to go unused64c11a66f
kata-ctl: Have function to get cpu details to run on specific arch923cd3fda
virtcontainers: split out Linux parts from mountcf1bae352
runtime: paas enablevhostuserstore annotation to hypervisor config1592a385e
dependency: update cgroups-rs60ff230d8
virtcontainers: Split the factory package into Linux and Darwin bits76437a972
runtime: Use git rev-parse for the kata-monitor taga9626682a
virtcontainers: resourcecontrol: Add skeleton for Darwinea06fe3af
virtcontainers: Add a Network API skeleton for Darwin6ee550e9a
runtime: vCPUs pinning is sandbox specific, not hypervisor6199b6917
runtime-rs: change cache modea33a22ccd
runtime-rs: add missing config section for share-fse3d3b72fa
virtcontainers: use resource control for setting CPU affinityf137048be
resource-control: add helper function for setting CPU affinity73216a810
vendor: revendor netlink to get latestfc17d7cc4
virtcontainers: Fix misspelling in error message12fd6ffc1
runtime: fix up disable_netns handling64c9114a3
tools: add --locked option for cargo install7eb43cec1
runtime: add test generated file to .gitignore8551853cf
runtime: use system pagesize for hugepage test86a82cace
runtime: change cache mode from none to never82c59efd6
runtime-rs: change cache mode from none to never7b309b578
kata-types: change cache mode from none to neverfee4e7c7c
docs: change cache mode from none to never594b57d08
utils: Add utility functions to get cpu and distro details.d33e34361
check: Move PROC_CPUINFO from architecture specific filesf8a93a1de
tools: Fix indentation for setup aks script03de5f41b
kata-ctl: remove get_kata_version_by_url function464d4c94d
runtime-rs: process single_container5f9c892e4
kata-types: add single_container supportfa9ae9362
virtcontainers: Add a Virtualization.framework skeletond48b22bb1
virtcontainers: fs_share: add Darwin skeletonfafc7a8b1
virtcontainers: tests: Ensure Linux specific tests are just run on Linuxefa4fc0b2
clh: Add hotplug support for network devices1074d2c1d
clh: Make vmAddNetPutRequest capable of doing hotplugs9ec8a1398
virtcontainers: introduce hypervisor_darwin8bb68a9f2
vc/network: skip existing endpoints when scanning for new onesc21a8d5ff
kata-ctl: fix build error on s390x3b4420eb8
runtime: Define Darwin handled signals list24b05a99b
schedcore: Make buildable on !linux3886aad19
nydus: net-ns handling needs to be only executed on Linux hostse256903af
runtime-rs: cleanup the run dir of hypervisor when shut down937a41346
kata-ctl: add unit tests for volume ops8451db7c0
kata-ctl: direct-volume: add Add and Remove handlers2d4b2cf72
runtime-rs: add POST method to shim-clientcae78a685
kata-ctl: add constants for direct-volume commands652021ad9
versions: Upgrade to Cloud Hypervisor v28.1d08538912
vc: fix up UT for CreateSandbox API change578a9c25f
vc: rescan network endpoints after running prestart hookscb84b0fb0
katautils: run prestart hooks after starting VM079462d2e
runk: Fix needless_borrow warning2c24fcf34
runtime-rs: Fix clippy::bool-to-int-with-if warnings025e78341
runtime-rs: Fix needless_borrow warnings4fb163d57
runtime-rs: Allow clippy:box_default warnings20121fcda
runtime-rs: Fix unnecessary_cast warningsb95364a14
dragonball: Allow question_mark warning in allocate_device_resources()0b2f060bf
dragonball: Fix unnecessary_cast warningsa545a6593
agent: Allow clippy::question_mark warning in Namespace{}9ced34dd2
agent: Fix explicit_auto_deref warningsf77220490
agent: Fix needless_borrow warnings7bcdc9049
rustjail: Fix unnecessary_cast warnings41d7dbaae
rustjail: Fix needless_borrow warnings2a73e057d
kata-types: Fix unnecessary_cast warningscf9ef1833
kata-types: Fix needless_borrow warnings126187e81
safe-path: Fix needless_borrow warningsbb78d35db
kata-sys-util: Fix "match-like-matches-macro" warning668e65240
kata-sys-util: Fix unnecessary_cast warningsc1a8d89a7
kata-sys-util: Fix needless_borrow warningsc9c38e6d0
logging: Allow clippy::type-complexity warningffd6fbb6b
logging: Fix needless_borrow warnings60df30015
protocols: Fix unnecessary_cast warnings56e7b5d0f
runtime/Makefile: Get some bits happy on darwin0bbeb34b4
protocols: Fix needless_borrow warningsdfea6c7d2
versions: Update the rust toolchain to 1.66.086ee24b33
Runtime: Clarify mutability of global vardae667062
kata-runtime: add rust runtime path for kata-runtime execa2e3715e0
upcall: remove upcall client when stopping vm31591d791
dragonball: fix unit test failure case about Kvm.2b02e0a9b
dragonball: add more unit test for vcpu manager85f9094f1
agent: refactor guest hooks360506225
runtime-rs: add dbs-upcall feature03a0c9d78
kata-ctl: skip test if access GitHub.com fail1dcbda3f0
kata-ctl: update Cargo.lockb4b5d8150
docs: remove old and misleading instructions for minikube0fe24e08b
packaging: fix indents in build-kernel.sh3480780bd
kata-ctl: add check framework support for non-x861bd533f10
kata-ctl: let check framework arch-agnosticfd77eebd4
runtime-rs: fix the issues mentioned in the code review0e6920790
runtime-rs: Clean up mount points shared to guestecb28e2b1
kernel: adding kmod to do docker env087515a46
agent: unset `CC` for cross-buildbf8848f92
agent: Eliminate unnecessary metricsf8a48ab41
docs: add hint of probing loop moduleafaf17f42
runtime-rs: enable container hugepagefc4a67eec
runtime-rs: enable vm hugepage Signed-off-by: Archana Shinde <archana.m.shinde@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. |
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.