Commit Graph

964 Commits

Author SHA1 Message Date
Peng Tao
7d484dfe4c Merge pull request #2127 from devimc/topic/virtcontainers/rollbackUnmountHostMounts
virtcontainers: unmount host mounts if container can't be created
2019-10-14 10:32:14 +08:00
Julio Montes
abec17f8f2 virtcontainers/store: make VCStoreUUIDPath rootless
The uuid file shouldn't be created at `/var` if running rootless.
Modify `VMUUIDStoragePath` to get a path accessible for non-root users
if running rootless.

fixes #2133

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-10-11 15:30:23 +00:00
Julio Montes
eca7bd2705 virtcontainers: unmount host mounts if container can't be created
Mount points, like `resolv.conf` and `hostname` are left in the
host when the cgroup creation fails.
Use `unmountHostMounts()` and `bindUnmountContainerRootfs()` in the rollback
function that is called when container's creation fails.

fixes #2108

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-10-11 13:46:56 +00:00
Peng Tao
c7b4c5eab9 Merge pull request #2124 from devimc/topic/virtcontainers/fixAnnotationsPrefix
virtcontainers/annotations: use right domain name for kata annotations
2019-10-10 17:02:27 +08:00
Eric Ernst
4f8cc73e82 Merge pull request #2112 from amshinde/update-cni-plugin-version
Update cni plugin version
2019-10-09 15:51:08 -07:00
Archana Shinde
04489fec2d Merge pull request #2118 from amshinde/load-state-early
Load state early so that hypervisor can store the correct state
2019-10-09 15:46:15 -07:00
Julio Montes
91bd095ee4 virtcontainers/annotations: use right domain name for kata annotations
The domain name should be used as prefix for the annotations, for
kata containers the domain name is katacontainers.io, not kata-containers.io

fixes #2123

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-10-09 15:21:28 +00:00
Archana Shinde
f6a10bcae7 state: Refactor code to move all the state load code
Refactor so that all code to load state, devices, network
takes place at one place. This is in line with the experimental api
for new storage that also loads all the necessary items here all at once.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-08 18:42:20 -07:00
Archana Shinde
fa4acad4aa state: Load the state from storage early on
The hypervisor.createSandbox may need to access the state.
For eg, ACRN today needs to access the block index to assign
it to the root image of the VM. Hence load this early on.

Fixes #2026

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-08 16:29:07 -07:00
Archana Shinde
929c4e7e3d network: Change NewNS() call
NewNS() api has been moved to testutils package in the cni
plugin repo.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-08 16:16:35 -07:00
Jose Carlos Venegas Munoz
c26788c329 Merge pull request #2115 from bergwolf/store
Fix cache factory UT
2019-10-08 15:40:52 -05:00
Peng Tao
dd21046072 vc/store: fix TestStoreVCNewVCSandboxStore/TestStoreVCNewVCContainerStore
They both need to set a temporary test dir in order to run as non-root.

Signed-off-by: Peng Tao <bergwolf@hyper.sh>
2019-10-08 09:32:45 -07:00
Peng Tao
6ab89e4549 vc/store: fix cache factory ut
In order to run the ut as non-root, we need to add a path prefix
for all store paths.

Fixes: #2113

Signed-off-by: Peng Tao <bergwolf@hyper.sh>
2019-10-08 09:29:37 -07:00
Peng Tao
4863aa998e vc/store: reuse store
As store.New() claims, we should reuse an existing store instead of
failing on duplicating stores.

Signed-off-by: Peng Tao <bergwolf@hyper.sh>
2019-10-08 09:29:28 -07:00
Eric Ernst
f62bceba99 Merge pull request #1994 from stefanha/virtio-fs-v0.3
Virtio-fs v0.3 support
2019-10-08 08:27:32 -07:00
Salvador Fuentes
ad1563196e virtiofsd: Do not use posix lock.
We have some issues trying to run `apt upgrade` on
a container that uses virtiofsd with `-o posix_lock`.

Add virtiofsd `-o no_posix_lock` argument to not use the
posix lock.

