Do not implement in each arch code. We should have a generic
implementation instead.
-. amd64 and arm64 uses nvdimm
-. ppc64le and s390x uses virtio-blk
Signed-off-by: Peng Tao <bergwolf@hyper.sh>
In oderder to make unit testing simpler,
lets add an interface that could be mocked.
Let hypervisor have a instance of virtiofsd interface,
and this makes a loose dependency to allow mock testing.
With the inteface is possible to add startSandbox unit test:
- use utils.StartCmd to mock call to start hypervisor process.
- Add unit test for startSandbox.
Fixes: #2367
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Check if path is not empty this makes, this help
unit test know why the function failed.
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
9p values are ignored by virtiofs, but this should be
not changed on validation to allow have unit test with
virtiofs config.
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Add unit test for clh.
- Check endpoint has valid values for CH.
- Add unit tests
- Add force flag to ignore cleanup errors.
- Add unit tests.
- Fail if hypervisor ID is empty.
- Add createSandbox uni test
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Add interface with the same methods of client,
this will help to decouple the implementation
and help use to do mock testing.
Add Mock client and add bootVM unit test
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
When we used jailer to launch firecracker, kata container failed due
to the following causes:
1. new flag `--config-file` belongs to the jailed firecracker,
so, adhering to the `end of command options` convention, we need to
give `--config-file` a prefix `--`.
2. The path of the config file(`fcConfig.json`) should be also
relative to the jailed firecracker.
3. Since we do the configuration before func `fcInit` now, we also need
to bring `jailer check` ahead.
4. The config file should be umounted and cleaned up.
Fixes: #2362
Signed-off-by: Penny Zheng <penny.zheng@arm.com>
When kata-runtime was invoked as rootless by podman with
net=none, an empty net namespace path is provided.
kata-runtime was then trying to create a new network namespace
and bind-mounting it under /var/run/netns, resulting in a permission error.
Instead, with this commit, the runtime checks if it is
running rootless and instead creates network namespace bind mount
under rootless directory instead.
Fixes#2319
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
Update github.com/kata-containers/agent to handle hvsock issue.
Shortlog:
33f3208 client.go: HybridVSockDialer: Close dup fd after receive packet
74a3b95 release: Kata Containers 1.10.0-rc0
afd0871 ci: install docker before configure
c502552 client.go: HybridVSockDialer: Check return size n of unix.Recvfrom
f8e4ce8 client.go: HybridVSockDialer: Change Read EOT to recv peek
5b64d42 agent: get current cpuset from /sys/devices/system/cpu/online
183a24a release: Kata Containers 1.10.0-alpha1
1ee8516 config: add option to control hotplug timeout of block devices
40567f6 release: Kata Containers 1.10.0-alpha0
19bee57 agent: connect debugging console in a specific vsock port
8361150 docs: Add enable services and installation steps for TRACING.md
a4f7373 agent: fix pause bin on musl
f9f129a docs: Add missing steps at TRACING.md
d3e66bf tracing: Wrapper for tracing functions
7a7dba7 network: ensure parent directories exist
455f728 tracing: Generate an alias for opentracing.Span
5f302e5 agent: Revert "client: remove the parameter of 'enableYamux'"
717ee24 client: remove the parameter of 'enableYamux'
d387c77 vendor: Update github.com/syndtr/gocapability/capability
b3d737b vendor: update libcontainer to 1.0.0-rc9
6eac713 release: Kata Containers 1.9.0-rc0
Fixes: #2284
Signed-off-by: Hui Zhu <teawater@antfin.com>
Update golang.org/x/sys to ac767d655b305d4e9612f5f6e33120b9176c4ad4
that same with agent.
Shortlog for golang.org/x/sys:
ac767d6 windows/svc/mgr: add ability to set a reboot message and command when a service fails
1b2967e unix: implement RFCOMM sockets on Linux
7b495ad unix: update Dockerfile to Go 1.11beta1
3c6ecd8 windows: add missing file attributes
ce36f38 unix: regenerate syscall wrappers for linux/ppc64{,le}
151529c windows, windows/svc/mgr: add ability to modify service recovery settings.
7138fd3 unix: do not return non-nil error for 0 errno in FcntlInt
c4afb3e unix: fix TestUtimesNanoAt for filesystems with 1-second resolution time stamps
a200a19 unix: don't check atime in TestUtimesNanoAt
63fc586 unix: use private copy of ustat_t on Linux
ad87a3a unix: check faccessat flags parameter on Linux
fc8bd94 unix: don't use deprecated syscalls on linux/arm64
f24d3d4 unix: add Faccessat on Solaris
6c888cc windows: replace uintptr in crypto structs
8014b7b windows: follow convention for generated code comment
8883426 plan9: follow convention for generated code comment
9e6071e unix: follow convention for generated code comment
56ede36 unix: add rtc defines and types
8ee9f3e unix: add Faccessat on NetBSD
f4b713d unix: add Faccessat on OpenBSD
a9e25c0 unix: update Dockerfile to Ubuntu 18.04, Linux 4.17, and Go 1.10.3
bff228c windows: update TOKEN_ALL_ACCESS according to WinNT.h
24c297a unix: support compiling with gccgo on linux/386
7c1e4f3 unix: drop use function stub for gccgo
9527bec cpu: fix gccgo build
bc2ef10 cpu: add gccgo implementation
538ab54 cpu: introduce and export type CacheLinePad
c11f84a unix: don't check atime in TestStatx
d4cedef unix: make Nfgenmsg a type definition
3135538 unix: add nftables defines and types
b269ba2 unix: fix TestXattr on android
04b8398 unix: fix or skip failing tests on android and iOS
e2c7578 unix: delete TestDevices for *BSD and Darwin
56ad15c windows: add QueryServiceStatusEx function
77b0e43 unix: add symlink-safe *xattr functions on darwin
f3b0f5f unix: skip TestStatx if the operation is not permitted
028bb33 unix: delete TestDevices test for Solaris
88eb85a unix: add tests for *xattr functions
dc67e5b windows: address error reported by vet
0b6bef9 unix: add {get,set,remove,list}xattr on darwin
7f59abf unix: update openbsd/amd64 to OpenBSD 6.3
89da893 unix: exclude AUDIT_RECORD_MAGIC constant on darwin
7c87d13 unix: add tpacket types and constants on Linux
d0faeb5 unix: fix TestSCMCredentials to not fail when root
9950ad1 unix: add statfs and filesystem magic constants on Linux
7dfd129 windows: address vet reports
64746a4 unix: address vet's finding of wrong argument size
7db1c3b cpu: use t.Fatal instead of t.Fatalf
6f686a3 unix: add ErrnoName and SignalName
78d5f26 windows/svc: correct MOVL instruction in sys_amd64.s
4adea00 cpu: new package
f67ecc1 unix: use Fstatat for Stat on linux/amd64
cbbc999 unix: use pselect on amd64 to satisfy Android
bb9c189 unix: 32-bit MIPS splice system call returns int, not int64
79b0c68 unix: add Linux block device ioctl types and constants
a2a4594 unix: avoid extra syscall on send/recvmsg on Linux
3ccc7e5 unix: fix typos in linux/types.go.
9b00609 unix: add tcp_md5sig on Linux
b126b21 unix: re-export Fsid and Sigset_t Val member on Linux
ecfd8b5 unix: implement getrtable/setrtable syscalls on OpenBSD
2f57af4 unix: add wrapper around perf_event_open on Linux
2281fa9 unix: don't export any padding/alignment fields on all platforms
f6f3529 unix: add a step to mkall.go that generates ABI headers to be referenced from types.go
3b87a42 unix: update Dockerfile to Linux 4.16 and Go 1.10.1
1d206c9 unix: add FcntlInt
fcb792c unix: unify Getsockopt*
f67933e unix: solicit EPERM via wrong PID in creds test.
378d26f unix: add CRTSCTS on netbsd and openbsd
2de2067 unix: add sendfile support on Solaris
13d03a9 unix: add GetsockoptLinger and GetsockoptTimeval
91ee8cd unix: use strings.IndexByte instead of for loops
1e3c777 unix: don't export padding fields on Darwin
c488ab1 unix: add Fadvise on linux/{arm64,mipsx.mips64x,ppx64x,sparc64}
ee8db00 unix: add Fadvise on NetBSD
bb729a5 unix: fix TestFchmodat on Illumos
6416052 unix: enable TestFchmodat for all Unices
dd203b8 unix: add Fchmodat on NetBSD
7ceb54c unix: add Fchmodat on DragonflyBSD
f8f1a95 unix: add Fchmodat on OpenBSD
d8e400b unix: fix example
01acb38 plan9, unix, windows: add paragraph breaks in docs
0deb464 unix: add Exec call
2f1e207 unix: add IFLA attributes on linux/sparc64
cc7307a unix: add Fstatat on Darwin
5c2edb5 unix: add Fstatat on OpenBSD
89ac7f2 CONTRIBUTING.md: remove note about not accepting Pull Requests
932fb22 unix: add Fstatat on NetBSD
2477406 unix: add Fstatat on FreeBSD
bcaab34 unix: don't export padding fields on DragonflyBSD
0edb963 unix: add Fstatat on DragonflyBSD
6035cb0 unix: don't export padding fields on Solaris
591c159 unix: add Fstatat on Solaris
8c0ece6 unix: extend rlimit test on Linux
c28acc8 unix: fix seek while compiling with gccgo under arm and 386
7dca6fe plan9: use bytes.IndexByte instead of a for loop
e64a828 unix: use bytes.IndexByte instead of a for loop
349b81f unix: skip SchedAffinity test on single CPU system
dd2ff4a unix: fix nil pointer dereference in Select on linux/{arm64,mips64x}
f6cff07 windows/registry: improve ReadSubKeyNames permissions
Fixes: #2284
Signed-off-by: Hui Zhu <teawater@antfin.com>
- ip and mask are not needed anymore.
- fs queues are set by cloud-hypervisor.
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Update to latest master code.
Changes:
fa0fdc6 cargo: Update Cargo.lock for the 0.4.0 release
cec884e release: v0.4.0
6444e29 docs: Add CPU hot plug documentation
a002093 build(deps): bump anyhow from 1.0.23 to 1.0.25
43f0478 build(deps): bump thiserror from 1.0.6 to 1.0.9
664431f vsock: vhost_user: vfio: Fix potential host memory overflow
1e97d14 README: Update for newer distribution support
e8e21ae README: Update the --cpus command line examples
a40a70a ci: Rely on latest virtiofsd version
f0b7412 vmm: device_manager: Add all virtio devices to the migratable list
37557c8 vmm: vm: Implement the Pausable trait
9756fc2 vmm: cpu_manager: Implement the Pausable trait
35dd152 vmm: device_manager: Implement the Pausable trait
a122da4 vm-virtio: vhost: Implement the Pausable trait for all vhost-user devices
dae0b2e vm-virtio: Implement the Pausable trait for all virtio devices
35d7721 vmm: Convert virtio devices to Arc<Mutex<T>>
5450de0 cargo: Do not run fmt on anyhow's build code
0361df4 vm-device: Initial Migratable trait
36daf9c ci: Skip testing RFC or WIP PRs
64c5e3d vmm: api: Adjust FsConfig for OpenAPI
4bfd51c vmm: api: Match VhostUserBlkConfig defaults between CLI and HTTP API
1c2587f vmm: api: Match VhostUserNetConfig defaults between CLI and HTTP API
5e0bbf9 vmm: Don't factorize vhost-user configurations
793327c vmm: api: Make ConsoleConfig default match between CLI and HTTP API
cc08c44 vmm: api: Make MemoryConfig default match between CLI and HTTP API
5a72225 vmm: api: Update CpuConfig name to match the internal name
f7c215d cli: Fix default CPU argument
59ae01f ci: Cancel older builders on Jenkins
c61104d vmm: Port to latest vmm-sys-util
4c92f89 ci: Add OpenAPI validation
93bd88e ci: Simplify travis.yml
d42ef18 ci: Offload cargo tests to the worker node VM
ee528ae vmm: api: Make FsConfig defaults match between CLI and HTTP API
befd342 vmm: api: Make NetConfig defaults match between CLI and HTTP API
eff78f7 resources: Prevent kernel config interactive shell from showing up
99e608c openapi: Fix schema
f994665 vmm: Reduce the minimum IRQ constant
ba59c62 vmm, devices: Remove hardcoded IRQ number for GED device
ce1bd9c resources: turn on CONFIG_ACPI_REDUCED_HARDWARE_ONLY
0374c3d build(deps): bump ssh2 from 0.5.0 to 0.6.0
aa94e9b Revert "vmm: api: Modify FsConfig to be OpenAPI friendly"
9b1ba14 vmm: Delegate device related ACPI DSDT table work to DeviceManager
60e6609 vmm: Delegate CPU related ACPI tables to CpuManager
defc5dc vmm: api: Modify FsConfig to be OpenAPI friendly
66e00ce ci: Extend VFIO integration test
59d0171 vmm: Remove kernel based IOAPIC handling from the device manager
afea6a1 vmm: Stop initialising kernel based IOAPIC/PIC
9b1cb96 vmm: Remove pin based interrupt setup for virtio devices
72fb687 vmm: Check for required capabilities
904b1ea build(deps): bump unicode-width from 0.1.6 to 0.1.7
fcf92d8 tests: Add rebooting to the CPU hotplug test
f98b16f vmm: Update the configuration to preserve hot-plug CPUs after reboot
1722708 vmm: Switch to storing VmConfig inside an Arc<Mutex<>>
c063bb8 vmm: acpi: Make GED interrupt edge triggered
e1af17d vmm: Restore tty to canonical mode when SIGTERM or SIGINT received
44d026b build(deps): bump serde_json from 1.0.43 to 1.0.44
a1285ea build(deps): bump cc from 1.0.47 to 1.0.48
23929f4 vfio: Don't override MSI Enable bit through VFIO ioctl
1dfd60b vfio: use correct flags to disable interrupts
5208ff8 vmm: Detect and handle AMD SME (Secure Memory Encryption)
dcfd6ff build(deps): bump serde_json from 1.0.42 to 1.0.43
08258d5 vfio: pci: Allow multiple devices to be passed through
4115fa8 vfio: pci: Update irqfd registration
1379abb pci: msi: Fix MSG_CTL update through 32 bits write
c81e808 docs: Update instructions regarding virtiofsd
17badfb vmm: cpu: Call vcpu configure() on the vCPU thread
1350306 api: Fix OpenAPI specification entries
e1ff142 tests: Remove MSI only test from test_serial_off
e083064 tests: Add integration test for hotplugging vCPUs
66a31c1 vmm: acpi: Upon GED interrupt notify on all vCPUs
48bf141 vmm: Trigger a hotplug device notification when resizing
b629727 vmm: acpi: Add a CTFY method to notify on all CPU objects
ae9359c vmm: acpi: Create the CPU entries in the DSDT for all vCPUs
791ca33 vmm: device_manager: Add ability to notify via GED device
623755c devices: Add ACPI GED device
7ad68d4 vmm: device_manager: Allocate I/O port for ACPI shutdown device
86339b4 vmm: Add HTTP API to resize the VM
e7d4eae vmm: cpu: Add support for starting more vCPU threads
0ef9999 vmm: cpu: Support only partially configuring the vCPU
c8b3041 vmm: openapi: Update OpenAPI for CpuConfig struct
b6801e3 vmm: cpu: Refactor vCPU thread starting
66d5163 vmm: cpu: Encapsulate vCPU state into its own struct
ea19bb0 tests: Add a test to check that the boot vs max cpus work
1bbe48b vmm: acpi: Mark non-boot vCPUs as disabled in the MADT table
4bc8635 tests: Use new "--cpus" syntax for integration tests
82bc07c vmm: Add boot and max vCPU handling to command line parser
7543e00 vmm: Use new CpuManager accessor to get boot vCPUs
df09078 vmm: cpu: Introduce concept of maximum vs boot vCPUs in CpuManager
669d9a8 vhost_user_backend: fix memory region offsetting
d378da6 build(deps): bump vcpkg from 0.2.7 to 0.2.8
b1cfdc7 build(deps): bump syn from 1.0.9 to 1.0.11
0f21781 cargo: Bump the kvm and vmm-sys-util crates
Fixes: #2343
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Shutdown API relies on it being cleaned up in order to proceed.
Otherwise it fails silently and shimv2 process never quits.
This can be triggered by killing the vmm while pod is running.
Fixes: #2345
Signed-off-by: Peng Tao <bergwolf@hyper.sh>
Otherwise if we fail to stop it, container state is set as StateStopped.
And future force stop will just be ignored. Then when we force delete
the container, we are deleting it without actually cleaning up container
resources especially the host shared mounts, which would be removed by
agent cleanup code and we endup removing container volume contents
unexpectedly.
Fixes: #2345
Signed-off-by: Peng Tao <bergwolf@hyper.sh>
Instead of point to master use the version defined
in versions.yaml
Fixes: #2341
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
- versions: bump firecracker version
- clh: use http client
- rootless: Disable vhost-net for rootless
- compatoci: Add a SetLogger call
- virtiofs: stop sandbox when virtiofsd quits
- vc: Remove device when AddDevice encounters error
- kernel: update to 4.19.83
- Cloud Hypervisor: driver update number 2
- vc: Use map to represent ignoredMounts
- Fc comment
- vc: Check return value from os.MkdirAll in virtiofsdArgs
- vc: Drop Sandbox#Pause and Sandbox#Resume
- vc: Use map built-in accessor to find container in Sandbox#GetContainer
- Makefile: fix suspicious line
- k8s: fix wrong number cpus after killing a container
- vc: Utilize map for newMounts to speed up replaceOCIMountSource
- vc: Sandbox#getAndSetSandboxBlockIndex shouldn't alter BlockIndex in case of error
- virtcontainers: rename GetOCISpec to GetPatchedOCISpec
- tracing: Unbreak tracing test
- fc.go: Set firecracker log level to debug if hypervisor.enable_debug …
- virtcontainers: honour ContainerConfig struct comment and don't save OCI spec
- virtcontainers: improve algorithm to find containers
- Merge #3 of kata-containers/runtime
- FC: extract error info from firecracker built-in log and metrics scheme
- gitignore: include cloud hypervisor configuration toml
- Respect containerd's debug config
- Clh driver: removed hard-coded vsock contextid (cid)
- vc: Persist file handle may leak in FS#ToDisk
- vc: Clean up directories in case MkdirAll fails
- vc: Restore sandbox state when there is error starting containers
- vc: Persist file handle may leak in FS#FromDisk
- sync fork after merge clh driver #1810c2c9 versions: bump firecracker version
0afeb52 clh: clh http unit test
42061f6 clh: cleanup VM dir
c688a15 version: CH bump to master
9f15dd2 clh: remove cli builder
f73723a clh: use http client
0babd38 rootless: Disable vhost-net for rootless
6010218 clh: Implement check()
a10da3e vendor: update openapi deps
1836226 clh: generate client code
dcac021 clh: Add Generation tools for API client
abbb536 virtiofs: stop sandbox when virtiofsd quits
9c0872d vc: Remove device when AddDevice encounters error
67f203f compatoci: Add a SetLogger call
bec46bb vc: Use map to represent ignoredMounts
628799a vc: Check return value from os.MkdirAll in virtiofsdArgs
9dd3f13 Makefile: Move the .git-commit: rule block to below the all: rule
7bcce3d Makefile: do not use tabs in if/else blocks
38224e8 vc: Use map built-in accessor to find container in Sandbox#GetContainer
544730b vc: Drop Sandbox#Pause and Sandbox#Resume
d4be097 Makefile: fix suspicious line
e8cc87b clh: basic/unit tests for clh driver
0697124 fc: update comments for startSandbox
3ef8f6c clh: fixes erroneous killing of virtiofsd
6af127f clh: improve driver logging for failed hypervisor
c58e6f9 kernel: update to 4.19.86
b7731e9 virtcontainers: don't consider non-running container resources
43f0513 virtcontainers: update resources after adding container to sandbox
613fd0f virtcontainers: rename GetOCISpec to GetPatchedOCISpec
330cc72 tracing: Unbreak tracing test
191ee63 fc.go: Set fc log level to debug if hypervisor.enable_debug is true
336edf7 virtcontainers: honour ContainerConfig struct comment and not save Spec
7f67b9f virtcontainers: improve algorithm to find containers
0ac4355 gitignore: include cloud hypervisor configuration toml
1abe52a clh: removed hard-coded vsock contextid (cid)
c833ac2 vc: BlockIndex should not be altered in case of error
b8b6733 vc: Persist file handle may leak in FS#ToDisk
03478d4 vc: Clean up directories in case MkdirAll fails
51d7c23 shim: Respect containerd's debug config
93a0336 vc: Restore sandbox state when there is error starting containers
2331e87 vc: Persist file handle may leak in FS#FromDisk
9a4ee4f vc: Utilize map for newMounts to speed up replaceOCIMountSource
daae1db log: extract error info from firecracker built-in log and metrics scheme
Signed-off-by: katacontainersbot <katacontainersbot@gmail.com>
remove dirtory created for VM. This should be refactored in all
hypervisors
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Remove cli builder code as now that we use http client
Signed-off-by: Bo Chen <chen.bo@intel.com>
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Instead of build a command, use Cloud Hypervisor http API.
Fixes: #2165
Signed-off-by: Bo Chen <chen.bo@intel.com>
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
Since the /dev/vhost-net device is owned by root, we cannot used
vhost-net networking in rootless mode. Instead of having to
do this manually in the toml, disable vhost-net when the runtime
detects it is running rootless.
Fixes#2321
Signed-off-by: Archana Shinde <archana.m.shinde@intel.com>
dep ensure to update new deps from openapi client
golang.org/x/oauth2
Signed-off-by: Bo Chen <chen.bo@intel.com>
Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>