- libs/kata-types: adjust default_vcpus correctly - runtime-rs: delete duplicated PASSTHROUGH_FS_DIR const - Enable ACRN hypervisor support for Kata 2.x release - agent: reduce reference count for failed mount - agent: don't exit early if signal fails due to ESRCH - kata-sys-util: delete duplicated get_bundle_path - packaging: Mount $HOME/.docker in the 1st layer container - Upgrade to Cloud Hypervisor v27.0 - microvm: Remove kernel_irqchip=on option - kata-sys-util: fix typo `unknow` - dragonball: update ut for kernel config - versions: Update gperf url to avoid libseccomp random failures - versions: Update oci version - dragonball: fix no "as_str" error on Arm - tools: release: fix bogus version check - runtime-rs: update Cargo.lock - refactor(runtime-rs): Use RwLock in runtime-agent - runtime-rs: fix shim close_io call to support kubectl cp - runtime-rs: add comments for runtime-rs shared directory - workflow: trigger test-kata-deploy with pull_request and fix workflow_dispatch - Dragonball: update linux_loader to 0.6.0 - modify virtio_net_dev_mgr.rs wrong code comments - docs: Update urls in runk documentation - runtime-rs: support watchable mount - runtime-rs: debug console support in runtime - kata-deploy: ship the rustified runtime binary - runtime-rs: define VFIO unbind path as a const - runtime-rs: set agent timeout to 0 for stream RPCs - Added SNP-Support for Kata-Containers - packaging: fix typo in configure-hypervisor.sh - runtime/runtime-rs: update dependency - release: Revert kata-deploy changes after 3.0.0-rc0 release - runtime-rs: add test for StaticResource - runtime-rs: remove hardcoded string - docs: add README for runtime-rs hypervisor crate - runtime-rs: use Path.is_file to check regular files - osbuilder: Export directory variables for libseccomp - runtime-rs: add unit tests for network resource - runtime-rs/resource: use macro to reduce duplicated code - runtime-rs: fix incorrect comments - kernel: Add crypto kernel config for s390 - Non-root hypervisor uid reuse bug - Build-in Sandbox: update dragonball-sandbox dependencies - docs: Update url in virtualization document - dragonball: Fix problem that stdio console cannot connect to stdout - runtime-rs: call TomlConfig's validate function after load - feat(Shimmgmt): Shim management server and client53f209af4
libs/kata-types: adjust default_vcpus correctlyef5a2dc3b
agent: don't exit early if signal fails due to ESRCH435c8f181
acrn: Enable ACRN hypervisor support for Kata 2.x releasec31cf7269
agent: reduce reference count for failed mount4da743f90
packaging: Mount $HOME/.docker in the 1st layer container067e2b1e3
runtime: clh: Use the new API to boot with TDX firmware (td-shim)5d63fcf34
runtime: clh: Re-generate the client codefe6107042
versions: Upgrade to Cloud Hypervisor v27.017de94e11
microvm: Remove kernel_irqchip=on option3aeaa6459
runtime-rs: delete duplicated PASSTHROUGH_FS_DIR const43ae97233
kata-sys-util: delete duplicated get_bundle_pathac0483122
kata-sys-util: fix typo `unknow`a24127659
versions: Update gperf url to avoid libseccomp random failuresa617a6348
versions: Update oci version6d585d591
dragonball: fix no "as_str" error on Arm421729f99
tools: release: fix bogus version check457b0beaf
runtime-rs: update Cargo.lockf89ada2de
dragonball: update ut for kernel config0e899669e
runtime-rs: fix shim close_io call to support kubectl cp96cf21fad
runtime-rs: add comments for runtime-rs shared directory9bd941098
docs: Update urls in runk documentation90ecc015e
Dragonball: update linux_loader to 0.6.04a763925e
runtime-rs: support watchable mountabc26b00b
dragonball: modify wrong code comments modify virtio_net_dev_mgr.rs wrong code comments20bcaf0e3
runtime-rs: set agent timeout to 0 for stream RPCs274de024c
docs: add README for runtime-rs hypervisor cratea4a23457c
osbuilder: Export directory variables for libseccompd663f110d
kata-deploy: get the config path from cri optionsc6b3dcb67
kata-deploy: support kata-deploy for runtime-rs46965739a
runtime-rs: remove hardcoded stringa394761a5
kata-deploy: add installation for runtime-rs50299a329
refactor(runtime-rs): Use RwLock in runtime agent9628c7df0
runtime: update runc dependency7fbc88387
runtime-rs: drop dependency on rustc-serializebf2be0cf7
release: Revert kata-deploy changes after 3.0.0-rc0 releasee23bfd615
runtime-rs: make function name more understandable426a43678
runtime-rs: add unit test and eliminate raw string87959cb72
runtime-rs: debug console support in runtimed55cf9ab7
docs: Update url in virtualization document0399da677
runtime-rs: update dependenciesf6f19917a
dragonball: update dragonball-sandbox dependencies2caee1f38
runtime-rs: define VFIO unbind path as a const3f65ff2d0
runtime-rs: fix incorrect comments9670a3caa
runtime-rs: use Path.is_file to check regular filesd9e6eb11a
docs: Guide to use SNP-VMs with Kata-Containersded60173d
runtime: Enable choice between AMD SEV and SNP22bda0838
runtime: Support for AMD SEV-SNP VMsa2bbd2942
kernel: Introduce SNP kernel0e69405e1
docs: Developer-Guide updated105eda5b9
runtime: Initrd path option added to configa8a8a28a3
runtime-rs/resource: use macro to reduce duplicated code7622452f4
Dragonball: Fix the problem about stdio console208233288
runtime-rs: add test for StaticResourceadb33a412
packaging: fix typo in configure-hypervisor.shf91431987
runtime: store the user name in hypervisor config86a02c5f6
kernel: Add crypto kernel config for s3905cafe2177
runtime: make StopVM thread-safec3015927a
runtime: add more debug logs for non-root user operation5add50aea
runtime-rs: timeout for shim management client9f13496e1
runtime-rs: shim management clientaaf6d6908
runtime-rs: call TomlConfig's validate function after loade891295e1
runtime-rs: shim management - agent-url59aeb776b
runtime-rs: shim managementa828292b4
runtime-rs: add unit tests for network resource7676cde0c
workflow: trigger test-kata-deploy with pull_requestf10827357
workflow: require PR num input on test-kata-deploy workflow_dispatch 428d6dc80 workflow: Revert "workflow: trigger test-kata-deploy with pull_request" 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. |
runtime-rs | core | The Rust version runtime. |
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.