Commit Graph

963 Commits

Author SHA1 Message Date
James O. D. Hunt
ed6f7eb56a
Merge pull request #938 from jodh-intel/trace-shim
shim: Add trace config option
2018-12-06 11:03:44 +00:00
Alice Frosi
deb6f16d82 virtcontainers: update context id of vsock to uint64
The CID of VSock needs to be change to uint64. Otherwise that leads to
an endianess issue. For more details see
https://github.com/kata-containers/runtime/issues/947

Remove the uint64 introduced by #984

Fixes: #958

Signed-off-by: Alice Frosi <afrosi@de.ibm.com>
2018-12-06 10:13:30 +00:00
Hui Zhu
f6511471d4 block: Add cache-related options for block devices
Add block_device_cache_set, block_device_cache_direct and
block_device_cache_noflush.
They are cache-related options for block devices that are described in
https://github.com/qemu/qemu/blob/master/qapi/block-core.json.
block_device_cache_direct denotes whether use of O_DIRECT (bypass the host
page cache) is enabled.  block_device_cache_noflush denotes whether flush
requests for the device are ignored.
The json said they are supported since 2.9.
So add block_device_cache_set to control the cache options set to block
devices or not.  It will help to support the old version qemu.

Fixes: #956

Signed-off-by: Hui Zhu <teawater@hyper.sh>
2018-12-06 18:07:44 +08:00
James O. D. Hunt
9dee04a314
Merge pull request #984 from sboeuf/vendor_govmm
vendor: Update govmm vendoring
2018-12-06 09:55:25 +00:00
Sebastien Boeuf
018c8c1468 vendor: Update govmm vendoring
Shortlog:

f9b31c0 qemu: Allow disable-modern option from QMP
d617307 Run tests for the s390x build
b36b5a8 Contributors: Add Clare Chen to CONTRIBUTORS.md
b41939c Contributors: Add my name
dab4cf1 qmp: Add tests
5ea6da1 Verify govmm builds on s390x
ee75813 contributors: add my name
c80fc3b qemu: Add s390x support
ca477a1 Update source file headers
e68e005 Update the CONTRIBUTING.md
2b7db54 Add the CONTRIBUTORS.md file
b3b765c qemu: test Valid for Vsock for Context ID
3becff5 qemu: change of ContextID from uint32 to uint64
f30fd13 qmp: Output error detail when execute QMP command failed
7da6a4c qmp: fix mem-path properties for hotplug memory.
e4892e3 qemu/qmp: preparation for s390x support
110d2fa qemu/qmp: add new function ExecuteBlockdevAddWithCache
a0b0c86 qmp_test: Change QMP version from 2.6 to 2.9
10c36a1 qemu: add support for pidfile option

Fixes #983

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-12-06 00:13:15 -08:00
James O. D. Hunt
ea74b981d9 shim: Add trace config option
Add a new `enable_tracing` option to `configuration.toml` to enable
shim tracing.

Fixes #934.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-12-05 15:20:13 +00:00
Hui Zhu
7d0be360bd versions: refactor configuration of qemu in version.yaml
Include info such as commit number,tag number, etc for building
nvdimm-supported qemu on aarch64 from source code.

Fixes: #974

Signed-off-by: Hui Zhu <teawater@hyper.sh>
2018-12-05 10:27:43 +08:00
Salvador Fuentes
2af240bd18 versions: Add nemu
Since Kata Containers work with NEMU, add an entry
of the supported nemu version and its OVMF firmware.

Fixes: #970.

Signed-off-by: Salvador Fuentes <salvador.fuentes@intel.com>
2018-12-03 11:13:12 -06:00
Graham Whaley
0a7a4379dc
Merge pull request #967 from jodh-intel/add-containerd-shim-to-git-ignore
git: Add containerd-shim-kata-v2 to .gitignore
2018-12-03 09:28:48 +00:00
James O. D. Hunt
7093eec9c4 git: Add containerd-shim-kata-v2 to .gitignore
Hide the `containerd-shim-kata-v2` binary from `git status`.

