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:
45
proxmox.tf
45
proxmox.tf
@ -66,32 +66,35 @@ locals {
|
|||||||
}
|
}
|
||||||
merge = (function([any, any], any) => { local._deep_merge_impl(args[0],args[1]) })
|
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 = function("deep_merge", [any, any], any, <<-EOT
|
||||||
_deep_merge_impl = (function(any, any) any => {
|
base, override = args
|
||||||
let base = args[0]
|
result = {}
|
||||||
let override = args[1]
|
for k in setunion(keys(base), keys(override)) {
|
||||||
let result = {}
|
if can(base[k]) && can(override[k]) {
|
||||||
in merge(
|
if type(base[k]) == list && type(override[k]) == list {
|
||||||
result,
|
result[k] = concat(base[k], override[k])
|
||||||
{ for k in setunion(keys(base), keys(override)) :
|
} else if type(base[k]) == map && type(override[k]) == map {
|
||||||
k => (
|
result[k] = deep_merge(base[k], override[k])
|
||||||
contains([list, map], type(base[k])) && contains([list, map], type(override[k])) ?
|
} else {
|
||||||
(type(base[k]) == list ? concat(base[k], override[k]) : local.deep_merge._deep_merge_impl(base[k], override[k]))
|
result[k] = override[k]
|
||||||
:
|
|
||||||
can(override[k]) ? override[k] : base[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" {
|
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]
|
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