Commit Graph

2214 Commits

Author SHA1 Message Date
Sebastien Boeuf
97d280ee0c virtcontainers: Don't handle the network in case of a factory
If the sandbox has been initialized with a factory, this means the
caller should be in charge of adding any network to the VM, and
virtcontainers library cannot make any assumptions about adding
the default underlying network.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-08-24 15:07:29 -07:00
Sebastien Boeuf
9c6ed93f80 hook: Move OCI hooks handling to the CLI
The CLI being the implementation of the OCI specification, and the
hooks being OCI specific, it makes sense to move the handling of any
OCI hooks to the CLI level. This changes allows the Kata API to
become OCI agnostic.

Fixes #599

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-08-24 15:07:27 -07:00
Sebastien Boeuf
ec0fd1b67a virtcontainers: sandbox: Add new getter to retrieve netns
As we want to call the OCI hook from the CLI, we need a way for the
CLI to figure out what is the network namespace used by the sandbox.
This is needed particularly because virtcontainers creates the netns
if none was provided.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-08-24 14:19:25 -07:00
Sebastien Boeuf
cb351dca10 network: Create network namespace from the CLI
This commit moves the network namespace creation out of virtcontainers
in order to anticipate the move of the OCI hooks to the CLI through a
follow up commit.

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-08-24 14:19:23 -07:00
Sebastien Boeuf
44d2ec757c virtcontainers: network: Rename CNM to DefaultNetwork
Since we removed the CNI implementation and that we agreed the network
should only be handled in a single way from virtcontainers, this patch
logically replace the "CNM" naming with "Default".

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-08-24 14:12:12 -07:00
Julio Montes
cc29b8d4b6
Merge pull request #607 from amshinde/pass-disk-as-shared
Pass qemu --share-rw option for hotplugging disks
2018-08-24 13:09:16 -05:00
Julio Montes
8b5fa32d9b
Merge pull request #634 from sboeuf/add_noop_filesystem
virtcontainers: storage: Rework resource storage
2018-08-24 07:21:58 -05:00
Julio Montes
500d017c31
Merge pull request #616 from Weichen81/master
qemu/arm64: Detect host GIC version to configure guest GIC
2018-08-24 07:04:21 -05:00
James O. D. Hunt
7785352021 vendor: Update kata agent for gRPC tracing
Update the agent vendoring for the new `NewAgentClient()` API - the
agent client code will enable gRPC tracing when passed a context
containing an opentracing span.

Agent client code changes:

    6d26d61 client: Add context parameter and enable tracing support

Fixes #640.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-08-24 12:19:52 +01:00
James O. D. Hunt
ed6f715ae6
Merge pull request #630 from sboeuf/move_generic_function
virtcontainers: kata_agent: Move out a generic function
2018-08-24 09:40:24 +01:00
James O. D. Hunt
695244afad
Merge pull request #628 from sboeuf/fix_qmp_shutdown
virtcontainers: qemu: Don't shutdown QMP from hotplug
2018-08-24 09:39:20 +01:00
Sebastien Boeuf
8b20c3f26d virtcontainers: storage: Separate storage interface from implementations
The storage implementation of filesystem was in the same file where
the resource storage interface was declared. It's more proper to
separate implementations and interface into different files.

Fixes #633

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-08-23 16:38:14 -07:00
Sebastien Boeuf
26f0430a7c virtcontainers: storage: Add a noop version of filesystem
This noop implementation of resourceStorage will allow for easier
unit testing of some sandbox functions.

Fixes #632

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-08-23 16:38:02 -07:00
Sebastien Boeuf
f0e09c887a virtcontainers: kata_agent: Move out a generic function
The specific agent implementation kata_agent was defining a very
useful generic function that is now moved to the global file
network.go.

Fixes #629

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-08-23 16:03:06 -07:00
Sebastien Boeuf
a1787da97c virtcontainers: qemu: Don't shutdown QMP from hotplug
The QMP shutdown is taken care of by the sandbox release, through a
call to hypervisor.disconnect(). By shutting down the QMP at the qemu
level directly, we are creating some unrecoverable errors by trying to
close an already closed channel.

This patch simply removes the faulty code, following the same design
other hotplug functions are designed.

Fixes #627

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-08-23 15:54:02 -07:00
Eric Ernst
3f458187a4
Merge pull request #617 from jodh-intel/add-vc-trace-support
Add virtcontainers trace support
2018-08-23 10:08:22 -07:00
Wei Chen
b4385901da qemu/arm64: Detect host GIC version to configure guest GIC
QEMU supports GICv2, GICv3 and host parameters for guest
gic-version. The "host" parameter will let QEMU detect
GIC version by itself. This parameter will work properly
when host GIC version is GICv2 or GICv3. But the detection
will failed when host GIC is GICv4 or higher:
"Unable to determine GIC version supported by host"

