-
Notifications
You must be signed in to change notification settings - Fork 106
Open
Labels
Description
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment
Description
We are migrating to manage some (eventually all) of our ACI tenants complete configuration via terraform using the CiscoDevNet/aci provider. We use multicast, multicast route-maps, inter-vrf multicast. Currently these objects/classes are not supported by the ACI provider and we have to use the aci_rest_managed resource type.
Classes we would like supported:
pimCtxP
pimStaticRPPol
pimRPGrpRangePol
rtdmcRsFilterToRtMapPol
pimInterVRFPol
pimInterVRFEntryPol
rtdmcRsFilterToRtMapPol
igmpIfP
igmpRsIfPol
APIC version and APIC Platform
Terraform Version: 1.8.3 (Using Terraform Enterprise)
CiscoDevNet/aci provider Version: ciscodevnet/aci v2.15.0
ACI APIC Version: v5.3(2c) (on-prem APIC controllers)
Current 'hard' Terraform Configuration
This is an example of what we have to do now:
resource "aci_rest_managed" "BD-192_168_160_0-24_IGMPPOL" {
dn = "uni/tn-TENANTA/BD-BD-192.168.160.0-24/igmpIfP"
depends_on = [aci_bridge_domain.BD-192_168_160_0-24]
class_name = "igmpIfP"
child {
rn = "rsIfPol"
class_name = "igmpRsIfPol"
content ={
tDn = "uni/tn-common/igmpIfPol-default"
}
}
}
resource "aci_rest_managed" "ROUTE_MAP_MCAST-TVG--TENANTB-CORE" {
dn = "uni/tn-TENANTA/rtmap-TVG--TENANTB-CORE"
class_name = "pimRouteMapPol"
content = {
name = "TVG--TENANTB-CORE"
}
}
resource "aci_rest_managed" "ROUTE_MAP_MCAST-TVG--TENANTB-CORE-entry1" {
dn = "uni/tn-${local.tenant_name}/rtmap-TVG--TENANTB-CORE/rtmapentry-1"
class_name = "pimRouteMapEntry"
depends_on = [aci_rest_managed.ROUTE_MAP_MCAST-TVG--TENANTB-CORE]
content = {
action = "permit"
order = "1"
grp = "224.0.1.129/32"
rp = "0.0.0.0"
src = "0.0.0.0"
}
}
resource "aci_rest_managed" "CORE-PIM" {
dn = "uni/tn-${local.tenant_name}/ctx-CORE/pimctxp"
class_name = "pimCtxP"
depends_on = [aci_vrf.CORE]
}
resource "aci_rest_managed" "CORE-PIMRP" {
dn = "uni/tn-${local.tenant_name}/ctx-CORE/pimctxp/staticrp"
class_name = "pimStaticRPPol"
depends_on = [aci_rest_managed.CORE-PIM]
child {
rn = "staticrpent-[192.168.150.254]"
class_name = "pimStaticRPEntryPol"
content = {
rpIp = "192.168.150.254"
}
}
}
resource "aci_rest_managed" "CORE-RPEntry-RTMAP" {
dn = "uni/tn-${local.tenant_name}/ctx-CORE/pimctxp/staticrp/staticrpent-[192.168.150.254]/rpgrprange"
class_name = "pimRPGrpRangePol"
depends_on = [aci_rest_managed.CORE-PIMRP]
child {
rn = "rsfilterToRtMapPol"
class_name = "rtdmcRsFilterToRtMapPol"
content = {
tDn = "uni/tn-common/rtmap-RP-192.168.150.254"
}
}
}
resource "aci_rest_managed" "CORE-INTERVRF" {
dn = "uni/tn-${local.tenant_name}/ctx-CORE/pimctxp/intervrf"
class_name = "pimInterVRFPol"
depends_on = [aci_rest_managed.CORE-PIM]
}
resource "aci_rest_managed" "CORE-INTERVRF-Entry" {
dn = "uni/tn-${local.tenant_name}/ctx-CORE/pimctxp/intervrf/intervrfent-[uni/tn-TIME/ctx-CORE]"
class_name = "pimInterVRFEntryPol"
depends_on = [aci_rest_managed.CORE-INTERVRF]
child {
rn = "rsfilterToRtMapPol"
class_name = "rtdmcRsFilterToRtMapPol"
content = {
tDn = "uni/tn-${local.tenant_name}/rtmap-TVG--TENANTB-CORE"
}
}
}
Thanks for your consideration