Files
TerraHome/terraform/main.tf

141 lines
2.5 KiB
Terraform
Raw Normal View History

2025-04-17 01:28:18 +01:00
terraform {
backend "s3" {}
2025-04-17 01:28:18 +01:00
required_providers {
proxmox = {
source = "Telmate/proxmox"
version = "3.0.2-rc07"
2025-04-17 01:28:18 +01:00
}
}
}
provider "proxmox" {
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
}
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
automatic_reboot = true
2025-04-17 16:46:19 +01:00
cpu {
sockets = 1
cores = var.control_plane_cores
}
memory = var.control_plane_memory_mb
2025-04-17 20:07:17 +01:00
scsihw = "virtio-scsi-pci"
boot = "order=scsi0"
bootdisk = "scsi0"
2025-04-17 20:07:17 +01:00
ipconfig0 = "ip=dhcp"
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 {
scsi {
scsi0 {
2025-04-18 12:12:52 +01:00
disk {
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
}
lifecycle {
ignore_changes = [
boot,
bootdisk,
scsihw,
ipconfig0,
ciuser,
sshkeys,
]
}
2025-04-17 02:31:15 +01:00
}
2025-04-17 01:28:18 +01:00
2025-04-17 16:46:19 +01: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
automatic_reboot = true
2025-04-17 16:46:19 +01:00
cpu {
sockets = 1
cores = var.worker_cores[count.index]
}
memory = var.worker_memory_mb[count.index]
2025-04-17 20:07:17 +01:00
scsihw = "virtio-scsi-pci"
boot = "order=scsi0"
bootdisk = "scsi0"
2025-04-17 20:07:17 +01:00
ipconfig0 = "ip=dhcp"
ciuser = "micqdf"
sshkeys = var.SSH_KEY_PUBLIC
2025-04-17 02:31:15 +01:00
2025-04-18 12:12:52 +01:00
disks {
scsi {
scsi0 {
2025-04-18 12:12:52 +01:00
disk {
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
}
lifecycle {
ignore_changes = [
boot,
bootdisk,
scsihw,
ipconfig0,
ciuser,
sshkeys,
]
}
2025-04-17 13:43:23 +01:00
}