diff --git a/README.md b/README.md index eac7180..5faa457 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,7 @@ module "iosxr" { | [iosxr_logging_source_interface.logging_source_interface](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/logging_source_interface) | resource | | [iosxr_mpls_oam.mpls_oam](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/mpls_oam) | resource | | [iosxr_ntp.ntp](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/ntp) | resource | +| [iosxr_prefix_set.prefix_set](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/prefix_set) | resource | | [iosxr_router_static_ipv4_unicast.router_static_ipv4_unicast](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/router_static_ipv4_unicast) | resource | | [iosxr_segment_routing.segment_routing](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/segment_routing) | resource | | [iosxr_service_timestamps.service_timestamps](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/service_timestamps) | resource | diff --git a/iosxr_prefix_set.tf b/iosxr_prefix_set.tf new file mode 100644 index 0000000..2f2cf0a --- /dev/null +++ b/iosxr_prefix_set.tf @@ -0,0 +1,22 @@ +locals { + device_prefix_sets = flatten([ + for device in local.devices : [ + for prefix_set in try(local.device_config[device.name].prefix_set, []) : { + device_name = device.name + set_name = try(prefix_set.set_name, local.defaults.iosxr.configuration.prefix_set.set_name, null) + rpl = try(prefix_set.rpl, local.defaults.iosxr.configuration.prefix_set.rpl, null) + key = try("${device.name}-${prefix_set.set_name}", null) + } + if try(prefix_set.set_name, local.defaults.iosxr.configuration.prefix_set.set_name, null) != null && + try(prefix_set.rpl, local.defaults.iosxr.configuration.prefix_set.rpl, null) != null + ] + ]) +} + +resource "iosxr_prefix_set" "prefix_set" { + for_each = { for prefix_set in local.device_prefix_sets : prefix_set.key => prefix_set } + + device = each.value.device_name + set_name = each.value.set_name + rpl = each.value.rpl +} \ No newline at end of file