- runtime-rs: fix design doc's typo - docs: use curl as default downloader for runtime-rs - runtime-rs: update Cargo.lock - Fix some GitHub actions workflow issues - versions: Update libseccomp version - runtime-rs:merge runtime rs to main - nydus: wait nydusd API server ready before mounting share fs - versions: Update TD-shim due to build breakage - agent-ctl: Add an empty [workspace] - packaging: Create no_patches.txt for the SPR-BKC-PC-v9.6.x - docs: Improve SGX documentation - runtime: explicitly mark the source of the log is from qemu.log - runtime: add unlock before return in sendReq - docs: add back host network limitation - runk: add ps sub-command - Depends-on:github.com/kata-containers/tests#4986 - runtime-rs:update rtnetlink version - runtime-rs:skip the build process when the arch is s390x - docs: Improve SGX documentation - agent: Use rtnetlink's neighbours API to add neighbors - Bump TDX dependencies (QEMU and Kernel) - OVMF / td-shim: Adjust final tarball location - libs: fix CI error for protocols - runtime-rs: merge main to runtime-rs - packaging: Add support for building TDVF - versions: Track and add support for building TD-shim - versions: Upgrade rust version - Merge Main into runtime-rs branch - agent: log RPC calls for debugging - runtime-rs: fix stop failed in azure - Add support AmdSev build of OVMF - runtime: Support for host cgroupv2 - versions: Update runc version - qemu: Add liburing to qemu build - runtime-rs: fix set share sandbox pid namespace - Docs: fix tables format error - versions: Update Firecracker version to v1.1.0 - agent: Fix stream fd's double close - container: kill all of the processes in a container when it terminated - fix network failed for kata ci - runtime-rs: handle default_vcpus greator than default_maxvcpu - agent: fix fd-double-close problem in ut test_do_write_stream - runtime-rs: add functionalities support for macvlan and vlan endpoints - Docs: add rust environment setup for kata 3.0 - rustjail: check result to let it return early - upgrade nydus version - support disable_guest_seccomp - cgroups: remove unnecessary get_paths() - versions: Update firecracker version - kata-monitor: fix can't monitor /run/vc/sbs - runtime-rs: fix sandbox_cgroup_only=false panic - runtime-rs: fix ctr exit failed - docs: add installation guide for kata 3.0 - runtime-rs: support functionalities of ipvlan endpoint - runtime-rs: remove the value of hypervisor path in DB config - kata-sys-util: upgrade nix version - runtime-rs: fix some bugs to make runtime-rs on aarch64 - runk: Support `exec` sub-command - runtime-rs: hypervisor part - clh: Don't crash if no network device is set by the upper layer - packaging: Rework how ${BUILD_SUFFIX} is used with the QEMU builder scripts - versions: Update Cloud Hypervisor to v25.0 - Runtime-rs merge main - kernel: Deduplicate code used for building TEE kernels - runtime-rs: Dragonball-sandbox - add virtio device feature support for aarch64 - packaging: Simplify config path handling - build: save lines for repository_owner check - kata 3.0 Architecture - Fix clh tarball build - runtime-rs: built-in Dragonball sandbox part III - virtio-blk, virtio-fs, virtio-net and VMM API support - runtime: Fix DisableSelinux config - docs: Update URL links for containerd documentation - docs: delete CRI containerd plugin statement - release: Revert kata-deploy changes after 2.5.0-rc0 release - tools/snap: simplify nproc - action: revert commit message limit to 150 bytes - runtime-rs: Dragonball sandbox - add Vcpu::configure() function for aarch64 - runtime-rs: makefile for dragonball - runtime-rs:refactor network model with netlink - runtime-rs: Merge Main into runtime-rs branch - runtime-rs: built-in Dragonball sandbox part II - vCPU manager - runtime-rs: runtime-rs merge main - runtime-rs: built-in Dragonball sandbox part I - resource and device managerscaada34f1
runtime-rs: fix design doc's typob61dda40b
docs: use curl as default downloader for runtime-rsca9d16e5e
runtime-rs: update Cargo.lock99a7b4f3e
workflow: Revert "static-checks: Allow Merge commit to be >75 chars"d14e80e9f
workflow: Revert "docs: modify move-issues-to-in-progress.yaml"1f4b6e646
versions: Update libseccomp version8a4e69008
versions: Update TD-shim due to build breakage065305f4a
agent-ctl: Add an empty [workspace]1444d7ce4
packaging: Create no_patches.txt for the SPR-BKC-PC-v9.6.x2ae807fd2
nydus: wait nydusd API server ready before mounting share fsc8d4ea84e
docs: Improve SGX documentationd8ad16a34
runtime: add unlock before return in sendReq8bbffc42c
runtime-rs:update rtnetlink versionc5452faec
docs: Improve SGX documentation389ae9702
runtime-rs:skip the test when the arch is s390x945e02227
runtime-rs:skip the build process when the arch is s390x8d1cb1d51
td-shim: Adjust final tarball location62f05d4b4
ovmf: Adjust final tarball location9972487f6
versions: Bump Kernel TDX versionc9358155a
kernel: Sort the TDX configs alphabeticallydd397ff1b
versions: Bump QEMU TDX version230a22905
runk: add ps sub-command889557ecb
docs: add back host network limitationc9b5bde30
versions: Track and build TDVFe6a5a5106
packaging: Generate a tarball as OVMF build result42eaf19b4
packaging: Simplify OVMF repo clone4d33b0541
packaging: Don't hardcode "edk2" as the cloned repo's dir.7247575fa
runtime-rs:fix cargo clippyb06bc8228
versions: Track and add support for building TD-shim86ac653ba
libs: fix CI error for protocols81fe51ab0
agent: fix unittests for arp neighbors845c1c03c
agent: use rtnetlink's neighbours API to add neighbors9b1940e93
versions: update rust version638c2c416
static-build: Add AmdSev option for OVMF builder Introduces new build of firmware needed for SEVf0b58e38d
static-build: Add build script for OVMFfa0b11fc5
runtime-rs: fix stdin hang in azure5c3155f7e
runtime: Support for host cgroup v24ab45e5c9
docs: Update support for host cgroupv2326eb2f91
versions: Update runc versionf5aa6ae46
agent: Fix stream fd's double close problem6e149b43f
Docs: fix tables format error85f4e7caf
runtime: explicitly mark the source of the log is from qemu.log56d49b507
versions: Update Firecracker version to v1.1.0b3147411e
runtime-rs:add unit test for set share pid ns1ef3f8eac
runtime-rs: set share sandbox pid namespace57c556a80
runtime-rs: fix stop failed in azure0e24f47a4
agent: log RPC calls for debuggingc825065b2
runtime-rs: fix tc filter setup failede0194dcb5
runtime-rs: update route destination with prefixfa85fd584
docs: add rust environment setup for kata 3.0896478c92
runtime-rs: add functionalities support for macvlan and vlan endpointsdf79c8fe1
versions: Update firecracker version912641509
agent: fix fd-double-close problem in ut test_do_write_stream43045be8d
runtime-rs: handle default_vcpus greator than default_maxvcpu0d7cb7eb1
agent: delete agent-type property in announceeec9ac81e
rustjail: check result to let it return early.402bfa0ce
nydus: upgrade nydus/nydus-snapshotter version54f53d57e
runtime-rs: support disable_guest_seccomp4331ef80d
Runtime-rs: add installation guide for rust-runtime72dbd1fcb
kata-monitor: fix can't monitor /run/vc/sbs.e9988f0c6
runtime-rs: fix sandbox_cgroup_only=false paniccebbebbe8
runtime-rs: fix ctr exit failed62182db64
runtime-rs: add unit test for ipvlan endpoint99654ce69
runtime-rs: update dbs-xxx dependenciesf4c3adf59
runtime-rs: Add compile option file545ae3f0e
runtime-rs: fix warning19eca71cd
runtime-rs: remove the value of hypervisor path in DB configd8920b00c
runtime-rs: support functionalities of ipvlan endpoint2b01e9ba4
dragonball: fix warning996a6b80b
kata-sys-util: upgrade nix versionf690b0aad
qemu: Add liburing to qemu buildd93e4b939
container: kill all of the processes in this container3c989521b
dragonball: update for review274598ae5
kata-runtime: add dragonball config check support.1befbe673
runtime-rs: Cargo lock for fix version problem3d6156f6e
runtime-rs: support dragonball and runtime-binary3f6123b4d
libs: update configuration and annotations9ae2a45b3
cgroups: remove unnecessary get_paths()be31207f6
clh: Don't crash if no network device is set by the upper layer051181249
packaging: Add a "-" in the dir name if $BUILD_DIR is availabledc3b6f659
versions: Update Cloud Hypervisor to v25.0201ff223f
packaging: Use the $BUILD_SUFFIX when renaming the qemu binary1a25afcdf
kernel: Allow passing the URL to download the tarball80c68b80a
kernel: Deduplicate code used for building TEE kernelsd2584991e
dragonball: fix dependency unused warning458f6f42f
dragonball: use const string for legacy device type939959e72
docs: add Dragonball to hypervisorsf6f96b8fe
dragonball: add legacy device support for aarch647a4183980
dragonball: add device info support for aarch64f7ccf92dc
kata-deploy: Rely on the configured config path386a523a0
kata-deploy: Pass the config path to CRI-O13df57c39
build: save lines for repository_owner check57c2d8b74
docs: Update URL links for containerd documentatione57a1c831
build: Mark git repos as safe for build2551924bd
docs: delete CRI containerd plugin statement9cee52153
fmt: do cargo fmt and add a dependency for blk_dev47a4142e0
fs: change vhostuser and virtio into conste14e98bbe
cpu_topo: add handle_cpu_topology function5d3b53ee7
downtime: add downtime support6a1fe85f1
vfio: add vfio as TODO5ea35ddcd
refractor: remove redundant by_idb646d7cb3
config: remove ht_enabledcb54ac6c6
memory: remove reserve_memory_bytesbde6609b9
hotplug: add room for other hotplug solutiond88b1bf01
dragonball: update vsock dependencydd003ebe0
Dragonball: change error name and fix compile error38957fe00
UT: fix compile error in unit tests11b3f9514
dragonball: add virtio-fs device support948381bdb
dragonball: add virtio-net device support3d20387a2
dragonball: add virtio-blk device support87d38ae49
Doc: add document for Dragonball API2bb1eeaec
docs: further questions related to upcall026aaeecc
docs: add FAQ to the reportfffcb8165
docs: update the content of the report42ea854eb
docs: kata 3.0 Architectureefdb92366
build: Fix clh source build as normal user0e40ecf38
tools/snap: simplify nprocf59939a31
runk: Support `exec` sub-command4d89476c9
runtime: Fix DisableSelinux config090de2dae
dragonball: fix the clippy errors.a1593322b
dragonball: add vsock api to api server89b9ba860
dragonball: add set_vm_configuration api95fa0c70c
dragonball: add start microvm support5c1ccc376
dragonball: add Vmm struct4d234f574
dragonball: refactor code layoutcfd5dae47
dragonball: add vm struct527b73a8e
dragonball: remove unused feature in AddressSpaceMgr3bafafec5
action: extend commit message line limit to 150 bytes5010c643c
release: Revert kata-deploy changes after 2.5.0-rc0 release7120afe4e
dragonball: add vcpu test function for aarch64648d285a2
dragonball: add vcpu support for aarch647dad7c89f
dragonball: update dbs-xxx dependency07231b2f3
runtime-rs:refactor network model with netlinkc8a905206
build: format files242992e3d
build: put install methods in utils.mk8a697268d
build: makefile for dragonball config9c526292e
runtime-rs:refactor network model with netlink71db2dd5b
hotplug: add room for future acpi hotplug mechanism8bb00a3dc
dragonball: fix a bug when generating kernel boot args2aedd4d12
doc: add document for vCPU, api and devicebec22ad01
dragonball: add api module07f44c3e0
dragonball: add vcpu manager78c971875
dragonball: add upcall support7d1953b52
dragonball: add vcpu468c73b3c
dragonball: add kvm contexte89e6507a
dragonball: add signal handlerb6cb2c4ae
dragonball: add metrics systeme80e0c464
dragonball: add io manager wrapperd5ee3fc85
safe-path: fix clippy warning93c10dfd8
runtime-rs: add crosvm license in Dragonballdfe6de771
dragonball: add dragonball into kata README39ff85d61
dragonball: green ci71f24d827
dragonball: add Makefile.a1df6d096
Doc: Update Dragonball Readme and add document for device8619f2b3d
dragonball: add virtio vsock device manager.52d42af63
dragonball: add device manager.c1c1e5152
dragonball: add kernel config.6850ef99a
dragonball: add configuration manager.0bcb422fc
dragonball: add legacy devices manager3c45c0715
dragonball: add console manager.3d38bb300
dragonball: add address space manager.aff604055
dragonball: add resource manager support.8835db6b0
dragonball: initial commit9cb15ab4c
agent: add the FSGroup supportff7874bc2
protobuf: upgrade the protobuf version to 2.27.006f398a34
runtime-rs: use withContext to evaluate lazilyfd4c26f9c
runtime-rs: support network resource4be7185aa
runtime-rs: runtime part implement10343b1f3
runtime-rs: enhance runtimes9887272db
libs: enhance kata-sys-util and kata-types3ff0db05a
runtime-rs: support rootfs volume for resource234d7bca0
runtime-rs: support cgroup resource75e282b4c
runtime-rs: hypervisor base definebdfee005f
runtime-rs: service and runtime framework4296e3069
runtime-rs: agent implementsd3da156ee
runtime-rs: uint FsType for s390xe705ee07c
runtime-rs: update containerd-shim-protos to 0.2.08c0a60e19
runtime-rs: modify the review suggestion278f843f9
runtime-rs: shim implements for runtime-rs641b73610
libs: enhance kata-sys-util69ba1ae9e
trans: fix the issue of wrong swapness typed2a9bc667
agent: agent-protocol support asyncaee9633ce
libs/sys-util: provide functions to execute hooks8509de0ae
libs/sys-util: add function to detect and update K8s emptyDir volume6d59e8e19
libs/sys-util: introduce function to get device id5300ea23a
libs/sys-util: implement reflink_copy()1d5c898d7
libs/sys-util: add utilities to parse NUMA information87887026f
libs/sys-util: add utilities to manipulate cgroupccd03e2ca
libs/sys-util: add wrappers for mount and fs45a00b4f0
libs/sys-util: add kata-sys-util crate under src/libs48c201a1a
libs/types: make the variable name easier to understandb9b6d70aa
libs/types: modify implementation details05ad026fc
libs/types: fix implementation detailsd96716b4d
libs/types:fix styles and implementation details6cffd943b
libs/types:return Result to handle parse error6ae87d9d6
libs/types: use contains to make code more readable45e5780e7
libs/types: fixed spelling and grammer error2599a06a5
libs/types:use include_str! in test file8ffff40af
libs/types:Option type to handle empty tomlconfig626828696
libs/types: add license for test-config.rs97d8c6c0f
docs: modify move-issues-to-in-progress.yaml8cdd70f6c
libs/types: change method to update config by annotatione19d04719
libs/types: implement KataConfig to wrap TomlConfig387ffa914
libs/types: support load Kata agent configuration from file69f10afb7
libs/types: support load Kata hypervisor configuration from file21cc02d72
libs/types: support load Kata runtime configuration from file5b89c1df2
libs/types: add kata-types crate under src/libs4f62a7618
libs/logging: fix clippy warnings6f8acb94c
libs: refine Makefile rules7cdee4980
libs/logging: introduce a wrapper writer for logging426f38de9
libs/logging: implement rotator for log files392f1ecdf
libs: convert to a cargo workspace575df4dc4
static-checks: Allow Merge commit to be >75 chars Signed-off-by: Peng Tao <bergwolf@hyper.sh>

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. |
agent | core | Management process running inside the virtual machine / POD that sets up the container environment. |
libraries | core | Library crates shared by multiple Kata Container components or published to crates.io |
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). |
libraries | core | Library crates shared by multiple Kata Container components or published to crates.io |
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. |
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.