Commit Graph

282 Commits

Author SHA1 Message Date
Johan Kuijpers
01713d59cb runtime: added cloud hypervisor driver
Initial release of cloud hypervisor driver for kata-runtime

Fixes: #2046

Signed-off-by: Johan Kuijpers <johan.kuijpers@ericsson.com>
2019-11-15 19:35:29 +00:00
Eric Ernst
70297c2184 nemu: remove nemu support
NEMU deprecation was announced in 1.8 of Kata. Removing from tree.

Thanks for all the fish!

Fixes: #2195

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-11-14 23:06:43 -08:00
GabyCT
35f54fdb8a Merge pull request #2194 from egernst/fixup-vhost-fc
fc: config: vhost-net not supported
2019-11-14 14:22:09 -06:00
Eric Ernst
f2bbcf4eb6 Merge pull request #2197 from egernst/disable-vhost-comment
qemu-configs: update disable_vhost_net description
2019-11-13 16:51:49 -08:00
Eric Ernst
0c482b2557 qemu-configs: update disable_vhost_net description
Updated to better clarify this configuration option. Currently in QEMU
pre 1.9 release of Kata, vhost-net is used for the virtio-net backend.
This results in efficient network I/O performance, but does rely on the
backend running in ring0 (host kernel). Update comment to clarify this
trade-off for end-users.

Fixes: #2198

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-11-13 14:52:29 -08:00
Eric Ernst
519eff7236 fc: config: vhost-net not supported
vhost-net backend is not supported by the Firecracker VMM. It doesn't
make sense to have this in the configuration, and we should explicitly
disable it.

Fixes: #2192

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-11-13 14:10:18 -08:00
Archana Shinde
27433d9178 config: Get rid of bridged model docs in the configuration
Since we have dropped support for bridged model, remove it from
the configuration as well.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-11-11 09:15:28 -08:00
Manohar Castelino
dffc988d92 virtcontainers: Eliminate legacy networking models
Prior to the addition of tcMirroring support kata-runtime had
compatibility issues with some CNI plugins some of which were addressed
by the bridged model. With the addition of tc mode there are no gaps in
networking that can be filled by the bridged mode or enlightened mode
(which was never implemented).

Eliminate both of these options to simplify the setup.

Fixes: #1213

Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2019-11-11 09:14:38 -08:00
James O. D. Hunt
0de5c42276 Merge pull request #2149 from vijaydhanraj/acrn_remove_num_cpu_option
HV: Remove number of guest CPU configuration in ACRN
2019-11-01 09:29:58 +00:00
Jose Carlos Venegas Munoz
7fe0100444 cli: add kata-overhead command
Introduce kata-overhead command to kata-runtime CLI, to help
with calculating sandbox overhead.

Fixes: #2096

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-10-30 19:08:58 -07:00
Vijay Dhanraj
9d50cc1ff9 HV: Remove number of guest CPU configuration in ACRN
ACRN doesn't support configuring number of guest vcpu  option ('-c') anymore.
Number of guest vcpus will be defined in the hypervisor scenario
configuration file instead.

Removed the -c option from the acrn-dm parameters when launching VMs and
also trimmed configuration.toml file accordingly.

fixes #2136
Signed-off-by: Vijay Dhanraj <vijay.dhanraj@intel.com>
2019-10-29 23:27:15 -07:00
Jose Carlos Venegas Munoz
b3aa770d95 Merge pull request #2075 from vijaydhanraj/acrn_vm_uuid_support
Hypervisor: UUID fix for acrn hypevisor
2019-10-04 09:39:46 -05:00
Gabi Beyer
2d8b278c09 rootless: add rootless logic
Add the ability to check whether kata is running rootlessly or
not. Add the setup of the rootless directory located in the dir
/run/user/<UID> directory.

Fixes: #1874

Signed-off-by: Gabi Beyer <gabrielle.n.beyer@intel.com>
Co-developed-by: Marco Vedovati <mvedovati@suse.com>
Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-09-26 16:17:16 +02:00
Vijay Dhanraj
aa6a16c597 Hypervisor: UUID fix for acrn hypevisor
This patch adds support for getting the kata UUID from
acrn hypervisor and using these UUID to create a VM.

