- Update CC=gcc setting for Fedora s390x - osbuilder: Streamline s390x CMake & musl handling - runtime: remove the call to storeSandbox at the end of createSandboxFromConfig - virtcontainers: Add support for Secure Execution - agent: Conform to the latest nix version (0.21.0) - docs: Update the stable branch strategy to what was proposed in our ML - runtime: add more traces for network - tools/packaging: clone meson and dependencies before building QEMU - runtime: remove covertool from cli test - factory: Use lazy unmount - docs: Fix Release Process document - Add sandbox and container ID to trace spans - agent: Fix fd leak caused by netlink - metrics: Add virtiofsd exporter - versions: Update kubernetes to 1.21.1 - tracing: Add basic VSOCK tracing - agent: Upgrade tokio-vsock to fix fd leak of vsock socket - runtime: fix some comments and logs - runtime: Add support for PEF - cleanup TODOs in runtime - tracing: Make runtime span attributes more consistent - virtiofsd: refactor qemu.go to use code in virtiofsd.go - runtime: remove unused doc.go - cgroup: fix the issue of set mem.limit and mem.swap - agent: re-enable the standard SIGPIPE behavior - virtiofsd: Fix file descriptors leak and return correct PID - runtime: and cgroup and SandboxCgroupOnly check for check sub-command - kernel: add ppc64le fragments - docs: Use --ignore-preflight-errors=all flag - agent: fix start container failed when dropping all capabilities - agent: Remove unnecessary underscore(_) variables - docs: Add instructions for getting QEMU source - qemu: align before memory hotplug on arm64 - workflows: release kata 2.x snap through the stable channel - Sandbox bindmount cleanup - docs: Update add customer agent command - agent: Stop relying in the unmaintained prctl crate - how-to-use-virtio-mem-with-kata.md: Update doc to make it clear - docs: Add document for memory hotplug on arm64 - github: Run require porting labels only at main - kernel: add confidential guest build option - rustjail: separated the propagation flags from mount flags - runtime: improve sandbox cleanup logic - docs: add note for connecting debug console for old versions - image_build: align image size to 128M for arm64 - agent: avoid reaping the exit signal of execute_hook in the reaper - agent: move the dependency tempfile to the dev-dependencies section - docs: Document test repository changes when creating a stable branch - docs: Remove horizontal ruler markers that disable spell checks - docs/Developer-Guide: Add instructions to apply QEMU patches - runtime: make dialing timeout configurable - Get sandbox metrics cli - Support TDx - packaging/kata-cleanup: add k3s containerd volume - osbuilder: Upgrade alpine version to 3.13.5 - Monitor cleanup - Open CONFIG_VIRTIO_MEM in x86_64 Linux kernel - agent: delete code which is no longer used - cli: delete tracing code for kata-runtime binary - docs: add per-Pod Kata configurations for `enable_pprof` - Fix issue of virtio-mem - Set fixed NOFILE limit value for kata-agent - ci/install_yq.sh: install_yq: Check version before return - runtime: use s.ctx instead ctx for checking cancellation - runtime: fix some comments |
||
---|---|---|
.github/workflows | ||
ci | ||
docs | ||
pkg/logging | ||
snap | ||
src | ||
tools | ||
utils | ||
.gitignore | ||
CODE_OF_CONDUCT.md | ||
CODEOWNERS | ||
CONTRIBUTING.md | ||
LICENSE | ||
Makefile | ||
README.md | ||
utils.mk | ||
VERSION | ||
versions.yaml |

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.
For further details on the older (first generation) Kata Containers 1.x versions, see the Kata Containers 1.x components section.
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.
Getting started
See the installation documentation.
Documentation
See the official documentation (including installation guides, the developer guide, design documents and more).
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
Kata Containers 1.x versions
For older Kata Containers 1.x releases, please raise an issue in the Kata Containers 1.x component repository that seems most appropriate.
If in doubt, raise an issue in the Kata Containers 1.x runtime repository.
Developers
Components
Component | Type | Description |
---|---|---|
agent-ctl | utility | Tool that provides low-level access for testing the agent. |
agent | core | Management process running inside the virtual machine / POD that sets up the container environment. |
documentation | documentation | Documentation common to all components (such as design and install documentation). |
osbuilder | infrastructure | Tool to create "mini O/S" rootfs and initrd images for the hypervisor. |
packaging | infrastructure | Scripts and metadata for producing packaged binaries (components, hypervisors, kernel and rootfs). |
runtime | core | Main component run by a container manager and providing a containerd shimv2 runtime implementation. |
trace-forwarder | utility | Agent tracing helper. |
Kata Containers 1.x components
For the first generation of Kata Containers (1.x versions), each component was kept in a separate repository.
For information on the Kata Containers 1.x releases, see the Kata Containers 1.x releases page.
For further information on particular Kata Containers 1.x components, see the individual component repositories:
Component | Type | Description |
---|---|---|
agent | core | See components. |
documentation | documentation | |
KSM throttler | optional core | Daemon that monitors containers and deduplicates memory to maximize container density on the host. |
osbuilder | infrastructure | See components. |
packaging | infrastructure | See components. |
proxy | core | Multiplexes communications between the shims, agent and runtime. |
runtime | core | See components. |
shim | core | Handles standard I/O and signals on behalf of the container process. |
Note:
- There are more components for the original Kata Containers 1.x implementation.
- The current implementation simplifies the design significantly: compare the current and previous generation designs.
Common repositories
The following repositories are used by both the current and first generation Kata Containers implementations:
Component | Description | Current | First generation | Notes |
---|---|---|---|---|
CI | Continuous Integration configuration files and scripts. | Kata 2.x | Kata 1.x | |
kernel | The Linux kernel used by the hypervisor to boot the guest image. | Kata 2.x | Kata 1.x | Patches are stored in the packaging component. |
tests | Test code. | Kata 2.x | Kata 1.x | Excludes unit tests which live with the main code. |
www.katacontainers.io | Contains the source for the main web site. | Kata 2.x | Kata 1.x |
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.