Commit Graph

963 Commits

Author SHA1 Message Date
Archana Shinde
3c590b0e2c network: Rename VirtualEndpoint to VethEndpoint
As this really represents a veth pair rather than a generic
virtual interface, rename VirtualEndpoint to VethEndpoint.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-11 14:45:57 -07:00
Archana Shinde
df8f21d9fe network: Refactor network tests.
Split network_test.go into separate test files.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-11 14:45:57 -07:00
Archana Shinde
adcd9106f9 network: Refactor network.go
Split endpoint implementations into their own file.

Fixes #799

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-11 14:45:55 -07:00
Archana Shinde
7fb2706667
Merge pull request #814 from amshinde/fix-endpoint-indexing
network: Sort endpoints by name
2018-10-11 14:38:32 -07:00
Archana Shinde
8f1b28da34 network: Sort endpoints by name
Sort endpoints by name to control the order in which
they are passed to the VM as the interface name inside
the VM depends on the order in which it is passed.

Long term we should come up with a more robust approach.

Fixes #785

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-11 09:23:49 -07:00
Peng Tao
eb77a41535 qemu: make saveSandbox wait for migration completion
Then we can remove the arbitrary sleep waiting for migration
completion when creating a tempalte vm.

Fixes: #728

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-10-09 09:52:25 +08:00
Manohar Castelino
c3cfe8204a
Merge pull request #805 from sboeuf/fix_virt
virtcontainers: qemu: Add proper support for virt machine type
2018-10-03 17:19:07 -07:00
Archana Shinde
a0968ce1ce
Merge pull request #506 from amshinde/macvlan-support
network: Add support for macvlan and macvtap driver
2018-10-03 14:19:14 -07:00
Sebastien Boeuf
dffb4f96ae virtcontainers: qemu: Add proper support for virt machine type
The virt machine type provided by the NEMU project needs to be
supported the same way we support pc and q35 machine types.

First, this patch takes care of adding the hotpluggable block device
capability to this machine type, this way when using devicemapper, we
prevent the code from falling back on using 9pfs instead of SCSI.

It also add one or several bridges to this machine type, as the code
is tightly coupled to the fact that a bridge is required for PCI
hotplug.

At last, it changes the name of the PCI host bridge (main bus), to
use "pcie.0". The default set up from pc machine type "pci.0" is not
suitable for this machine type.

Fixes #804

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-10-03 10:04:02 -07:00
Archana Shinde
3c7cf589ad tests: Add additional network tests to verifu link creation functions
Add tests to verify bridge, tap and macvtap link creation.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-03 09:46:16 -07:00
Archana Shinde
378191a52c tests: Add tests for macvlan and macvtap endpoints
Add unit tests in network_test.go and qemu_arch_base_test.go
for macvlan and macvtap network endpoints.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-03 09:46:16 -07:00
Archana Shinde
def070d651 golint: Refactor to reduce cyclomatic complexity
Introduce function  getLinkForEndpoint to reduce cyclomatic
complexity.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-02 17:39:48 -07:00
Archana Shinde
417c1f07f9 macvtap: Add support for macvtap
Plugin may provide a macvtap interface. Add support for
directly attaching this to the VM.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-02 17:39:48 -07:00
Sebastien Boeuf
0de7572f7b vendor: Update govmm vendoring
Shortlog:

ef72505 qemu: Fix the support of PCIe bridge
56f645e qmp: add ExecuteQueryMigration
a429677 govmm: fix memory prealloc
1130aab qmp: add "query-cpus" support

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-10-02 17:15:14 -07:00
Archana Shinde
581ff17857 macvlan: Assign random MAC address
Macvtap interfaces require mac addresses to be unique even
though they may be in a separate namespace. Hence use a randomly
generate MAC address.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-02 16:23:50 -07:00
Archana Shinde
8847af8343 network: Add support for macvlan driver
Add support for macvlan driver by bridging it with a macvtap or
tap+bridge and moving the mac and ip address from the
macvlan to the bridged interface.

