Commit Graph

5426 Commits

Author SHA1 Message Date
James O. D. Hunt
1b2fe4a5be agent: Refactor main function
Move the sandbox creation into a new function.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2020-08-21 17:52:58 +01:00
James O. D. Hunt
bac79eeef0 main: Display config in announce
Add the configuration details in the announcement log call.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2020-08-21 17:52:58 +01:00
James O. D. Hunt
e2952b5354 main: Simplify version handling
Print a simple version string rather than delaying the output
to display a structured version string. The structured output
is potentially more useful but:

- This output is not consistent with other components.

- Delaying the output makes `--version` unusable in some
  environments (since a lot of setup is called before the
  version string can be output).

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2020-08-21 17:52:15 +01:00
Tim Zhang
cfa35a90b2 action: Fix subsystem check
\h is not a valid metacharacter in javascript which is used in
github-action.
Use \s\t to replace it.

Fixes: #551

Signed-off-by: Tim Zhang <tim@hyper.sh>
2020-08-21 23:49:43 +08:00
Pradipta Kumar
bba2773d7d
Merge pull request #482 from Amulyam24/fix-ppc64le-rootfs
osbuilder : ppc64le support for rust agent based rootfs/initrd image
2020-08-21 12:46:10 +05:30
Jose Carlos Venegas Munoz
39b53f4467 clh: enable build using Podman
[ Port from packaging commit 4e1b5729f47d5f67902e1344521bc5b121673046 ]

Build clh with Podman, allow build the vmm in the Podman CI

Virtiofs qemu has to be build as this is requried by clh.

Fixes: #461

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-08-20 14:00:31 -07:00
Jose Carlos Venegas Munoz
04b156f604 qemu-virtiofs: Update to qemu 5.0 + virtiofs + dax
[ Port from packaging commit cbe53bdb14e303830fa9f2d5a7f3c9161a32f033 ]

Update build scripts for qemu-virtiofs.

- virtiofs-0.3 patches are not needed
- Sync build on how vanilla qemu is built
- Apply patches for virtiofsd if any (none today)
- Apply patches that are used for the qemu vanilla
- Apply patches in order

Fixes: #461

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-08-20 14:00:28 -07:00
Bo Chen
3ec05a9f95 clh: Add support to unplug block devices
[ Port from runtime commit 44b58e4151d1fc7debed41274b65c37233a437e3 ]

This patch enables kata+clh to unplug block devices, which is required
to pass cri-o integration tests.

Fixes: #461

Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-08-20 14:00:24 -07:00
Bo Chen
45e32e1b77 clh: Set 'Id' explicitly while hotplugging block device
[ Port from runtime commit 03fb9c50c180d3359178c30e06f1122df312ae76 ]

To support unplug block device, we need to set the 'Id' explicitly while
hotplugging devices with cloud-hypervisor HTTP API.

Fixes: #461

Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-08-20 14:00:21 -07:00
Jose Carlos Venegas Munoz
895959d007 clh: Provide cpu topology to API
[ Port from runtime commit 39897867bc89667daaafdd141367ec4a5fdc9247 ]

API now requires cpu topology.

Fixes: #461

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-08-20 14:00:18 -07:00
Jose Carlos Venegas Munoz
3159438701 clh: opeanapi: update api for cloud hypervisor
[ Port from runtime commit 40f49312a4881c904a1cbdace04c4c697bd2d429 ]

Update api geneated by openapi.

Fixes: #461

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-08-20 14:00:15 -07:00
Jose Carlos Venegas Munoz
89836cd31a versions: cloud-hypervisor 0.9.0
[ Port from runtime commit 0dcbbd8dc113878c2aa8c78b5300e4853a7e64be ]

Highlights for cloud-hypervisor version 0.9.0 include:
virtiofs updates to new dax implementation based in qemu 5.0
Fixed random issues caused due to seccomp filters

io_uring Based Block Device Support

If the io_uring feature is enabled and the host kernel supports it then io_uring will be used for block devices. This results a very significant performance improvement.
Block and Network Device Statistics

Statistics for activity of the virtio network and block devices is now exposed through a new vm.counters HTTP API entry point. These take the form of simple counters which can be used to observe the activity of the VM.
HTTP API Responses

The HTTP API for adding devices now responds with the name that was assigned to the device as well the PCI BDF.
CPU Topology

