Files
gcp-simple-lz/modules/cloud-vpn-tunnel/main.tf
T

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
}