Fixes #162

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-02 16:23:50 -07:00
Sebastien Boeuf
c061fe1ff5
Merge pull request #802 from jcvenegas/fix-memory-update
memory: update: Update state using the memory removed
2018-10-02 15:23:11 -07:00
Jose Carlos Venegas Munoz
1f5792ecbb test: fix unit test nil pointer.
Add filesystem to qemu object.
Fix mock_hypervisor

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-10-02 15:58:08 -05:00
Jose Carlos Venegas Munoz
4697cf3c79 memory: update: Update state using the memory removed.
If the memory is reduced , its cgroup in the VM was updated properly. But the
runtime assumed that the memory was also removed from the VM.

Then when it is added more memory again, more is added (but not needed).

Fixes: #801

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-10-02 14:38:21 -05:00
Archana Shinde
532e0bbf75
Merge pull request #772 from amshinde/block-support-q35
block: Advertise block support for q35
2018-10-02 10:03:56 -07:00
Archana Shinde
0cab1924c2 block: Advertise block support for q35
Add block device capability for q35 as this machine type supports it.
This was never added with the introduction of q35 support.

Fixes #771

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-10-01 11:21:21 -07:00
Frank Cao
9bc582857b
Merge pull request #798 from devimc/topic/depEnsure
vendor: fix govmm package
2018-09-29 18:48:56 +08:00
Julio Montes
f4cf2137be vendor: fix govmm package
Last time govmm was updated it was not vendored correctly

Fixes #797

Signed-off-by: Julio Montes <julio.montes@intel.com>
2018-09-28 10:36:13 -05:00
Eric Ernst
a786643d0b
Merge pull request #789 from bergwolf/1.3.0-branch-bump
# Kata Containers 1.3.0
2018-09-26 17:34:08 -07:00
Julio Montes
0d99a4f49f
Merge pull request #776 from jodh-intel/bling-collect-script
scripts: Use syntax highlighting in collect script
2018-09-26 08:47:15 -05:00
Peng Tao
7078d3b530 release: Kata Containers 1.3.0
- agent: change 9pfs mount option to cache=mmap
- vc: qemu: Add config option to choose entropy source.
- virtcontainers: revert "fix shared dir resource remaining"
- block: Fix how rootfs is passed to kata-agent using virtio-blk
- agent: clean up proxy process if start sandbox failed
- config: Add Memory slots config
- virtcontainers: support vhost and physical endpoints in AddInterface
- device: Add GPU device support
- virtcontainers: fix the issue of missing starting builtin proxy
- Cleanup template properly
- cli: add systemd-cgroup option
- netmon: Add signals handler support
- versions: update containerd version
- scripts: Add throttler details to collect script
- virtcontainers: hotplug memory with kata-runtime update command.
- factory: start proxy before assign vm to a sandbox
- virtcontainers: netmon: Monitor network changes
- versions: Bump golang from 1.8.3 to 1.9.7
- cli: add configuration option to enable/disable vhost_net

