constellation/cli/internal/libvirt
Daniel Weiße 0edae36e43
AB#2426 Mini Constellation (#198)
* Mini Constellation commands to quickly deploy a local Constellation cluster

* Download libvirt container image if not present locally

* Fix libvirt KVM permission issues by creating kvm group using host GID inside container

* Remove QEMU specific values from state file

Signed-off-by: Daniel Weiße <dw@edgeless.systems>
Co-authored-by: Nils Hanke <nils.hanke@outlook.com>
2022-10-07 09:38:43 +02:00
..
Dockerfile AB#2426 Mini Constellation (#198) 2022-10-07 09:38:43 +02:00
libvirt.go AB#2426 Mini Constellation (#198) 2022-10-07 09:38:43 +02:00
README.md AB#2439 Containerized libvirt (#191) 2022-10-05 09:11:30 +02:00
start.sh AB#2426 Mini Constellation (#198) 2022-10-07 09:38:43 +02:00

Containerized libvirt

To avoid dependency issues with the libvirt setup of the host, we provide a containerized libvirt instance. If no libvirt connection string is provided in the Constellation config file during create, this container is deployed to provide a libvirt daemon for orchestrating Constellation nodes in QEMU.

The container will listen for libvirt connections on localhost:16599. Connecting to the libvirt daemon running in the container and manage the deployment using virsh run the following:

virsh -c "qemu+tcp://localhost:16599/system"

Docker image

Build the image:

DOCKER_BUILDKIT=1 docker build -t ghcr.io/edgelesssys/constellation/libvirt:latest -f cli/internal/libvirt/Dockerfile .

A container of the image is automatically started by the CLI. You can also run the image manually using the following command:

docker run -it --rm \
    --network host \
    --privileged true \
    ghcr.io/edgelesssys/constellation/libvirt:latest