Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ module "iosxr" {
| [iosxr_rd_set.rd_set](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/rd_set) | resource |
| [iosxr_route_policy.route_policy](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/route_policy) | resource |
| [iosxr_router_hsrp_interface.router_hsrp_interface](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/router_hsrp_interface) | resource |
| [iosxr_router_hsrp_interface_ipv4_group_v2.router_hsrp_interface_ipv4_group_v2](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/router_hsrp_interface_ipv4_group_v2) | resource |
| [iosxr_router_ospf.router_ospf](https://registry.terraform.io/providers/CiscoDevNet/iosxr/latest/docs/resources/router_ospf) | 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 |
Expand Down
66 changes: 66 additions & 0 deletions iosxr_router_hsrp_interface_ipv4_group_v2.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
locals {
router_hsrp_interface_ipv4_group_v2 = flatten([
for device in local.devices : [
for hsrp_group in try(local.device_config[device.name].router_hsrp_interface_ipv4_group_v2, []) : {
key = "${device.name}-${hsrp_group.interface_name}-${hsrp_group.group_id}"
device_name = device.name
interface_name = hsrp_group.interface_name
group_id = hsrp_group.group_id
address = try(hsrp_group.address, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.address, null)
address_learn = try(hsrp_group.address_learn, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.address_learn, null)
priority = try(hsrp_group.priority, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.priority, null)
mac_address = try(hsrp_group.mac_address, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.mac_address, null)
name = try(hsrp_group.name, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.name, null)
preempt_delay = try(hsrp_group.preempt_delay, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.preempt_delay, null)
timers_msec = try(hsrp_group.timers_msec, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.timers_msec, null)
timers_msec_holdtime = try(hsrp_group.timers_msec_holdtime, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.timers_msec_holdtime, null)
timers_seconds = try(hsrp_group.timers_seconds, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.timers_seconds, null)
timers_seconds_holdtime = try(hsrp_group.timers_seconds_holdtime, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.timers_seconds_holdtime, null)
bfd_fast_detect_peer_ipv4 = try(hsrp_group.bfd_fast_detect_peer_ipv4, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.bfd_fast_detect_peer_ipv4, null)
bfd_fast_detect_peer_interface = try(hsrp_group.bfd_fast_detect_peer_interface, local.defaults.iosxr.configuration.router_hsrp_interface_ipv4_group_v2.bfd_fast_detect_peer_interface, null)
secondary_ipv4_addresses = [
for secondary in try(hsrp_group.secondary_ipv4_addresses, []) : {
address = try(secondary.address, null)
}
]

track_interfaces = [
for track_interface in try(hsrp_group.track_interfaces, []) : {
track_name = try(track_interface.track_name, null)
priority_decrement = try(track_interface.priority_decrement, null)
}
]

track_objects = [
for track_object in try(hsrp_group.track_objects, []) : {
object_name = try(track_object.object_name, null)
priority_decrement = try(track_object.priority_decrement, null)
}
]
}
]
])
}

resource "iosxr_router_hsrp_interface_ipv4_group_v2" "router_hsrp_interface_ipv4_group_v2" {
for_each = { for item in local.router_hsrp_interface_ipv4_group_v2 : item.key => item }

device = each.value.device_name
interface_name = each.value.interface_name
group_id = each.value.group_id
address = each.value.address
address_learn = each.value.address_learn
priority = each.value.priority
mac_address = each.value.mac_address
name = each.value.name
preempt_delay = each.value.preempt_delay
timers_msec = each.value.timers_msec
timers_msec_holdtime = each.value.timers_msec_holdtime
timers_seconds = each.value.timers_seconds
timers_seconds_holdtime = each.value.timers_seconds_holdtime
bfd_fast_detect_peer_ipv4 = each.value.bfd_fast_detect_peer_ipv4
bfd_fast_detect_peer_interface = each.value.bfd_fast_detect_peer_interface
secondary_ipv4_addresses = each.value.secondary_ipv4_addresses
track_interfaces = each.value.track_interfaces
track_objects = each.value.track_objects
}