Skip to content

Commit 8c44816

Browse files
feat(TPG beta)!: add support for BGP Route Policy in vpn_ha sub-module (#188)
1 parent 89fce4e commit 8c44816

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

modules/vpn_ha/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ module "vpn_ha" {
283283
| router\_asn | Router ASN used for auto-created router. | `number` | `64514` | no |
284284
| router\_name | Name of router, leave blank to create one. | `string` | `""` | no |
285285
| stack\_type | The IP stack type will apply to all the tunnels associated with this VPN gateway. | `string` | `"IPV4_ONLY"` | no |
286-
| tunnels | VPN tunnel configurations, bgp\_peer\_options is usually null. | <pre>map(object({<br> bgp_peer = object({<br> address = string<br> asn = number<br> })<br> bgp_session_name = optional(string)<br> bgp_peer_options = optional(object({<br> ip_address = optional(string)<br> advertise_groups = optional(list(string))<br> advertise_ip_ranges = optional(map(string))<br> advertise_mode = optional(string)<br> route_priority = optional(number)<br> }))<br> bgp_session_range = optional(string)<br> ike_version = optional(number)<br> vpn_gateway_interface = optional(number)<br> peer_external_gateway_self_link = optional(string, null)<br> peer_external_gateway_interface = optional(number)<br> shared_secret = optional(string, "")<br> }))</pre> | `{}` | no |
286+
| tunnels | VPN tunnel configurations, bgp\_peer\_options is usually null. | <pre>map(object({<br> bgp_peer = object({<br> address = string<br> asn = number<br> })<br> bgp_session_name = optional(string)<br> bgp_peer_options = optional(object({<br> ip_address = optional(string)<br> advertise_groups = optional(list(string))<br> advertise_ip_ranges = optional(map(string))<br> advertise_mode = optional(string)<br> route_priority = optional(number)<br> import_policies = optional(list(string))<br> export_policies = optional(list(string))<br> }))<br> bgp_session_range = optional(string)<br> ike_version = optional(number)<br> vpn_gateway_interface = optional(number)<br> peer_external_gateway_self_link = optional(string, null)<br> peer_external_gateway_interface = optional(number)<br> shared_secret = optional(string, "")<br> }))</pre> | `{}` | no |
287287
| vpn\_gateway\_self\_link | self\_link of existing VPN gateway to be used for the vpn tunnel. create\_vpn\_gateway should be set to false | `string` | `null` | no |
288288

289289
## Outputs

modules/vpn_ha/main.tf

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ resource "google_compute_router" "router" {
106106
}
107107

108108
resource "google_compute_router_peer" "bgp_peer" {
109+
provider = google-beta
109110
for_each = var.tunnels
110111
region = var.region
111112
project = var.project_id
@@ -131,6 +132,12 @@ resource "google_compute_router_peer" "bgp_peer" {
131132
: each.value.bgp_peer_options.advertise_groups
132133
)
133134
)
135+
import_policies = (
136+
each.value.bgp_peer_options == null ? null : each.value.bgp_peer_options.import_policies
137+
)
138+
export_policies = (
139+
each.value.bgp_peer_options == null ? null : each.value.bgp_peer_options.export_policies
140+
)
134141
dynamic "advertised_ip_ranges" {
135142
for_each = (
136143
each.value.bgp_peer_options == null ? {} : (

modules/vpn_ha/variables.tf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,8 @@ variable "tunnels" {
113113
advertise_ip_ranges = optional(map(string))
114114
advertise_mode = optional(string)
115115
route_priority = optional(number)
116+
import_policies = optional(list(string))
117+
export_policies = optional(list(string))
116118
}))
117119
bgp_session_range = optional(string)
118120
ike_version = optional(number)

0 commit comments

Comments
 (0)