36 lines
1.3 KiB
Terraform
36 lines
1.3 KiB
Terraform
data "google_client_config" "default" {}
|
|
|
|
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
|
|
project = var.project_id != null ? var.project_id : data.google_client_config.default.project
|
|
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], "/[./]/", "-")}"
|
|
project = var.project_id != null ? var.project_id : data.google_client_config.default.project
|
|
network = data.google_compute_network.network.name
|
|
dest_range = var.remote_selectors[count.index]
|
|
next_hop_vpn_tunnel = google_compute_vpn_tunnel.tunnel.id
|
|
}
|