feat(fastpass): Talos cluster provisioning and bootstrap
- Terraform: VM provisioning, Unifi DHCP, Technitium DNS - talhelper: cluster config for 6-node Talos cluster - Cilium 1.19.4 CNI with Talos-compatible security context - docs: city-hall setup guide and bootstrap runbook
This commit is contained in:
71
terraform/talos/modules/node/variables.tf
Normal file
71
terraform/talos/modules/node/variables.tf
Normal file
@@ -0,0 +1,71 @@
|
||||
# ─── Provider Authentication ─────────────────────────────────────────────────
|
||||
# Passed through from the cluster root module — not declared here since
|
||||
# provider config lives in the root module's providers.tf.
|
||||
|
||||
# ─── Node Identity ───────────────────────────────────────────────────────────
|
||||
|
||||
variable "hostname" {
|
||||
type = string
|
||||
description = "Node hostname (e.g., space-mountain). Used as the Proxmox VM name."
|
||||
}
|
||||
|
||||
variable "vm_id" {
|
||||
type = number
|
||||
description = "Proxmox VM ID. Convention: {third_octet}{fourth_octet:03d} (e.g., 10.1.71.66 → 71066)."
|
||||
}
|
||||
|
||||
variable "node_role" {
|
||||
type = string
|
||||
description = "Role of the node in the cluster. Used for tagging."
|
||||
|
||||
validation {
|
||||
condition = contains(["controlplane", "worker"], var.node_role)
|
||||
error_message = "node_role must be 'controlplane' or 'worker'."
|
||||
}
|
||||
}
|
||||
|
||||
# ─── Proxmox Placement ───────────────────────────────────────────────────────
|
||||
|
||||
variable "target_node" {
|
||||
type = string
|
||||
description = "Proxmox node to place this VM on (e.g., main-street-usa, tomorrowland, fantasyland)."
|
||||
}
|
||||
|
||||
variable "datastore" {
|
||||
type = string
|
||||
description = "Proxmox storage pool for the VM disk."
|
||||
default = "liberty-tree"
|
||||
}
|
||||
|
||||
# ─── Boot Image ──────────────────────────────────────────────────────────────
|
||||
|
||||
variable "iso_file_id" {
|
||||
type = string
|
||||
description = "Proxmox file ID for the Talos ISO (e.g., local:iso/talos-v1.9.5-metal-amd64.iso). Output from proxmox_virtual_environment_download_file."
|
||||
}
|
||||
|
||||
# ─── Hardware ────────────────────────────────────────────────────────────────
|
||||
|
||||
variable "cpu_cores" {
|
||||
type = number
|
||||
description = "Number of vCPU cores."
|
||||
}
|
||||
|
||||
variable "memory_mb" {
|
||||
type = number
|
||||
description = "RAM in megabytes."
|
||||
}
|
||||
|
||||
variable "disk_size" {
|
||||
type = number
|
||||
description = "OS disk size in gigabytes. Talos manages its own partition layout."
|
||||
}
|
||||
|
||||
# ─── Network ─────────────────────────────────────────────────────────────────
|
||||
|
||||
variable "bridge" {
|
||||
type = string
|
||||
description = "Proxmox network bridge."
|
||||
default = "vmbr0"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user