Fixes: #1785
Signed-off-by: Vijay Dhanraj <vijay.dhanraj@intel.com>
2019-09-24 10:45:28 -07:00
Gabriela Cervantes
cdb1b5c31c cli: Fix the qemu-virtiofs.toml
This will fix the qemu-virtiofs.toml to use the kernel with virtiofs.
Also removes the initrd image from the toml.

Depends-on: github.com/kata-containers/packaging#731

Fixes #2077

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2019-09-19 11:10:18 -05:00
Salvador Fuentes
4134571e86 config: do not use nemu variable for qemu-virtiofs configuration
instead of using `DEFSHAREDFS_NEMU` in `configuration-qemu-virtiofs.toml`,
use `DEFSHAREDFS_QEMU_VIRTIOFS`.
nemu will be deprecated soon so using `DEFSHAREDFS_NEMU` may
brake the configuration for qemu-virtiofs.

Signed-off-by: Salvador Fuentes <salvador.fuentes@intel.com>
2019-09-18 11:31:13 -05:00
Salvador Fuentes
97fe749624 config: use 9p as default shared filesystem for nemu
currently virtiofs support is being reworked to use qemu
and kernel from virtio-fs gitlab repo. The current support
that we have for virtio-fs has been disabled as required
patches for the 4.19 kernel were removed in [1].

[1] https://github.com/kata-containers/packaging/pull/703

Fixes: #2048.

Signed-off-by: Salvador Fuentes <salvador.fuentes@intel.com>
2019-09-18 10:29:19 -05:00
Peng Tao
74e7d3dba7 Merge pull request #2028 from WeiZhang555/remove-annotation-ConfigJSONKey
Remove annotation config json key
2019-09-18 12:25:36 +08:00
Gabriela Cervantes
324952ce98 configuration: Add QEMU with virtiofs 3.0 support
Enable a new configuration file for QEMU with virtiofs 3.0

Depends-on: github.com/kata-containers/packaging#710

Fixes #2053

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2019-09-17 06:38:46 -05:00
Wei Zhang
2ed94cbd9d Config: Remove ConfigJSONKey from annotations
Fixes: #2023

We can get OCI spec config from bundle instead of annotations, so this
field isn't necessary.

Signed-off-by: Wei Zhang <weizhang555.zw@gmail.com>
2019-09-17 11:47:06 +08:00
GabyCT
5ff0ef9377 Merge pull request #1971 from renzhengeek/renzhen/virtio-fs-dev
virtio-fs: add virtio_fs_extra_args for virtiofsd
2019-09-09 09:33:28 -05:00
Eric Ernst
282d85899e Merge pull request #1880 from jcvenegas/pod-cgroup-only
cgroups: Use only pod cgroup
2019-09-09 07:00:54 -07:00
Wei Zhang
9507f45a0f CompatOCISpec: limit usage of CompatOCISpec
Fixes: #2023

CompatOCISpec is used to gurantee backward compatbility for old runtime
specs, after we convert CompatOCISpec to standard specs.Spec, we should
use specs.Spec instead of CompatOCISpec, and CompatOCISpec should be
useless from then.

Spread usage of CompatOCISpec can make code structure confusing and making
the runtime spec usage non-standard. Besides, this can be the very first
step of removing CompatOCISpec from config's Annotations field.

Signed-off-by: Wei Zhang <weizhang555.zw@gmail.com>
2019-09-05 11:05:55 +08:00
Julio Montes
284927d334 Merge pull request #2011 from marcov/podman-test
tests: allow running unit tests using podman
2019-09-02 12:13:58 -05:00
Jose Carlos Venegas Munoz
b65063248f config: add option SandboxCgroupOnly
add option to eneable only pod cgroup (SandboxCgroupOnly)

Depends-on: github.com/kata-containers/tests#1824

Fixes: #1879
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2019-08-29 14:08:04 -05:00
James O. D. Hunt
a1e0a4c3f5 Merge pull request #1986 from marcov/kvm-required
kata-check: require kvm modules for amd64
2019-08-29 16:31:27 +01:00
Marco Vedovati
ff8d23d75f tests: allow running unit tests using podman
Refactor unit test so that podman can be used to run tests when docker
is not available.

Fixes: #2006

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-08-29 17:06:50 +02:00
Eric Ren
712e06ae84 virtio-fs: add virtio_fs_extra_args for virtiofsd
Since virtio-fs is under active development, more
options will be added increasingly. To avaoid frequent
change on runtime side to handle option changes, use
one mingled arg to ease testing new option/feature of
virtiofsd.

