Files
Compose-Files/Terraform/proxmox-vm-qemu/template.json
T
2026-07-20 09:23:17 -04:00

356 lines
8.7 KiB
JSON

{
"slug": "proxmox-vm-qemu",
"kind": "terraform",
"metadata": {
"name": "Proxmox VM (QEMU)",
"description": "Creates a Proxmox virtual machine from a cloud-init-ready template with configurable clone, CPU, memory, disk, networking, and guest settings.",
"tags": [],
"icon": {
"provider": "selfhst",
"id": "proxmox"
},
"draft": false,
"version": {
"name": "3.0.2-rc07",
"source_dep_name": "telmate/proxmox",
"source_dep_version": "3.0.2-rc07"
}
},
"variables": [
{
"title": "Terraform",
"name": "terraform",
"items": [
{
"name": "resource_name",
"type": "str",
"title": "Resource Name",
"required": false,
"default": "vmqemu",
"config": {
"placeholder": "vmqemu"
}
}
]
},
{
"title": "VM Identity",
"name": "identity",
"items": [
{
"name": "vm_name",
"type": "str",
"title": "Proxmox VM name",
"required": true,
"config": {
"placeholder": "servername"
}
},
{
"name": "vm_id",
"type": "str",
"title": "Proxmox VMID",
"required": false,
"config": {
"placeholder": "20001"
}
},
{
"name": "description",
"type": "str",
"title": "VM description",
"required": false,
"config": {
"placeholder": "Application server",
"textarea": true
}
},
{
"name": "tags",
"type": "str",
"title": "Tags",
"required": false,
"config": {
"placeholder": "docker"
}
},
{
"name": "target_node",
"type": "str",
"title": "Target Node",
"required": true,
"description": "Proxmox node that will host the VM.",
"config": {
"placeholder": "proxmox-node"
}
}
]
},
{
"title": "Clone Configuration",
"name": "clone",
"items": [
{
"name": "clone_template",
"type": "str",
"title": "Template",
"required": true,
"description": "Source template name to clone",
"config": {
"placeholder": "pkr-ubuntu-noble-1"
}
},
{
"name": "full_clone",
"type": "bool",
"title": "Full Clone",
"required": false,
"default": true,
"description": "Create a full clone instead of a linked clone"
}
]
},
{
"title": "Boot Settings",
"name": "guest",
"items": [
{
"name": "onboot",
"type": "bool",
"title": "Auto Start",
"required": false,
"default": true,
"description": "Start the VM automatically with the node."
},
{
"name": "startup",
"type": "str",
"title": "Startup",
"required": false,
"description": "Proxmox startup order and delay string",
"config": {
"placeholder": "order=1,up=10"
}
},
{
"name": "automatic_reboot",
"type": "bool",
"title": "Auto Reboot",
"required": false,
"default": false,
"description": "Allow provider-triggered automatic reboot on change"
},
{
"name": "ci_user",
"type": "str",
"title": "Cloud-init user",
"required": false,
"default": "admin",
"config": {
"placeholder": "admin"
}
},
{
"name": "ssh_key",
"type": "str",
"title": "SSH Key",
"required": false,
"description": "SSH public key passed to cloud-init",
"config": {
"placeholder": "SSH public key",
"textarea": true
}
},
{
"name": "ipconfig0",
"type": "str",
"title": "Network Config",
"required": false,
"default": "ip=dhcp",
"description": "Cloud-init network config for the first NIC",
"config": {
"placeholder": "ip=IP_ADDRESS/24,gw=GATEWAY"
}
},
{
"name": "nameserver",
"type": "str",
"title": "Nameserver",
"required": false,
"description": "DNS server for guest cloud-init config",
"config": {
"placeholder": "DNS_SERVER"
}
}
]
},
{
"title": "Compute",
"name": "compute",
"items": [
{
"name": "cpu_cores",
"type": "int",
"title": "CPU Cores",
"required": false,
"default": 2,
"config": {
"slider": true,
"min": 1,
"max": 32,
"step": 1,
"placeholder": "2",
"unit": "cores"
}
},
{
"name": "cpu_sockets",
"type": "int",
"title": "CPU Sockets",
"required": false,
"default": 1,
"config": {
"slider": true,
"min": 1,
"max": 8,
"step": 1,
"placeholder": "1",
"unit": "sockets"
}
},
{
"name": "cpu_type",
"type": "str",
"title": "Proxmox CPU type",
"required": false,
"default": "host",
"description": "CPU type to use in Proxmox.",
"config": {
"placeholder": "host"
}
},
{
"name": "memory_mb",
"type": "int",
"title": "Memory",
"required": false,
"default": 4096,
"config": {
"slider": true,
"min": 512,
"max": 262144,
"step": 512,
"placeholder": "4096",
"unit": "MB"
}
},
{
"name": "bios",
"type": "enum",
"title": "VM BIOS type",
"required": false,
"default": "seabios",
"description": "BIOS type for the VM.",
"config": {
"options": [
"seabios",
"ovmf"
]
}
},
{
"name": "qemu_os",
"type": "str",
"title": "QEMU OS type",
"required": false,
"default": "other",
"description": "Guest OS type for QEMU.",
"config": {
"placeholder": "other"
}
}
]
},
{
"title": "Storage and Network",
"name": "storage-network",
"items": [
{
"name": "bridge",
"type": "str",
"title": "Bridge",
"required": false,
"default": "vmbr1",
"description": "Proxmox bridge for the first NIC",
"config": {
"placeholder": "vmbr1"
}
},
{
"name": "network_model",
"type": "str",
"title": "NIC model",
"required": false,
"default": "virtio",
"description": "Network adapter model.",
"config": {
"placeholder": "virtio"
}
},
{
"name": "disk_storage",
"type": "str",
"title": "Disk Storage",
"required": false,
"default": "local-lvm",
"description": "Storage pool for the main disk",
"config": {
"placeholder": "local-lvm"
}
},
{
"name": "cloudinit_storage",
"type": "str",
"title": "Cloud-init Storage",
"required": false,
"default": "local-lvm",
"description": "Storage pool for the cloud-init disk",
"config": {
"placeholder": "local-lvm"
}
},
{
"name": "disk_size_gb",
"type": "int",
"title": "Disk Size",
"required": false,
"default": 32,
"description": "Main disk size in GB",
"config": {
"slider": true,
"min": 8,
"max": 4096,
"step": 1,
"placeholder": "32",
"unit": "GB"
}
},
{
"name": "disk_iothread",
"type": "bool",
"title": "IO Thread",
"required": false,
"default": true
},
{
"name": "disk_replicate",
"type": "bool",
"title": "Disk Replication",
"required": false,
"default": true
}
]
}
]
}