Signed-off-by: Salvador Fuentes <salvador.fuentes@intel.com>
2019-10-07 16:21:33 -05:00
Julio Montes
aa43e2a9ac virtcontainers: set agent's logs vsock port
In firecracker, there is no socket connected to /dev/console, so let's
use a vsock port to get agent's logs

Depends-on: github.com/kata-containers/shim#210

fixes #2103

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-10-07 16:39:18 +00:00
Stefan Hajnoczi
23a5dc7ff8 virtiofsd: use virtiofsd --syslog
Log to syslog instead of stderr.  This way all Kata and virtiofsd logs
are captured in syslog (or the systemd journal).  This makes debugging
much easier.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-10-07 14:21:30 +01:00
Stefan Hajnoczi
d5a3d0a61c virtiofs: use virtiofsd --fd=FDNUM
The new --fd=FDNUM file descriptor passing option eliminates the need to
wait for virtiofsd to create the vhost-user UNIX domain socket.  This is
a nice simplification because we can remove the timeouts and stderr
parsing.  There is no longer a race between launching virtiofsd and
launching QEMU, so we don't need to wait anymore.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-10-07 14:21:30 +01:00
Stefan Hajnoczi
6ce6a262a8 kata_agent: use virtio-fs 0.3+ mount options
virtio-fs changed the mount command-line.  Previously "mount none -o
tag=kataShared ..." was used.  Now "mount kataShared ..." is used
instead.

Since the "kataShared" tag is used for both 9P and virtio-fs, rename the
variable so that it is not 9P-specific.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Fixes: #1993
2019-10-07 14:21:28 +01: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
Jose Carlos Venegas Munoz
2591a1fb65 Merge pull request #2102 from devimc/topic/virtcontainers/fcFixSocketPerm
virtcontainers: change firecracker socket permissions
2019-10-04 09:26:50 -05:00
Eric Ernst
ba3d4f77fe Merge pull request #2081 from amshinde/custom_annotations
Add annotations to provide custom configs
2019-10-03 18:24:59 -07:00
Julio Montes
8f6b0a6a41 virtcontainers: change firecracker socket permissions
For security reasons, let's make sure 'others' don't have access to the
firecracker hybrid vsock

fixes #2101

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-10-03 21:23:19 +00:00
Archana Shinde
8f70643d57 tests: Remove hardcoded annotation value.
Fix test by removing hardcoded annotation key. Use the
annotation package instead.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-03 11:53:18 -07:00
Archana Shinde
e7b9c36b90 tests: Add tests for annotations.
Tests verify hypervisor, runtime and agent annotations.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-03 10:44:44 -07:00
Archana Shinde
09129c1c13 config: Define minimum memory requirement
Introduce a constant for minimum memory requirement
in virtcontainers package, that can be used in config.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-03 10:44:43 -07:00
Archana Shinde
8405b56e6f annotations: add Annotations for the agent.
The annotations handle the tracing config for the agent.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-03 10:42:52 -07:00
Archana Shinde
5b78a8a0f8 annotations: Add annotations for runtime config
Additional annotations added to customise runtime configuration.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-03 10:42:52 -07:00
Archana Shinde
afb91c2e02 annotations: Add annotations to support additional configurations
Add annotation to support all hypervisor configurations.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-03 10:42:52 -07:00
Archana Shinde
845bf73726 annotations: Support annotations to customise kata config
Add support for annotations that allow us to custimise a subset
of the configurations provided in kata conf toml file.
This initial commit adds support for customising vcpus, default max
vcpus, memory and the kernel command line passed as Hypervisor
config.

Replaces #1695
Fixes #1655

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-03 10:42:52 -07:00
Archana Shinde
30d0b7add7 annotations: Add missing firmware and hashes to asset annotations
These annotations were missing from the list of what are
considered as assets. Add these to existing list.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-03 10:42:52 -07:00
Archana Shinde
46b68157d1 annotations: Change existing annotations to fit a new format
Change the naming schema for existing annotations from
"com.github.containers.virtcontainers" to "io.kata-containers"
The hypervisor related annotations are changed to reflect this.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-10-03 10:42:52 -07:00
Julio Montes
312f3e7234 virtcontainers/fc: implement remove device
Unmount and unassign block device when it's required, that way the disk
can be unmounted and destroyed in the host.

