Merge pull request 'Update proxmox.tf' (#155) from fenix-admin into main

Reviewed-on: fenix-gitea-admin/iac-teste#155
This commit is contained in:
2025-08-26 19:15:28 +00:00

View File

@ -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]