# Libvirt Multitenancy
- https://sumit-ghosh.com/articles/create-vm-using-libvirt-cloud-images-cloud-init/
- https://medium.com/@art.vasilyev/use-ubuntu-cloud-image-with-kvm-1f28c19f82f8
- https://cloud.centos.org/centos/8/x86_64/images/
- https://cloud-images.ubuntu.com/
- https://medium.com/bettercode/how-to-build-a-modern-ci-cd-pipeline-5faa01891a5b
- https://medium.com/trendyol-tech/how-to-use-gitops-with-argocd-1782b8493cc3
1. Peers at NTHU expect a network of VMs to experiment with Openstack and OSM.
2. We wish to restrict their connection to the LAN of VMs with Wirguard VPN.
3. We wish to provide a simple VM image fallback procedure without exposing any other functionalities of libvirt; polkit does the job.
4. We wish to automate this process with IaC tools, e.g., GitLab CI, Argo CD, terraform, and vagrant.
To rephrase:
> Approximate essential OpenStack functionalities with standalone IaC tools in order to provide a modular remote VM experience for peers at NTHU.
[TOC]
## Network
- NATed libvirt LAN with subnet `192.168.114.0/25` and gateway `192.168.114.1`.
- Wirguard VPN with subnet `192.168.114.128/28` routed to the libvirt LAN.
- Our VPN peer (server) will take `192.168.114.129`.