diff --git a/proxmox.tf b/proxmox.tf index a3ddd71..5c7a7c5 100644 --- a/proxmox.tf +++ b/proxmox.tf @@ -36,24 +36,40 @@ resource "proxmox_virtual_environment_file" "cloud_init_yaml" { locals { - rendered_yaml = templatefile("${path.module}/cloud-init-vm.yaml.tftpl", { - # Aqui colocas as variáveis que o template precisa - hostname = "vm-k8s" - fqdn = "vm-k8s.local" - # Adiciona mais conforme necessário - }) + rendered_yaml_per_vm ={ + for vm in var.proxmox_k8s_vms : vm.name => + templatefile("${path.module}/cloud-init-vm.yaml.tftpl", { + # Aqui colocas as variáveis que o template precisa + hostname = "vm-k8s" + fqdn = "vm-k8s.local" + # Adiciona mais conforme necessário + }) + } } + data "external" "merged_yaml" { + for_each = { for vm in var.proxmox_k8s_vms : vm.name => vm } + + depends_on = [local_file.rendered_yaml_file] + program = ["python3", "${path.module}/merge_yaml.py"] query = { file1 = "${path.module}/cloud-init-base.yaml" - file2 = local.rendered_yaml + file2 = "${path.module}/cloud-init-extra-${each.key}.yaml" } } +resource "local_file" "rendered_yaml_file" { + for_each = { for vm in var.proxmox_k8s_vms : vm.name => vm } + + content = local.rendered_yaml_per_vm[each.key] + filename = "${path.module}/cloud-init-extra-${each.key}.yaml" +} + + # Gerar um snippet cloud-init por VM resource "proxmox_virtual_environment_file" "vm_user_data" { for_each = { for vm in var.proxmox_k8s_vms : vm.name => vm } @@ -63,7 +79,7 @@ resource "proxmox_virtual_environment_file" "vm_user_data" { content_type = "snippets" source_raw { file_name = "cloud-init-iac-k8s-${each.key}.yaml" - data = data.external.merged_yaml.result["merged_yaml"] + data = data.external.merged_yaml[each.key].result["merged_yaml"] } }