32 lines
1019 B
Terraform
32 lines
1019 B
Terraform
data "google_compute_vpn_gateway" "gw" {
|
|
name = var.gw_name
|
|
}
|
|
|
|
locals {
|
|
vpc_name = regex("networks/([^/]+)$", data.google_compute_vpn_gateway.gw.network)[0]
|
|
}
|
|
|
|
data google_compute_network network {
|
|
name = local.vpc_name
|
|
}
|
|
|
|
resource "google_compute_vpn_tunnel" "tunnel" {
|
|
name = var.name
|
|
target_vpn_gateway = data.google_compute_vpn_gateway.gw.id
|
|
|
|
shared_secret = var.shared_secret
|
|
peer_ip = var.peer_ip
|
|
ike_version = 2
|
|
|
|
local_traffic_selector = concat(var.local_selectors, ["35.199.192.0/19"])
|
|
remote_traffic_selector = var.remote_selectors
|
|
}
|
|
|
|
resource "google_compute_route" "route_to_remote_network" {
|
|
count = length(var.remote_selectors)
|
|
name = "${data.google_compute_network.network.name}-to-${replace(var.remote_selectors[count.index], "/[./]/", "-")}"
|
|
network = data.google_compute_network.network.name
|
|
dest_range = var.remote_selectors[count.index]
|
|
next_hop_vpn_tunnel = google_compute_vpn_tunnel.tunnel.id
|
|
}
|