diff --git a/terraform/locals.tf b/terraform/locals.tf index 285fcc2..ac1d685 100644 --- a/terraform/locals.tf +++ b/terraform/locals.tf @@ -10,12 +10,12 @@ locals { # VLAN 30: Docker "vm-docker-mailcow-300" = { id = 300, cores = 4, memory = 8192, vlan = 30, tags = "docker,mailcow", ip = "10.100.30.10", gw = "10.100.30.1" } "vm-docker-apps-301" = { id = 301, cores = 2, memory = 4096, vlan = 30, tags = "docker,apps", ip = "10.100.30.11", gw = "10.100.30.1" } - "vm-docker-traefik-302" = { id = 302, cores = 1, memory = 2048, vlan = 30, tags = "docker,ingress", ip = "10.100.30.12", gw = "10.100.30.1" } + # vm-docker-traefik-302 entfernt (Traefik Edge läuft jetzt im k3s Cluster) # VLAN 40: K3s (HA Control Plane) - "vm-k3s-master-400" = { id = 400, cores = 2, memory = 10240, vlan = 40, tags = "k3s,master", ip = "10.100.40.10", gw = "10.100.40.1" } - "vm-k3s-master-401" = { id = 401, cores = 2, memory = 10240, vlan = 40, tags = "k3s,master", ip = "10.100.40.11", gw = "10.100.40.1" } - "vm-k3s-master-402" = { id = 402, cores = 2, memory = 10240, vlan = 40, tags = "k3s,master", ip = "10.100.40.12", gw = "10.100.40.1" } + "vm-k3s-master-400" = { id = 400, cores = 4, memory = 16000, vlan = 40, tags = "k3s,master", ip = "10.100.40.10", gw = "10.100.40.1" } + "vm-k3s-master-401" = { id = 401, cores = 4, memory = 16000, vlan = 40, tags = "k3s,master", ip = "10.100.40.11", gw = "10.100.40.1" } + "vm-k3s-master-402" = { id = 402, cores = 4, memory = 16000, vlan = 40, tags = "k3s,master", ip = "10.100.40.12", gw = "10.100.40.1" } # VLAN 90: Bastion "vm-bastion-900" = { id = 900, cores = 1, memory = 2048, vlan = 90, tags = "bastion", ip = "10.100.90.10", gw = "10.100.90.1" } diff --git a/terraform/main.tf b/terraform/main.tf index 96479a0..469cf69 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -36,6 +36,18 @@ resource "proxmox_vm_qemu" "vm_deployment" { storage = "local-lvm" iothread = true } + + # Additional 100GB disk for Longhorn storage (only for k3s master nodes) + dynamic "disk" { + for_each = contains(split(",", each.value.tags), "k3s") && contains(split(",", each.value.tags), "master") ? [1] : [] + content { + slot = "scsi1" + size = "100G" + type = "disk" + storage = "local-lvm" + iothread = true + } + } disk { slot = "ide2"