When a container is updated, those modifications are stored, to
avoid race conditions with other operations, a RW lock should be used.
fixes#346
Signed-off-by: Julio Montes <julio.montes@intel.com>
Since the vendoring included changes introducing PauseContainer
and ResumeContainer changes, fix the tests to satisfy the grpc api.
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
k8s provides a configuration for sharing PID namespace
among containers. In case of crio and cri plugin, an infra
container is started first. All following containers are
supposed to share the pid namespace of this container.
In case a non-empty pid namespace path is provided for a container,
we check for the above condition while creating a container
and pass this out to the kata agent in the CreatContainer
request as SandboxPidNs flag. We clear out the PID namespaces
in the configuration passed to the kata agent.
Fixes#343
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
This includes the addition of "SandboxPidNs" in the
CreateContainerRequest api.
Shortlog:
a30395a grpc: signal frozen containers
08674c0 agent: Add support for ephemeral volumes
c517125 ci: Refactor to pass metalinter checks
ad9c33d tests: Modify tests to take into account if pid ns needs to be
shared
e334596 namespace: Share pid namespace of containers
1e72fbb agent: Get cgroup mounts info from /proc/cgroups
ab6c4ff namespaces: Create persistent UTS and IPC namespaces
be3993e release: Kata Containers 1.0.0
75c6fc0 grpc: implement pause and resume commands
9da1fea release: Kata Containers 0.3.0
4bad43e grpc: honour CPU constraints in Kubernetes
11d5c56 grpc: log errors in async commands
7b47559 channel: Support Epoll on Arm64
a7033a7 release: update version to 0.2.0
5c3c000 signal: Backtrace on SIGUSR1
a0880aa signal: Switch to standard signal handling
f8081ca main: Improve logging in signal handling loop
075ad56 main: Rename signal functions for clarity
899bc6d main: Log errors on failure
6689db0 agent: Fix typo
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
Since the runtime can load its configuration from multiple locations,
add a log field to show which location was used.
Change log level from Debug to Info as this is generally useful
information.
Fixes#335.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
Still there are some codes left which
will cause some misunderstanding
Change `p` in short of `pod` into `s` or `sandbox`
Fixes: #325
Signed-off-by: Haomin <caihaomin@huawei.com>
Add brief entries to the README for the following:
- Limitations
- Contact details
- Further information
Fixes#322.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
If you build and install the runtime, the config file will contain an
entry for both an `initrd=` and an `image=` entry.
The Developer Guide explains that the user must disable one but it is
easy to forget.
Modified the runtime to fail if both an image and an initrd are
specified. Also added a new test for this scenario.
Fixes#318.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
Events cli display container events such as cpu,
memory, and IO usage statistics.
By now OOM notifications and intel RDT are not fully supproted.
Fixes: #186
Signed-off-by: Haomin <caihaomin@huawei.com>
Added links to the installation guides, as well as a
pointer to the kata containers architecutre document.
Fixes: #315
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
Update the runtime to use qemu-lite by default. After a
build this will be observed as the default in configuration.toml
Fixes: #293
Depends-on: github.com/kata-containers/tests#308
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
Kernel data is not used in CI or packagin.
Add more information to be useful for automation.
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Remove the agent version from the output of `kata-env`. The value was
always a static string (`<<unknown>>`) because the runtime cannot
determine the agent version without creating a container.
Note that agent details, including the version, *are* displayed when
the user runs `kata-collect-data.sh`.
Fixes#310.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
Don't fail if a new container with a CPU constraint was added to
a POD and no more vCPUs are available, instead apply the constraint
and let kernel balance the resources.
Signed-off-by: Julio Montes <julio.montes@intel.com>
There is a relation between the maximum number of vCPUs and the
memory footprint, if QEMU maxcpus option and kernel nr_cpus
cmdline argument are big, then memory footprint is big, this
issue only occurs if CPU hotplug support is enabled in the kernel,
might be because of kernel needs to allocate resources to watch all
sockets waiting for a CPU to be connected (ACPI event).
For example
```
+---------------+-------------------------+
| | Memory Footprint (KB) |
+---------------+-------------------------+
| NR_CPUS=240 | 186501 |
+---------------+-------------------------+
| NR_CPUS=8 | 110684 |
+---------------+-------------------------+
```
In order to do not affect CPU hotplug and allow to users to have containers
with the same number of physical CPUs, this patch tries to mitigate the
big memory footprint by using the actual number of physical CPUs as the
maximum number of vCPUs for each container if `default_maxvcpus` is <= 0 in
the runtime configuration file, otherwise `default_maxvcpus` is used as the
maximum number of vCPUs.
Before this patch a container with 256MB of RAM
```
total used free shared buff/cache available
Mem: 195M 40M 113M 26M 41M 112M
Swap: 0B 0B 0B
```
With this patch
```
total used free shared buff/cache available
Mem: 236M 11M 188M 26M 36M 186M
Swap: 0B 0B 0B
```
fixes#295
Signed-off-by: Julio Montes <julio.montes@intel.com>
Our tests CI is dependent on `gometalinter` which are run by the static
checks script. However, `gometalinter` changes a lot
and when it does, it breaks (what were) valid PRs.
Add `gometalinter` to the versions database so we can pin the version
we use to a known good one.
Fixes#304.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
This new version of kata-agent brings support for
stats of a certain container
Short logs:
077e6f9 grpc : Add the StatsContainer api for `events cli`
d29bf53 block: Get rid of device prediction for Storage as well
3b565ad block: Use PCI address to determine block device name
Signed-off-by: Haomin <caihaomin@huawei.com>
Since we want to test under kubernetes 1.10 and we also
want to supoort latest version of Openshift, which is v3.9.0,
we need to test with with different versions of CRI-O.
K8s 1.10 should use cri-o 1.10, while openshift v3.9.0
should use v1.9
Depends-on: github.com/kata-containers/tests#277
Signed-off-by: Salvador Fuentes <salvador.fuentes@intel.com>
Reduce the virtcontainers prefix path to avoid hitting the 107 byte
Unix domain socket path limit.
Related #268.
Fixes#290.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
A Unix domain socket is limited to 107 usable bytes on Linux. However,
not all code creating socket paths was checking for this limits.
Created a new `utils.BuildSocketPath()` function (with tests) to
encapsulate the logic and updated all code creating sockets to use it.
Fixes#268.
Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
An empty string for an environment variable simply means that the
variable is unset. Do not error out if the env value is empty.
Fixes#288
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
This new version of kata-agent brings support for
updating resources and cpuset cgroups
Shortlog:
28cf91a grpc: implement update command
d96b8e1 grpc: update cpuset cgroup
4bcacdc network: Don't remove network routes or DNS when destroying sandbox
1f5cf20 network: Don't store the network info as pointers if slices used
8f828bb uevent: Fix netlink error while assigning pid in netlink client
093f61b agent: add grpc tracer UT
33bd601 agent: add server interceptor to log grpc requests
134d5d5 test: add start/stop grpc server UT
7e94246 agent: track grpc server
9fb8024 UT: add tests for channel
bea6183 agent: wait serial channel to be ready before reading
f8c8c4c agent: accept grpc connections multiple times
Signed-off-by: Julio Montes <julio.montes@intel.com>