Commit Graph

4961 Commits

Author SHA1 Message Date
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
Jose Carlos Venegas Munoz
d109f99ac8 release: 1.3.0-rc1.
- Update versions file.
- Fix proxy installation in static tarball.
- Fix ksm-throttler spec path.

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-13 21:20:21 -05: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
Jose Carlos Venegas Munoz
886bef2e3d
Merge pull request #163 from jodh-intel/tests-show-image-sizes
tests: Show summary of image sizes
2018-09-13 20:47:18 -05: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
Eric Ernst
209433c799
Merge pull request #245 from gnawux/readme-organize
README.md: update the README of the documentation repo
2018-09-13 15:17:45 -04: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
Eric Ernst
830b1a90c8
Merge pull request #167 from jcvenegas/1.3.0-rc1-branch-bump
# Kata Containers 1.3.0-rc1
2018-09-12 12:50:52 -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
Marco Vedovati
2b187c30d0 tests: Reformat usage output in test_image.sh
Reformat the usage output displayed with `help` command or `-h` option.
Trap exit codes only after options parsing, as that is used to
generate a test report.

Fixes: #169

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2018-09-12 16:55:12 +02:00
Xu Wang
0a4342e7a6
README.md: update the README of the documentation repo
Ship more information of the documents.

Fixes: #244
Signed-off-by: Xu Wang <xu@hyper.sh>
2018-09-12 16:41:47 +08:00
Xu Wang
ac8f66870e
Merge pull request #242 from nitkon/master
Limitation: Document docker --security-opt option not supported
2018-09-12 15:38:21 +08:00
Jose Carlos Venegas Munoz
8a0b1ca1b5 release: Kata Containers 1.3.0-rc1
- Makefile: update targets to better track build artifacts
- OSbuilder : Add support for Ubuntu rootfs
- rootfs: Include libseccomp support in rootfs
- rootfs-fedora: bump Fedora release to 28
- rootfs: Fail on non existing agent version.

344a37c Makefile: update targets to better track build artifacts
f19da63 rootfs: Include libseccomp support in rootfs
3075de4 OSbuilder : Add support for Ubuntu rootfs
89bca97 rootfs: dockerfile: Fix fedora 28 build.
5a1d946 rootfs: Fail on non existing agent version.
1ac9c07 rootfs-fedora: bump Fedora release to 28

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-11 15:53:51 -05: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
Jose Carlos Venegas Munoz
c60d1b73af versions: Update release version.
Update versions file to Kata 1.3-0-rc1.

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-10 15:08:03 -05:00
Jose Carlos Venegas Munoz
f1829d078a vendor: Update govmm
Changes:

- qemu/qmp: support query-memory-devices qmp command.
- qemu: Add virtio RNG device.

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-10 13:29:08 -05:00
Jose Carlos Venegas Munoz
f303311d01 obs: image: fix tarball name.
We find for the tarball name with the package name.

If this is a `-rc` tha package versoin will have `~rc`,
lets replace `~` for `-` before get the tarball name.

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-10 10:58:03 -05:00
Jose Carlos Venegas Munoz
c04f9bed14 kata-static: Fix shim installation
Shim install does not suport destdir

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-10 10:56:43 -05:00
Marco Vedovati
6a307ed322 osbuilder: Remove redundant argument to test_image.sh
Remove the redundant `--distro` argument; when needed, the distro can be
specified using a positional argument.

Fixes: #158

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2018-09-10 16:15:55 +02:00
James O. D. Hunt
9f2461061f tests: Show summary of image sizes
At the end of the tests, show a summary of the size of all the rootfs's,
images and initrd's.

Fixes #162.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-09-10 14:44:02 +01:00
Nitesh Konkar
e5b29318ae Limitation: Document docker --security-opt option partially supported
Fixes: #241

Signed-off-by: Nitesh Konkar niteshkonkar@in.ibm.com
2018-09-07 20:59:58 +05:30