variable "node_name" { description = "The name of the Proxmox node to provision the VM on" type = string } variable "vm_id" { description = "The unique ID for the VM (100-999999999)" type = number } variable "name" { description = "The VM name (must be a valid DNS name)" type = string } variable "description" { description = "A description for the VM" type = string default = "" } variable "tags" { description = "List of tags to apply to the VM" type = list(string) default = [] } variable "on_boot" { description = "Whether to start the VM automatically on host boot" type = bool default = true } variable "os_type" { description = "OS type hint for Proxmox (l26 = Linux 2.6+, win10, etc.)" type = string default = "l26" } variable "bios" { description = "BIOS type: seabios or ovmf (UEFI)" type = string default = "seabios" } variable "machine" { description = "Machine type: pc or q35" type = string default = "q35" } # CPU variable "cpu_cores" { description = "Number of CPU cores per socket" type = number default = 2 } variable "cpu_sockets" { description = "Number of CPU sockets" type = number default = 2 } variable "cpu_type" { description = "CPU emulation type (host for best performance, qemu64 for compatibility)" type = string default = "host" } # Memory variable "memory_dedicated" { description = "Dedicated RAM in MB" type = number default = 2048 } # Clone variable "clone_vm_id" { description = "VM ID of the template to clone. When set, a clone block is used instead of disk_file_id." type = number default = null } variable "clone_full" { description = "Perform a full clone (true) or linked clone (false)" type = bool default = true } variable "clone_datastore_id" { description = "Target datastore for the cloned disks (null = keep on source datastore)" type = string default = null } # Disk variable "disk_datastore" { description = "Proxmox datastore ID for the VM disk" type = string default = "local-lvm" } variable "disk_interface" { description = "Disk interface (scsi0, virtio0, sata0)" type = string default = "scsi0" } variable "disk_size" { description = "Disk size in GB" type = number default = 20 } variable "disk_file_id" { description = "File ID of the base disk image to import (e.g. local:iso/debian-12-cloud.img). Ignored when clone_vm_id is set." type = string default = null } variable "data_disk_size" { description = "Size in GB of an optional second data disk. Set to null to skip." type = number default = null } variable "data_disk_datastore" { description = "Proxmox datastore ID for the data disk." type = string default = "local-lvm" } variable "data_disk_interface" { description = "Disk interface for the data disk (must differ from the OS disk)." type = string default = "scsi1" } # Network variable "network_bridge" { description = "The Linux bridge to attach the network device to" type = string default = "vmbr0" } variable "network_vlan_id" { description = "Optional VLAN tag for the network device (null = no VLAN)" type = number default = null } # Initialization (provider-native) variable "init_ipv4_address" { description = "IPv4 address in CIDR notation (e.g. 10.10.2.100/24) or dhcp" type = string } variable "init_ipv4_gateway" { description = "IPv4 gateway address" type = string default = null } variable "init_dns_servers" { description = "List of DNS servers for initialization" type = list(string) default = [] } variable "init_username" { description = "Username for the initial account" type = string default = "Administrator" } variable "admin_password" { description = "Password for the initial account" type = string sensitive = true } variable "cloud_init_datastore" { description = "Datastore used to store the cloud-init drive" type = string default = "local" }