I still unfortunately need a windows VM as backup Is it possible to declaratively setup a VM given a path/url to a virtual disk image
No, not by default. There’s other people’s work that lets you do this, but you’re likely best off doing it yourself by generating qemu config files and systemd services for them through Nix.
You can use libvirt. It’s not exactly declarative but you can automate it.
Maybe Vagrant might be helpful.
Can vagrant do windows well? Was under the impression it wasn’t really meant for it and not sure how licensing would work for the windows instance
Currently using the key built into my machine, if there’s a way to automatically pull that and shove it into the VM that would be perfect
Never tried myself. There seems to be some stuff on https://app.vagrantup.com/boxes/search?order=desc&page=1&provider=&q=windows&sort=updated&utf8=%E2%9C%93. Do not know if this will be helpful or fits your needs.
Maybe this can be of use for you, it’s not declarative but it is in Nix, it shouldn’t be too hard for someone to make it declarative: https://github.com/matejc/win11
Something like Ansible+Proxmox will do what you want. https://vectops.com/2020/01/provision-proxmox-vms-with-ansible-quick-and-easy/
I’m looking to do this with nix config, would rather not mix and match if at all possible