See `virtiofsd -h` for more option details.

Fixes: #1999
Signed-off-by: Eric Ren <renzhen@linux.alibaba.com>
2019-08-24 09:16:38 +08:00
Marco Vedovati
5bfca6e38e test: add arch required kernel modules
Add a test for the checkKernelModules returned error count value.

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-08-23 11:48:18 +02:00
Marco Vedovati
c54f00a7ca kata-check: reduce default output verbosity
Update kata-check to print by default only relevant information about
the ability to run / create Kata Containers, and omit the list of checks
performed. Checks can still be printed using the --verbose flag.

Fixes: #1944

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-08-22 20:18:26 +02:00
Marco Vedovati
24fcd1b37d test: add a generic function for CLI kata-check command
Add a generic function to run CLI kata-check tests, shared by all the
args.

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-08-22 20:18:26 +02:00
Marco Vedovati
db5097835a kata-check: require kvm/vhost modules for amd64
KVM/vhost modules are required when using QEMU or firecracker.

Fixes: #1985

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-08-20 17:58:11 +02:00
Archana Shinde
2c99b95c53 network: Deprecate bridged networking mode.
We plan to get rid of this feature in the future.

Fixes: #1950

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-08-09 13:01:47 -07:00
Julio Montes
355b9c003d virtcontainers: add support for loading kernel modules
The list of kernel modules can be passed to the runtime through the
configuration file or using OCI annotations. In both cases, a list paramentes
can be specified for each module.

fixes #1925

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-08-06 20:55:49 +00:00
Peng Tao
bc4460e12f sandbox: support force stop
When force is true, ignore any guest related errors. This can
be used to stop a sandbox when hypervisor process is dead.

Signed-off-by: Peng Tao <bergwolf@hyper.sh>
2019-07-22 19:29:32 -07:00
Peng Tao
c472a01006 container: allow to stop a paused container
When a container is paused and something goes terribly
wrong, we still need to be able to clean thing up. A paused
container should be able to transit to stopped state as well
so that we can delete it properly.

Signed-off-by: Peng Tao <bergwolf@hyper.sh>
2019-07-22 19:27:52 -07:00
Manohar Castelino
4fed346d53 Firecracker: Enable jailer by default
Add jailer support to configuration files.
Also enable jailer by default in Kata containers.

Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2019-07-11 21:32:45 +00:00
Vijay Dhanraj
adcac9368f kata-check: Check and validate type-1 hypervisor for kata
ACRN hypervisor is a type-1 hypervisor and this patch
adds support to check and validate if the system is
capable of running kata containers with ACRN hypervisor.

Depends-on: github.com/kata-containers/tests#1793

v3->v4:
Implemented a generic way to identify hypervisor and
test VM creation.

v2->v3:
1. Removed cgo structs and defined go structs.
2. Suppressed lint warnings due to unused createVM struct.

v1->v2:
1. Created an issue #1784 to address TODO item.
2. Fixed formatting of the log message.
3. Currently ACRN is only supported on amd64. So
   moved ACRN specific code to kata-check_amd64.go.

Fixes: #1778

Signed-off-by: Vijay Dhanraj <vijay.dhanraj@intel.com>
2019-07-10 10:47:31 -07:00
Vijay Dhanraj
4d26ceee79 Make: Add ACRN hypervisor and generate configuration file
This patch covers the following aspects,
1. Add ACRN as a supported hypervisor for amd64 architecture.
2. Build and install configuration file for ACRN hypervisor.

v1->v2:
1. Deleted autogenerated configuration-acrn.toml.
2. Trimmed configuration options not used by ACRN.

Fixes: #1778

