Commit Graph

6963 Commits

Author SHA1 Message Date
Sebastien Boeuf
8161b4c1c1
Merge pull request #1077 from mcastelino/topic/firecracker-api-fix
firecracker: Network API update
2019-01-02 02:29:45 -08:00
James O. D. Hunt
63024cdd5b
Merge pull request #269 from Pennyzct/build_development_kernel
kernel: update guest kernel to 4.19.8 on aarch64
2019-01-02 09:07:59 +00:00
Xu Wang
0d215b7439
Merge pull request #306 from zeigerpuppy/zeigerpuppy-patch-1
Patch for debian install instructions docs
2018-12-30 17:52:26 +08:00
Xu Wang
8a9e40451b
arch-images: add a figure for shimv2
The comparison w/ or w/o shimv2

Signed-off-by: Xu Wang <xu@hyper.sh>
2018-12-30 14:42:04 +08:00
zeigerpuppy
e9ca4d8d60 docs: Add Debian installation guides
Fixes #310.

These install instructions are based on the katacontainers repository for Debian.  For installation, a newer version of `librbd1` is required.  This is available from the `unstable` repo.

Tested only on Debian 9 - Stretch (x86_64).
- tested with `docker-ce=17.12.0~ce-0~debian`

Signed-off-by: zeigerpuppy <zeigerpuppy@users.noreply.github.com>
2018-12-29 14:45:33 +11:00
Manohar Castelino
5c6d94d756 firecracker: Revendor firecracker go sdk to 0.12.0
Revendor firecracker go sdk for Firecracker 0.12.0 API changes

git shortlog

9614612 (HEAD -> master, origin/master, origin/HEAD) Merge pull request
653c342 Adding drives builder
3c1f5c3 Merge pr #41
c4151ff Migrate firectl to its own repository
433f262 Merge pull request #23 from xibz/fifo_logging_file
121ef9a add handler lists to handle initialization
0fd9825 Adding support for capturing fifo logs to file.
6b08ec7 Merge branch 'fc-0.12.0'
25878e7 Update for Firecracker 0.12.0 API changes
ea93f77 Regenerate API client from swagger spec
00d8eee Update swagger.yaml for firecracker 0.12.0

Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2018-12-27 19:47:17 -08:00
Eric Ernst
fc90bdad22
Merge pull request #329 from kata-containers/fix-ubuntu-guide
install: use stable instead of master for docs
2018-12-27 10:22:31 -08:00
Manohar Castelino
ec5cf18bd1 firecracker: Network API update
The Network API no longer supports the state field. Using the
state field causes the API call to fail.

Note: The firecracker binary needs to be updated to match the API
as the older versions will expect the state field.

Fixes: #1078

Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2018-12-27 09:34:13 -08:00
Eric Ernst
808d85b467 install: use stable instead of master for docs
1.5.0-rc2 packages for linux-container fail for Ubuntu.  Let's use 1.4-stable instead of master for now.

Fixes #325

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-12-27 17:23:32 +00:00
Eric Ernst
e89efa29b7
Merge pull request #292 from bergwolf/releasing-1.5.0-rc2
Add 1.5.0-rc2 changes
2018-12-27 07:40:19 -08:00
Frank Cao
174e0c98bc
Merge pull request #963 from running99/master
container: Use lazy unmount
2018-12-26 09:50:44 +08:00
fli
2b75f440f0
Merge pull request #962 from teawater/nvdimm
block: Add new block storage driver "nvdimm"
2018-12-26 09:38:55 +08:00
James O. D. Hunt
4265ca9e12
Merge pull request #321 from Pennyzct/qemu-section
qemu: add 'Build a custom qemu-system-aarch64' section
2018-12-24 09:02:50 +00:00
Peng Tao
ce105e77da obs: bump versions.txt for 1.5.0-rc2 release
To match what we have shipped.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-12-24 16:55:20 +08:00
Peng Tao
7a269ea6e6 runtime-spec: add containerd-shim-kata-v2
Otherwise rpmbuild fails.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-12-24 16:53:07 +08:00
Peng Tao
f4994f4531 obs: reset kata_version
We've changed `-rc` to `~rc` for rpmbuild. But we need to change
it back when doing comparision.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-12-24 16:50:25 +08:00
Hui Zhu
dd28ff5986 memory: Add new option memory_offset
This value will be plused to max memory of hypervisor.
It is the memory address space for the NVDIMM devie.
If set block storage driver (block_device_driver) to "nvdimm",
should set memory_offset to the size of block device.