fixes #1966

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-10-02 17:01:11 +00:00
Julio Montes
7e9cc5690d virtcontainers/fc: improve create disk pool process
Create a raw file and bind mount it to use it as disk is not needed,
instead a the raw file can be created at the jail path and use it directly
as disk, if a new container is added the real disk/device can be bind mounted
in the raw file.

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-10-02 17:01:11 +00:00
Julio Montes
07932d59ab virtcontainers/fc: add logs and improve others to make debugging easier
add more logs and improve others to make firecracker debugging less painful

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-10-02 16:56:28 +00:00
Julio Montes
ed7240b40f virtcontainers: move device operations to a more generic place
move device operations to a more generic place where they can be used
in any hypervisor implementation.

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-10-02 16:56:28 +00:00
Gabi Beyer
e93bf967d2 network: Add tuntap device
The tuntap network device is for tuntap interfaces to connect
to the container. A specific use case is the slirp4netns tap
interface for rootless kata-runtime.

Fixes: #1878

Signed-off-by: Gabi Beyer <gabrielle.n.beyer@intel.com>
2019-09-26 16:17:16 +02:00
Gabi Beyer
41407cfbed vc: make cgroup usage configurable if rootless
rootless execution does not yet support cgroups, so if running
rootlessly skip the cgroup creation and deletion.

Fixes: 1877

Signed-off-by: Gabi Beyer <gabrielle.n.beyer@intel.com>
2019-09-26 16:17:16 +02:00
Gabi Beyer
5f0799f1b7 vc: add rootless dir to path variables
Modify some path variables to be functions that return the path
with the rootless directory prefix if running rootlessly.

Fixes: #1827

Signed-off-by: Gabi Beyer <gabrielle.n.beyer@intel.com>
2019-09-26 16:17:16 +02:00
Marco Vedovati
801a9a8fd0 Merge pull request #2089 from marcov/arm-initrd
QEMU: do not require nvdimm machine option with initrd
2019-09-26 08:57:29 +02:00
Marco Vedovati
8b843c5229 QEMU: do not require nvdimm machine option with initrd
Do not add the "nvdimm" machine option to QEMU when the config specifies
a initrd file.
For arm64, this allows using a vanilla QEMU, where "virt" machine does
not support the "nvdimm" option.

Fixes: #2088

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2019-09-25 13:26:09 +02:00
Jan Schintag
c152ebf356 s390x: Fix runtime build for s390x
Add the missing migration from kataVSOCK to types.VSock (see #2050) for s390x.

Fixes: #2086
Signed-off-by: Jan Schintag <jan.schintag@de.ibm.com>
2019-09-25 11:12:06 +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
Eric Ernst
22a3ca1c36 Merge pull request #2050 from devimc/topic/virtcontainers/fixFC018
Support Firecracker 0.18
2019-09-23 06:52:29 -07:00
Julio Montes
3d0949d60d virtcontainers: check minimum supported version of firecracker
Check minimum supported version of firecracker to make sure it's compatible
with kata containers

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-09-20 13:55:19 +00:00
Julio Montes
948dd3303a Merge pull request #2055 from lifupan/fix_missingqemulog
virtcontainers: fix the issue of missing qemu error logs
2019-09-20 07:41:47 -05:00
lifupan
1f93cffd5a virtcontainers: fix the issue of missing qemu error logs
When 'debug' is enabled, qemu's debug info is output
into qemu's log file. When lauching qemu failed, it's
better to log these debug info and return it directly
for debugging.

Fixes:#2042

Signed-off-by: lifupan <lifupan@gmail.com>
2019-09-20 09:10:53 +08:00
Julio Montes
f776e8f217 Merge pull request #2057 from jschintag/qemu-img-sharing
s390x: Share image between qemu instances
2019-09-19 15:11:07 -05:00
Julio Montes
5ac6e9a897 virtcontainers: make socket generation hypervisor specific
Kata support several hypervisor and not all hypervisor support the
same type of sockets, for example QEMU support vsock and unix sockets, while
firecracker only support hybrid vsocks, hence sockets generations should be
hypervisor specific

fixes #2027

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-09-19 19:39:07 +00:00