constellation/nix/container/README.md

39 lines
1.2 KiB
Markdown

# 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:
```shell
virsh -c "qemu+tcp://localhost:16599/system"
```
## Container image
Update the base image (`ghcr.io/edgelesssys/constellation/libvirtd-base`):
```shell
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`):
```shell
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:
```shell
docker run -it --rm \
--network host \
--privileged true \
ghcr.io/edgelesssys/constellation/libvirt:latest
```