From 59154e65fda9e7fc96305a1ef036a72d0993933c Mon Sep 17 00:00:00 2001 From: fenix-gitea-admin Date: Tue, 26 Aug 2025 19:14:38 +0000 Subject: [PATCH] Update proxmox.tf --- proxmox.tf | 47 +++++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/proxmox.tf b/proxmox.tf index 2968ff2..f0d5037 100644 --- a/proxmox.tf +++ b/proxmox.tf @@ -66,32 +66,35 @@ locals { } merge = (function([any, any], any) => { local._deep_merge_impl(args[0],args[1]) }) - # Função recursiva para merge de mapas/listas - deep_merge = { - _deep_merge_impl = (function(any, any) any => { - let base = args[0] - let override = args[1] - let result = {} - in merge( - result, - { for k in setunion(keys(base), keys(override)) : - k => ( - contains([list, map], type(base[k])) && contains([list, map], type(override[k])) ? - (type(base[k]) == list ? concat(base[k], override[k]) : local.deep_merge._deep_merge_impl(base[k], override[k])) - : - can(override[k]) ? override[k] : base[k] - ) + + deep_merge = function("deep_merge", [any, any], any, <<-EOT + base, override = args + result = {} + for k in setunion(keys(base), keys(override)) { + if can(base[k]) && can(override[k]) { + if type(base[k]) == list && type(override[k]) == list { + result[k] = concat(base[k], override[k]) + } else if type(base[k]) == map && type(override[k]) == map { + result[k] = deep_merge(base[k], override[k]) + } else { + result[k] = override[k] } - ) - - }) + } else if can(override[k]) { + result[k] = override[k] + } else { + result[k] = base[k] + } + } + return result + EOT + ) + + merged_cloudinit = { + for vm_name, vm_cfg in local.vm_cloudinits : + vm_name => local.deep_merge(local.base_cloudinit, vm_cfg) } - - merged_cloudinit = { for vm_name, vm_cfg in local.vm_cloudinits : vm_name => local.deep_merge._deep_merge_impl(local.base_cloudinit, vm_cfg) } - } - resource "proxmox_virtual_environment_vm" "proxmox-kubernetes-VM-template" { depends_on = [proxmox_virtual_environment_download_file.latest_ubunto_cloud_img, proxmox_virtual_environment_file.cloud_init_yaml]