41619e4 vc: qemu:  Add option to change entropy source
9e606b3 virtcontainers: revert "fix shared dir resource remaining"
58cf7fc block: Fix how rootfs is passed to kata-agent using virtio-blk
ec87dca virtcontainers: support vhost and physical endpoints in AddInterface
19801bf config: Add Memory slots configuration.
bb513a7 agent: change 9pfs mount option to cache=mmap
0ddf99d agent: clean up proxy process if start sandbox failed
5612694 virtcontainers: fix the issue of missing starting builtin proxy
67ffa2f factory: close factory in UT
b193f0f template: clean up template mountpoint on failures
37b83c8 device: Add GPU device support
2216d52 vendor: Update govmm to add vfio mediated device support on root bus
048616f netmon: Add signals handler
1675410 pkg: signals: Factorize signals handling through a Go package
723fbac versions: update containerd version
0075175 cli: add systemd-cgroup option
6fc13e9 scripts: Add throttler details to collect script
12a0354 sandbox: get and store guest details.
13bf7d1 virtcontainers: hotplug memory with kata-runtime update command
0928519 vendor: update agent to support memory update
0ffe81c cli: config: Make netmon configurable
1406d99 virtcontainers: Start network monitor from virtcontainers
29e2fa0 virtcontainers: Avoid conflict with network monitor
f6ce465 vendor: Update agent vendoring
55af108 netmon: Add unit testing
f131590 netmon: Build netmon from the master Makefile
fca7435 netmon: Add logrus support
bbf2a47 netmon: Don't rely on agent protocol
b708a4a netmon: Monitor network changes
d75841e ut: add more UTs
07c1f18 factory: start proxy after create new VM
4738d4e agent: add setProxy/getAgentURL interface
8f77c33 proxy: decouple from sandbox
f39fa5d proxy: remove newProxyConfig
c41c9de proxy: do not decode proxy config
225e10c cli: add configuration option to enable/disable vhost_net
5ebb7cf vendor: Update govmm to disable vhost when host doesn't support vhost-net
d814bc5 versions: Bump golang from 1.8.3 to 1.9.7

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-26 17:34:18 +08:00
James O. D. Hunt
504e5836f0
Merge pull request #770 from bergwolf/9p-mmap
agent: change 9pfs mount option to cache=mmap
2018-09-26 10:19:54 +01:00
Peng Tao
304ec7e231
Merge pull request #781 from jcvenegas/urandom-source
vc: qemu: Add config option to choose entropy source.
2018-09-26 09:43:28 +08:00
Jose Carlos Venegas Munoz
41619e4f83 vc: qemu: Add option to change entropy source
This adds a config option to choose the VM entropy
source.

Fixes: #702

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-25 17:54:32 -05:00
James O. D. Hunt
e50915017e
Merge pull request #778 from devimc/topic/revert-292
virtcontainers: revert "fix shared dir resource remaining"
2018-09-25 11:18:39 +01:00
Julio Montes
9e606b3da8 virtcontainers: revert "fix shared dir resource remaining"
This reverts commit 8a6d383715.

Don't remove all directories in the shared directory because
`docker cp` re-mounts all the mount points specified in the
config.json causing serious problems in the host.

fixes #777

Signed-off-by: Julio Montes <julio.montes@intel.com>
2018-09-24 12:15:09 -05:00
James O. D. Hunt
eba23b1ae4 scripts: Use syntax highlighting in collect script
Make the output of `kata-collect-data.sh` slightly more attractive and
easier to read by using syntax highlighting where possible. This is
achieved by specifying a language for some of the code blocks,
specifically for the TOML config files and output of `kata-env` and the
YAML osbuilder config file.

See:

- https://help.github.com/articles/creating-and-highlighting-code-blocks/
- https://github.com/github/linguist

Fixes #775.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-09-24 09:22:54 +01:00
Peng Tao
e39a734184
Merge pull request #774 from amshinde/fix-virtio-blk
block: Fix how rootfs is passed to kata-agent using virtio-blk
2018-09-22 13:36:31 +08:00
Archana Shinde
d865515c29
Merge pull request #760 from bergwolf/proxy-cleanup
agent: clean up proxy process if start sandbox failed
2018-09-21 14:50:58 -07:00
Archana Shinde
58cf7fc5d6 block: Fix how rootfs is passed to kata-agent using virtio-blk
Kata agent expects the pci address to be passed and not the
predicted device name.

Fixes #773

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-09-21 14:40:30 -07:00
Sebastien Boeuf
b59ea21e4f
Merge pull request #752 from jcvenegas/memory-slots-config
config: Add Memory slots config
2018-09-21 11:53:04 -07:00
Archana Shinde
38734bd7c6
Merge pull request #761 from caoruidong/add-inf
virtcontainers: support vhost and physical endpoints in AddInterface
2018-09-21 10:54:52 -07:00
Ruidong Cao
ec87dca2d8 virtcontainers: support vhost and physical endpoints in AddInterface
Support to hotplug vhost and physical endpoints by AddInterface API

