Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
ef0b91ae3d | |||
a202dc8ef3 | |||
a0fa66b93e | |||
071b71fa5c | |||
ad0287e0f3 |
25
main.tf
25
main.tf
@ -1,3 +1,21 @@
|
||||
locals {
|
||||
ipv4_addresses = {
|
||||
for server_key, server in var.server : server.name => flatten([
|
||||
for k, v in try(proxmox_virtual_environment_vm.server[server.name].ipv4_addresses, []) :
|
||||
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 {
|
||||
ipv6_addresses = {
|
||||
for server_key, server in var.server : server.name => flatten([
|
||||
for k, v in try(proxmox_virtual_environment_vm.server[server.name].ipv6_addresses, []) :
|
||||
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" {
|
||||
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)],
|
||||
"properties" : {
|
||||
"name" : each.value.name,
|
||||
"a" : concat(
|
||||
[
|
||||
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
|
||||
],
|
||||
),
|
||||
"a" : concat(local.ipv4_addresses[each.key]),
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -1,5 +1,8 @@
|
||||
output "output" {
|
||||
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[server_key] },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
@ -43,3 +43,8 @@ variable "server_guest_agent" {
|
||||
type = bool
|
||||
default = false
|
||||
}
|
||||
|
||||
variable "server_netif_filter" {
|
||||
type = string
|
||||
default = "^(eth|ens|enp).+"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user