diff --git a/proxmox.tf b/proxmox.tf index 1d3476b..a5ef41c 100644 --- a/proxmox.tf +++ b/proxmox.tf @@ -35,6 +35,15 @@ resource "proxmox_virtual_environment_file" "cloud_init_yaml" { } +data "external" "merged_yaml" { + program = ["python3", "${path.module}/merge_yaml.py"] + + query = { + file1 = "${path.module}/cloud-init-base.yaml" + file2 = "${path.module}/cloud-init-extra.yaml" + } +} + # Gerar um snippet cloud-init por VM resource "proxmox_virtual_environment_file" "vm_user_data" { @@ -43,30 +52,10 @@ resource "proxmox_virtual_environment_file" "vm_user_data" { node_name = "fenix" datastore_id = "local-snippets" content_type = "snippets" - source_raw { file_name = "cloud-init-iac-k8s-${each.key}.yaml" - data = yamlencode( - merge( - yamldecode(file("${path.module}/cloud-init-base.yaml")), - { - packages = concat( - try(yamldecode(file("${path.module}/cloud-init-base.yaml")).packages, []), - try(each.value.extra_packages, []) - ), - users = concat( - try(yamldecode(file("${path.module}/cloud-init-base.yaml")).users, []), - try(each.value.extra_users, []) - ), - runcmd = concat( - try(yamldecode(file("${path.module}/cloud-init-base.yaml")).runcmd, []), - try(each.value.extra_runcmd, []) - ) - } - ) - ) + data = data.external.merged_yaml.result["merged_yaml"] } - }