- Fix typos in sandbox and persist/fs - AArch64: change image rootfs from fedora to ubuntu - build: Add support to strip the binary - kernel: Update kernel to latest stable 5.4.15 - selinux: Disable selinux - rootless: implement rootless fs and support --rootless option - ci: Do not setup virtcontainers while using podman - CI: update yq to 3.1.0 - dep: Fix dep check - Update Cloud Hypervisor to v0.5.0 - docs: README: Minor grammatical updates - FC: Update Firecracker to v0.20.0 - Support hotplug PCIe in q35 - virtcontainers: clh: Set the serial to NULL instead of OFF - s390x: fix refactoring - AArch64: fix golint error on ARM CI. - versions: bump conmon version to v2.0.5 - virtcontainers: Fix error message in mockHypervisor - rootless: use libcontainer API to detect rootless - Add Ipv6 support - vendor: update agent client - qemu: Add virtio-mem support - virtcontainers: constrain docker container when sandbox_cgroup_only=true - Fix typo in 'sandbox' - vc: Detach device when unable to store sandbox device - unit-test: cleaning up stale files under /tmp - support systemd cgroups and cgroupsV2 - Land experimental "newstore" as formal feature - versions: update qemu to 4.1.1 - FC: jailer failed when importing new flag "--config-file" - ut: fix make test failures - qemu: add disable_image_nvdimm option - clh: Increase unit test using mock testing - versions: Update cloud hypervisor url - rootless: fix rootless for case net=none - vendor: Update github.com/kata-containers/agent - shimv2: support runtime config path via annotation - shimv2: clean up properly if vmm quits unexpectedly - vendor: Update golang.org/x/sys - clh: update to latest master - cache-factory: a few bug fix - FC: introduce `--config-file` to bypass API ready state - clh: client: update acording to versions.yaml - vc: Check error return from storeState - makefile: honor virtiofs config for default config - virtiofs: add default value for virtioFsCache type.0f720e6fvirtcontainers: fix typo in sandbox78bb6c0fvirtcontainers/persist: fix typo in fs2c3b4657build: Add support to strip the binarya45cf62evirtcontainers/pkg/rootless: fix comment on exported varc36c667bcli: implement --rootless option11bd456avirtcontainers: support new persist API9585bc92virtcontainers/hypervisors: support new persist API00307a70virtcontainers/sandbox: support new persist API4b9ab557virtcontainers/factory: support new persist API71f48a33virtcontainers/persist: update `GetDriver` to support rootless fsdd2762fdvirtcontainers/persist: introduce mock fs driverea8fb96cvirtcontainers/persist: introduce rootless fs driver768db1bdvirtcontainers/persist: update API and interface6be74811virtcontainers: remove getVMPath method from agent658f7797rootless: move pkg/rootless to virtcontainers83561c4cci: Do not setup virtcontainers while using podman22c486aaCI: update yq to 3.1.0a8dcff5bAArch64: change image rootfs from fedora to ubuntude7383b2kernel: Update kernel to latest stable 5.4.155c3bcd88dep: Fix dep check836e3c21clh: update to v0.5.0055f3171selinux: Disable selinux7498978cVendor: update agent client27d9e433FC: update Firecracker to v0.20.0bb41b724qemu: Support PCIe device hotplug for q35fa7d00ecvendor: update github.com/intel/govmmb2fb86f3virtcontainers: clh: Set the serial to NULL instead of OFF96a49a89AArch64: arm ci failed on stale Gopkg.lock.9bf4b859AArch64: fix golint error on ARM CI.2560e65eversions: bump conmon version to v2.0.5693ad238virtcontainers: Fix error message in mockHypervisorc5d79eb2ipv6: Add support for ipv6 for netmon as well.b169476bipv6: Add support for ipv64a77b0f8rootless: use libcontainer API to detect rootlessb602e62adocs: README: Minor grammatical updatesc26ce186vendor: update agent client01a12b00qemu: Add virtio-mem supportc3cf98acvirtcontainers: constrain docker container when sandbox_cgroup_only=true54482f18virtcontainers: remove json cgroups struct tagb3374289vendor: Update github.com/intel/govmm316b5f2bvirtcontainers: Fix typo in logger message1f957e1bvc: Detach device when unable to store sandbox device7186c01dunit-test: delete what ioutil.TempFile creates0244d95eunit-test: delete what ioutil.TempDir() createsaa62781aunit-test: reconstuct TestMaind042d5c0virtcontainers: fix unit tests776da087virtcontainers/hook: fix HookStatef372b858virtcontainers: reimplement setupSandboxCgroup9949daf4virtcontainers: move validCgroupPathce2795e9virtcontainers: remove systemd paramenter from constraintGRPCSpec8c63c180virtcontainers: add function to create a new cgroup manager8057cd72virtcontainers: add function to identify systemd cgroup path4126968bvirtcontainers: save CgroupPaths and Cgroups in sandboxa170d00bvendor: update agent112f90b7vendor: update golang/x/sys4a1dc1eevendor: update libcontainer908a42a4vendor: update logrus0af48197versions: update qemu to 4.1.135948550s390x: fix refactoring290339dacompatibility: keep oldstore for compatibility4a298cb9persist: address commentsd33b154dpersist: add interface for global read/writeed4a1954persist: remove unused struct8e88859epersist: remove all usage of VCStore01b4a64bpersist: remove VCStore from sandbox/apisb63e517fpersist: replace sandbox lock with newstore.Lock508101bcpersist: fix vmtemplate storage leak29b55ab8persist: remove VCStore from container633748aapersist: remove VCStore from hypervisor687f2dbepersist: move "newstore" out of experimental3ed472dcstore: UT tmp path should be random56171206nsenter: skip ut on non-roote5b04a5but: fs test should set RunStoragePath9bf0d67fut: direct factory needs to set VCStorePrefix4c35d091vc: set store RunVMStoragePath for ut3deb24e5cli: flush coverage report in defer functionf56d70ccvc: UT should set VCStorePrefix7c7a4a3bannotations: add disable_image_nvdimm652bb76dcli: syscall return value check is wronga8717286qemu: add disalbe_image_nvdimm optiondd5b4469qemu: refactor appendImagea2d3f9f3vitiofsd: Add virtiofsd interaface2a085ee6clh: virtiofsd: check path is not emptyaf5c9c23clh: hypervisor: Do not set 9p values for virtiofs6a10cd96clh: test: add unit test8a439eabclh: add Client Interface and bootVM test09198eedFC: jailer failed when importing new flag "--config-file"661956f5versions: Update cloud hypervisor urlb96c7e5arootless: fix rootless for case net=nonea215f87evendor: Update github.com/kata-containers/agent to handle hvsock issue1c11fe20shimv2: support runtime config path via annotation6cd9b3b0vendor: Update golang.org/x/sys9c3151e5clh: remove not requried valuese9a852ddclh: update api calls for latest master1a7539c1clh: update client55323788versions: update clh to v0.4.06eae033fshimv2: cleanup container if not found743309cdvc: stop container should change container state at lastefb611aaclh: client: update acording to versions.yamlab2088f7makefile: honor virtiofs config for default config9a154570vc: Check error return from storeState8f6d0ab1FC: introduce `--config-file` to replace API configure requestf2d8d715FC: func checkVersion should be more independent9ce21135FC: remove API Ready statecc25216bvirtiofs: add default value for virtioFsCache type.837a0ee0cache-factory: set bridge info when creating vm3d8ffe41cache-factory: fix nil pointer runtime panic Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
Runtime
This repository contains the runtime for the Kata Containers project.
For details of the other Kata Containers repositories, see the repository summary.
- Introduction
- License
- Platform support
- Download and install
- Quick start for developers
- Architecture overview
- Configuration
- Logging
- Debugging
- Limitations
- Community
- Further information
- Additional packages
Introduction
kata-runtime, referred to as "the runtime", is the Command-Line Interface
(CLI) part of the Kata Containers runtime component. It leverages the
virtcontainers
package to provide a high-performance standards-compliant runtime that creates
hardware-virtualized Linux containers running on Linux hosts.
The runtime is OCI-compatible, CRI-O-compatible, and Containerd-compatible, allowing it to work seamlessly with both Docker and Kubernetes respectively.
License
The code is licensed under an Apache 2.0 license.
See the license file for further details.
Platform support
Kata Containers currently works on systems supporting the following technologies:
- Intel VT-x technology.
- ARM Hyp mode (virtualization extension).
- IBM Power Systems.
- IBM Z mainframes.
Hardware requirements
The runtime has a built-in command to determine if your host system is capable of running and creating a Kata Container:
$ kata-runtime kata-check
Note:
By default, only a brief success / failure message is printed. If more details are needed, the
--verboseflag can be used to display the list of all the checks performed.
rootpermission is needed to check if the system is capable of running Kata containers. In this case, additional checks are performed (e.g., if another incompatible hypervisor is running).
Download and install
See the installation guides available for various operating systems.
Quick start for developers
See the developer guide.
Architecture overview
See the architecture overview for details on the Kata Containers design.
Configuration
The runtime uses a TOML format configuration file called configuration.toml.
The file contains comments explaining all options.
Note:
The initial values in the configuration file provide a good default configuration. You may need to modify this file to optimise or tailor your system, or if you have specific requirements.
Since the runtime supports a
stateless system,
it checks for this configuration file in multiple locations, two of which are
built in to the runtime. The default location is
/usr/share/defaults/kata-containers/configuration.toml for a standard
system. However, if /etc/kata-containers/configuration.toml exists, this
takes priority.
The below command lists the full paths to the configuration files that the runtime attempts to load. The first path that exists will be used:
$ kata-runtime --kata-show-default-config-paths
Aside from the built-in locations, it is possible to specify the path to a
custom configuration file using the --kata-config option:
$ kata-runtime --kata-config=/some/where/configuration.toml ...
The runtime will log the full path to the configuration file it is using. See the logging section for further details.
To see details of your systems runtime environment (including the location of the configuration file being used), run:
$ kata-runtime kata-env
Logging
The runtime provides --log= and --log-format= options. However, the
runtime also always logs to the system log (syslog or journald).
To view runtime log output:
$ sudo journalctl -t kata-runtime
For detailed information and analysis on obtaining logs for other system
components, see the documentation for the
kata-log-parser
tool.
Debugging
See the debugging section of the developer guide.
Limitations
See the limitations file for further details.
Community
Contact
See how to reach the community.
Further information
See the project table of contents and the documentation repository.
Additional packages
For details of the other packages contained in this repository, see the package documentation.