In this case, we have to detect the host GIC version manually
and force QEMU to use GICv3 when host GIC is GICv4 or higher.

Fixes: #614

Signed-off-by: Wei Chen <wei.chen@arm.com>
Signed-off-by: Penny Zheng <penny.zheng@arm.com>
2018-08-23 08:33:14 +00:00
James O. D. Hunt
d0679a6fd1 tracing: Add tracing support to virtcontainers
Add additional `context.Context` parameters and `struct` fields to allow
trace spans to be created by the `virtcontainers` internal functions,
objects and sub-packages.

Note that not every function is traced; we can add more traces as
desired.

Fixes #566.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-08-22 08:24:58 +01:00
James O. D. Hunt
6ddc9b4e8e network: Use correct logger
Use the `networkLogger()`, not the network-specific `cnmLogger()`.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-08-22 08:24:58 +01:00
James O. D. Hunt
90970d94c0 tracing: Add trace spans to virtcontainers APIs
Create spans for all `virtcontainers` API functions.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-08-22 08:24:58 +01:00
James O. D. Hunt
c200b28dc7 tracing: Add context to virtcontainers API
Add a `context.Context` parameter to all the virtcontainers API's to
support tracing.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-08-22 08:24:58 +01:00
James O. D. Hunt
f0073bec2f tracing: Create trace function
Simplify code slightly be creating a `trace()` function.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-08-22 08:24:58 +01:00
James O. D. Hunt
a193366b3d tracing: Add subsystem tag to runtime
Set a tag on the root span to denote the subsystem refers to the
runtime.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-08-22 08:24:58 +01:00
Julio Montes
d6a773c90c
Merge pull request #595 from amshinde/use-main-bus-for-hotplug
vfio: Add configuration to support VFIO hotplug on root bus
2018-08-21 11:09:49 -05:00
Graham Whaley
0c0e17f924
Merge pull request #609 from devimc/topic/vendorAgent
vendor: update kata agent
2018-08-21 11:10:26 +01:00
Julio Montes
8bbd9b5878
Merge pull request #602 from kata-containers/vhu-issue-601
network: fix vhost-user net creation
2018-08-20 14:04:52 -05:00
Archana Shinde
31e2925a9a vfio: Add configuration to support VFIO hotplug on root bus
We need this configuration due to a limitation in seabios
firmware in handling hotplug for PCI devices with large BARS.
Long term, this needs to be fixed in the firmware.

Fixes #594

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-08-20 11:36:21 -07:00
Julio Montes
49690b04ed vendor: update kata agent
Increase dial timeout to fix context deadline exceeded when
using vsocks

Shortlog:
93fe84e protocols: increase dial timeout
730b977 client: bypass grpc dialer backoff strategy
41c09c2 agent: enable memory hierarchical account
4f70b1c channel: remove unused functions
f6486e7 channel: support communication channel hotplug
28afabb release: Kata Containers 1.2.0

fixes #576

Signed-off-by: Julio Montes <julio.montes@intel.com>
2018-08-20 09:18:29 -05:00
zhangwei_cs
d748b26f40
Merge pull request #604 from jcvenegas/remove-not-Num-var
vc: Remove unused variable NumInterfaces
2018-08-20 10:06:30 +08:00
Eric Ernst
ee1ea36d0a network: fix vhost-user net creation
When creating a device structure to be added to the hypervisor, make
sure that the device includes the vhost-user type.  In particular,
for network devices, specificy VhostUserNet.

Fixes: #601

Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-08-17 15:09:34 -07:00
Archana Shinde
70edc56fc1 disk: Pass the --share-rw option for hotplugging disks
With qemu 2.10, a write lock was added for qcow images that
prevents the same image to be passed more than once.
This can be over-ridden using the --share-rw option which is
desired for raw images.

This solves an issue with running Kata with devicemapper
using the privileged mode as in this case all devices on the host
are passed to the container including the block device associated
with the rootfs, causing it to be passed twice to qemu.

Fixes #606

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-08-17 15:08:33 -07:00
Archana Shinde
b9e0ca340d vendor: vendor latest govmm
Includes --share-rw option for hotplugging disks.

govmm Shortlog:

2706a07 qemu: Use the supplied context.Context for launching
e46092e qemu: Do not try and generate invalid RTC parameters
fcaf61d qemu/qmp: add vfio mediated device support
4461c45 disk: Add --share-rw option for hotplugging disks
6851999 qemu/qmp: add addr and bus to hotplug vsock devices

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-08-17 14:31:41 -07:00
Jose Carlos Venegas Munoz
161e3a771b vc: Remove unused variable NumInterfaces
Remove unsed variable, the variable is set just in one place, and
never is used again.

