Compare commits

...

4 Commits
v1.0.3 ... main

Author SHA1 Message Date
ef0b91ae3d fix: use try to set default for server list (#7)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/build-package Pipeline was successful
ci/woodpecker/tag/test Pipeline was successful
ci/woodpecker/tag/build-package Pipeline was successful
Reviewed-on: #7
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
Co-committed-by: Robert Kaussow <mail@thegeeklab.de>
2024-04-11 15:52:04 +02:00
a202dc8ef3 fix: use include match for server_netif_filter (#6)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/build-package Pipeline was successful
ci/woodpecker/tag/test Pipeline was successful
ci/woodpecker/tag/build-package Pipeline was successful
Reviewed-on: #6
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
Co-committed-by: Robert Kaussow <mail@thegeeklab.de>
2024-03-26 21:22:53 +01:00
a0fa66b93e feat: add var server_netif_filter to overwrite interface filter (#5)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/build-package Pipeline was successful
ci/woodpecker/tag/test Pipeline was successful
ci/woodpecker/tag/build-package Pipeline was successful
Reviewed-on: #5
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
Co-committed-by: Robert Kaussow <mail@thegeeklab.de>
2024-03-22 12:06:02 +01:00
071b71fa5c fix: use ip address map indexed by server key (#4)
All checks were successful
ci/woodpecker/push/test Pipeline was successful
ci/woodpecker/push/build-package Pipeline was successful
ci/woodpecker/tag/test Pipeline was successful
ci/woodpecker/tag/build-package Pipeline was successful
Reviewed-on: #4
Co-authored-by: Robert Kaussow <mail@thegeeklab.de>
Co-committed-by: Robert Kaussow <mail@thegeeklab.de>
2024-03-20 22:45:08 +01:00
3 changed files with 19 additions and 15 deletions

22
main.tf
View File

@ -1,20 +1,20 @@
locals { locals {
ipv4_addresses = flatten([ ipv4_addresses = {
for server_key, server in var.server : [ for server_key, server in var.server : server.name => flatten([
for k, v in coalescelist(proxmox_virtual_environment_vm.server[server.name].ipv4_addresses, []) : for k, v in try(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 v if length(regexall(try(server.netif_filter, var.server_netif_filter), proxmox_virtual_environment_vm.server[server.name].network_interface_names[k])) > 0
]
]) ])
} }
}
locals { locals {
ipv6_addresses = flatten([ ipv6_addresses = {
for server_key, server in var.server : [ for server_key, server in var.server : server.name => flatten([
for k, v in coalescelist(proxmox_virtual_environment_vm.server[server.name].ipv6_addresses, []) : for k, v in try(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 v if length(regexall(try(server.netif_filter, var.server_netif_filter), 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 }
@ -113,7 +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(local.ipv4_addresses, local.ipv6_addresses), "a" : concat(local.ipv4_addresses[each.key]),
} }
}) })
} }

View File

@ -2,8 +2,7 @@ output "output" {
value = { value = {
for server_key, server in proxmox_virtual_environment_vm.server : server_key => merge( for server_key, server in proxmox_virtual_environment_vm.server : server_key => merge(
server, server,
{ ipv4_addresses = local.ipv4_addresses }, { ipv4_addresses = local.ipv4_addresses[server_key] },
{ ipv6_addresses = local.ipv6_addresses }
) )
} }
} }

View File

@ -43,3 +43,8 @@ variable "server_guest_agent" {
type = bool type = bool
default = false default = false
} }
variable "server_netif_filter" {
type = string
default = "^(eth|ens|enp).+"
}