Signed-off-by: Hui Zhu <teawater@hyper.sh>
2018-12-24 15:36:25 +08:00
Hui Zhu
ef75c3d19e block: Add new block storage driver "nvdimm"
Set block_device_driver to "nvdimm" will make the hypervisor use
the block device as NVDIMM disk.

Fixes: #1032

Signed-off-by: Hui Zhu <teawater@hyper.sh>
2018-12-24 15:32:33 +08:00
Eric Ernst
b954eecad1
Merge pull request #1072 from egernst/1.5.0-rc2-branch-bump
# Kata Containers 1.5.0-rc2
2018-12-21 13:54:00 -08:00
Eric Ernst
53215acc8e
Merge pull request #222 from bergwolf/1.5.0-rc2-branch-bump
# Kata Containers 1.5.0-rc2
2018-12-21 12:29:34 -08:00
Eric Ernst
0f2c5bcf3d release: Kata Containers 1.5.0-rc2
- sandbox: cleanup sandbox if creation failed
- mounts: Ignore existing mounts if they cannot be honored
- config: Add firecracker as a supported hypervisor configuration
- Firecracker: virtio mmio support
- Firecracker VMM support
- shimv2: discard log before shim init log output
- virtcontainers: cgroups: Don't error if no thread ID
- Copy files from host to guest
- katautils: check config factory/template and vsock
- virtcontainers: Add context when creating tests sandboxes
- make: Add "GOPATH not set"
- virtcontainers: network: Use multiqueue flag only when appropriate
- katautils: fix the issue of shimv2 boot failed with vsock enabled
- docs: add IBM Z in the README
- qemu-arm64: refactor 'console=hvc0,hvc1' for kata-agent debugging
- network: Don't assume multiple queues support by default
- virtcontainers: make sandbox manage VM resources
- factory: set guest time after resuming
- shimv2: fix the error of reaping qemu process mistakenly
- s390x: add support for s390x
- config: Add cache-related options for block devices

83e38c9 mounts: Ignore existing mounts if they cannot be honored
bf1a5ce sandbox: cleanup sandbox if creation failed
0d84d79 virtio-mmio: Add support for virtio-mmio
353564a config: Reorganize the code to fix code complexity
d6c1f53 config: Add firecracker configuration support
b4c3a2f virtcontainers: fc: Stop the VM by killing the process
fba2379 firecracker: Add support for pseudo hotplug
22ebc09 firecracker: Close the vsock vhostfd
e65bafa virtcontainers: Add firecracker as a supported hypervisor
c1d3f1a firecracker: VMM API support
c34b045 firecracker: vendor in all firecracker dependencies
a21d1e6 virtcontainers: cgroups: Don't error if no thread ID
378d815 virtcontainers: copy or bind mount shared file
bc31844 virtcontainers: Check file sharing support
6291762 virtcontainers: copy files form host to guest
dcd48a9 vc: capabilities: add capability flags for filesystem sharing
e776380 vendor: update kata agent
e4e7c3a katautils: check config template and vsock
0f1fde4 virtcontainers: network: Use multiqueue flag only when appropriate
f63a18d virtcontainers: Add context when creating tests sandboxes
05be5bf shimv2: discard log before shim init log output
e98dee6 docs: drop 's in architecture names for consistency
1892102 docs: add IBM Z in the README
573b73e katautils: fix the issue of shimv2 boot failed with vsock enabled
c8c564b qemu-arm64: refactor 'console=hvc0,hvc1' for kata-agent debugging
a1af1cb virtcontainers: network: Rely on hypervisor capabilities for multi queues
a227ab8 virtcontainers: hypervisor: Add capability regarding multiqueue support
0bcd221 virtcontainers: network: Rename numCPUs to queues
2cb4bb9 virtcontainers: network: Reorganize endpoints interconnection
d4586d4 test: remove TestHotplugRemoveMemory
0d80202 vc:sandbox: rename newcontainer to fetchcontainer.
618cfbf vc: sandbox: Let sandbox manage VM resources.
2535844 make: Add "GOPATH not set"
8444a7a factory: set guest time after resuming
f813708 vendor: update agent vendor for SetGuestDateTime
6f83061 s390x: add support for s390x
df8b7db shimv2: fix the issue of reaping child mistakenly
e4a3fd5 vendors: upgrade the containerd vendors
6024088 config: Add cache-related options for block devices

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-12-21 19:31:19 +00:00
Eric Ernst
4014ab0212
Merge pull request #1058 from bergwolf/vsock-cleanup
sandbox: cleanup sandbox if creation failed
2018-12-21 10:42:33 -08:00
Sebastien Boeuf
1e8f84854c
Merge pull request #1069 from sboeuf/fix_fc_k8s
mounts: Ignore existing mounts if they cannot be honored
2018-12-21 09:36:32 -08:00
Sebastien Boeuf
83e38c959a mounts: Ignore existing mounts if they cannot be honored
In case we use an hypervisor that cannot support filesystem sharing,
we copy files over to the VM rootfs through the gRPC protocol. This
is a nice workaround, but it only works with regular files, which
means no device file, no socket file, no directory, etc... can be
sent this way.