Fixes: #603

Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
2018-08-17 15:53:48 -05:00
Peng Tao
f70d6d2acb
Merge pull request #590 from devimc/topic/kataEnvSupportVSocks
cli: kata-env: show if vsocks are supported
2018-08-17 15:14:49 +08:00
Julio Montes
88d79f3517 cli: kata-env: show if vsocks are supported
Add a new field in `HostInfo` structure to show if vsocks are
supported in the host.

fixes #589

Signed-off-by: Julio Montes <julio.montes@intel.com>
2018-08-16 15:36:36 -05:00
Sebastien Boeuf
26f31071ca
Merge pull request #287 from caoruidong/hotplug
api: add sandbox hotplug network
2018-08-16 08:19:37 -07:00
Peng Tao
b473dc4ac9
Merge pull request #579 from lifupan/master
CI: bump the CI travis's go to 1.10
2018-08-16 22:51:59 +08:00
Ruidong Cao
7beb309faf test: add UTs for network hotplug
add UTs for network hotplug related fuctions

Fixes #113

Signed-off-by: Ruidong Cao <caoruidong@huawei.com>
2018-08-16 21:31:20 +08:00
Ruidong Cao
72df219306 cli: add network commands
Add update and list commands for notwork hotplug

Signed-off-by: Ruidong Cao <caoruidong@huawei.com>
2018-08-16 16:10:29 +08:00
Ruidong Cao
1a17200cc8 virtcontainers: add sandbox hotplug network API
Add sandbox hotplug network API to meet design

Signed-off-by: Ruidong Cao <caoruidong@huawei.com>
2018-08-16 16:10:10 +08:00
Ruidong
6666426739 vendor: update govmm and agent changes
To support tap network hotplug. Implement netdev_add, netdev_del and corresponding device_add QMP commands.
Full list in govmm:
    10efa84 qemu/qmp: add function for hotplug network by fds
    80ed88e qemu/qmp: implement function to hotplug serial ports
    ca46f21 qemu/qmp: implement function to hotplug character devices
    03f1a1c qemu/qmp: implement getfd
    84b212f qemu: add vhostfd and disable-modern to vsock hotplug
    12dfa87 qemu/qmp: implement function for hotplug network
    4ca232e qmp_test: Fix Warning and Error level logs
    430e72c qemu,qmp: Enable gas security checker
    ffc06e6 qemu,qmp: Add staticcheck to travis and fix errors

Add agent ListInterfaces and ListRoutes APIs.
Full list in agent:
    7c287c6 agent: add ListInterfaces and ListRoutes rpc

Signed-off-by: Ruidong Cao <caoruidong@huawei.com>
2018-08-16 16:06:16 +08:00
Archana Shinde
3424444be3
Merge pull request #578 from grahamwhaley/20180813_env_runtime_path
cli: kata-env: add runtime path to output
2018-08-15 10:13:21 -07:00
James O. D. Hunt
cd514b69fd
Merge pull request #568 from amshinde/remove-unused-cni-code
Remove unused cni code
2018-08-15 16:36:48 +01:00
zhangwei_cs
e0c179d954
Merge pull request #550 from WeiZhang555/add-device-before-container-create
devices: add interface "sandbox.AddDevice"
2018-08-15 17:56:51 +08:00
fupan
4850579da3 CI: bump the CI travis's go to 1.10
Bump the CI travis's go to 1.10.x to meet
the building kata shim v2 for containerd.

Fixes: #575

Signed-off-by: fupan <lifupan@gmail.com>
2018-08-15 17:28:13 +08:00
Wei Zhang
6e6be98b15 devices: add interface "sandbox.AddDevice"
Fixes #50 .

Add new interface sandbox.AddDevice, then for Frakti use case, a device
can be attached to sandbox before container is created.

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2018-08-15 15:24:12 +08:00
Archana Shinde
474111c1af tests: Add a cleanup for the CNM tests
The CNM test was missing a cleanup which was handled earlier
with the CNI tests.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-08-14 22:56:50 -07:00
Archana Shinde
0d7b476923 network: Remove unused cni vendored code
Most of the libcni code can now be removed.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-08-14 22:56:50 -07:00
Archana Shinde
99fa758423 network: Remove unused CNI code
We dont really call CNI from Kata, this is done by the CRI layer.
All of the CNI code is unused.

Fixes #567

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2018-08-14 22:56:50 -07:00
Sebastien Boeuf
83008d4959
Merge pull request #583 from amshinde/update-qemu-commit
versions: Update the commit for qemu-lite
2018-08-14 22:32:50 -07:00