Fixes #758

Signed-off-by: Ruidong Cao <caoruidong@huawei.com>
2018-09-22 03:10:59 +08:00
Jose Carlos Venegas Munoz
19801bf784 config: Add Memory slots configuration.
Add configuration to decide the amount of slots that will be used in a VM

- This will limit the amount of times that memory can be hotplugged.
- Use memory slots provided by user.
- tests: aling struct

cli: kata-env: Add memory slots info.

- Show the slots to be added to the VM.

```diff
[Hypervisor]
  MachineType = "pc"
  Version = "QEMU ..."
  Path = "/opt/kata/bin/qemu-system-x86_64"
  BlockDeviceDriver = "virtio-scsi"
  Msize9p = 8192
+  MemorySlots = 10
  Debug = false
  UseVSock = false
```

Fixes: #751

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-21 10:57:00 -05:00
Peng Tao
bb513a7066 agent: change 9pfs mount option to cache=mmap
It does not give better pjdfstest results but allows us to pass
ubuntu `apt update`, fedora `dnf install`, and also launch `mariadb:latest`.

Fixes: #769

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-21 17:59:55 +08:00
James O. D. Hunt
bd2623bd86
Merge pull request #533 from xindazhao/gpu-support
device: Add GPU device support
2018-09-21 08:56:31 +01:00
James O. D. Hunt
7f65751f62
Merge pull request #757 from lifupan/fixbuiltinproxy
virtcontainers: fix the issue of missing starting builtin proxy
2018-09-21 08:31:14 +01:00
Peng Tao
0ddf99d13c agent: clean up proxy process if start sandbox failed
Otherwise we'll leave kata-proxy process dangling around forever.

Fixes: #759

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-21 14:54:37 +08:00
fupan
561269480c virtcontainers: fix the issue of missing starting builtin proxy
It shouldn't set kataAgent.state.URL in its configure() method
for builtin kata proxy, otherwise the following check of whether
is it nil in startProxy() will return directly and failed to
start builtin proxy which will log the qemu's console.

Fixes: #756

Signed-off-by: fupan <lifupan@gmail.com>
2018-09-21 09:41:38 +08:00
Archana Shinde
35d3c0bf5a
Merge pull request #764 from bergwolf/cleanup-template
Cleanup template properly
2018-09-20 12:22:01 -07:00
Peng Tao
67ffa2fd0c factory: close factory in UT
So that we do not leave artifacts like template mountpoint
behind.

Fixes: #763

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-20 18:13:01 +08:00
Peng Tao
b193f0f3d0 template: clean up template mountpoint on failures
So that we don't leave it behind.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-20 17:30:23 +08:00
Zhao Xinda
37b83c8923 device: Add GPU device support
Enable GPU device support in kata runtime, including GVT-g and GVT-d.
GVT-g: graphic virtualization technology with mediated pass through
GVT-d: graphic virtualization technology with direct pass through

BDF of device eg "0000:00:1c.0" is used to distinguish GPU device in GVT-d,
while sysfsdev of device eg "f79944e4-5a3d-11e8-99ce-479cbab002e4" is used
in GVT-g.

Fixes #542

Signed-off-by: Zhao Xinda <xinda.zhao@intel.com>
2018-09-20 15:27:34 +08:00
Zhao Xinda
2216d528f6 vendor: Update govmm to add vfio mediated device support on root bus
In addition to supporting hotplug for VFIO mediated device on PCI bridge,
this patch adds hotplug functionality on root bus.

When parameter bus and addr are set to be empty, the system will pick up
an empty slot on root bus.

Fixes #542

Signed-off-by: Zhao Xinda <xinda.zhao@intel.com>
2018-09-20 15:19:29 +08:00
Peng Tao
76b0c3c7d3
Merge pull request #747 from devimc/topic/systemdCgroup
cli: add systemd-cgroup option
2018-09-20 11:38:57 +08:00