Commit Graph

5350 Commits

Author SHA1 Message Date
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
James O. D. Hunt
93ad0491ef
Merge pull request #159 from marcov/upmakefile
Makefile: update targets to better track build artifacts
2018-09-07 14:03:31 +01:00
James O. D. Hunt
7dd00a1d36
Merge pull request #180 from jcvenegas/semver-replace
packaging: Replace `-` for `~`
2018-09-07 09:14:12 +01:00
James O. D. Hunt
d10bf8b3ef
Merge pull request #240 from devimc/topic/updateKernelMem
limitations: remove 'docker run and kernel memory' section
2018-09-07 08:13:46 +01:00
Archana Shinde
8f5fec8064
Merge pull request #703 from egernst/1.3.0-rc0-branch-bump
# Kata Containers 1.3.0-rc0
2018-09-06 15:16:00 -07:00
Jose Carlos Venegas Munoz
ec3cab5fea
Merge pull request #639 from jodh-intel/fail-if-mem-smaller-than-image
config: Detect if VM memory smaller than image
2018-09-06 16:47:41 -05:00
Jose Carlos Venegas Munoz
368f4792a9 packaging: Replace - for ~
Replace non-valid character from kata version.

This will make the version compatible with rpmbuild.

Fixes: #179

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-09-06 12:33:05 -05:00
Eric Ernst
3cbd21c0b9 release: Kata Containers 1.3.0-rc0
- qemu: refactor maximum vcpus supported in aarch64
- Add ref counter for devices
- versions: update kernel version 4.14.67
- network: always assign sandbox networkNS
- virtcontainers: wait until process exited before RemoveContainer
- virtcontainers: revert apply devices constraints
- vendor: update govmm to be compatible with qemu 2.8
- network: Remove CNI docs
- network: Move OCI hooks and network namespace creation out of virtcontainers
- virtcontainers: delete out-of-date TODO
- build: fix breaking 1.8.3 build
- virtcontainers: apply devices constraints
- kata-env: Fix amd64 VM container capable check
- travis: Add variable needed to run static checks
- virtcontainers: Apply memory constraints
- builtin-proxy: print guest console output to logger
- vendor: Update kata agent for gRPC tracing
- Pass qemu --share-rw option for hotplugging disks
- virtcontainers: storage: Rework resource storage
- qemu/arm64: Detect host GIC version to configure guest GIC
- virtcontainers: kata_agent: Move out a generic function
- virtcontainers: qemu: Don't shutdown QMP from hotplug
- Add virtcontainers trace support
- vfio: Add configuration to support VFIO hotplug on root bus
- vendor: update kata agent
- network: fix vhost-user net creation
- vc: Remove unused variable NumInterfaces
- cli: kata-env: show if vsocks are supported
- api: add sandbox hotplug network
- CI: bump the CI travis's go to 1.10
- cli: kata-env: add runtime path to output
- Remove unused cni code
- devices: add interface "sandbox.AddDevice"
- versions: Update the commit for qemu-lite
- tracing: Add initial opentracing support
- cli: Make message of using initrd OR rootfs clearer
- vendor: Update dep lock file for new format
- network: Error out when host-networking is requested
- virtcontainers: ppc64le: Add nvdimm to defaultQemuMachineOption
- virtcontainers: qemu: x86: Support "virt" machine type

