A bit of a tangent. I've been trying to manage libvirt& Unraid through terraform, but have run into issue after issue. I'm about given up, and will just manage the virtual machines manually...
What's the virtualization technology on proxmox?
What's the advantage to using something like this as opposed to terraform or salt stack or Ansible?
It is also worth mentioning that Proxmox uses ZFS making snapshotting quick and Proxmox also has a very good backup system.
If you want to treat your self-hosted applications as "sheep" (1) , then terraform k8s etc. is a better bet.
But if you are happy to manually restore from a backup or snapshot when something goes wrong, or automatically have your LXC container shifted to different hardware if you have a cluster, then Proxmox is for you. The reality is that in a home setup you will spend about as much or less time maintaining your "pets" than than you would your "farm".
"It is also worth mentioning that Proxmox uses ZFS"
No it does not enforce ZFS or any other filesystem. That's up to you. ZFS or BTRFS are fine when indicated - and you need to know your stuff.
Cephs for clustering (hyperconverged) is very much a first class citizen. I generally only use EXT4 as a filesystem - keep it simple. XFS is lovely too, especially for reflinks if you need them.
(1) Wal and Cooch know how to run a farm (and so do I, in the UK!)
> No it does not enforce ZFS or any other filesystem. That's up to you. ZFS or BTRFS are fine when indicated - and you need to know your stuff.
You are correct, it is optional and I should have made that clear. While optional it does have native support for ZFS and takes advantage of ZFS features, like instant snapshotting of LCX containers.
Proxmox is more about the management of the hosts and resources on them, including the live migration of VMs between hosts, support for some types of HA and failover.
You can likely manage the configuration of the VMs themselves through terraform or similar in combination with Proxmox if that's your desire.
proxmox is using KVM for virtualization and Linux Containers (LXC) for the containers. I agree that something like terraform and/or ansible would make more sense for an IAC (infrastructure as code) deployment. Most of the people I talk to that use proxmox for a homelab prefer to do things manually and don't bother with any IAC implementation.
For work I'm a firm believer in reproducible environments and IAC. We actually a combination of vagrant, libvirt, and KVM to spin up local clusters for quick testing and development. It works out pretty well, but in my homelab I don't have anything complicated enough to bother setting up terraform/ansible for. Although I imagine if my server crashed I probably wouldn't think that way anymore.
Given enough appetite and love from me, I've got a pretty robust Ansible script for building a Proxmox host with $i++ LxC's.
It's not suitable for open sourcing yet (embedded secrets and the like), but if the community wants it, it's pretty solid.
Only issue I see is the Ansible script currently always expects to be building a cluster of Proxmox hosts. I'd need to make some change to customise it so it can build out just one node though.
I've been using it or ~3 years now for my Proxmox cluster home lab which predominantly hosts LLAMA, *Arr stack, deluge, Nginx, Tailscale and a few other services.
It's not quite a one click deployment, but it can build our an entire cluster in 30 minutes after an initial Proxmox install is completed.
If you want to manage VMs, then you're probably using terraform + provider. However, SDN (Software Defined Networking) is not yet supported [1], which makes any kind of deployment with network separation not feasible (using IAC only).
How good and complete are any of these providers for Proxmox?
If the ratio holds (4/10 I checked), I'd have to look more closely at about a third of the providers, just based on their latest release date.
What's the virtualization technology on proxmox?
What's the advantage to using something like this as opposed to terraform or salt stack or Ansible?