Fixes: #966.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-12-03 08:57:46 +00:00
James O. D. Hunt
96ed6c59ee git: Sort .gitignore entries
Sort the contents of `.gitignore` into two groups: globs and actual
paths. This is more intuitive than a purely sorted list.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-12-03 08:56:21 +00:00
Frank Cao
6edb3618f6
Merge pull request #952 from alicefr/utils_linux_fix
virtcontainers: change uint32 to uint64 for ioctl
2018-11-30 09:56:39 +08:00
James O. D. Hunt
58575231bd
Merge pull request #950 from sboeuf/sboeuf/fix_docker_18_09
virtcontainers: Return the appropriate container status
2018-11-29 17:11:36 +00:00
Alice Frosi
04ce4c05df virtcontainers: change uint32 to uint64 for ioctl
The PR changes the parameter args from uint32 to uint64 for ioctl function.
That leads to an endianess bug.

Fixes: #947

Signed-off-by: Alice Frosi <afrosi@de.ibm.com>
2018-11-29 14:51:06 +00:00
James O. D. Hunt
fa19fd0c15
Merge pull request #949 from jodh-intel/check-factory-config
config: Check factory config
2018-11-29 10:46:51 +00:00
James O. D. Hunt
0bf29c8207 config: Check factory config
If VM factory templating is enabled (`enable_template=true`), error if
the configured image is not an `initrd=` one.

Also add a note to the config file explaining that a normal image cannot
be used - only initrd images are supported.

Fixes #948.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-11-29 08:33:15 +00:00
James O. D. Hunt
fe784c1e36 config: Create function to check config options
Moved the checking routines in `LoadConfiguration()` to a new
`checkConfig()` function for clarity.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-11-29 08:28:14 +00:00
James O. D. Hunt
70e4dc550a config: Move check code to end of LoadConfiguration
Move the VSOCK handling code higher up so that all the checking code is
gathered together at the end of `LoadConfiguration()`.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-11-29 08:19:33 +00:00
Sebastien Boeuf
fa9b15dafe virtcontainers: Return the appropriate container status
When our runtime is asked for the container status, we also handle
the scenario where the container is stopped if the shim process for
that container on the host has terminated.

In the current implementation, we retrieve the container status
before stopping the container, causing a wrong status to be returned.
The wait for the original go-routine's completion was done in a defer
within the caller of statusContainers(), resulting in the
statusContainer()'s values to return the pre-stopped value.

This bug is first observed when updating to docker v18.09/containerd
v1.2.0. With the current implementation, containerd-shim receives the
TaskExit when it detects kata-shim is terminating. When checking the
container state, however, it does not get the expected "stopped" value.

The following commit resolves the described issue by simplifying the
locking used around the status container calls. Originally
StatusContainer would request a read lock. If we needed to update the
container status in statusContainer, we'd start a go-routine which
would request a read-write lock, waiting for the original read lock to
be released.  Can't imagine a bug could linger in this logic. We now
just request a read-write lock in the caller (StatusContainer),
skipping the need for a separate go-routine and defer. This greatly
simplifies the logic, and removes the original bug.

Fixes #926

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
2018-11-28 20:10:34 -08:00
Sebastien Boeuf
e06c8aafdc
Merge pull request #572 from hyperhq/shimv2
Implement containerd shim v2 API for Kata Containers
2018-11-28 16:37:10 +00:00
James O. D. Hunt
c2eea35b18
Merge pull request #865 from nitkon/kata-env
ppc64le: kata-env fails due to missing vendor field
2018-11-28 09:22:47 +00:00
fupan
02f8b29837 containerd-shim-kata-v2: add building of shimv2 into Makefile
Add the Makefile target of building shimv2.

