Skip to content

Commit 81c2814

Browse files
author
mhamroz
committed
added fabric multicast support
1 parent 832250c commit 81c2814

1 file changed

Lines changed: 57 additions & 1 deletion

File tree

cc_fabric.tf

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,4 +607,60 @@ resource "catalystcenter_fabric_port_assignments" "port_assignments" {
607607
port_assignments = try(local.device_port_assignments[each.key], null)
608608

609609
depends_on = [catalystcenter_fabric_device.edge_device, catalystcenter_fabric_device.border_device, catalystcenter_fabric_devices.fabric_devices, catalystcenter_provision_devices.provision_devices, catalystcenter_provision_device.provision_device, catalystcenter_anycast_gateway.anycast_gateway]
610-
}
610+
}
611+
612+
613+
locals {
614+
fabric_multicast_configs = {
615+
for fabric_site in try(local.catalyst_center.fabric.fabric_sites, []) :
616+
fabric_site.name => {
617+
fabric_site_name = fabric_site.name
618+
virtual_networks = [
619+
for vn in try(fabric_site.multicast.virtual_networks, []) : {
620+
virtual_network_name = try(vn.name, null)
621+
ip_pool_name = try(vn.ipPoolName, null)
622+
ipv4_ssm_ranges = try(vn.ipv4_ssm_ranges, null) != null ? [try(vn.ipv4_ssm_ranges, null)] : []
623+
multicast_RPs = try(vn.multicast_RPs, [])
624+
}
625+
]
626+
} if try(fabric_site.multicast, null) != null
627+
}
628+
}
629+
630+
resource "catalystcenter_fabric_multicast_virtual_networks" "multicast" {
631+
for_each = {
632+
for fabric_site, config in local.fabric_multicast_configs :
633+
fabric_site => config
634+
if contains(local.sites, fabric_site) && length(config.virtual_networks) > 0
635+
}
636+
637+
fabric_id = try(catalystcenter_fabric_site.fabric_site[each.key].id, null)
638+
639+
virtual_networks = [
640+
for vn in each.value.virtual_networks : {
641+
fabric_id = try(catalystcenter_fabric_site.fabric_site[each.key].id, null)
642+
virtual_network_name = try(vn.virtual_network_name, null)
643+
ip_pool_name = try(vn.ip_pool_name, null)
644+
ipv4_ssm_ranges = try(vn.ipv4_ssm_ranges, [])
645+
multicast_rps = [
646+
for rp in try(vn.multicast_RPs, []) : {
647+
ipv4_address = try(rp.ipv4Address, null)
648+
ipv6_address = try(rp.ipv6Address, null)
649+
ipv4_asm_ranges = try(rp.ipv4AsmRanges, null) != null ? [try(rp.ipv4AsmRanges, null)] : null
650+
ipv6_asm_ranges = try(rp.ipv6AsmRanges, null) != null ? [try(rp.ipv6AsmRanges, null)] : null
651+
is_default_v4_rp = try(rp.isDefaultV4RP, null)
652+
is_default_v6_rp = try(rp.isDefaultV6RP, null)
653+
rp_device_location = try(rp.rpLocation, null)
654+
network_device_ids = try(rp.rpLocation, "") == "FABRIC" ? [
655+
for device_name in try(rp.FabricRPs, []) :
656+
try(local.device_name_to_id[device_name], null)
657+
] : null
658+
}
659+
]
660+
}
661+
]
662+
663+
depends_on = [
664+
catalystcenter_fabric_site.fabric_site, catalystcenter_fabric_l3_virtual_network.l3_vn, catalystcenter_virtual_network_to_fabric_site.l3_vn_to_fabric_site, catalystcenter_ip_pool_reservation.pool_reservation, catalystcenter_provision_devices.provision_devices, catalystcenter_provision_device.provision_device
665+
]
666+
}

0 commit comments

Comments
 (0)