Commit Graph

1911 Commits

Author SHA1 Message Date
Sebastien Boeuf
048616fb8d netmon: Add signals handler
After the signals package has been created and shared with the CLI,
this commit calls into it in order to properly handle the signals
directed to the network monitor process.

Fixes #718

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-18 23:10:51 -07:00
Sebastien Boeuf
1675410256 pkg: signals: Factorize signals handling through a Go package
In order to reuse the same scheme across several components of the
runtime repository, we need to factorize the code handling signalling
through a common package.

The immediate use case will be to use this package from both the CLI
and the network monitor.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-18 23:09:32 -07:00
Jose Carlos Venegas Munoz
723fbacb00 versions: update containerd version
Update the version that is used to test Kata.

```yaml
  cri-containerd:
    version: "v1.0.5"
    meta:
      containerd-version: "1.1.3"
```

Fixes: #748

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-18 17:01:32 -05:00
Julio Montes
00751754a9 cli: add systemd-cgroup option
Add support for cgroup driver systemd.
systemd cgroup is not applied in the VM since in some cases like initrd images
there is no systemd running and nobody can update a systemd cgroup using
systemctl.

fixes #596

Signed-off-by: Julio Montes <julio.montes@intel.com>
2018-09-18 15:55:17 -05:00
Eric Ernst
a8284f875b
Merge pull request #740 from jodh-intel/add-throttler-to-collect-script
scripts: Add throttler details to collect script
2018-09-18 07:36:09 -07:00
Frank Cao
7d8ce4ec92
Merge pull request #624 from clarecch/update_memory
virtcontainers: hotplug memory with kata-runtime update command.
2018-09-18 16:28:54 +08:00
James O. D. Hunt
6fc13e9548 scripts: Add throttler details to collect script
Add details of the KSM throttler to the output of the data collection
script. Look for both Kata and Clear Containers KSM throttler details.

Fixes #739.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-09-17 17:27:54 +01:00
Clare Chen
12a0354084 sandbox: get and store guest details.
Get and store guest details after sandbox is completely created.
And get memory block size from sandbox state file when check
hotplug memory valid.

Signed-off-by: Clare Chen <clare.chenhui@huawei.com>
Signed-off-by: Zichang Lin <linzichang@huawei.com>
2018-09-17 07:00:46 -04:00
Clare Chen
13bf7d1bbc virtcontainers: hotplug memory with kata-runtime update command
Add support for using update command to hotplug memory to vm.
Connect kata-runtime update interface with hypervisor memory hotplug
feature.

Fixes #625

Signed-off-by: Clare Chen <clare.chenhui@huawei.com>
2018-09-17 05:02:18 -04:00
Zichang Lin
0928519132 vendor: update agent to support memory update
Fixes #671

agent Shortlog:
    7e8e20b agent: add GetGuestDetails gRPC function
    5936600 grpc: grpc.Code is deprecated
    2d3b9ac release: Kata Containers 1.3.0-rc0
    a6e27d6 client: fix dialer after vendor update
    cd03e0c vendor: update grpc-go dependency
    1d559a7 channel: add serial yamux channel close timeout
    fcf6fa7 agent: update resources list with the right device major-minor number

Signed-off-by: Zichang Lin <linzichang@huawei.com>
2018-09-17 05:02:18 -04:00
Peng Tao
a5e82c1d4d
Merge pull request #684 from bergwolf/vm-proxy
factory: start proxy before assign vm to a sandbox
2018-09-17 16:37:46 +08:00
Archana Shinde
40bf14989d
Merge pull request #534 from sboeuf/monitor_network_golang
virtcontainers: netmon: Monitor network changes
2018-09-14 15:21:45 -07:00
Sebastien Boeuf
e620470fe1
Merge pull request #643 from jodh-intel/golang-1.8.3-to-1.9.7
versions: Bump golang from 1.8.3 to 1.9.7
2018-09-14 11:02:00 -07:00
Sebastien Boeuf
0ffe81cb71 cli: config: Make netmon configurable
In order to choose if the network monitor should be used or not, this
patch makes it configurable from the configuration.toml file.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-14 09:15:53 -07:00
Sebastien Boeuf
1406d99aba virtcontainers: Start network monitor from virtcontainers
This patch enables the code responsible for starting and stopping
the network monitor.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-14 09:15:53 -07:00
Sebastien Boeuf
29e2fa0fed virtcontainers: Avoid conflict with network monitor
Because the network monitor will be listening to every event received
through the netlink socket, it will be notified everytime a new link
will be added/updated/modified in the network namespace it's running
into. The goal being to detect new interface added by Docker such as
a veth pair.

