- kata-deploy: fix tar command in dockerfile - vendor: update to containerd v1.6.0-beta.4 - versions: Upgrade to Cloud Hypervisor v20.2 - vc: remove swagger binary - agent: Refactor command line parsing to use a framework - move the oci and protocols crates from agent to upper libs - docs: Remove word duplication - osbuilder: Restore Debian as a rootfs - runtime: fix a typo in kata-collect-data.sh - agent: return detail error message for RPC calls from shim - use-cases: clarify SPDK vhost-user-nvme target status in using-spdk-v… - Delint dockerfiles - Makefile: update `make go-test` call - docs: add how-to on DinD in Kata - agent: Ignore unknown seccomp system calls - agent: mount: Remove unneeded mount_point local variable - docs: Fix outdated links - docs: Fix kernel configs README spelling errors - security: Update rust crate versions - kata-manager: Retrieve static tarball - osbuilder: avoid to copy versions.txt which already deprecated - qemu: Disable libudev for QEMU 5.2 and newer - osbuilder: Add protoc to the alpine container - docs: Clarify where to run agent API generation commands - packaging/qemu: partial git clone - docs: Fix arch doc formatting - CI: Switch to a mirror as gnu.org is down - Split architecture doc into separate files - docs: Update the stable branch strategy - tracing: Add span name to logging error - docs: Update code PR advice document - agent: Add config file option to cli - update container type handling - docs: Update architecture document - runtime: update golang to 1.16 and remove ioutil package - kata-deploy: Deal with empty containerd conf file - src: reorg source code directory - osbuilder: show usage if no options/arguments specified - Upgrade to Cloud Hypervisor v20.1 - image_build: add help info for '-f' option and 'BLOCK_SIZE' env. - osbuilder: be runtime consistent with podman build - osbuilder: Revert to using apk.static for Alpine - runtime/template: Handling new attributes for hypervisor config - docs: fix check-markdown test - runtime: correct span name for stopSandbox function - runtime: only call stopVirtiofsd when shared_fs is virtio-fs - snap: read initrd and image distros from version.yaml - versions: Use Ubuntu initrd for non-musl archs - packaging: Fix missing commit message in building kata-runtime - virtcontainers: clh: Upgrade to openapi-generator v5.3.0 - agent: user container ID as watchable storage key for hashmap - runtime: enable vhost-net for rootless hypervisor - packaging: add help information for '-f' option in install_go.sh - Cleanup some unused variables, definitions - Upgrade to Cloud Hypervisor v20.0 - docs: Update limitation document regarding docker swarm - runtime: Enable FUSE_DAX kernel config for DAX - agent: copy empty directories for watchable-bind mounts - runtime: Update comments for virtcontainers to use kata 2.0 - Update rust crate versions - osbuilder: Remove debian as a rootfse2c1e65ekata-deploy: fix tar command in dockerfile615224e9agent: move the protocols to upper libs330e3dccagent: move the oci crate to upper libs7b03d78fvendor: update to containerd v1.6.0-beta.41f581a04versions: Upgrade to Cloud Hypervisor v20.2623d8f08docs: Remove word duplication1c4edb96agent: Refactor arg parsing to use clap3093f93aosbuilder: Restore Debian as a rootfs073a3459use-cases: clarify vhost-user-nvme status in using-spdk-vhost-user2254fa86runtime: fix a typo in kata-collect-data.sh2d0f9d2dvc: remove swagger binarycf91307cagent: return detail error message for rpc calls from shim137e217bdocs: Fix outdated k8s link55bac67adocs: Fix kernel configs README spelling errors205420d2docs: Replicate branch rename on runtime-spec91abebf9agent: mount: Remove unneeded mount_point local variableb1f4e945security: Update rust crate versionsd79268actools/packaging: add copyright to kata-monitor's Dockerfile428cf0a6packaging: delint tests dockerfiles1ea9b703packaging: delint kata-deploy dockerfiles3669e1b6ci/openshift-ci: delint dockerfilesaeb2b673osbuilder: delint dockerfilesbc120289packaging: delint kata-monitor dockerfilesbc71dd58packaging: delint static-build dockerfiles99ef52a3osbuilder: Add protoc to the alpine containerc2578cd9docs: Clarify where to run agent API generation commands321995b7CI: Switch to a mirror as gnu.org is downfb1989b2docs: Fix arch doc formatting2938bb7fpackaging/qemu: Use QEMU script to update submodules5d49ccd6packaging/qemu: Use partial git clone87a219a1docs: Update the stable branch strategyd1bc409dosbuilder: avoid to copy versions.txt which already deprecated1653dd4atracing: Add span name to logging error12c8e41cqemu: Disable libudev for QEMU 5.2 and newer233015a6docs: Split guest assets details out of arch docdb411c23docs: Split k8s info out of arch doc7ac619b2docs: Split networking out of arch doc5df0cb64docs: Split storage out of arch doc7229b7a6docs: Split background and example out of arch doc283d7d52docs: Split history out of arch doc6f9efb40docs: Move arch doc to separate directory02608e13docs: Update code PR advice documentcb5c948akata-manager: Retrieve static tarball51bf9807docs: Update architecture documentf3a97e94docs: add how-to on Docker in Kata7a989a83runtime: api-test: fixup52f79aefutils: update container type handling5b002f3cdocs: change io/ioutil to io/os packages03546f75runtime: change io/ioutil to io/os packages24a530ceversions: bump minimum golang version to 1.16.107c4263b3src: reorg source directories1a34fbcdagent: Add config file option to clibbfb10e1versions: Upgrade to Cloud Hypervisor v20.184571506kata-deploy: Deal with empty containerd conf file3f7cf7aeosbuilder: show usage if no options/arguments specified2ebaaac7osbuilder: be runtime consistent also with podman buildf3103696docs: fix check-markdown test2204ecacversions: Upgrade Alpine, using minor versiondfd0732fosbuilder: Revert to using apk.static for Alpine6b3e4c21image_build: add help info for '-f' option and 'BLOCK_SIZE' env.b92babf9runtime/template: Handling new attributes for hypervisor config40bd34caruntime: only call stopVirtiofsd when shared_fs is virtio-fs33f343eeruntime: correct span name for stopSandbox functiond7cc952cversions: Use Ubuntu initrd for non-musl archsff929fc0snap: read initrd and image distros from version.yaml8fae2631packaging: Fix missing commit message in building kata-runtime99530026virtcontainers: clh: Upgrade to openapi-generator v5.3.0b3bcb7b2runtime: enable vhost-net for rootless hypervisor7cb7b9d5agent: remove unused field in mount handlingf6ae1582agent: drop unused fields from network4756a04bvirtcontainers: clh: Re-generate the client code0bf4d257versions: Upgrade to Cloud Hypervisor v20.0647082b2docs: Update limitation document regarding docker swarm39b35d00agent: user container ID as watchable storage key for hashmap1e6f58e5packaging: add help information for '-f' option in install_go.sh2af95bc5agent: create directories for watchable-bind mounts6105e3eeruntime: enable FUSE_DAX kernel config for DAX591d4af1runtime: Update comments for virtcontainers to use kata 2.0923e098dosbuilder: Remove debian as a rootfsafb96c00agent: Wrap remaining nix errors with anyhowaba572e0rustjail: Wrap remaining nix errors with anyhow30d60078uevent: Fix clippy issue in test code4a2be13cagent: Upgrade nix version for security fix256d5008agent: Update crate versions13257986agent-ctl: Update rust lockfile4ebdd424forwarder: Update rust lockfile6007322dagent: Fixed invalid error message7b356151agent: Log unknown seccomp system calls7304e52aMakefile: update `make go-test` callc66b5668agent: Ignore unknown seccomp system calls Signed-off-by: Snir Sheriber <ssheribe@redhat.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.
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
Developers
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. |
| 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. |
trace-forwarder |
utility | Agent tracing helper. |
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.