Interactive workflow: GitLab CI → YAML → Terraform → KubeVirt VM

1. Developer pushes VM spec (YAML)
Plain KubeVirt manifest fragment stored in GitLab repo.
2. GitLab CI renders Terraform file
Job uses a small Python/Jinja2 script to wrap the YAML into a kubernetes_manifest resource.
3. Terraform plan / apply
State stored in GitLab-managed backend (EE) or Terraform Cloud.
4. OpenShift creates the VM
KubeVirt operator picks up the CR and boots the VM. Ready ✔