Files
N8N/terraform/main.tf

52 lines
1.6 KiB
Terraform
Raw Normal View History

2026-05-20 22:26:32 +00:00
locals {
instance_map = var.instance_mode == "single" ? {
main = var.instance
} : var.instances
2026-05-21 13:12:12 +01:00
vm_created = {
for k, v in local.instance_map :
k => {
service_name = v.service_name
vm_name = v.vm_name
node_name = v.node_name
2026-05-21 13:13:49 +01:00
ipv4_address = module.vm-n8n[k].vm_ipv4_address
2026-05-21 13:12:12 +01:00
vm_tags = concat(
try(v.vm_tags, []),
2026-05-21 13:13:49 +01:00
["terraform", "docker", v.service_name, "ip-${replace(module.vm-n8n[k].vm_ipv4_address, ".", "-")}"]
2026-05-21 13:12:12 +01:00
)
}
}
2026-05-20 22:26:32 +00:00
}
2026-05-20 23:51:40 +01:00
module "vm-n8n" {
2026-05-20 22:26:32 +00:00
for_each = local.instance_map
2026-05-20 23:37:12 +01:00
source = "./modules/proxmox_ubuntu_cloudinit_template"
2026-05-20 22:26:32 +00:00
vm_name = each.value.vm_name
node_name = each.value.node_name
node_datastore = var.vm_defaults.node_datastore
bridge = var.vm_defaults.bridge
vm_cpu = coalesce(try(each.value.vm_cpu, null), var.vm_defaults.vm_cpu)
vm_ram = coalesce(try(each.value.vm_ram, null), var.vm_defaults.vm_ram)
vm_size = coalesce(try(each.value.vm_size, null), var.vm_defaults.vm_size)
vm_bios = var.vm_defaults.vm_bios
vm_machine = var.vm_defaults.vm_machine
vm_tags = concat(
try(each.value.vm_tags, []),
["terraform", "docker", each.value.service_name]
)
vm_user_sshkey = var.vm_defaults.vm_user_sshkey
}
2026-05-21 13:12:12 +01:00
module "inventory" {
source = "./modules/proxmox_ansible_inventory"
2026-05-21 16:20:22 +01:00
filename = "${path.root}/ansible/inventory/inventory.yml"
2026-05-21 13:12:12 +01:00
instances = local.vm_created
}
module "vm_data" {
source = "./modules/proxmox_vm_data"
2026-05-21 16:20:22 +01:00
filename = "${path.root}/terraform/vm_data.yml"
2026-05-21 13:12:12 +01:00
instances = local.vm_created
}