constellation/nix/container
2024-07-10 10:55:48 +02:00
..
vpn dev-docs: set an MTU on the VPN route (#3239) 2024-07-10 10:55:48 +02:00
libvirtd_base.nix libvirt: build containerized libvirt as nix container image 2023-12-01 09:35:33 +01:00
README.md libvirt: build containerized libvirt as nix container image 2023-12-01 09:35:33 +01: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"

Container image

Update the base image (ghcr.io/edgelesssys/constellation/libvirtd-base):

nix build .#libvirtd_base
cat result | gunzip > libvirtd_base.tar
crane push libvirtd_base.tar ghcr.io/edgelesssys/constellation/libvirtd-base

Push the final image to your own registry (ghcr.io/<USERNAME>/constellation/libvirtd):

bazel run //bazel/release:libvirt_push

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