Terraform Proxmox Module
  • HCL 90.5%
  • JavaScript 9.5%
Find a file
Infrapunks Bot f78a2816c0
All checks were successful
pre-commit-check / pre-commit (push) Successful in 25s
Release / release (push) Successful in 6s
chore: sync repo configuration
2026-08-05 11:16:26 +02:00
.forgejo/workflows chore(docker): update git.bueraner.de/murdoc/docker-semantic-release:latest docker digest to dfa4c20 2026-07-31 07:25:41 +00:00
tests/fixtures feat: add optional serial0 support 2026-07-28 23:35:08 +02:00
.editorconfig feat: add proxmox tf module for cloud init VMs 2025-07-29 07:14:57 +02:00
.gitignore feat: add proxmox tf module for cloud init VMs 2025-07-29 07:14:57 +02:00
.markdownlint.json chore: disable markdown lint check MD060 2026-01-06 21:39:27 +01:00
.pre-commit-config.yaml chore: sync repo configuration 2026-08-05 11:16:26 +02:00
CHANGELOG.md chore(release): 1.6.0 [skip ci] 2026-07-28 23:35:32 +02:00
main.tf feat: add optional serial0 support 2026-07-28 23:35:08 +02:00
outputs.tf chore: remove unused output vars 2025-07-30 06:23:34 +02:00
providers.tf refactor(terraform): sync vendored module from proxmox-terraform 2026-07-28 07:00:48 +02:00
README.md docs: tf update 2026-07-29 06:49:14 +02:00
release.config.mjs feat: add proxmox tf module for cloud init VMs 2025-07-29 07:14:57 +02:00
renovate.json chore(renovate): automate provider merges and docs refresh 2026-02-21 08:08:24 +01:00
variables.tf feat: add optional serial0 support 2026-07-28 23:35:08 +02:00

Requirements

Name Version
terraform >= 1.10.2
proxmox 3.0.2-rc08

Providers

Name Version
proxmox 3.0.2-rc08

Modules

No modules.

Resources

Name Type
proxmox_vm_qemu.proxmox-vm resource

Inputs

Name Description Type Default Required
default_tags Default tags added to each VM. list(string)
[
"terraform",
"proxmox"
]
no
proxmox_vm Map containing VM configurations.
Key = unique VM name.
Each VM object must contain the following attributes:
- vm_id: Unique VM ID in the Proxmox cluster (integer)
- hostname: Hostname of the VM (string)
- ciuser: Cloud-Init username (string)
- cipassword: Cloud-Init password (string, must not be empty)
- memory: Amount of RAM in MB (integer)
- boot_disk_size: Size of the boot disk (e.g. "10G") (string)
- cidr: IP address and subnet in CIDR notation (e.g. "192.168.1.10/24") (string)
- NAT_gateway_IPv4: Default IPv4 gateway (string)
- vnic_bridge: Proxmox network bridge (e.g. "vmbr0") (string)
- tags: (optional) List of tags (list(string))
All other attributes are documented below.
map(object({
vm_id = number
hostname = string
description = optional(string, "Do not touch this VM, it is managed by Terraform!")
target_node = string
bios = optional(string, "seabios")

ciuser = string
cipassword = string
img_template = optional(string, "packer-ubuntu2404")
full_clone = optional(bool, true)
cloud_init_storage = optional(string, "local")
cloud_init_disk_type = optional(string, "ide3")

cpu_cores = number
cpu_affinity = optional(string, "")
cpu_limit = optional(number, 0)
cpu_type = optional(string, "host")
cpu_numa = optional(bool, false)
cpu_sockets = optional(number, 1)
cpu_units = optional(number, 0)
cpu_vcores = optional(number, 0)

memory = number
balloon = optional(number, 2048)

boot_disk_size = string
boot_disk_storage = optional(string, "local")
boot_disk_iothread = optional(bool, false)
boot_disk_ssd = optional(bool)
boot_disk_discard = optional(bool, false)
boot_disk_cache = optional(string, "writeback")
efi_disk = optional(object({
storage = string
efitype = optional(string, "4m")
format = optional(string, "raw")
pre_enrolled_keys = optional(bool, false)
}))

cidr = string
NAT_gateway_IPv4 = optional(string, "192.168.1.1")
vnic_bridge = optional(string, "vmbr0")
skip_ipv6 = optional(bool, true)

tags = optional(list(string), [])
onboot = optional(bool, true)
power_state = optional(string, "running")
boot_at_pve_start = optional(bool)
agent = optional(number, 1)

serial0 = optional(string)

dns_searchdomain = optional(string, "fritz.box")
dns_nameserver = optional(string, "192.168.1.230")

ciupgrade = optional(bool, true)
}))
n/a yes

Outputs

Name Description
vm_names Host names of the VMs