mirror of
https://gitea.fenix-dev.com/fenix-gitea-admin/iac-opentofu-private.git
synced 2025-10-27 23:57:59 +00:00
Merge pull request 'fenix-admin' (#168) from fenix-admin into main
Reviewed-on: fenix-gitea-admin/iac-teste#168
This commit is contained in:
48
proxmox.tf
48
proxmox.tf
@ -47,43 +47,27 @@ resource "proxmox_virtual_environment_file" "vm_user_data" {
|
|||||||
source_raw {
|
source_raw {
|
||||||
file_name = "cloud-init-iac-k8s-${each.key}.yaml"
|
file_name = "cloud-init-iac-k8s-${each.key}.yaml"
|
||||||
data = yamlencode(
|
data = yamlencode(
|
||||||
local.deep_merge(
|
merge(
|
||||||
[
|
|
||||||
yamldecode(file("${path.module}/cloud-init-base.yaml")),
|
yamldecode(file("${path.module}/cloud-init-base.yaml")),
|
||||||
yamldecode(templatefile("${path.module}/cloud-init-vm.yaml.tftpl", {
|
{
|
||||||
extra_packages = try(each.value.extra_packages, []),
|
packages = concat(
|
||||||
extra_users = try(each.value.extra_users, []),
|
try(yamldecode(file("${path.module}/cloud-init-base.yaml")).packages, []),
|
||||||
extra_runcmd = try(each.value.extra_runcmd, []),
|
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, [])
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
locals {
|
|
||||||
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
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "proxmox_virtual_environment_vm" "proxmox-kubernetes-VM-template" {
|
resource "proxmox_virtual_environment_vm" "proxmox-kubernetes-VM-template" {
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user