Files
Compose-Files/Terraform/netbird-group/files/main.tf
T
2026-07-20 09:23:17 -04:00

54 lines
1.5 KiB
Terraform

<%- if peer_names %>
locals {
netbird_group_peer_names = [
for name in split(",", "<< peer_names >>") : trimspace(name)
if trimspace(name) != ""
]
}
data "netbird_peer" "group_peers" {
for_each = toset(local.netbird_group_peer_names)
name = each.value
}
<%- endif %>
<%- if resource_lookups %>
locals {
netbird_group_resource_items = [
for item in split(";", "<< resource_lookups >>") : trimspace(item)
if trimspace(item) != ""
]
netbird_group_resource_lookup_map = {
for item in local.netbird_group_resource_items :
item => {
network = trimspace(split("|", item)[0])
name = trimspace(split("|", item)[1])
}
}
netbird_group_resource_network_names = distinct([
for lookup in values(local.netbird_group_resource_lookup_map) : lookup.network
])
}
data "netbird_network" "group_resource_networks" {
for_each = toset(local.netbird_group_resource_network_names)
name = each.value
}
data "netbird_network_resource" "group_resources" {
for_each = local.netbird_group_resource_lookup_map
network_id = data.netbird_network.group_resource_networks[each.value.network].id
name = each.value.name
}
<%- endif %>
resource "netbird_group" "group" {
name = "<< group_name >>"
<%- if peer_names %>
peers = [for name in local.netbird_group_peer_names : data.netbird_peer.group_peers[name].id]
<%- endif %>
<%- if resource_lookups %>
resources = [for item in local.netbird_group_resource_items : data.netbird_network_resource.group_resources[item].id]
<%- endif %>
}