The problem is that kata-runtime will add other internal interfaces
when the network monitor will ask for the addition of the new veth
pair. And we need a way to ignore those new interfaces being created
as they relate to the veth pair that is being added. That's why, in
order to prevent from running into an infinite loop, virtcontainers
needs to tag the internal interfaces with the "kata" suffix so that
the network monitor will be able to ignore them.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-14 09:15:53 -07:00
Sebastien Boeuf
f6ce46541e vendor: Update agent vendoring
8abc400 agent: add test to WaitProcess()
f746ed8 agent: allow multiple waitProcess()
157f1c1 travis: Add variable needed to run static checks
ed54087 travis: bump golang version
ba0c7fc client: wait for session to be fully closed
0865c98 agent: wait session to be fully shutdown
55f1480 vendor: update yamux dependency
5e36bfc network: Wait for network device in UpdateInterface
218ce89 device: Rename getBlockDeviceNodeName to getPCIDeviceName
c9a4e2e uevent: Store the interface field as device name for network interfaces
74a5364 build: fix make proto error
b1c2ad8 agent: add support for online memory and cpu separately.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-14 09:15:53 -07:00
Sebastien Boeuf
55af1083ec netmon: Add unit testing
This commit adds some unit testing in order to validate some of the
new code that have been introduced with the new network monitor.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-14 09:15:53 -07:00
Sebastien Boeuf
f1315908c7 netmon: Build netmon from the master Makefile
This commit modifies the Makefile at the root of this repository
so that the binary kata-netmon can be built from there.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-14 09:15:53 -07:00
Sebastien Boeuf
fca74356da netmon: Add logrus support
Instead of dumping logs through the standard output with fmt.Printf()
function, this commit improves the logging by relying on logrus.
Also, it relies on the syslog hook so that all the logs get redirected
to the journal.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-14 09:15:51 -07:00
Sebastien Boeuf
bbf2a47866 netmon: Don't rely on agent protocol
In order to reduce the overhead due to the import of the whole
agent protocol, only the needed structures are duplicated. This
is a temporary solution, and those structures should be defined
into their own package to prevent from such overhead.

Note: the overhead of the binray size went down from 15MiB to
3MiB when this commit removed the dependency on the agent protocol.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-14 09:15:12 -07:00
Sebastien Boeuf
b708a4a05c netmon: Monitor network changes
This commit introduces a new watcher dedicated to the monitoring
of a specific network namespace in order to detect any change that
could happen to the network.

As a result of such a detection, the watcher should call into the
appropriate runtime path with the correct arguments to modify the
pod network accordingly.

Fixes #170

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-09-14 09:15:10 -07:00
Peng Tao
d6e4a98387
Merge pull request #706 from caoruidong/vhost
cli: add configuration option to enable/disable vhost_net
2018-09-14 10:17:00 +08:00
Peng Tao
d75841ef23 ut: add more UTs
Let's make codecov happier;)

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-14 08:54:55 +08:00
Peng Tao
07c1f18e51 factory: start proxy after create new VM
The PR moves ahead the start of proxy process for vm factory so that
it waits for both vm and proxy to be up at the same time. This saves
about 300ms for new container creation in my local test machine.

Fixes: #683

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-14 08:54:55 +08:00
Peng Tao
4738d4e87a agent: add setProxy/getAgentURL interface
Callers can use setProxy to ask agent to use an existing proxy.
agent is modified to rely on its state.URL to tell if an
its proxy is a valid one. And startProxy will skip a valid
proxy since it is already started.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-14 08:54:55 +08:00
Peng Tao
8f77c33d68 proxy: decouple from sandbox
A proxy is mostly associated with an agent. Decouple it from sandbox
so that we can start it before linking vm with an actual sandbox.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-14 08:54:55 +08:00
Peng Tao
f39fa5d489 proxy: remove newProxyConfig
The proxy config does not depend on proxy type. Let's not misture them.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-14 08:54:55 +08:00
Peng Tao
c41c9de839 proxy: do not decode proxy config
It is a well defined structure that needs no decoding.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-14 08:54:55 +08:00
Frank Cao
22aedc4fb6
Merge pull request #588 from nitkon/master
cli: Error out if initrd/rootfs not define in config file
2018-09-14 00:20:18 +08:00
Ruidong
225e10cfc4 cli: add configuration option to enable/disable vhost_net
Add `disable_vhost_net` option to enable or disable the use of
vhost_net. Vhost_net can improve network performance.

Signed-off-by: Ruidong Cao <caoruidong@huawei.com>
2018-09-14 00:14:03 +08:00
Ruidong
5ebb7cf6f5 vendor: Update govmm to disable vhost when host doesn't support vhost-net
If the length of vhostfds is zero, it means host doesn't support vhost. So
do not pass vhost="on" in QMP.
Full list:
    1a1fee7 qemu/qmp: nic can works without vhost

Fixes #169

Signed-off-by: Ruidong Cao <caoruidong@huawei.com>
2018-09-14 00:03:22 +08:00
Sebastien Boeuf
516b6ff1d0
Merge pull request #725 from jodh-intel/fix-kata-env-debug-output
kata-env: Fix display of debug options
2018-09-13 08:26:37 -07:00
Nitesh Konkar
bce6859af0 cli: Error out if initrd/rootfs not define in config file
If neither initrd nor rootfs path is mentioned in
the configuration.toml file, then error out stating
the same

