# integration_test Installs the KVM/libvirt substrate on the control node (`ubongo`) so the agent can boot throwaway Debian VMs for local integration testing (ADR-025). This is a **non-service** role — no SECURITY/VERIFY/ACCESS/BACKUP files are required. It does **not** make ubongo a production hypervisor; it only provides the tooling needed to spin up short-lived test VMs (see ADR-015). ## Target group `control` (i.e. `ubongo`) ## What it does 1. Installs QEMU/KVM, libvirt daemon + clients, `virt-install`, and cloud-image tools (`cloud-image-utils`, `genisoimage`). 2. Enables and starts `libvirtd`. 3. Adds the configured users (`sjat`, `claude`) to the `libvirt` and `kvm` groups so VMs can be managed without `sudo`. 4. Creates `/var/lib/boma-integration` (owned `root:libvirt`, mode `2775`) as the cache directory for golden images and overlays. ## Defaults | Variable | Default | Purpose | |-------------------------------|-------------------------------|----------------------------------| | `integration_test__packages` | see `defaults/main.yml` | APT packages to install | | `integration_test__users` | `[sjat, claude]` | Users granted libvirt/kvm access | | `integration_test__cache_dir` | `/var/lib/boma-integration` | Image/overlay cache directory | ## Related decisions - [ADR-025](../../docs/decisions/025-integration-testing.md) — local VM integration testing - [ADR-015](../../docs/decisions/015-control-host.md) — control host scope (ubongo is not a hypervisor)