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 }