Commit Graph

706 Commits

Author SHA1 Message Date
Stefan Hajnoczi
9480978364 qemu: add vhost-user-fs-pci device instead of 9p
When enable_virtio_fs is true, add a vhost-user-fs-pci for the
kataShared volume instead of 9p.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-05-05 11:32:34 -06:00
Stefan Hajnoczi
d690dff164 config: add virtio_fs_daemon string
Add a config option for the virtio-fs vhost-user daemon path.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-05-01 10:55:31 -04:00
Stefan Hajnoczi
9e87fa21cf config: add shared_fs option
Add a config option to select between virtio-9p and virtiofs.  This
option currently has no effect and will be used in a later patch.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2019-05-01 10:55:31 -04:00
Julio Montes
582f20f489 virtcontainers: Use shim to print the agent logs if there is no proxy
The proxy is in charge to print the agent logs, but when `use_vsocks` is true
the runtime doesn't start the proxy, because it's not needed, hence the agent
logs are ignored. To mitigate this limitation and to make the debugging
processes easier, the fist shim started (the one who monitors the sandbox)
will read the console.sock and print the agent logs.

Depends-on: github.com/kata-containers/shim#172

fixes #1596

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-04-26 13:15:44 -05:00
Archana Shinde
b5aa8d4f67 Merge pull request #1577 from chavafg/topic/revert-mount-pr
Revert "vc: change container rootfs to be a mount"
2019-04-25 09:41:15 -07:00
James O. D. Hunt
ed64240df2 agent: Support Kata agent tracing
Add configuration options to support the various Kata agent tracing
modes and types. See the comments in the built configuration files for
details:

- `cli/config/configuration-fc.toml`
- `cli/config/configuration-qemu.toml`

Fixes #1369.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-04-25 09:41:13 +01:00
James O. D. Hunt
b573d9bcb9 vendor: Update for agent tracing and fix issues
Updated the agent vendoring for `StartTracing` and `StopTracing`. This
only changed a single file - the auto-generated gRPC protocol
buffer file.

This change resolves four vendoring issues:

- The github.com/kubernetes-incubator/cri-o project was renamed to
  github.com/cri-o/cri-o. Although github redirects, `dep` complains that
  it cannot find the old `github.com/kubernetes-incubator/cri-o` files
  under `vendor/` so remove the old config, relying on the existing (and
  in other respects identical) `dep` config.

- There was a stale dependency on `github.com/clearcontainers/proxy`
  which should have been removed when the Clear Containers code was
  excised.

- The latest version of the agent code vendored into the runtime prior
  to this commit was a merge commit (commit
  `48dd1c031530fce9bf16b0f6a7305979cedd8fc9`). This somehow confused `dep`
  which did *not* correctly pull in the latest version of the
  auto-generated gRPC code
  (`vendor/github.com/kata-containers/agent/protocols/grpc/agent.pb.go`).
  This is clear because commit `48dd1c031530fce9bf16b0f6a7305979cedd8fc9`
  is newer than the agent commit that introduced the `StartTracing` and
  `StopTracing` APIs (`00cf907afcb7c8e56f077cf45ae3615f612fdc9d`).

  Resolving the other two issues above seems to have resolved this issue
  as the correct version of this file has now been included in the
  vendoring, however note there is no change to the `dep` files as this
  version of `agent.pb.go` should already have been included (!)

- Updating `agent.pb.go` also removed the `AddInterface` and
  `RemoveInterface` API calls which should again also have been removed
  already.

  Updated tests to remove these redundant calls.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-04-25 09:40:02 +01:00
James O. D. Hunt
b309dc5480 agent: Provide explicit config options for the agent
Previously, the agent behaviour was controlled entirely using the
`kernel_params=` config option. This mechanism suffers from a subtle
problem - the runtime is not aware of how the agent will behave.

From now on, all significant agent options will be controlled from the
agent section in the configuration file. This allows the runtime to be
more aware of -- and in control of -- such agent settings. It would also
allow the underlying kernel CLI options to be modified in the future if
required.

This PR adds the only useful agent option as an explicit option by
adding an `enable_debug=true` option to the Kata agent section in
`configuration.toml`. This allows controlling agent debug to be handled
in the same manner as the other debug options.