2cd2dd0 versions: update kernel version 4.14.67
2d13c46 test: add unit test for func MaxQemuVCPUs
c4ded6e qemu: refactor maximum vcpus supported in aarch64
a5478b9 virtcontainers: wait until process exited before RemoveContainer
4307982 virtcontainers: revert apply devices constraints
c518b1e device: use devicemanager to manage rootfs block
26f912e virtcontainers: Make qdisc of hotplug nics mq
5e849f1 network: always assign sandbox networkNS
e599ef4 device: don't persist `ContainerPath` of `DeviceInfo`
affd6e3 devices: add reference count for devices.
7f4b221 devices: share genericDevice logic among devices
af0c137 build: fix breaking 1.8.3 build
9a8b45f network: Remove CNI docs
e906095 virtcontainers: delete out-of-date TODO
35d7672 kata-env: Fix amd64 VM container capable check
414ddd1 travis: Add variable needed to run static checks
137769a virtcontainers: apply devices constraints
2677a5f virtcontainers: Apply memory constraints
3940189 builtin-proxy: print guest console output to logger
f841e89 vendor: update govmm to be compatible with qemu 2.8
97d280e virtcontainers: Don't handle the network in case of a factory
9c6ed93 hook: Move OCI hooks handling to the CLI
ec0fd1b virtcontainers: sandbox: Add new getter to retrieve netns
cb351dc network: Create network namespace from the CLI
44d2ec7 virtcontainers: network: Rename CNM to DefaultNetwork
7785352 vendor: Update kata agent for gRPC tracing
8b20c3f virtcontainers: storage: Separate storage interface from implementations
26f0430 virtcontainers: storage: Add a noop version of filesystem
f0e09c8 virtcontainers: kata_agent: Move out a generic function
a1787da virtcontainers: qemu: Don't shutdown QMP from hotplug
b438590 qemu/arm64: Detect host GIC version to configure guest GIC
d0679a6 tracing: Add tracing support to virtcontainers
6ddc9b4 network: Use correct logger
90970d9 tracing: Add trace spans to virtcontainers APIs
c200b28 tracing: Add context to virtcontainers API
f0073be tracing: Create trace function
a193366 tracing: Add subsystem tag to runtime
31e2925 vfio: Add configuration to support VFIO hotplug on root bus
49690b0 vendor: update kata agent
ee1ea36 network: fix vhost-user net creation
70edc56 disk: Pass the --share-rw option for hotplugging disks
b9e0ca3 vendor: vendor latest govmm
161e3a7 vc: Remove unused variable NumInterfaces
88d79f3 cli: kata-env: show if vsocks are supported
7beb309 test: add UTs for network hotplug
72df219 cli: add network commands
1a17200 virtcontainers: add sandbox hotplug network API
6666426 vendor: update govmm and agent changes
4850579 CI: bump the CI travis's go to 1.10
6e6be98 devices: add interface "sandbox.AddDevice"
474111c tests: Add a cleanup for the CNM tests
0d7b476 network: Remove unused cni vendored code
99fa758 network: Remove unused CNI code
f6bfb85 versions: Update the commit for qemu-lite
8b69c75 cli: kata-env: add runtime path to output
3a1bbd0 tracing: Add initial opentracing support
0ede467 tests: Add cli.Context helper functions
41d1c14 tests: Move assert closer to function call
bee8d66 cli: Make message of using initrd OR rootfs clearer
d9fa73c vendor: Update dep lock file for new format
2f3f375 network: Error out when host-networking is requested
ef3a7e8 virtcontainers: ppc64le: Add nvdimm to defaultQemuMachineOption
ef74bc5 virtcontainers: qemu: x86: Support "virt" machine type

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-09-06 10:24:29 -07:00
Julio Montes
2f7a60abfb
Merge pull request #585 from Pennyzct/smp
qemu: refactor maximum vcpus supported in aarch64
2018-09-06 08:43:31 -05:00
Peng Tao
a1537a5271 hypervisor: rename DefaultVCPUs and DefaultMemSz
Now that we only use hypervisor config to set them, they
are not overridden by other configs. So drop the default prefix.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-09-06 21:04:56 +08:00
Marco Vedovati
344a37c03c Makefile: update targets to better track build artifacts
Update Makefile so that build artifacts are actually tracked as make
targets. This is to enforce a strict prerequisite ordering and better
handle parallel builds.

Fixes: #157

Signed-off-by: Marco Vedovati <mvedovati@suse.com>
2018-09-06 12:35:38 +02:00
James O. D. Hunt
ed1e343b93
Merge pull request #655 from WeiZhang555/add-ref-counter-for-devices
Add ref counter for devices
2018-09-06 09:51:07 +01:00