Fixes: #485

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
8199d10742 containerd-shim-kata: add unit test cases
Add unit test cases.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
ZeroMagic
7951041eb0 containerd-shim-kata-v2: add the service Stats support
Add the Stats api support to get the container's
resouces statistic.

Signed-off-by: ZeroMagic <anthonyliu@zju.edu.cn>
2018-11-28 14:32:25 +08:00
ZeroMagic
5cc016c8a2 containerd-shim-kata-v2: add the service Kill support
Add the Kill api support to send signal to a given
container process.

Signed-off-by: ZeroMagic <anthonyliu@zju.edu.cn>
Signed-off-by: fupan.li <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
ZeroMagic
9ee53be986 containerd-shim-kata-v2: add the service Resume support
Add the Resume api support to resume a paused container.

Signed-off-by: ZeroMagic <anthonyliu@zju.edu.cn>
2018-11-28 14:32:25 +08:00
ZeroMagic
8df33d34e8 containerd-shim-kata-v2: add the service Pause support
Add the Pause api support to pause a container running
in the pod.

Signed-off-by: ZeroMagic <anthonyliu@zju.edu.cn>
2018-11-28 14:32:25 +08:00
ZeroMagic
cd321a3e6e containerd-shim-kata-v2: add the service ResizePty support
Add the ResizePty api support to resize the console.

Signed-off-by: ZeroMagic <anthonyliu@zju.edu.cn>
2018-11-28 14:32:25 +08:00
fupan
47326f566c containerd-shim-kata-v2: add the service Update support
Add the Update api support to update a running
process's resouce.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
642231ba25 containerd-shim-kata-v2: add the service Shutdown support
Add the Shutdown api support to shutdown the shim.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
87f591a697 containerd-shim-kata-v2: add the service Connect support
Add the Connect api to get the shim's info.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
ec4f27b4c6 containerd-shim-kata-v2: add the service CloseIO support
Add the CloseIO api support to close a process's
input stream.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
8c95b7569d containerd-shim-kata-v2: add the service Pids support
Add the Pids api support to get the processes
pids running in the pod.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
709bc9aa12 containerd-shim-kata-v2: add the service Cleanup support
Add the Cleanup api support to cleanup the pod and
containers running in it when the pod's corresponding
shim died.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
a0e6456455 containerd-shim-kata-v2: add the service Delete support
Add the Delete api support to delete a stopped
container or pod.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
fd18b2289d containerd-shim-kata-v2: add the service State support
Add the State api support to get a container
or exec process's states.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
fbaefc9af1 containerd-shim-kata-v2: add the service wait support
Add the Wait api to wait on a started container
or exec process.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
269c940edc containerd-shim-kata-v2: add the exec service support
Add the Exec api support for exec an process in
a running container.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:25 +08:00
fupan
4c5b29647b containerd-shim-kata-v2: add the start service support
Add the Start api support of start a pod or
container created before.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:32:03 +08:00
fupan
72fd6e0c7d containerd-shim-kata-v2: add the create service support
Add the "Create" api support for creating a pod
or container.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-28 14:29:35 +08:00
Nitesh Konkar
ca58bb4ca1 ppc64le: kata-env fails due to missing vendor field
There is no vendor field in /proc/cpuinfo contents
on ppc64le. Make sure to return "" for vendor field
for ppc64le and fix all the corresponding testcases
as well.

Fixes: #864

Signed-off-by: Nitesh Konkar niteshkonkar@in.ibm.com
2018-11-27 15:26:33 +05:30
fupan
d6c4ca5fe5 container-shim-kata-v2: The init containerd shim v2 support
This patch is the init codes of the shimv2 for
containerd.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-27 17:17:43 +08:00
fupan
5e6cd0090f containerd-shim-v2: add the shim v2 required vendors
Add the vendors required by containerd shim v2.

Signed-off-by: fupan <lifupan@gmail.com>
2018-11-27 17:17:43 +08:00
fupan
f0cb0c7ef7 cli: refactor to align with katautils package
refactor the cli codes which can be shared with shimv2.

