Add infrastructure packages: terraform-pve, ansible-push, wolfstack-keepalived, terraform-pve-vm
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
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 = []
|
||||
}
|
||||
Reference in New Issue
Block a user