fix: add filter to remove loopback and overlay networks from ip lists
All checks were successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build-package Pipeline was successful

This commit is contained in:
Robert Kaussow 2024-03-17 12:05:53 +01:00
parent b01508236b
commit 52339f1f05
Signed by: xoxys
GPG Key ID: 4E692A2EAECC03C0
2 changed files with 24 additions and 7 deletions

25
main.tf
View File

@ -1,3 +1,21 @@
locals {
ipv4_addresses = flatten([
for server_key, server in var.server : [
for k, v in coalescelist(proxmox_virtual_environment_vm.server[server.name].ipv4_addresses, []) :
v if length(regexall("^(lo|docker|veth).*", proxmox_virtual_environment_vm.server[server.name].network_interface_names[k])) == 0
]
])
}
locals {
ipv6_addresses = flatten([
for server_key, server in var.server : [
for k, v in coalescelist(proxmox_virtual_environment_vm.server[server.name].ipv6_addresses, []) :
v if length(regexall("^(lo|docker|veth).*", proxmox_virtual_environment_vm.server[server.name].network_interface_names[k])) == 0
]
])
}
resource "proxmox_virtual_environment_vm" "server" { resource "proxmox_virtual_environment_vm" "server" {
for_each = { for row in var.server : row.name => row } for_each = { for row in var.server : row.name => row }
@ -95,12 +113,7 @@ resource "restapi_object" "ucs_server" {
"position" : var.ucs_zones[try(each.value.dns_zone, var.server_dns_zone)], "position" : var.ucs_zones[try(each.value.dns_zone, var.server_dns_zone)],
"properties" : { "properties" : {
"name" : each.value.name, "name" : each.value.name,
"a" : concat( "a" : concat(local.ipv4_addresses, local.ipv6_addresses),
[
for k, v in flatten(coalesce(proxmox_virtual_environment_vm.server[each.value.name].ipv4_addresses, [])) :
v if length(regexall(proxmox_virtual_environment_vm.server[each.value.name].network_interface_names[k], "^(lo|docker).*")) == 0
],
),
} }
}) })
} }

View File

@ -1,5 +1,9 @@
output "output" { output "output" {
value = { value = {
for server_key, server in proxmox_virtual_environment_vm.server : server_key => server for server_key, server in proxmox_virtual_environment_vm.server : server_key => merge(
server,
{ ipv4_addresses = local.ipv4_addresses },
{ ipv6_addresses = local.ipv6_addresses }
)
} }
} }