A topology parameter has been added to --cpus which allows the configuration of the guest CPU topology allowing the user to specify the numbers of sockets, packages per socket, cores per package and threads per core.
Release Build Optimization

Our release build is now built with LTO (Link Time Optimization) which results in a ~20% reduction in the binary size.
Hypervisor Abstraction

A new abstraction has been introduced, in the form of a hypervisor crate so as to enable the support of additional hypervisors beyond KVM.
Snapshot/Restore Improvements

Multiple improvements have been made to the VM snapshot/restore support that was added in the last release. This includes persisting more vCPU state and in particular preserving the guest paravirtualized clock in order to avoid vCPU hangs inside the guest when running with multiple vCPUs.
Virtio Memory Ballooning Support

A virtio-balloon device has been added, controlled through the resize control, which allows the reclamation of host memory by resizing a memory balloon inside the guest.
Enhancements to ARM64 Support

The ARM64 support introduced in the last release has been further enhanced with support for using PCI for exposing devices into the guest as well as multiple bug fixes. It also now supports using an initramfs when booting.
Intel SGX Support

The guest can now use Intel SGX if the host supports it. Details can be found in the dedicated SGX documentation.
Seccomp Sandbox Improvements

The most frequently used virtio devices are now isolated with their own seccomp filters. It is also now possible to pass --seccomp=log which result in the logging of requests that would have otherwise been denied to further aid development.
Notable Bug Fixes

    Our virtio-vsock implementation has been resynced with the implementation from Firecracker and includes multiple bug fixes.
    CPU hotplug has been fixed so that it is now possible to add, remove, and re-add vCPUs (#1338)
    A workaround is now in place for when KVM reports MSRs available MSRs that are in fact unreadable preventing snapshot/restore from working correctly (#1543).
    virtio-mmio based devices are now more widely tested (#275).
    Multiple issues have been fixed with virtio device configuration (#1217)
    Console input was wrongly consumed by both virtio-console and the serial. (#1521)

Fixes: #461

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-08-20 14:00:11 -07:00
Jose Carlos Venegas Munoz
8d5a60ac0a versions: Update qemu-virtiofs to 5.0
[ Port from runtime commit d803f077c6fd26e4d020643eda415ea315f47e0c ]

Update to qemu 5.0.x with support for virtiofs + dax.

Fixes: #461

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-08-20 14:00:06 -07:00
Bo Chen
76a64667d5 clh: Remove the use of deprecated '--memory file=' parameter
[ Port from runtime commit 30b40f5505fd46d23b89eb5fb38301d2f7454f35 ]

Along with the release of cloud-hypervisor v0.8.0, this option has been
deprecated. clh now enforces to use the alternative controls,
e.g. "shared" and "hugepages", which can infer the backing file
paths. Also, we don't use "hugepages" in kata, so we are fine now as the
"shared" control  is already enabled.

Fixes: #461

Signed-off-by: Bo Chen <chen.bo@intel.com>
2020-08-20 13:51:43 -07:00
Bin Liu
5f2a9fad4d
Merge pull request #536 from Kvasscn/packaging-build-kernel-sh-test
packaging: add usage instructions for -a (arch_target) option
2020-08-20 17:53:52 +08:00
zhanghj
bfd78104b2 packaging: add usage instructions for -a (arch_target) option
Add usage instructions for -a option in script and README,
currently supported architecture are aarch64/ppc64le/s390x/x86_64.

Fixes: #534

Signed-off-by: zhanghj <zhanghj.lc@inspur.com>
2020-08-18 22:26:11 -04:00
Yang Bo
03b7bc17de
Merge pull request #499 from lifupan/2.0-dev
rustjail: add the "HOME" env for process
2020-08-19 09:35:06 +08:00
Yang Bo
485fc8ddc8
Merge pull request #531 from lifupan/propagation
rustjail: fix the issue of missing set propagation for bind mount
2020-08-19 09:33:53 +08:00
Julio Montes
2d28043cb2
Merge pull request #527 from devimc/2020-08-13/unittest/rustjail-process
agent: add unit tests for rustjail/process.rs
2020-08-18 12:08:31 -05:00
Bo Chen
646148b2d4
Merge pull request #533 from GabyCT/topic/backportversions
ci: Update experimental kernel tag to enable CLH CI
2020-08-18 09:16:26 -07:00
Gabriela Cervantes
ecaa1f9e25 clh: Enable versions and kernel tag to enable CLH CI for kata 2.0
This PR updates the versions for the virtiofs kernel branch and
as there is a tag based in kernel 5.6 move patches to uses the tag name.
This PR is needed to enable CLH CI for kata 2.0. This PR is backporting
kata-containers/runtime#2843 and kata-containers/packaging#1098.

Fixes #532

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2020-08-18 10:44:02 -05:00
Bin Liu
37a331a1e8
Merge pull request #506 from lining2020/2.0-dev
virtcontainers: fix outdated example code in api document
2020-08-18 19:36:51 +08:00
Amulya Meka
64b0694436 ppc64le: Support for rust agent based rootfs
For building rust agent on ppc64le, the rust toolchain is built using
the LIBC implementation - gnu instead of musl.

Fixes: #481

Signed-off-by: Amulya Meka <amulmek1@in.ibm.com>
2020-08-18 16:00:26 +05:30
Li Ning
2511cabbc3 virtcontainers: fix outdated example code in api document
Some type declarations were changed. The example code here is outdated
according to the example_pod_run_test.go under virtcontainers directory.
And add the imports to make where the types from clear.

Fixes: #507

Signed-off-by: Li Ning <lining_yewu@cmss.chinamobile.com>
2020-08-18 17:42:18 +08:00
Bin Liu
17e2a35cbe
Merge pull request #509 from lifupan/fix_lo
agent: setup the "lo" interface run agent as init
2020-08-18 17:24:19 +08:00
Bin Liu
de3fd3f325
Merge pull request #521 from Tim-Zhang/fix-github-actions
Fix commit-message-check and do some updates about github actions
2020-08-18 15:40:24 +08:00
fupan.lfp
5c7f0016fb rustjail: add the "HOME" env for process
When creating a container process/exec process, it should set the
"HOME" env for this process by getting from /etc/passwd.

Fixes: #498

Signed-off-by: fupan.lfp <fupan.lfp@antfin.com>
2020-08-17 22:15:45 +08:00
fupan.lfp
58dfd50317 rustjail: fix the issue of missing set propagation for bind mount
When do bind mount for container's volumes, the propagation
flags should be mount/set after bind mount.

Fixes: #530

Signed-off-by: fupan.lfp <fupan.lfp@antfin.com>
2020-08-17 21:15:43 +08:00
fupan.lfp
e79c57274b agent: setup the "lo" interface run agent as init
It should setup the "lo" interface when agent run
as init porcess.

Fixes: #508

Signed-off-by: fupan.lfp <fupan.lfp@antfin.com>
2020-08-17 20:52:12 +08:00
Julio Montes
d0a45637ba agent: add unit tests for rustjail/process.rs
Increase code coverage to 80.9%

fixes #285

Signed-off-by: Julio Montes <julio.montes@intel.com>
2020-08-14 09:31:48 -05:00
Julio Montes
c1d3e8f7fa
Merge pull request #518 from liubin/fix/517-cleanup-virtcontainers-api
virtcontainers: cleanup codes, delete not used APIs
2020-08-13 08:44:05 -05:00
Tim Zhang
2889af7710 actions: Run subject-line-length check even if the previous checks failed
So that we can see as many errors as possible at once.

Signed-off-by: Tim Zhang <tim@hyper.sh>
2020-08-13 20:36:49 +08:00
Tim Zhang
9f0fef5add actions: Add commit-body-missing check
Check if the commit body is missing use github action.

Signed-off-by: Tim Zhang <tim@hyper.sh>
2020-08-13 20:36:49 +08:00
Tim Zhang
d81af48ae5 actions: Do not limit the length of single word in commit body
If the line comprises of only a single word,
it may be something like a URL (it's certainly very unlikely to be a
normal word if the default lengths are being used), so length
checks won't be applied to it.

Signed-off-by: Tim Zhang <tim@hyper.sh>
2020-08-13 20:36:49 +08:00
Tim Zhang
8c46a41b96 actions: Fix subsystem checking in github-action
The former regex mistakenly count SoB(DCO) as a valid subsystem.
This commit will fix this issue.

Fixes: #520

Signed-off-by: Tim Zhang <tim@hyper.sh>
2020-08-13 20:36:49 +08:00
Tim Zhang
2466ac73bb actions: Fix 'Fixes checking' problem by update dependent action
The Fixes checking should pass as long as one of the commits of
pull-request pass the check.

update depdent github-action commit-message-checker-with-regex to v0.3.1

shortlog:
d6d9770 commit-message-checker-with-regex: Add input one_pass_all_pass

Fixes: #519

Signed-off-by: Tim Zhang <tim@hyper.sh>
2020-08-13 20:34:43 +08:00
bin liu
e7d3ba12d0 virtcontainers: cleanup codes, delete not used APIs
Some APIs are not used anymore.

Fixes: #517

Signed-off-by: bin liu <bin@hyper.sh>
2020-08-13 15:28:09 +08:00
Xu Wang
ba70a15798
Merge pull request #486 from Tim-Zhang/commit-message-check
Use github action to do Fixes/Length/Subsystem check for commit message
2020-08-13 02:24:02 +08:00
GabyCT
50c76b696f
Merge pull request #503 from GabyCT/topic/fixdevguide
docs: Remove installation of proxy
2020-08-11 13:52:02 -05:00
Gabriela Cervantes
998a634366 docs: Remove installation of proxy
This PR removes the installation of proxy in the Developer Guide as it
does not exist on kata 2.0

Fixes #502

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2020-08-11 10:58:53 -05:00
Hui Zhu
5231a3eddf
Merge pull request #452 from cmaf/unit-virtcontainers-container
virtcontainers: Add unit test for types/container.go
2020-08-07 16:45:01 +08:00
Bin Liu
0a233ff4bd
Merge pull request #440 from lifupan/2.0-dev
shimv2: fix the issue  of close IO stream
2020-08-07 11:28:44 +08:00
Tim Zhang
c305911def actions: Use github action to do Fixes/Length/Subsystem check
The commit checks does not need to wait for CI dependencies to be
installed, It's a waste of time. we need show errors ASAP.

And we should display as many problems as possible at once
Fixes: #487

Signed-off-by: Tim Zhang <tim@hyper.sh>
2020-08-05 21:39:53 +08:00
fupan.lfp
bd78ccaf31 shimv2: fix the issue of close IO stream
It should wait until the stdin io copy
termianted to close the process's io stream,
otherwise, it would miss forwarding some contents
to process stdin.

Fixes: #439

Signed-off-by: fupan.lfp <fupan.lfp@antgroup.com>
2020-08-05 21:26:31 +08:00
James O. D. Hunt
93b55280b0
Merge pull request #477 from GabyCT/topic/updatelimitations
docs: Update contributions section in limitations document kata 2.0
2020-08-03 08:46:10 +01:00
Bin Liu
e43a49eafc
Merge pull request #479 from Tim-Zhang/close_fd_in_execute_hook
Fix fd leakage in execute_hook
2020-08-03 15:01:29 +08:00
Tim Zhang
06834931a6 agent: Fix fd leaks in execute_hook
Fixes: #480

Signed-off-by: Tim Zhang <tim@hyper.sh>
2020-08-03 10:58:43 +08:00
Gabriela Cervantes
b03cd1bf46 docs: Update contributions section in limitations document kata 2.0
This PR updates the contributions sections for the limitations document
for kata 2.0 that instead using the previous runtime repository as example,
it will use the new one.

Fixes #476

Signed-off-by: Gabriela Cervantes <gabriela.cervantes.tellez@intel.com>
2020-07-31 11:25:36 -05:00
Fabiano Fidêncio
ec84a94a61
Merge pull request #474 from merwick/2.0-dev
Kata 2.0-dev port of #2867 (NoReboot Knob)
2020-07-30 22:10:46 +02:00
Liam Merwick
c15ef219e5 qemu: Set govmmQemu NoReboot config Knob
The Kata architecture does not support rebooting VMs (the lifecycle
being start/exec/kill) and if a VM is killed (e.g. using sysrq-trigger),
the VM does not exit fully and other layers do not notice the state change.
Set the NoReboot config Knob so that govmmQemu.LaunchQemu() runs QEMU
with the --no-reboot command-line option.

Fixes: #2866

Signed-off-by: Liam Merwick <liam.merwick@oracle.com>
2020-07-30 16:04:08 +01:00