129 lines
No EOL
2.6 KiB
HCL
129 lines
No EOL
2.6 KiB
HCL
variable "proxmox_api_url" {
|
|
description = "Proxmox API URL"
|
|
type = string
|
|
}
|
|
|
|
variable "proxmox_user" {
|
|
description = "Proxmox user"
|
|
type = string
|
|
default = "root@pam"
|
|
}
|
|
|
|
variable "proxmox_password" {
|
|
description = "Proxmox password"
|
|
type = string
|
|
sensitive = true
|
|
}
|
|
|
|
variable "proxmox_tls_insecure" {
|
|
description = "Allow insecure TLS for Proxmox API"
|
|
type = bool
|
|
default = true
|
|
}
|
|
|
|
variable "proxmox_host" {
|
|
description = "Proxmox host for SSH commands"
|
|
type = string
|
|
}
|
|
|
|
variable "proxmox_nodes" {
|
|
description = "List of Proxmox nodes to distribute VMs across"
|
|
type = list(string)
|
|
default = ["pve1", "pve2", "pve3"]
|
|
}
|
|
|
|
variable "proxmox_storage" {
|
|
description = "Proxmox storage pool"
|
|
type = string
|
|
default = "local-lvm"
|
|
}
|
|
|
|
variable "debian_template_name" {
|
|
description = "Name of Debian cloud-init template VM"
|
|
type = string
|
|
default = "debian13-cloud"
|
|
}
|
|
|
|
variable "network_bridge" {
|
|
description = "Network bridge"
|
|
type = string
|
|
default = "vmbr0"
|
|
}
|
|
|
|
variable "vlan_tag" {
|
|
description = "VLAN tag for cluster network"
|
|
type = number
|
|
default = -1
|
|
}
|
|
|
|
variable "gateway" {
|
|
description = "Network gateway"
|
|
type = string
|
|
default = "10.0.0.1"
|
|
}
|
|
|
|
variable "control_plane_count" {
|
|
description = "Number of control plane nodes"
|
|
type = number
|
|
default = 3
|
|
}
|
|
|
|
variable "worker_count" {
|
|
description = "Number of worker nodes"
|
|
type = number
|
|
default = 2
|
|
}
|
|
|
|
variable "control_plane_specs" {
|
|
description = "Specifications for control plane nodes"
|
|
type = object({
|
|
cores = number
|
|
memory = number
|
|
disk_size = string
|
|
})
|
|
default = {
|
|
cores = 4
|
|
memory = 8192
|
|
disk_size = "50G"
|
|
}
|
|
}
|
|
|
|
variable "worker_specs" {
|
|
description = "Specifications for worker nodes"
|
|
type = object({
|
|
cores = number
|
|
memory = number
|
|
disk_size = string
|
|
storage_disk_size = string
|
|
})
|
|
default = {
|
|
cores = 8
|
|
memory = 16384
|
|
disk_size = "50G"
|
|
storage_disk_size = "200G"
|
|
}
|
|
}
|
|
|
|
variable "control_plane_ips" {
|
|
description = "Static IPs for control plane nodes"
|
|
type = list(string)
|
|
default = [
|
|
"10.0.0.101",
|
|
"10.0.0.102",
|
|
"10.0.0.103"
|
|
]
|
|
}
|
|
|
|
variable "worker_ips" {
|
|
description = "Static IPs for worker nodes"
|
|
type = list(string)
|
|
default = [
|
|
"10.0.0.111",
|
|
"10.0.0.112"
|
|
]
|
|
}
|
|
|
|
variable "ssh_public_key" {
|
|
description = "SSH public key for node access"
|
|
type = string
|
|
} |