terraform-google-modules/terraform-google-vpn

support IPv6

Closed this issue · 1 comments

TL;DR

To fully support IPv6 the "google_compute_router_peer require a boolan value fopr enable_ipv6

Terraform Resources

https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_router_peer

https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_router_peer#enable_ipv6
Screenshot 2024-01-03 at 5 29 53 PM

Detailed design

# in addition to the ipv6 nexthop address and peer_ipv6_address, the esource "google_compute_router_peer" "bgp_peer" resource block needs to have the option to set "enable_ipv6" has to set to true for ipv6 route to propagate between peers


resource "google_compute_router_peer" "bgp_peer" {
  for_each        = var.tunnels
  region          = var.region
  project         = var.project_id
  name            = each.value.bgp_session_name != null ? each.value.bgp_session_name : "${var.name}-${each.key}"
  router          = local.router
  peer_ip_address = each.value.bgp_peer.address
  peer_asn        = each.value.bgp_peer.asn
  ip_address      = each.value.bgp_peer_options == null ? null : each.value.bgp_peer_options.ip_address
  
  enable_ipv6               = true

  ipv6_nexthop_address      = each.value.bgp_peer_options.ipv6_nexthop_address
  peer_ipv6_nexthop_address = each.value.bgp_peer_options.peer_ipv6_nexthop_address

  advertised_route_priority = (
    each.value.bgp_peer_options == null ? var.route_priority : (
      each.value.bgp_peer_options.route_priority == null
      ? var.route_priority
      : each.value.bgp_peer_options.route_priority
    )
  )
  advertise_mode = (
    each.value.bgp_peer_options == null ? null : each.value.bgp_peer_options.advertise_mode
  )
  advertised_groups = (
    each.value.bgp_peer_options == null ? null : (
      each.value.bgp_peer_options.advertise_mode != "CUSTOM"
      ? null
      : each.value.bgp_peer_options.advertise_groups
    )
  )
  dynamic "advertised_ip_ranges" {
    for_each = (
      each.value.bgp_peer_options == null ? {} : (
        each.value.bgp_peer_options.advertise_mode != "CUSTOM"
        ? {}
        : each.value.bgp_peer_options.advertise_ip_ranges
      )
    )
    iterator = range
    content {
      range       = range.key
      description = range.value
    }
  }
  interface = google_compute_router_interface.router_interface[each.key].name
}

Additional information

No response

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days