2025-04-17 01:28:18 +01:00
|
|
|
terraform {
|
2026-02-28 00:52:40 +00:00
|
|
|
backend "s3" {}
|
|
|
|
|
|
2025-04-17 01:28:18 +01:00
|
|
|
required_providers {
|
|
|
|
|
proxmox = {
|
|
|
|
|
source = "Telmate/proxmox"
|
2026-02-27 21:04:44 +00:00
|
|
|
version = "3.0.2-rc07"
|
2025-04-17 01:28:18 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
provider "proxmox" {
|
2026-02-27 20:43:39 +00:00
|
|
|
pm_api_url = var.pm_api_url
|
|
|
|
|
pm_api_token_id = var.pm_api_token_id
|
|
|
|
|
pm_api_token_secret = var.pm_api_token_secret
|
|
|
|
|
pm_tls_insecure = true
|
2025-04-17 01:28:18 +01:00
|
|
|
}
|
|
|
|
|
|
2026-02-28 14:16:55 +00:00
|
|
|
resource "proxmox_vm_qemu" "control_planes" {
|
2026-02-28 15:41:14 +00:00
|
|
|
count = var.control_plane_count
|
|
|
|
|
name = "cp-${count.index + 1}"
|
|
|
|
|
vmid = var.control_plane_vmid_start + count.index
|
|
|
|
|
target_node = var.target_node
|
|
|
|
|
clone = var.clone_template
|
|
|
|
|
full_clone = true
|
|
|
|
|
os_type = "cloud-init"
|
|
|
|
|
agent = 1
|
2026-02-28 15:40:18 +00:00
|
|
|
automatic_reboot = false
|
2025-04-17 16:46:19 +01:00
|
|
|
|
2026-02-28 01:10:19 +00:00
|
|
|
cpu {
|
2026-02-28 14:16:55 +00:00
|
|
|
sockets = 1
|
|
|
|
|
cores = var.control_plane_cores
|
2026-02-28 01:10:19 +00:00
|
|
|
}
|
2026-02-28 14:16:55 +00:00
|
|
|
memory = var.control_plane_memory_mb
|
2025-04-17 20:07:17 +01:00
|
|
|
scsihw = "virtio-scsi-pci"
|
2026-02-28 01:10:19 +00:00
|
|
|
boot = "order=scsi0"
|
|
|
|
|
bootdisk = "scsi0"
|
2025-04-17 20:07:17 +01:00
|
|
|
ipconfig0 = "ip=dhcp"
|
2026-02-28 14:48:14 +00:00
|
|
|
ciuser = "micqdf"
|
|
|
|
|
sshkeys = var.SSH_KEY_PUBLIC
|
2025-04-17 22:24:54 +01:00
|
|
|
|
2025-04-17 01:28:18 +01:00
|
|
|
|
2025-04-18 12:12:52 +01:00
|
|
|
disks {
|
2026-02-28 01:10:19 +00:00
|
|
|
scsi {
|
|
|
|
|
scsi0 {
|
2025-04-18 12:12:52 +01:00
|
|
|
disk {
|
2026-02-28 14:16:55 +00:00
|
|
|
size = var.control_plane_disk_size
|
2025-04-18 12:12:52 +01:00
|
|
|
storage = var.storage
|
|
|
|
|
}
|
2025-04-17 22:15:22 +01:00
|
|
|
}
|
2025-04-18 12:12:28 +01:00
|
|
|
}
|
|
|
|
|
|
2025-04-18 12:12:52 +01:00
|
|
|
ide {
|
|
|
|
|
ide2 {
|
|
|
|
|
cloudinit {
|
|
|
|
|
storage = var.storage
|
|
|
|
|
}
|
2025-04-17 22:15:22 +01:00
|
|
|
}
|
|
|
|
|
}
|
2025-04-17 01:28:18 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
network {
|
|
|
|
|
id = 0
|
|
|
|
|
model = "virtio"
|
|
|
|
|
bridge = var.bridge
|
|
|
|
|
}
|
2025-04-17 02:31:15 +01:00
|
|
|
}
|
2025-04-17 01:28:18 +01:00
|
|
|
|
2025-04-17 16:46:19 +01:00
|
|
|
|
2026-02-28 14:16:55 +00:00
|
|
|
resource "proxmox_vm_qemu" "workers" {
|
2026-02-28 15:41:14 +00:00
|
|
|
count = var.worker_count
|
|
|
|
|
name = "wk-${count.index + 1}"
|
|
|
|
|
vmid = var.worker_vmid_start + count.index
|
|
|
|
|
target_node = var.target_node
|
|
|
|
|
clone = var.clone_template
|
|
|
|
|
full_clone = true
|
|
|
|
|
os_type = "cloud-init"
|
|
|
|
|
agent = 1
|
2026-02-28 15:40:18 +00:00
|
|
|
automatic_reboot = false
|
2025-04-17 16:46:19 +01:00
|
|
|
|
2026-02-28 01:10:19 +00:00
|
|
|
cpu {
|
2026-02-28 14:16:55 +00:00
|
|
|
sockets = 1
|
|
|
|
|
cores = var.worker_cores[count.index]
|
2026-02-28 01:10:19 +00:00
|
|
|
}
|
2026-02-28 14:16:55 +00:00
|
|
|
memory = var.worker_memory_mb[count.index]
|
2025-04-17 20:07:17 +01:00
|
|
|
scsihw = "virtio-scsi-pci"
|
2026-02-28 01:10:19 +00:00
|
|
|
boot = "order=scsi0"
|
|
|
|
|
bootdisk = "scsi0"
|
2025-04-17 20:07:17 +01:00
|
|
|
ipconfig0 = "ip=dhcp"
|
2026-02-28 14:48:14 +00:00
|
|
|
ciuser = "micqdf"
|
|
|
|
|
sshkeys = var.SSH_KEY_PUBLIC
|
2025-04-17 02:31:15 +01:00
|
|
|
|
2025-04-18 12:12:52 +01:00
|
|
|
disks {
|
2026-02-28 01:10:19 +00:00
|
|
|
scsi {
|
|
|
|
|
scsi0 {
|
2025-04-18 12:12:52 +01:00
|
|
|
disk {
|
2026-02-28 14:16:55 +00:00
|
|
|
size = var.worker_disk_size
|
2025-04-18 12:12:52 +01:00
|
|
|
storage = var.storage
|
|
|
|
|
}
|
2025-04-17 22:15:22 +01:00
|
|
|
}
|
2025-04-18 12:12:28 +01:00
|
|
|
}
|
|
|
|
|
|
2025-04-18 12:12:52 +01:00
|
|
|
ide {
|
|
|
|
|
ide2 {
|
|
|
|
|
cloudinit {
|
|
|
|
|
storage = var.storage
|
|
|
|
|
}
|
2025-04-17 22:15:22 +01:00
|
|
|
}
|
|
|
|
|
}
|
2025-04-17 02:31:15 +01:00
|
|
|
}
|
2025-04-18 12:12:28 +01:00
|
|
|
|
2025-04-17 02:31:15 +01:00
|
|
|
|
|
|
|
|
network {
|
|
|
|
|
id = 0
|
|
|
|
|
model = "virtio"
|
|
|
|
|
bridge = var.bridge
|
|
|
|
|
}
|
2025-04-17 13:43:23 +01:00
|
|
|
}
|