This is a limitation that we accept here, by simply ignoring those
non-regular files.

Fixes #1068

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-12-21 15:38:06 +00:00
Peng Tao
d890478fa2 release: Kata Containers 1.5.0-rc2
- docs: update compatibility matrix with s390
- setup: Add make and gcc as dependencies
- suse: fix port URL detection for aarch64
- s390x: set CC for fedora
- Add 'install' target to makefile
- rootfs: Bump golang version to 1.11.1
- tests: skip docker,kata install with KATA_DEV_MODE

c3d77ae docs: add s390 to the compatibility matrix
be97380 setup: Add make and gcc as dependencies
de7fe19 s390x: set CC for fedora
3366a32 README: add ARM architecture to openSUSE
804286f suse: fix port URL detection for aarch64
434fff8 rootfs_builder: Dont fail if GOPATH not defined.
1bbf1e4 rootfs: Allow use host repositories.
f994560 rootfs: Bump golang version to 1.11.1
06c8d88 makefile: Add make install
9c0773a test: avoid errors in exit_handler
eb92306 tests: skip docker,kata install with KATA_DEV_MODE

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-12-21 17:11:51 +08:00
Peng Tao
bf1a5ce000 sandbox: cleanup sandbox if creation failed
This includes cleaning up the sandbox on disk resources,
and closing open fds when preparing the hypervisor.

Fixes: #1057

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-12-21 13:46:16 +08:00
Eric Ernst
0f6fb5439a
Merge pull request #1043 from sboeuf/fc_config
config: Add firecracker as a supported hypervisor configuration
2018-12-20 21:17:43 -08:00
Sebastien Boeuf
e14071f2bd
Merge pull request #1045 from mcastelino/topic/firecracker-virtio-mmio
Firecracker: virtio mmio support
2018-12-20 19:47:01 -08:00
running
c099be56da container: Use lazy unmount
Unmount recursively to unmount bind-mounted volumes.
Fixes: #965
Signed-off-by: Ning Lu <crossrunning@outlook.com>
2018-12-21 11:11:58 +08:00
Manohar Castelino
0d84d799ea virtio-mmio: Add support for virtio-mmio
Start adding support for virtio-mmio devices starting with block.
The devices show within the vm as vda, vdb,... based on order of
insertion and such within the VM resemble virtio-blk devices.

They need to be explicitly differentiated to ensure that the
agent logic within the VM can discover and mount them appropropriately.
The agent uses PCI location to discover them for virtio-blk.
For virtio-mmio we need to use the predicted device name for now.

Note: Kata used a disk for the VM rootfs in the case of Firecracker.
(Instead of initrd or virtual-nvdimm). The Kata code today does not
handle this case properly.

For now as Firecracker is the only Hypervisor in Kata that
uses virtio-mmio directly offset the drive index to comprehend
this.

Longer term we should track if the rootfs is setup as a block
device explicitly.

Fixes: #1046

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2018-12-20 15:08:51 -08:00
Sebastien Boeuf
353564abe0 config: Reorganize the code to fix code complexity
By breaking down updateRuntimeConfig() into smaller functions, this
commit prevents the function to grow a Go complexity higher than 15.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-12-20 15:02:55 -08:00
Eric Ernst
d6c1f531a9 config: Add firecracker configuration support
In order to let the user choose firecracker hypervisor instead of
QEMU (from the configuration.toml), let's add it to the list of
supported hypervisors.

Fixes #1042

Depends-on: github.com/kata-containers/runtime#1044

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-12-20 15:02:55 -08:00
Sebastien Boeuf
8764fc1467
Merge pull request #1044 from mcastelino/topic/fc-vendor
Firecracker VMM support
2018-12-20 15:02:06 -08:00
Sebastien Boeuf
b4c3a2ffbd virtcontainers: fc: Stop the VM by killing the process
Because firecracker currently does not support a proper stop from
the caller, and because we don't want the agent to initiate a reboot
to shutdown the VM, the simplest and most efficient solution at the
moement is to signal the VM process with SIGTERM first, followed by
a SIGKILL if the process is still around.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-12-20 11:54:59 -08:00
Manohar Castelino
fba23796d6 firecracker: Add support for pseudo hotplug
Use the firecracker rescan logic to update the pre-attached drive.
This allows us to emulate hotplug.

