Skip to content

Local Development and Debug Flow (libvirt)

Prerequisites

  • libvirt + KVM installed and qemu:///system accessible
  • Your user in the libvirt group: sudo usermod -aG libvirt $USER
  • Nix devShell active: nix develop
  • Age key generated and .sops.yaml updated

Iterative Debug Cycle

Edit module → plan → inspect diff → apply → SSH into VM → test → repeat

```bash

Enter shell

nix develop

Decrypt secrets

bash scripts/decrypt-secrets.sh local

Plan network

bash scripts/plan.sh local network bash scripts/apply.sh local network

Plan control plane

bash scripts/plan.sh local control-plane bash scripts/apply.sh local control-plane

Check VMs

virsh list --all virsh domifaddr plateforme-local-cp-0

Merge kubeconfig

bash scripts/kubeconfig.sh local kubectl get nodes -o wide

Apply K8s base layer

kubectl apply -k kubernetes/clusters/local

Run smoke tests

bash tests/integration/smoke-test.sh local

Tear down (safe — local state only)

terragrunt destroy --terragrunt-working-dir terragrunt/environments/local/control-plane terragrunt destroy --terragrunt-working-dir terragrunt/environments/local/network ```

VM Console Access

```bash virsh console plateforme-local-cp-0

Ctrl+] to exit

```

Debugging cloud-init

```bash virsh console plateforme-local-cp-0

Inside VM:

sudo cloud-init status --long sudo journalctl -u cloud-init ```

libvirt Network Inspection

bash virsh net-list --all virsh net-dhcp-leases plateforme-local