mirror of
https://gitea.fenix-dev.com/fenix-gitea-admin/iac-opentofu-private.git
synced 2025-10-27 15:53:06 +00:00
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:
47
proxmox.tf
47
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]
|
||||
|
||||
Reference in New Issue
Block a user