Go to file
Peng Tao 7b63f210aa release: Kata Containers 1.4.0
- versions: Update Kubernetes, containerd and cri-o
- virtcontainers: fix sandbox store struct VFIODevice bug
- virtcontainers: Add function supportGuestMemoryHotplug
- make: add ability to skip go version check
- cli: Fix console for big endian architecture
- virtcontainers: fix not close socket with ethtool
- build: introduction of archConvertStatFs function
- network: support hotplug a nic several times
- sandbox: Extend sandbox API
- golang.mk: Check and install yq before use it
- cli: refactor the config into a separated package
- newContainer: Not attach device if it is a CDROM
- build: check golang version meets min req.
- network: Use constant string for "none" network model
- runtime,netmon: build as Position-Independent-Executable
- virtcontainers: Rely on new interface LinkType field
- enable default network endpoints hotplug for vm factory
- cli: fix the issue of using wrong path to get version
- cli: add guest hook path option (v2)
- factory: use customised deep compare
- qemu: query migrate status
- Add support for ipvlan network driver
- Add cgroup support
- vfio: Change the way the driver is fetched
- vendor: Rely on new agent package types
- network: Use tc filtering rules in bridge mode
- cli: add configuration option to use or not use host netns
- versions: Update golang to 1.10.4
- network: Marshal BridgedMacvlanEndpoint and MacvtapEndpoint
- device: fix the issue of passing wrong device address using virtio-blk
- create/run: Make bundle path default to cwd
- virtcontainers: Add missing API trace calls
- sandbox/virtcontainers: memory resource hotplug when create container.
- virtcontainers: Add missing API release calls
- qemu: Disable the default romfile used by virtio-pci
- Refactor network.go
- network: Sort endpoints by name
- virtcontainers: qemu: Add proper support for virt machine type
- network: Add support for macvlan and macvtap driver
- memory: update: Update state using the memory removed
- block: Advertise block support for q35
- vendor: fix govmm package

