Go to file
David Gibson 1b02192986 Use 'host_device' driver for blockdev backends
ExecuteBlockdevAdd() and ExecuteBlockdevAddWithCache() both appear to be
intended to create block devices in the guest which backend onto a block
device in the host. That seems to be the way that Kata always uses it.
However blockdevAddBaseArgs(), used by both those functions always uses the
"file" driver, which is only intended for use with regular file backends.

Use of the "file" driver for host block devices was deprecated in qemu-3.0,
and has been removed entirely in qemu-6.0 (commit 8d17adf34f5).  We should
be using the "host_device" driver instead.

fixes #191

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
2021-07-29 13:32:39 +10:00
.github/workflows .github/workflows: reimplement github actions CI 2021-07-21 15:08:07 -05:00
qemu Use 'host_device' driver for blockdev backends 2021-07-29 13:32:39 +10:00
.gitignore Add .gitignore file. 2017-12-11 11:05:31 +00:00
.golangci.yml .github/workflows: reimplement github actions CI 2021-07-21 15:08:07 -05:00
.travis.yml misc: Update for new GitHub organisation name 2020-10-09 09:10:10 +01:00
CONTRIBUTING.md misc: Update for new GitHub organisation name 2020-10-09 09:10:10 +01:00
COPYING Add project documentation 2017-12-11 11:05:31 +00:00
go.mod go: support go modules 2021-07-21 11:38:07 -05:00
README.md misc: Update for new GitHub organisation name 2020-10-09 09:10:10 +01:00

Virtual Machine Manager for Go

Go Report Card Build Status GoDoc Coverage Status

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/kata-containers/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.