Signed-off-by: Vijay Dhanraj <vijay.dhanraj@intel.com>
2019-07-10 10:46:47 -07:00
Penny Zheng
48fef40fd9 kata-check: add kvm extension check on aarch64
Auger Eric's latest patches about "ARM virt: Initial RAM expansion
and extended memory map"(https://patchwork.kernel.org/cover/10835377/)
paves the way to device memory, which is the foundation for NVDIMM and
memory hotplug.
This new feature on qemu kinds of depends on host kernel's new feature
on dynamic IPA range(https://lwn.net/Articles/750176/).
The availability of this feature is advertised by a new kvm cap
KVM_CAP_ARM_VM_IPA_SIZE. When supported, this capability returns the
maximum IPA shift supported by the host. The supported IPA size on
a host could be different from the system's PARange indicated
by the CPUs (e.g, kernel limit on the PA size).

Fixes: #1796

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
2019-06-20 10:23:13 +08:00
Peng Tao
6c03e2a265 factory: make vm templating work with vosck
As virtio v1.1 spec states:
The guest_cid configuration field MUST be fetched to determine the current CID when a VIRTIO_VSOCK_EVENT_TRANSPORT_RESET event is received.
Existing connections MUST be shut down when a VIRTIO_VSOCK_EVENT_TRANSPORT_RESET event is received.
Listen connections MUST remain operational with the current CID when a VIRTIO_VSOCK_EVENT_TRANSPORT_RESET event is received.

We should be able to use vm templating together with vsock easily, as
qemu already sends VIRTIO_VSOCK_EVENT_TRANSPORT_RESET event to guest.

Fixes: #1773
Signed-off-by: Peng Tao <bergwolf@hyper.sh>
2019-06-06 02:19:42 -07:00
Eric Ernst
bbe5584deb fc-toml: remove proxy section in config
proxy will never be use with the Firecracker VMM. Keeping this header
will result in runtime failures, since the configuration will be parsed
on the path searched for.

Since vsock will always be used, remove the proxy section.

Fixes: #1761

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-06-04 09:33:24 -07:00
Julio Montes
919615fef7 Merge pull request #1657 from ganeshmaharaj/filebackend
runtime: Enable file based backend
2019-05-28 12:43:09 -05:00
Ganesh Maharaj Mahalingam
a41894da18 runtime: Enable file based backend
A file based memory backend mapped to the host, fot eg: '/dev/shm' will
be used by virtio-fs for performance reasons. This change is a generic
implementation of that for kata. This will be enabled default for
virtio-fs negating the need to enable hugepages in that scenario. This
option can be used without virtio-fs by setting 'file_mem_backend' to
the location in the configuration file. Default value is an empty
string.

Fixes: #1656
Signed-off-by: Ganesh Maharaj Mahalingam <ganesh.mahalingam@intel.com>
2019-05-23 20:47:42 -07:00
Salvador Fuentes
6be5e5f182 nemu-config: Add machine_type to config file
nemu needs to be configured with:
`machine_type = "virt"` by default.

In addition, this commit removes
`machine_accelerators="virt"` which was added instead
of `machine_type` in a previous commit.

Fixes: #1707.

Signed-off-by: Salvador Fuentes <salvador.fuentes@intel.com>
2019-05-17 11:29:14 -05:00
Jose Carlos Venegas Munoz
8c04600684 Merge pull request #1663 from egernst/nemu-config-adjustments
nemu-config: adjust defaults in configuration-nemu.toml
2019-05-14 10:51:01 -05:00
James O. D. Hunt
576b8a510c Merge pull request #1513 from Pennyzct/vsock
support-vsock: load vhost_vsock module if it isn't built-in
2019-05-14 11:08:48 +01:00
Penny Zheng
bce0d604e1 unit-test: refine unit test
We should refine unit test which involves func SupportsVsocks and newly
reconstructed struct kernelModule.

Fixes: #1512

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
2019-05-14 13:31:25 +08:00
Penny Zheng
9b23d4f143 vsock_module: add 'vhost_vsock' kernel module in kata-check
Since we prefer vsock over virtio serial port, we add 'vhost_vsock'
in kernel mosules list.
But vhost_vsock.ko shouldn't be the definitely required kernel modules,
afterall, we could also use virtio serial port.
if kata-env shows SupportsVSocks as false, users could run kata-check
to manually load vhost_vsock.ko and get detailed info(errors)

Fixes: #1512

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
2019-05-14 13:31:11 +08:00
Eric Ernst
09a7d15176 nemu-config: adjust defaults in configuration-nemu.toml
- For initial offering of virtiofsd, hugepages are required
- use the qemu hypervisor type for configuration template
- decrease virtiofs cache size from 8192 to 1024, to better support
running with virtio-fs on smaller machines while hugepages are required.
- For initial experimental release, utilize virtio-serial instead of
vsock

Fixes: #1662

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2019-05-13 15:35:04 -07:00