mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-02 08:17:01 +00:00
Currently, virtio transports for each device are determined with architecture dependent build time conditionals. This isn't the ideal solution, as virtio transports aren't exactly tied to the host's architecture. For example, aarch64 VMs do support both PCI and MMIO devices, and after the recent introduction of the microvm machine type, that's also the case for x86_64. This patch extends each device that supports multiple transports with a VirtioTransport field, so users of the library can manually specify a transport for each device. To avoid breaking the compatibility, if VirtioTransport is empty a behavior equivalent to the legacy one is achieved by checking runtime.GOARCH and Config.Machine.Type. Keeping support for isVirtioPCI/isVirtioCCW in qmp.go is a bit tricky. Eventually, the hot-plug API should be extended so callers must manually specify the transport for the device. Signed-off-by: Sergio Lopez <slp@redhat.com> |
||
---|---|---|
qemu | ||
.gitignore | ||
.travis.yml | ||
CONTRIBUTING.md | ||
CONTRIBUTORS.md | ||
COPYING | ||
README.md |
Virtual Machine Manager for Go
Virtual Machine Manager for Go (govmm) is a suite of packages that provide Go APIs for creating and managing virtual machines. There's currently support for only one hypervisor, qemu/kvm, support for which is provided by the github.com/intel/govmm/qemu package.
The qemu package provides APIs for launching qemu instances and for managing those instances via QMP, once launched. VM instances can be stopped, have devices attached to them and monitored for events via the qemu APIs.
The qemu package has no external dependencies apart from the Go standard library and so is nice and easy to vendor inside other projects.