Skip to content

Commit ccdef9b

Browse files
author
mhamroz
committed
Added Fabric Extranet Policies feature
1 parent 8b4cf8d commit ccdef9b

2 files changed

Lines changed: 41 additions & 254 deletions

File tree

EXTRANET_POLICY_USAGE.md

Lines changed: 0 additions & 254 deletions
This file was deleted.

cc_fabric.tf

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -656,3 +656,44 @@ resource "catalystcenter_extranet_policy" "extranet_policy" {
656656

657657
depends_on = [catalystcenter_fabric_site.fabric_site, catalystcenter_fabric_l3_virtual_network.l3_vn, catalystcenter_virtual_network_to_fabric_site.l3_vn_to_fabric_site, catalystcenter_fabric_l3_virtual_network.global_l3_vn]
658658
}
659+
660+
locals {
661+
extranet_policies = flatten([
662+
for policy in try(local.catalyst_center.fabric.extranet_policies, []) : {
663+
name = try(policy.name, null)
664+
provider_virtual_network_name = try(policy.provider_VN, null)
665+
subscriber_virtual_network_names = try(policy.subscriber_VNs, [])
666+
fabric_sites = try(policy.fabric_sites, [])
667+
policy_key = policy.name
668+
fabric_ids = length(try(policy.fabric_sites, [])) > 0 ? [
669+
for site in try(policy.fabric_sites, []) :
670+
try(catalystcenter_fabric_site.fabric_site[site].id, null)
671+
if contains(local.sites, site)
672+
] : (
673+
var.manage_global_settings ? null : flatten([
674+
for fabric_site in try(local.catalyst_center.fabric.fabric_sites, []) :
675+
contains(local.sites, fabric_site.name) ? try(catalystcenter_fabric_site.fabric_site[fabric_site.name].id, null) : null
676+
])
677+
)
678+
}
679+
])
680+
}
681+
682+
resource "catalystcenter_extranet_policy" "extranet_policy" {
683+
for_each = {
684+
for policy in local.extranet_policies : policy.policy_key => policy
685+
if try(policy.name, null) != null &&
686+
try(policy.provider_virtual_network_name, null) != null &&
687+
length(try(policy.subscriber_virtual_network_names, [])) > 0 &&
688+
(var.manage_global_settings ||
689+
length(try(policy.fabric_sites, [])) == 0 ||
690+
length(try(policy.fabric_ids, [])) > 0)
691+
}
692+
693+
extranet_policy_name = each.value.name
694+
provider_virtual_network_name = each.value.provider_virtual_network_name
695+
subscriber_virtual_network_names = toset(each.value.subscriber_virtual_network_names)
696+
fabric_ids = try(each.value.fabric_ids, null) != null ? toset(compact(each.value.fabric_ids)) : null
697+
698+
depends_on = [catalystcenter_fabric_site.fabric_site, catalystcenter_fabric_l3_virtual_network.l3_vn, catalystcenter_virtual_network_to_fabric_site.l3_vn_to_fabric_site, catalystcenter_fabric_l3_virtual_network.global_l3_vn]
699+
}

0 commit comments

Comments
 (0)