Signed-off-by: fupan <lifupan@gmail.com>
Signed-off-by: Eric Ernst <eric.ernst@intel.com>
2018-11-27 17:17:31 +08:00
James O. D. Hunt
2931f8db08
Merge pull request #819 from bergwolf/nested
kata-check: do not require nested vt
2018-11-27 08:16:29 +00:00
Frank Cao
c55e73da24
Merge pull request #937 from jodh-intel/kata-env-show-tracing
kata-env: Show runtime trace setting
2018-11-27 10:51:36 +08:00
James O. D. Hunt
9984636f5a kata-env: Show runtime trace setting
Show whether runtime tracing is enabled in the output of `kata-env`.

Fixes #936.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2018-11-23 16:29:30 +00:00
Peng Tao
21f0059487
Merge pull request #929 from bergwolf/1.4.0-branch-bump
# Kata Containers 1.4.0
2018-11-23 14:35:04 +08:00
Peng Tao
7b63f210aa release: Kata Containers 1.4.0
- versions: Update Kubernetes, containerd and cri-o
- virtcontainers: fix sandbox store struct VFIODevice bug
- virtcontainers: Add function supportGuestMemoryHotplug
- make: add ability to skip go version check
- cli: Fix console for big endian architecture
- virtcontainers: fix not close socket with ethtool
- build: introduction of archConvertStatFs function
- network: support hotplug a nic several times
- sandbox: Extend sandbox API
- golang.mk: Check and install yq before use it
- cli: refactor the config into a separated package
- newContainer: Not attach device if it is a CDROM
- build: check golang version meets min req.
- network: Use constant string for "none" network model
- runtime,netmon: build as Position-Independent-Executable
- virtcontainers: Rely on new interface LinkType field
- enable default network endpoints hotplug for vm factory
- cli: fix the issue of using wrong path to get version
- cli: add guest hook path option (v2)
- factory: use customised deep compare
- qemu: query migrate status
- Add support for ipvlan network driver
- Add cgroup support
- vfio: Change the way the driver is fetched
- vendor: Rely on new agent package types
- network: Use tc filtering rules in bridge mode
- cli: add configuration option to use or not use host netns
- versions: Update golang to 1.10.4
- network: Marshal BridgedMacvlanEndpoint and MacvtapEndpoint
- device: fix the issue of passing wrong device address using virtio-blk
- create/run: Make bundle path default to cwd
- virtcontainers: Add missing API trace calls
- sandbox/virtcontainers: memory resource hotplug when create container.
- virtcontainers: Add missing API release calls
- qemu: Disable the default romfile used by virtio-pci
- Refactor network.go
- network: Sort endpoints by name
- virtcontainers: qemu: Add proper support for virt machine type
- network: Add support for macvlan and macvtap driver
- memory: update: Update state using the memory removed
- block: Advertise block support for q35
- vendor: fix govmm package