This change is somewhat foundational: it permits the agent to be handled
consistently with other config file sections which is useful, but
arguably not essential (the old way worked). However, the new way of
handling agent options will be essential when introducing agent tracing
control as the runtime must be aware of the agent trace mode to allow
the runtime to modify its behaviour accordingly.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-04-24 17:14:01 +01:00
James O. D. Hunt
ed248cef3b shim: Removed unused type and correct error message
Removed the unused `KataShimConfig` type and updated an error message
that incorrectly mentioned it.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-04-24 17:14:01 +01:00
James O. D. Hunt
97beb2b2d4 errors: Create a new standard error for invalid config
Refactor a common error into a new standard error object.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-04-24 17:14:01 +01:00
James O. D. Hunt
e803a7f870 agent: Return an error, not just an interface
Make `newAgentConfig()` return an explicit error rather than handling
the error scenario by simply returning the `error` object in the
`interface{}` return type. The old behaviour was confusing and
inconsistent with the other functions creating a new config type (shim,
proxy, etc).

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-04-24 17:14:01 +01:00
Julio Montes
63e1c440a1 Merge pull request #1393 from zhabinecho/noarp-feature
network: pass network interface RawFlags to agent
2019-04-23 12:14:49 -05:00
Salvador Fuentes
bc9b9e2af6 vc: Revert "vc: change container rootfs to be a mount"
This reverts commit 196661bc0d.

Reverting because cri-o with devicemapper started
to fail after this commit was merged.

Fixes: #1574.

Signed-off-by: Salvador Fuentes <salvador.fuentes@intel.com>
2019-04-23 08:56:36 -05:00
Hui Zhu
0c5cfcd302 Merge pull request #1565 from jodh-intel/fix-markdown
Fix markdown
2019-04-23 12:52:09 +08:00
Zha Bin
dd0808ae54 network: pass network interface RawFlags to agent
In order to support NOARP in ipvlan interface, the runtime
will pass the rawflags to agent, which also apply to other
network interfaces, not just ipvlan.

Fixes: #1391

Signed-off-by: Zha Bin <zhabin@linux.alibaba.com>
2019-04-23 09:42:00 +08:00
Peng Tao
196661bc0d vc: change container rootfs to be a mount
We can use the same data structure to describe both of them.
So that we can handle them similarly.

Fixes: #1566

Signed-off-by: Peng Tao <bergwolf@hyper.sh>
2019-04-20 00:42:25 -07:00
Xu Wang
b218229589 Merge pull request #883 from WeiZhang555/rfc-persist-data-standard-wip
persist: baseline persist data format
2019-04-20 11:54:48 +08:00
Wei Zhang
989b3737c7 docs: fix lisence header to 2019
Modify lisense header from 2018 to 2019.

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-20 10:04:30 +08:00
Fupan Li
fe6ff5c042 Merge pull request #1550 from teawater/template_path
factory: Add new factory option template_path
2019-04-19 17:20:47 +08:00
Wei Zhang
3262da0207 bugfix: fix potential panic
* Fix potential panic by nil pointer.
* Address comments.

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 16:03:50 +08:00
Wei Zhang
9bd4e5008c store: address comments
Address review comments

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 15:38:10 +08:00
Wei Zhang
0f52c8b56d test: add unit test for new FS storage driver
add more unit tests.

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 15:37:33 +08:00
Wei Zhang
02f21228dd test: fix unit test
For experimental features, state.json won't be updated, so modify some
unit test to skip.

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 15:37:33 +08:00
Wei Zhang
e40dcb9376 storage: set new storage driver as "experimental"
Set new persist storage driver "virtcontainers/persist/" as "experimental"
feature.
One day when this can fully work and we're ready to move to 2.0, we'll move
it from "experimental" feature to formal feature.
At that time, the "virtcontainers/filesystem_resource_storage.go" can be removed
completely.

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 15:35:33 +08:00
Wei Zhang
504c706bea storage: address comments
Address some comments:
* fix persist driver func names for better understanding
* modify some logic, add some returned error etc

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 15:33:53 +08:00
Wei Zhang
6e4149d86c persist: save and restore state from persist.json
Save and restore state from persist.json instead of state.json

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 15:33:53 +08:00
Wei Zhang
039ed4eeb8 persist: persist device data
Persist device information to relative file

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 15:33:53 +08:00
Wei Zhang
b42fde69c0 persist: demo code for persist api
Demonstrate how to make use of `virtcontainer/persist/api` data structure
package.

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 15:33:53 +08:00
Wei Zhang
e14ffb40cf persist: baseline persist data format
Fixes #803

The disk persist data should be "versioned" and baselined, any modification in
persist data should be considered potential break of backward compatibility.

Signed-off-by: Wei Zhang <zhangwei555@huawei.com>
2019-04-19 15:33:53 +08:00
Hui Zhu
925193fb3e Merge pull request #1563 from bergwolf/blockIndex
vc: remove BlockIndex from container state
2019-04-19 13:54:08 +08:00
Hui Zhu
0549a70d93 factory: Add new factory option template_path
Add new factory option template_path that specifies the path of template.

Fixes: #1549

Signed-off-by: Hui Zhu <teawater@hyper.sh>
2019-04-19 11:31:18 +08:00
James O. D. Hunt
82d105f759 doc: Fix markdown
Resolve a number of syntax issues that were lurking in the markdown.