Fixes: #587

Signed-off-by: Nitesh Konkar niteshkonkar@in.ibm.com
2018-09-13 20:14:05 +05:30
Peng Tao
5404aaba6f
Merge pull request #719 from amshinde/net-queue-size
Set the queue size for Multiqueue virtio-net as the number of vCPUs on the guest.
2018-09-13 22:40:06 +08:00
James O. D. Hunt
23a35c84c9 kata-env: Fix display of debug options
The runtime and hypervisor `Debug` options were always showing as
`false` (although all debug options in `configuration.toml` were
correctly honoured).

Note: Also moved location of `FactoryConfig` in `RuntimeConfig` as the
`malign` linter was complaining:

```
virtcontainers/pkg/oci/utils.go:102:20⚠️ struct of size 408 could be 400 (maligned)
```

Fixes #724.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-09-13 11:15:43 +01:00
Archana Shinde
63785caf04 network: Use the number of CPUS to set the multiqueue size
Instead of using a default queue size of 8 for macvtap fds,
use the number of CPUs on the guest as the queue size.
This is the recommended approach. This also shown better
performance results.

Fixes #680

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-09-12 12:18:48 -07:00
Archana Shinde
2f552fbf43 hypervisor: Add hypervisor interface to return config
This api will allow the config to be accessed by other subsystems
such as network.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-09-12 12:02:15 -07:00
Sebastien Boeuf
a5f05bf3e1
Merge pull request #715 from eguzman3/vfio-ids
devices: add per-device VFIO ids
2018-09-12 09:56:17 -07:00
Eric Ernst
92037abbf3
Merge pull request #716 from jcvenegas/1.3.0-rc1-branch-bump
# Kata Containers 1.3.0-rc1
2018-09-12 12:51:19 -04:00
Archana Shinde
439b4eb6e8
Merge pull request #712 from bergwolf/cgroupnamespace
kata_agent: disable cgroup namespace
2018-09-12 08:34:01 -07:00
Jose Carlos Venegas Munoz
cd243fa935 release: Kata Containers 1.3.0-rc1
- qemu: Add rng virtio device
- cli: fix build
- virtcontainers: remove sandboxConfig.VMConfig

1325444 cli: fix build
44e7631 versions: update qemu-lite version.
bf7fd2b vc: hypervisor: qemu: Add rng device.
f1829d0 vendor: Update govmm
a1537a5 hypervisor: rename DefaultVCPUs and DefaultMemSz
7af8e6c ut: fix hypervisor path
ce28865 virtcontainers: remove sandboxConfig.VMConfig

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-11 15:53:36 -05:00
Edward Guzman
e21cdf13a4 devices: add per-device VFIO ids
Adds per-device VFIO ids allowing IOMMU groups with
multiple devices to be passed to qemu.

Fixes #708

Signed-off-by: Edward Guzman <eguzman@nvidia.com>
2018-09-11 12:10:11 -07:00
Sebastien Boeuf
e02695bf7b
Merge pull request #676 from jcvenegas/rng-device
qemu: Add rng virtio device
2018-09-11 07:03:07 -07:00
Peng Tao
ec80a55b74 kata_agent: disable cgroup namespace
We do not support it yet. If we pass it to the agent, container creation
will fail.

Fixes: #711

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-11 18:06:40 +08:00
James O. D. Hunt
daa80c244d
Merge pull request #710 from bergwolf/build
cli: fix build
2018-09-11 08:16:23 +01:00
Peng Tao
13254440c6 cli: fix build
Sadly CI failed to catch the broken line due to the fact that it is introduced by a different
PR that passed w/o the naming PR.

./config.go:604:27: config.DefaultMemSz undefined (type virtcontainers.HypervisorConfig has no field or method DefaultMemSz)
Makefile:331: recipe for target '/golang/src/github.com/kata-containers/runtime/kata-runtime' failed
make: *** [/golang/src/github.com/kata-containers/runtime/kata-runtime] Error 2

Fixes: #709

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-11 11:04:07 +08:00
Archana Shinde
52394c3c18
Merge pull request #693 from bergwolf/memory
virtcontainers: remove sandboxConfig.VMConfig
2018-09-10 15:26:18 -07:00
Jose Carlos Venegas Munoz
44e7631970 versions: update qemu-lite version.
Update qemu-lite this disable static PRT on pc platform,
needed to use devices like virtio-rng.

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-10 17:11:48 -05:00
Jose Carlos Venegas Munoz
bf7fd2bcd7 vc: hypervisor: qemu: Add rng device.
Kata Containers does not have provide a good entropy level,
make use of a paravirtual rng device to solve this problem.

Fixes: #445

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-10 17:11:48 -05:00