766f9ed versions: Update Kubernetes, containerd and cri-o
cba7a88 virtcontainers: fix sandbox store struct VFIODevice bug
0796f2e virtcontainers: Add function supportGuestMemoryHotplug
d73f27c test: set arch for test TestHotplugRemoveMemory
bf56858 cli: Fix console for big endian architecture
4b9a471 virtcontainers: fix not close socket with ethtool
58c1db5 make: notify user if yq is going to be installed
ab43e2a make: add ability to skip go version check
b185f31 build: introduction of archConvertStatFs function
982381b api: Cleanup StartContainer()
5777381 sandbox: Create and export Pause/ResumeContainer() to the API level
b298ec4 sandbox: Create and export ProcessListContainer() to the API level
3add296 sandbox: Create and export KillContainer() to the API level
7653726 sandbox: Create and export StopContainer() to the API level
109e12a sandbox: Export Stop() to the API level
6c3e266 sandbox: Export Start() to the API level
f5048b7 golang.mk: Check and install yq before use it
2f98b3e network: support hotplug a nic several times
842a00a cli: refactor the config into a separated package
193b324 newContainer: Not attach device if it is a CDROM
8ddc0ce network: Use constant string for "none" network model
5199777 virtcontainers: Rely on new interface LinkType field
45b2191 netmon: Rely on new interface field LinkType
7bf84d0 types: Replace agent/pkg/types with virtcontainers/pkg/types
39b95cc virtcontainers: Create a new package "types"
658bdb1 runtime,netmon: build as Position-Independent-Executable
e9aa870 network: enable network hotplug for vm factory
95f4fdb build: check golang version meets min req.
eaa5c7a CI: travis: call yq installer
cbf7fb2 CI: travis: add yq installer script
11c6753 cli: fix the issue of using wrong path to get version
21a671e network: set endpoint pci address when hotplug
33abb3e cli: add guest hook path option in the configuration file
34fe3b9 cgroups: add host cgroup support
523d49c vendor: add github.com/containerd/cgroups lib
38d56c9 netmon: Rely on agent/pkg/types instead of duplicating types
309dcf9 vendor: Update the agent vendoring based on pkg/types
0acbbf0 network: Add support for ipvlan
c38792e config: Add documentation for tcfilter in configuration.toml
17be8e3 network: Introduce constants for the network model strings
5da973d test: Add test to verify tc redirect
e20dbd0 network: Use tc redirect filter to redirect traffic to the VM
526d55b versions: Update golang to 1.10.4
62992f5 versions: Update cri containerd version for golang 1.10.2 fix
31cf6fb vfio: Change the way the driver is fetched
7a5a57d cli: test: add unit test for kata-env and kata-check
14e5437 cli: add configuration option to use or not use host netns
6935279 network: add new NetInterworkingModel "none" and endpoint type TapEndpoint
f8f2962 virtcontainers: refactor hotplug qmp functions
21d38e9 network: Marshal BridgedMacvlanEndpoint and MacvtapEndpoint
32ef29b factory: use customised deep compare
36306e2 sandbox/virtcontainers: modify tests relate to memory hotplug.
3f39d6e virtcontainers: Add missing API release calls
b72a3cd device: fix the issue of passing wrong device address using virtio-blk
ee9275f virtcontainers: Add missing API trace calls
8831245 create/run: Make bundle path default to cwd
0ae5b14 qemu: Disable the default romfile used by virtio-pci
6f0873a vendor: Update govmm vendoring
14f480a sandbox/virtcontainers: combine addResources and updateResources
8e2ee68 sandbox/virtcontainers: memory resource hotplug when create container.
b04691e network: Collapse log calls for endpoint Attach and Detach
ab15498 network: Explicitly check for veth type
3c590b0 network: Rename VirtualEndpoint to VethEndpoint
df8f21d network: Refactor network tests.
adcd910 network: Refactor network.go
8f1b28d network: Sort endpoints by name
eb77a41 qemu: make saveSandbox wait for migration completion
dffb4f9 virtcontainers: qemu: Add proper support for virt machine type
3c7cf58 tests: Add additional network tests to verifu link creation functions
378191a tests: Add tests for macvlan and macvtap endpoints
def070d golint: Refactor to reduce cyclomatic complexity
417c1f0 macvtap: Add support for macvtap
0de7572 vendor: Update govmm vendoring
581ff17 macvlan: Assign random MAC address
8847af8 network: Add support for macvlan driver
1f5792e test: fix unit test nil pointer.
4697cf3 memory: update: Update state using the memory removed.
0cab192 block: Advertise block support for q35
f4cf213 vendor: fix govmm package

Signed-off-by: Peng Tao <bergwolf@gmail.com>
2018-11-23 10:07:36 +08:00
Peng Tao
766f9ed54e
Merge pull request #928 from chavafg/topic/k8s-1.12
versions: Update Kubernetes, containerd and cri-o
2018-11-23 09:56:20 +08:00