Initially the drive backing stores are set to empty files on the
host. Once the actual block based device or file is available
swap the backing store.

The rescan needs to be issued iff the VM is running.

Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2018-12-20 11:54:59 -08:00
Manohar Castelino
22ebc09f00 firecracker: Close the vsock vhostfd
Unlike QEMU firecracker cannot accept a fd as part of the REST API.
Close the vsock vhostfd close to the point where we launch the VM.

Note: This is still racy.

Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2018-12-20 11:54:59 -08:00
Manohar Castelino
e65bafa793 virtcontainers: Add firecracker as a supported hypervisor
Add firecracker as a supported hypervisor. This connects the
newly defined firecracker implementation as a supported
hypervisor.

Move operation definition to the common hypervisor code.

Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2018-12-20 11:54:59 -08:00
Manohar Castelino
c1d3f1a98b firecracker: VMM API support
Initial Support for the firecracker VMM

Note:
- 9p is unsupported by firecracker
- Enable pseudo hotplug block device hotplug capability

Initially, this will be a pseudo capability for Firecracker hypervisor,
but we will utilize a pool of block devices and block device rescan as a
temporary workaround.

Fixes: #1064

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2018-12-20 11:54:49 -08:00
Penny Zheng
cc530e7e77 qemu: add 'Build a custom qemu-system-aarch64' section
Since aarch64 need custom QEMU binary and doesn't support OBS
packaging for now, we add this section to lead developers to build
required qemu-system-aarch64 binary.

Fixes: #320

Signed-off-by: Penny Zheng <penny.zheng@arm.com>
2018-12-20 17:58:53 +08:00
James O. D. Hunt
10559f0c68
Merge pull request #1036 from lifupan/fixlog
shimv2: discard log before shim init log output
2018-12-20 08:55:30 +00:00
James O. D. Hunt
dcd3bd0476
Merge pull request #290 from marcov/up-obs-distros
Update list of stable release distros
2018-12-20 08:36:35 +00:00
Manohar Castelino
c34b0455e4 firecracker: vendor in all firecracker dependencies
Vendor in all firecracker dependencies. This allows virtcontainers
to pull call the firecracker REST API.

Signed-off-by: Manohar Castelino <manohar.r.castelino@intel.com>
2018-12-19 16:23:41 -08:00
Eric Ernst
f22370cca0
Merge pull request #1063 from sboeuf/fix_fc_cgroups
virtcontainers: cgroups: Don't error if no thread ID
2018-12-19 16:06:22 -08:00
Sebastien Boeuf
a21d1e693f virtcontainers: cgroups: Don't error if no thread ID
In case the hypervisor implementation does not return any thread
ID, this should not issue any error since there is simply nothing
to constrain.

Fixes #1062

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-12-19 14:19:40 -08:00
Eric Ernst
b51c57e6fe
Merge pull request #1041 from devimc/topic/no9pCopyFiles
Copy files from host to guest
2018-12-19 12:16:34 -08:00
Marco Vedovati
c3c8a3d926 obs-packaging: add openSUSE Leap 15 and Tumbleweed
Add more recent openSUSE distributions.

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2018-12-19 18:09:34 +01:00
Marco Vedovati
6b375a9573 obs-packaging: remove EOL distros from stable releases
Remove distros that reached EOL (Fedora 26, Fedora 27, Ubuntu 17.10).

Fixes: #279

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2018-12-19 18:09:03 +01:00
Marco Vedovati
31b04a739b obs-packaging: Add Debian 9 distro
Add Debian 9 distro to the list of stable release distros.

Fixes: #289

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2018-12-19 18:08:42 +01:00
Julio Montes
378d8157a6 virtcontainers: copy or bind mount shared file
Copy files to contaier's rootfs if hypervisor doesn't supports filesystem
sharing, otherwise bind mount them in the shared directory.

see #1031

Signed-off-by: Julio Montes <julio.montes@intel.com>
2018-12-19 09:58:44 -06:00
Julio Montes
bc31844106 virtcontainers: Check file sharing support
If the hypervisor does not support filesystem sharing (for example, 9p),
files will be copied over gRPC using the copyFile request function.

Signed-off-by: Julio Montes <julio.montes@intel.com>
2018-12-19 09:58:21 -06:00