mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-24 17:44:21 +01:00
Use latest master to enable memory hotplug. Changes: c1e6d00 ci: Add memory resizing use case to vhost-user tests 890582b ci: Factorize kernel command line 4de2584 ci: Fix mmio tests with direct kernel boot f268246 ci: Factorize integration tests booting from vhost-user-blk 5a5b3cf ci: Factorize vhost-user-blk integration tests dd8debf ci: Run vhost-user-blk tests for mmio builds 0c9c72c ci: Unify vhost-user-blk integration tests c95851f ci: Run vhost-user-net tests for mmio transport 68293fc ci: Factorize vhost-user-net one step further d75e745 vm-virtio: vhost-user: Send memory update to the backend 7ff82af vm-virtio: vhost-user: Factorize SET_MEM_TABLE setup e54f8ec vmm: Update memory through DeviceManager bc874a9 vm-virtio: Add update_memory() to VirtioDevice trait 93becca build(deps): bump backtrace from 0.3.45 to 0.3.46 feb8d7a vmm: Separate seccomp filters between VMM and API threads 5120c27 main: Add seccomp support f1a23d7 vmm: api: Add seccomp to the HTTP API thread db62cb3 vmm: Add seccomp filter to the VMM thread cb98d90 vmm: Create new seccomp_filter module 708f02d vmm: Pull seccomp crate from Firecracker 18fbd30 vhost-user-fs: return correct result of fs_slave_io() bbc385c devices: ioapic: Remove unused MsiMessage structure 2fc86ff dev_cli: Always pull the latest container image 4b462a5 Dockerfile: Add cpio and bsdtar to the container image 8acc15a build: Bump vm-memory and linux-loader dependencies 38ed560 build(deps): bump thiserror from 1.0.12 to 1.0.13 9f67de4 build(deps): bump proc-macro-hack from 0.5.12 to 0.5.14 ebab809 build(deps): bump thiserror from 1.0.11 to 1.0.12 c67e407 build(deps): bump syn from 1.0.16 to 1.0.17 bdcfe1e tests: Add "discard_writes" pmem test 7098602 tests: Make the test_virtio_pmem test use a temporary file f7197e8 vmm: Add a "discard_writes=" to --pmem d11a67b vmm: Use more generic MmapRegion constructor 7257e89 vmm: Add "readonly" parameter MemoryManager::create_userspace_mapping 03cb26c release: v0.6.0 3e9a39c github: Upload the ch-remote asset c503118 vmm: fix a corrupted stack caused by get_win_size 0788600 build: Remove "pvh_boot" feature flag 477bc17 bin: Share VFIO device syntax between cloud-hypervisor and ch-remote 96be2db build(deps): bump serde_derive from 1.0.104 to 1.0.105 5a335fc build(deps): bump serde from 1.0.104 to 1.0.105 a31ffef openapi: Add hotplug_size for memory hotplug 87990f9 vmm: Add virtio-pci device to B/D/F hash table fb185fa vmm: Always return PCI B/D/F from add_virtio_pci_device 462082c build(deps): bump arc-swap from 0.4.4 to 0.4.5 c821e96 vhost_user_fs: Implement support for FUSE_LSEEK 5aa9abc docs: Add document for vhost-user-net test with OVS/DPDK 6329219 vm-virtio: queue: Use a SeqCst fence on get_used_event 63eeed2 vm: Comment on the VM config update from memory hotplug 0895bcb build(deps): bump proc-macro-hack from 0.5.11 to 0.5.12 0541f5a build(deps): bump proc-macro-nested from 0.1.3 to 0.1.4 51f51ea build(deps): bump libc from 0.2.67 to 0.2.68 9cf67d1 arch: x86: Always set the bootloader type ad35470 arch: x86: Extract common bootparams settings 28a5f9d vmm: acpi: Remove unused IORT related structures 5c1207c vhost-user-fs: handle FS_IO request f61f78e build(deps): bump anyhow from 1.0.26 to 1.0.27 efb2447 pvh: Add integration test to validate PVH boot da084fa pvh: Add unit tests for initial sregs and control registers 64941bf pvh: Add unit tests for start_info and memory map structures 9e247c4 pvh: Introduce "pvh_boot" feature a22bc35 pvh: Write start_info structure to guest memory 840a9a9 pvh: Initialize vCPU regs/sregs for PVH boot 24f0e42 pvh: Introduce EntryPoint struct 98b9568 pvh: Add definitions for PVH boot protocol support 6e6ef83 build: Fix log dependency 291f1ce build(deps): bump linux-loader from `0c754f3` to `0ce5bfa` 07cc73b vhost_user_fs: add a flag to disable extended attributes 710520e vhost_user_fs: Process requests in parallel with a thread pool 90309b5 vm-virtio: queue: Add methods to switch a descriptor context 2294c2d Add .rustfmt.toml to the project 48c4885 vhost_user_fs: replace HandleData's File Mutex with RwLock 134e64c arch, qcow: Fix 1.42.0 clippy warnings 6ea85ca resources: Dockerfile: Update Rust toolchain 4579afa vmm: For --disk error if socket and path is specified 7e599b4 vmm: Make disk path optional 477d924 github: Build from a rust toolchain matrix 4f2469e main: Remove "--vhost-user-net" 8d785bb pci: Fix the PciBus using HashMap instead of Vec 04f2ccd build(deps): bump ryu from 1.0.2 to 1.0.3 02265bb build(deps): bump regex-syntax from 0.6.16 to 0.6.17 40b38a4 openapi: Make desired_ram int64 format ca3b39c bin: Fix wrapping in help strings ee1ba56 build: Use "wrap_help" feature for clap 3957d1e vhost_user_backend: call get_used_event from needs_notification 536323d vm-virtio: queue: hint that get_used_event should be inlined 401e1d2 vm-virtio: queue: fix a barrier comment at update_avail_event e0bdfe8 vm-virtio: queue: add a missing memory barrier in get_used_event df2570a resources: Simplify kernel config filename 9ab648b resources: Enable VIRTIO_MEM support 0339853 ci: Bump to kernel 5.6-rc4 abccf76 tests: Use ch-remote to add/remove devices in test_vfio 5c3ce9d tests: Extend ch-remote helper to support optional single argument 9a7d9c9 ch-remote: Support removing VFIO devices 0d53ba4 ch-remote: Support adding VFIO devices babefbd main: Remove spurious second help line for "--device" 63c5d09 github: Trigger the build job on PRs 8cbb6d0 github: Replace Travis CI with github actions efba48d vmm: Don't put a VFIO device behind the vIOMMU by default 34412c9 vmm: Add id option to VFIO hotplug 18dc916 vmm: Switch to the micro-http package 9023444 vmm: Add id field to --device through CLI f4a956a vmm: Remove 32 bits MMIO range from correct address space 432eb5b vmm: Free PCI BARs when unplugging PCI device f0dff8b vfio: pci: Remove KVM user memory region when cleaning up 34d1f43 vfio: pci: Implement free_bars() from the PciDevice trait b8e1cf2 vm-allocator: Add new function to free 32 bits MMIO address space f3dc245 pci: Extend PciDevice trait with new free_bars() method 911a2d6 tests: Use ch-remote to resize the VM 21160f7 ch-remote: Add "resize" command bb2d04b ch-remote: Add support for sending a request body bde4f73 ch-remote: Refactor HTTP response handling 6ed23bb build(deps): bump micro_http from `9bbde4f` to `6b3e5f0` 5edd812 build(deps): bump backtrace-sys from 0.1.33 to 0.1.34 f727714 ci: Add integration test for VFIO hot-unplug b50cbe5 pci: Give PCI device ID back when removing a device df71aae pci: Make the device ID allocation smarter e514b12 vmm: Update VmConfig when removing VFIO device 81173bf vmm: Add id field to DeviceConfig structure 6cbdb9a vmm: api: Introduce new "remove-device" HTTP endpoint 991f3bb vmm: Remove VFIO device from everywhere it is referenced 6adebbc vmm: Detect when guest notifies about ejecting PCI device 0e21c32 devices: Add new method to remove all occurrences of a BusDevice f8e2008 pci: Add a function to remove a PciDevice from the bus 08604ac vmm: Store PCI devices as Any devices from DeviceManager 0f99d3f vmm: Store VFIO device's name and its PCI b/d/f 13a61c4 build(deps): bump rand_chacha from 0.2.1 to 0.2.2 fcd605a build(deps): bump micro_http from `6d416af` to `9bbde4f` 30b6954 vm-virtio: Consume pause events to prevent infinite epoll_wait calls 16fd506 tests: Use new ch-remote for pause/resume integration test ba8cd4d bin: Introduce "ch-remote" for controlling VMM 06cd31c build(deps): bump micro_http from `02def92` to `6d416af` 7e941c9 build(deps): bump linux-loader from `8cb7c66` to `0c754f3` Signed-off-by: Jose Carlos Venegas Munoz <jose.carlos.venegas.munoz@intel.com>
484 lines
11 KiB
YAML
484 lines
11 KiB
YAML
openapi: 3.0.1
|
|
info:
|
|
title: Cloud Hypervisor API
|
|
description: Local HTTP based API for managing and inspecting a cloud-hypervisor virtual machine.
|
|
license:
|
|
name: Apache 2.0
|
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
version: 0.3.0
|
|
|
|
servers:
|
|
- url: http://localhost/api/v1
|
|
|
|
paths:
|
|
|
|
/vmm.ping:
|
|
get:
|
|
summary: Ping the VMM to check for API server availability
|
|
responses:
|
|
200:
|
|
description: The VMM information
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VmmPingResponse'
|
|
|
|
/vmm.shutdown:
|
|
put:
|
|
summary: Shuts the cloud-hypervisor VMM.
|
|
operationId: shutdownVMM
|
|
responses:
|
|
204:
|
|
description: The VMM successfully shutdown.
|
|
|
|
/vm.info:
|
|
get:
|
|
summary: Returns general information about the cloud-hypervisor Virtual Machine (VM) instance.
|
|
responses:
|
|
200:
|
|
description: The VM information
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VmInfo'
|
|
|
|
/vm.create:
|
|
put:
|
|
summary: Create the cloud-hypervisor Virtual Machine (VM) instance. The instance is not booted, only created.
|
|
operationId: createVM
|
|
requestBody:
|
|
description: The VM configuration
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VmConfig'
|
|
required: true
|
|
responses:
|
|
204:
|
|
description: The VM instance was successfully created.
|
|
|
|
/vm.delete:
|
|
put:
|
|
summary: Delete the cloud-hypervisor Virtual Machine (VM) instance.
|
|
operationId: deleteVM
|
|
responses:
|
|
204:
|
|
description: The VM instance was successfully deleted.
|
|
|
|
/vm.boot:
|
|
put:
|
|
summary: Boot the previously created VM instance.
|
|
operationId: bootVM
|
|
responses:
|
|
204:
|
|
description: The VM instance successfully booted.
|
|
404:
|
|
description: The VM instance could not boot because it is not created yet
|
|
|
|
/vm.pause:
|
|
put:
|
|
summary: Pause a previously booted VM instance.
|
|
operationId: pauseVM
|
|
responses:
|
|
204:
|
|
description: The VM instance successfully paused.
|
|
404:
|
|
description: The VM instance could not pause because it is not created yet
|
|
405:
|
|
description: The VM instance could not pause because it is not booted.
|
|
|
|
/vm.resume:
|
|
put:
|
|
summary: Resume a previously paused VM instance.
|
|
operationId: resumeVM
|
|
responses:
|
|
204:
|
|
description: The VM instance successfully paused.
|
|
404:
|
|
description: The VM instance could not resume because it is not booted yet
|
|
405:
|
|
description: The VM instance could not resume because it is not paused.
|
|
|
|
/vm.shutdown:
|
|
put:
|
|
summary: Shut the VM instance down.
|
|
operationId: shutdownVM
|
|
responses:
|
|
204:
|
|
description: The VM instance successfully shut down.
|
|
404:
|
|
description: The VM instance could not shut down because is not created.
|
|
405:
|
|
description: The VM instance could not shut down because it is not started.
|
|
|
|
/vm.reboot:
|
|
put:
|
|
summary: Reboot the VM instance.
|
|
operationId: rebootVM
|
|
responses:
|
|
204:
|
|
description: The VM instance successfully rebooted.
|
|
404:
|
|
description: The VM instance could not reboot because it is not created.
|
|
405:
|
|
description: The VM instance could not reboot because it is not booted.
|
|
|
|
/vm.resize:
|
|
put:
|
|
summary: Resize the VM
|
|
requestBody:
|
|
description: The target size for the VM
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VmResize'
|
|
required: true
|
|
responses:
|
|
204:
|
|
description: The VM instance was successfully resized.
|
|
404:
|
|
description: The VM instance could not be resized because it is not created.
|
|
|
|
/vm.add-device:
|
|
put:
|
|
summary: Add a new device to the VM
|
|
requestBody:
|
|
description: The path of the new device
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VmAddDevice'
|
|
required: true
|
|
responses:
|
|
204:
|
|
description: The new device was successfully added to the VM instance.
|
|
404:
|
|
description: The new device could not be added to the VM instance.
|
|
|
|
/vm.remove-device:
|
|
put:
|
|
summary: Remove a device from the VM
|
|
requestBody:
|
|
description: The identifier of the device
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/VmRemoveDevice'
|
|
required: true
|
|
responses:
|
|
204:
|
|
description: The device was successfully removed from the VM instance.
|
|
404:
|
|
description: The device could not be removed from the VM instance.
|
|
|
|
components:
|
|
schemas:
|
|
|
|
VmmPingResponse:
|
|
required:
|
|
- version
|
|
type: object
|
|
properties:
|
|
version:
|
|
type: string
|
|
description: Virtual Machine Monitor information
|
|
|
|
VmInfo:
|
|
required:
|
|
- config
|
|
- state
|
|
type: object
|
|
properties:
|
|
config:
|
|
$ref: '#/components/schemas/VmConfig'
|
|
state:
|
|
type: string
|
|
enum: [Created, Running, Shutdown, Paused]
|
|
description: Virtual Machine information
|
|
|
|
VmConfig:
|
|
required:
|
|
- kernel
|
|
- cmdline
|
|
type: object
|
|
properties:
|
|
cpus:
|
|
$ref: '#/components/schemas/CpusConfig'
|
|
memory:
|
|
$ref: '#/components/schemas/MemoryConfig'
|
|
kernel:
|
|
$ref: '#/components/schemas/KernelConfig'
|
|
cmdline:
|
|
$ref: '#/components/schemas/CmdLineConfig'
|
|
disks:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/DiskConfig'
|
|
net:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/NetConfig'
|
|
rng:
|
|
$ref: '#/components/schemas/RngConfig'
|
|
fs:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/FsConfig'
|
|
pmem:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/PmemConfig'
|
|
serial:
|
|
$ref: '#/components/schemas/ConsoleConfig'
|
|
console:
|
|
$ref: '#/components/schemas/ConsoleConfig'
|
|
devices:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/DeviceConfig'
|
|
vsock:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/VsockConfig'
|
|
iommu:
|
|
type: boolean
|
|
default: false
|
|
description: Virtual machine configuration
|
|
|
|
CpusConfig:
|
|
required:
|
|
- boot_vcpus
|
|
- max_vcpus
|
|
type: object
|
|
properties:
|
|
boot_vcpus:
|
|
minimum: 1
|
|
default: 1
|
|
type: integer
|
|
max_vcpus:
|
|
minimum: 1
|
|
default: 1
|
|
type: integer
|
|
|
|
MemoryConfig:
|
|
required:
|
|
- size
|
|
type: object
|
|
properties:
|
|
size:
|
|
type: integer
|
|
format: int64
|
|
default: 512 MB
|
|
hotplug_size:
|
|
type: integer
|
|
format: int64
|
|
file:
|
|
type: string
|
|
mergeable:
|
|
type: boolean
|
|
default: false
|
|
|
|
KernelConfig:
|
|
required:
|
|
- path
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
|
|
CmdLineConfig:
|
|
required:
|
|
- args
|
|
type: object
|
|
properties:
|
|
args:
|
|
type: string
|
|
|
|
DiskConfig:
|
|
required:
|
|
- path
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
readonly:
|
|
type: boolean
|
|
default: false
|
|
direct:
|
|
type: boolean
|
|
default: false
|
|
iommu:
|
|
type: boolean
|
|
default: false
|
|
num_queues:
|
|
type: integer
|
|
default: 1
|
|
queue_size:
|
|
type: integer
|
|
default: 128
|
|
vhost_user:
|
|
type: boolean
|
|
default: false
|
|
vhost_socket:
|
|
type: string
|
|
wce:
|
|
type: boolean
|
|
default: true
|
|
poll_queue:
|
|
type: boolean
|
|
default: true
|
|
|
|
NetConfig:
|
|
type: object
|
|
properties:
|
|
tap:
|
|
type: string
|
|
default: ""
|
|
ip:
|
|
type: string
|
|
default: "192.168.249.1"
|
|
mask:
|
|
type: string
|
|
default: "255.255.255.0"
|
|
mac:
|
|
type: string
|
|
iommu:
|
|
type: boolean
|
|
default: false
|
|
num_queues:
|
|
type: integer
|
|
default: 2
|
|
queue_size:
|
|
type: integer
|
|
default: 256
|
|
vhost_user:
|
|
type: boolean
|
|
default: false
|
|
vhost_socket:
|
|
type: string
|
|
|
|
RngConfig:
|
|
required:
|
|
- src
|
|
type: object
|
|
properties:
|
|
src:
|
|
type: string
|
|
default: "/dev/urandom"
|
|
iommu:
|
|
type: boolean
|
|
default: false
|
|
|
|
FsConfig:
|
|
required:
|
|
- tag
|
|
- sock
|
|
type: object
|
|
properties:
|
|
tag:
|
|
type: string
|
|
sock:
|
|
type: string
|
|
num_queues:
|
|
type: integer
|
|
default: 1
|
|
queue_size:
|
|
type: integer
|
|
default: 1024
|
|
dax:
|
|
type: boolean
|
|
default: true
|
|
cache_size:
|
|
type: integer
|
|
format: int64
|
|
default: 8589934592
|
|
|
|
PmemConfig:
|
|
required:
|
|
- file
|
|
- size
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
size:
|
|
type: integer
|
|
format: int64
|
|
iommu:
|
|
type: boolean
|
|
default: false
|
|
mergeable:
|
|
type: boolean
|
|
default: false
|
|
discard_writes:
|
|
type: boolean
|
|
default: false
|
|
|
|
ConsoleConfig:
|
|
required:
|
|
- mode
|
|
type: object
|
|
properties:
|
|
file:
|
|
type: string
|
|
mode:
|
|
type: string
|
|
enum: [Off, Tty, File, Null]
|
|
iommu:
|
|
type: boolean
|
|
default: false
|
|
|
|
DeviceConfig:
|
|
required:
|
|
- path
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
iommu:
|
|
type: boolean
|
|
default: false
|
|
id:
|
|
type: string
|
|
|
|
VsockConfig:
|
|
required:
|
|
- cid
|
|
- sock
|
|
type: object
|
|
properties:
|
|
cid:
|
|
type: integer
|
|
format: int64
|
|
minimum: 3
|
|
description: Guest Vsock CID
|
|
sock:
|
|
type: string
|
|
description: Path to UNIX domain socket, used to proxy vsock connections.
|
|
iommu:
|
|
type: boolean
|
|
default: false
|
|
|
|
VmResize:
|
|
type: object
|
|
properties:
|
|
desired_vcpus:
|
|
minimum: 1
|
|
type: integer
|
|
desired_ram:
|
|
description: desired memory ram in bytes
|
|
type: integer
|
|
format: int64
|
|
|
|
VmAddDevice:
|
|
type: object
|
|
properties:
|
|
path:
|
|
type: string
|
|
|
|
VmRemoveDevice:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|