Instead of dynamically building VM images on every provision, I used existing Proxmox VM templates. My templates already had cloud-init enabled, SSH access configured, and base OS packages installed. This gave me: Faster VM provisioning — no image builds in the critical path
Better control over OS hardening — managed outside the Kubernetes workflow
Easier debugging — when something goes wrong, the VM layer is a known quantity