766f9ed versions: Update Kubernetes, containerd and cri-o
cba7a88 virtcontainers: fix sandbox store struct VFIODevice bug
0796f2e virtcontainers: Add function supportGuestMemoryHotplug
d73f27c test: set arch for test TestHotplugRemoveMemory
bf56858 cli: Fix console for big endian architecture
4b9a471 virtcontainers: fix not close socket with ethtool
58c1db5 make: notify user if yq is going to be installed
ab43e2a make: add ability to skip go version check
b185f31 build: introduction of archConvertStatFs function
982381b api: Cleanup StartContainer()
5777381 sandbox: Create and export Pause/ResumeContainer() to the API level
b298ec4 sandbox: Create and export ProcessListContainer() to the API level
3add296 sandbox: Create and export KillContainer() to the API level
7653726 sandbox: Create and export StopContainer() to the API level
109e12a sandbox: Export Stop() to the API level
6c3e266 sandbox: Export Start() to the API level
f5048b7 golang.mk: Check and install yq before use it
2f98b3e network: support hotplug a nic several times
842a00a cli: refactor the config into a separated package
193b324 newContainer: Not attach device if it is a CDROM
8ddc0ce network: Use constant string for "none" network model
5199777 virtcontainers: Rely on new interface LinkType field
45b2191 netmon: Rely on new interface field LinkType
7bf84d0 types: Replace agent/pkg/types with virtcontainers/pkg/types
39b95cc virtcontainers: Create a new package "types"
658bdb1 runtime,netmon: build as Position-Independent-Executable
e9aa870 network: enable network hotplug for vm factory
95f4fdb build: check golang version meets min req.
eaa5c7a CI: travis: call yq installer
cbf7fb2 CI: travis: add yq installer script
11c6753 cli: fix the issue of using wrong path to get version
21a671e network: set endpoint pci address when hotplug
33abb3e cli: add guest hook path option in the configuration file
34fe3b9 cgroups: add host cgroup support
523d49c vendor: add github.com/containerd/cgroups lib
38d56c9 netmon: Rely on agent/pkg/types instead of duplicating types
309dcf9 vendor: Update the agent vendoring based on pkg/types
0acbbf0 network: Add support for ipvlan
c38792e config: Add documentation for tcfilter in configuration.toml
17be8e3 network: Introduce constants for the network model strings
5da973d test: Add test to verify tc redirect
e20dbd0 network: Use tc redirect filter to redirect traffic to the VM
526d55b versions: Update golang to 1.10.4
62992f5 versions: Update cri containerd version for golang 1.10.2 fix
31cf6fb vfio: Change the way the driver is fetched
7a5a57d cli: test: add unit test for kata-env and kata-check
14e5437 cli: add configuration option to use or not use host netns
6935279 network: add new NetInterworkingModel "none" and endpoint type TapEndpoint
f8f2962 virtcontainers: refactor hotplug qmp functions
21d38e9 network: Marshal BridgedMacvlanEndpoint and MacvtapEndpoint
32ef29b factory: use customised deep compare
36306e2 sandbox/virtcontainers: modify tests relate to memory hotplug.
3f39d6e virtcontainers: Add missing API release calls
b72a3cd device: fix the issue of passing wrong device address using virtio-blk
ee9275f virtcontainers: Add missing API trace calls
8831245 create/run: Make bundle path default to cwd
0ae5b14 qemu: Disable the default romfile used by virtio-pci
6f0873a vendor: Update govmm vendoring
14f480a sandbox/virtcontainers: combine addResources and updateResources
8e2ee68 sandbox/virtcontainers: memory resource hotplug when create container.
b04691e network: Collapse log calls for endpoint Attach and Detach
ab15498 network: Explicitly check for veth type
3c590b0 network: Rename VirtualEndpoint to VethEndpoint
df8f21d network: Refactor network tests.
adcd910 network: Refactor network.go
8f1b28d network: Sort endpoints by name
eb77a41 qemu: make saveSandbox wait for migration completion
dffb4f9 virtcontainers: qemu: Add proper support for virt machine type
3c7cf58 tests: Add additional network tests to verifu link creation functions
378191a tests: Add tests for macvlan and macvtap endpoints
def070d golint: Refactor to reduce cyclomatic complexity
417c1f0 macvtap: Add support for macvtap
0de7572 vendor: Update govmm vendoring
581ff17 macvlan: Assign random MAC address
8847af8 network: Add support for macvlan driver
1f5792e test: fix unit test nil pointer.
4697cf3 memory: update: Update state using the memory removed.
0cab192 block: Advertise block support for q35
f4cf213 vendor: fix govmm package

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-11-23 10:07:36 +08:00
.ci make: notify user if yq is going to be installed 2018-11-16 18:56:46 +01:00
.github github: Add issue template 2018-03-22 13:56:43 +00:00
arch cli: Leverage the new support for ppc64le 2018-05-31 18:41:54 +05:30
cli cli: Fix console for big endian architecture 2018-11-19 10:16:09 +00:00
data scripts: Use syntax highlighting in collect script 2018-09-24 09:22:54 +01:00
netmon netmon: Rely on new interface field LinkType 2018-11-02 08:46:11 -07:00
pkg cli: refactor the config into a separated package 2018-11-08 09:43:29 +08:00
vendor vendor: add github.com/containerd/cgroups lib 2018-10-27 09:41:27 +08:00
virtcontainers virtcontainers: fix sandbox store struct VFIODevice bug 2018-11-20 08:40:19 -05:00
.gitignore netmon: Monitor network changes 2018-09-14 09:15:10 -07:00
.gitmodules submodules: Remove cc-runtime and runv 2018-03-21 12:10:15 -07:00
.pullapprove.yml CI: Add doc team to pullapprove config 2018-03-22 15:49:27 +00:00
.travis.yml CI: travis: call yq installer 2018-10-30 15:44:40 +00:00
CODE_OF_CONDUCT.md docs: Add missing standard docs 2018-02-09 14:45:14 +00:00
CONTRIBUTING.md docs: Add missing standard docs 2018-02-09 14:45:14 +00:00
golang.mk make: notify user if yq is going to be installed 2018-11-16 18:56:46 +01:00
Gopkg.lock vendor: add github.com/containerd/cgroups lib 2018-10-27 09:41:27 +08:00
Gopkg.toml vendor: add github.com/containerd/cgroups lib 2018-10-27 09:41:27 +08:00
LICENSE Initial commit 2017-11-21 17:03:45 +08:00
Makefile make: add ability to skip go version check 2018-11-16 17:33:49 +01:00
README.md docs: update debug runtime link 2018-06-19 14:26:49 +08:00
VERSION release: Kata Containers 1.4.0 2018-11-23 10:07:36 +08:00
versions.yaml versions: Update Kubernetes, containerd and cri-o 2018-11-22 11:51:45 -06:00

Build Status Build Status Go Report Card GoDoc

Runtime

This repository contains the runtime for the Kata Containers project.

For details of the other Kata Containers repositories, see the repository summary.

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 containers.

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's VT-x technology.
  • ARM's Hyp mode (virtualization extension).
  • IBM's Power Systems.

Hardware requirements

The runtime has a built-in command to determine if your host system is capable of running a Kata Container:

$ kata-runtime kata-check

Note:

If you run the previous command as the root user, further checks will be performed (e.g. it will check if another incompatible hypervisor is running):

$ sudo kata-runtime kata-check

Quick start for users

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 might need to modify this file if you have specialist needs.

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 command below lists the full paths to the configuration files that the runtime attempts to load. The first path that exists is 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 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

See the community repository.

Contact

See how to reach the community.

Further information

See the project table of contents and the documentation repository.