Fixes: #1564.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2019-04-18 15:50:34 +01:00
Peng Tao
203728676a vc: remove BlockIndex from container state
No longer used.

Fixes: #1562

Signed-off-by: Peng Tao <bergwolf@hyper.sh>
2019-04-17 22:39:42 -07:00
Hui Zhu
76a5076e56 template: Add check if vm template is on before vm template initialize
Add check if vm template is on before vm template initialize.

Fixes: #1514

Signed-off-by: Hui Zhu <teawater@hyper.sh>
2019-04-18 10:53:08 +08:00
Alice Frosi
a013f9b27b s390x: fix gofmt complain
Fix gofmt complain for virtcontainers/qemu_s390x.go

Fixes: #1553

Signed-off-by: Alice Frosi <afrosi@de.ibm.com>
2019-04-17 14:10:09 +02:00
Fupan Li
5d875be274 Merge pull request #1409 from teawater/vmcache_templating
factory: Make VMCache and VM templating can work together
2019-04-16 23:56:08 +08:00
Peng Tao
168665b9a7 Merge pull request #1439 from YongjiXie/pass-correct-mount-type-for-ephemeral-volumes
agent: pass correct mount type to agent for ephemeral volumes
2019-04-16 15:36:14 +08:00
Archana Shinde
385268226f network: Change the package level network default
Change the package level default network model to tcfilter.

Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
2019-04-15 09:34:58 -07:00
Fupan Li
2b45f0b2fd Merge pull request #1528 from bergwolf/grpc
shimv2 should return grpc error codes
2019-04-15 09:50:10 +08:00
Hui Zhu
343a0d35fe factory: Make VMCache and VM templating can work together
Make VMCache and VM templating can work together.

Fixes: #1376

Signed-off-by: Hui Zhu <teawater@hyper.sh>
2019-04-13 21:07:39 +08:00
zhangwei_cs
fae022dc64 Merge pull request #1428 from gabibeyer/slashNburn
Deprecate hyperstart, CC shim, and CC proxy
2019-04-13 11:06:23 +08:00
Hui Zhu
6e5957830e Merge pull request #1530 from devimc/topic/virtcontainers/inheritParentCpuCgroup
virtcontainers: inherit parent's CPU constraint
2019-04-13 08:36:26 +08:00
Gabi Beyer
b08ab6ae1f vc: modify ioctl function to handle shim test
The kata shim tests make use of an ioctl function, so instead
of having a custom one within that file, use the ioctl
function in utils/utils_linux

Fixes #1419

Signed-off-by: Gabi Beyer <Gabrielle.n.beyer@intel.com>
2019-04-12 10:48:08 -07:00
Gabi Beyer
c42507903d vc: Deprecate CC proxy and shim
Clear Containers proxy and shim are no longer supported. This
was mentioned in issue #1113. Their functionalities are thus
removed from the runtime.

Fixes #1419

Signed-off-by: Gabi Beyer <gabrielle.n.beyer@intel.com>
2019-04-12 10:48:08 -07:00
Gabi Beyer
c658770891 vc: remove virtc api cli
previously used as a small api client for virtcontainers, virtc
no longer needed.

Fixes #1419

Signed-off-by: Gabi Beyer <gabrielle.n.beyer@intel.com>
2019-04-12 10:48:08 -07:00
Gabi Beyer
d4ef9c05d7 vc: deprecate hyperstart agent
The hyperstart agent has not been supported in kata since 2.1,
so remove it as a component to kata. Mentioned in issue #1113.

Fixes: #1419

Signed-off-by: Gabi Beyer <gabrielle.n.beyer@intel.com>
2019-04-12 10:48:06 -07:00
Julio Montes
d5a759e1cf Merge pull request #1526 from bergwolf/ut-non-root
fix ut failure due to incorrect cleanup and make it runnable with non-root
2019-04-12 12:44:33 -05:00
Archana Shinde
9b622b7e77 Merge pull request #1485 from awprice/k8s-empty-dir-local
storage: create k8s emptyDir inside VM
2019-04-12 08:29:18 -07:00
Julio Montes
59e3956397 virtcontainers: inherit parent's CPU constraint
Don't set a default CPU constraint if period and quota are not specified, that
way the container will inherit the CPU constraint from its parent. Container
creation won't fail if the parent CPU constraint is smaller than the default
number of vCPUs.

fixes #1521

Signed-off-by: Julio Montes <julio.montes@intel.com>
2019-04-12 08:59:25 -05:00
Julio Montes
d99693a564 Merge pull request #1518 from lifupan/fixtop
virtcontainers: prepend a kata specific string to host cgroups path
2019-04-12 08:58:38 -05:00