You can start from either an ISO or clone an existing VM.
Optimally, you could create a VM resource you will use a clone base with an ISO, and make the rest of the VM resources depend on that base "template" and clone it.
**ssh_forward_ip** - should be the IP or hostname of the target node or bridge IP. This is where proxmox will create a port forward to your VM with via a user_net. (for pre-cloud-init provisioning)
There is a pre-provision phase which is used to set a hostname, intialize eth0, and resize the VM disk to available space. This is done over SSH with the ssh_forward_ip, ssh_user and ssh_private_key.
Disk resize is done if the file /etc/auto_resize_vda.sh exists. Source: https://github.com/Telmate/terraform-ubuntu-proxmox-iso/blob/master/auto_resize_vda.sh
### Provisioner usage
Remove the temporary net1 adapter.
Inside the VM this usually triggers the routes back to the provisioning machine on net0.
```
provisioner "proxmox" {
action = "sshbackward"
}
```
Replace the temporary net1 adapter with a new persistent net1.
```
provisioner "proxmox" {
action = "reconnect"
net1 = "virtio,bridge=vmbr0,tag=99"
}
```
If net1 needs a config other than DHCP you should prior to this use provisioner "remote-exec" to modify the network config.