variable "pm_api_url" { description = "Proxmox API URL" type = string default = "https://192.168.7.33:8006/api2/json" } variable "pm_api_token_id" { description = "Proxmox API token ID" type = string default = "root@pam!terraform" } variable "pm_api_token_secret" { description = "Proxmox API token secret" type = string sensitive = true } variable "node" { description = "Target PVE node" type = string default = "mk33" } # ── Batch / Dynamic Parameters ─────────────────────────────── variable "vmid_base" { description = "Starting VMID for the first LXC" type = number default = 5050 } variable "lxc_count" { description = "Number of LXCs to create" type = number default = 1 } variable "subnet_prefix" { description = "First two octets of IPv4 (e.g. 192.168)" type = string default = "192.168" } variable "name_prefix" { description = "Hostname prefix for LXCs" type = string default = "lxc" } # ── Static Per-LXC Parameters (fixed for POC) ──────────────── variable "cores" { description = "CPU cores per LXC" type = number default = 2 } variable "memory" { description = "RAM in MB per LXC" type = number default = 2048 } variable "storage" { description = "Storage pool" type = string default = "local" } variable "rootfs_size" { description = "Root filesystem size in GB" type = number default = 8 } variable "gateway" { description = "IPv4 gateway" type = string default = "192.168.18.1" } variable "dns_servers" { description = "DNS servers" type = list(string) default = ["192.168.7.7", "192.168.18.1", "1.1.1.1"] } variable "ssh_key_path" { description = "Path to SSH public key for jarvis user" type = string default = "artemis_key.pub" } variable "template_file_id" { description = "LXC OS template file ID (storage:path)" type = string default = "nas-ct-stor:vztmpl/debian-12-standard_12.12-1_amd64.tar.zst" } variable "password" { description = "Root password for console login" type = string sensitive = true default = "" } variable "tags" { description = "Base tags for all LXCs" type = list(string) default = ["terraform", "batch"] } variable "unprivileged" { description = "Run as unprivileged container" type = bool default = false } variable "devices" { description = "Device passthrough configs for LXC" type = list(object({ path = string mode = optional(string, "0666") uid = optional(number, 0) gid = optional(number, 0) deny_write = optional(bool, false) })) default = [] }