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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
The commit for qemu needs to be updated to the tip
of the qemu-lite-2.11.0 branch. The qemu packages for
1.12.0 also contain the latest commit.
Fixes#582
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
`kata-env` did not include the path to the runtime exe itself.
Add that into the Runtime section.
Fixes: #577
Signed-off-by: Graham Whaley <graham.whaley@intel.com>
Add initial support for opentracing by using the `jaeger` package.
Since opentracing uses the `context` package, add a `context.Context`
as the first parameter to all the functions that we might want to
trace. Trace "spans" (trace points) are then added by extracting the
trace details from the specified context parameter.
Notes:
- Although the tracer is created in `main()`, the "root span"
(aka the first trace point) is not added until `beforeSubcommands()`.
This is by design and is a compromise: by delaying the creation of the
root span, the spans become much more readable since using the web-based
JaegerUI, you will see traces like this:
```
kata-runtime: kata-runtime create
------------ -------------------
^ ^
| |
Trace name First span name
(which clearly shows the CLI command that was run)
```
Creating the span earlier means it is necessary to expand 'n' spans in
the UI before you get to see the name of the CLI command that was run.
In adding support, this became very tedious, hence my design decision to
defer the creation of the root span until after signal handling has been
setup and after CLI options have been parsed, but still very early in
the code path.
- At this stage, the tracing stops at the `virtcontainers` call
boundary.
- Tracing is "always on" as there doesn't appear to be a way to toggle
it. However, its resolves to a "nop" unless the tracer can talk to a
jaeger agent.
Note that this commit required a bit of rework to `beforeSubcommands()`
to reduce the cyclomatic complexity.
Fixes#557.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
Created two new helper functions to create a `cli.Context` with and without a
`cli.App`.
Calling these functions simplifies a lot of test code.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
When starting a kata container, if both initrd and rootfs
are provided in the configuration file then the error message
presented is "cannot specify an image and an initrd in
configuration file" which might be a bit confusing. This
fix makes the error message more explicit.
Fixes: #563
Signed-off-by: Nitesh Konkar niteshkonkar@in.ibm.com
NOP update that simply updates the file format of the `dep` `Gopkg.lock`
file to the latest format.
Note: `dep ensure` run using `dep` at commit
6b79ccc405.
Fixes#573.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
Instead of continuing with the network setup, we should detect
if host network namespace was requested and error out early.
Fixes#499
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>