google_psc_to_elastic/main.tf (47 lines of code) (raw):

locals { dns_name = "${data.ec_gcp_private_service_connect_endpoint.default.domain_name}." name = "${var.name}-${var.gcp_region}-psc-elastic-endpoint" } data "google_project" "project" { } data "ec_gcp_private_service_connect_endpoint" "default" { region = var.gcp_region } data "google_compute_network" "default" { name = var.network_name project = var.project_id_for_network != "" ? var.project_id_for_network : data.google_project.project.project_id } data "google_compute_subnetwork" "default" { name = var.subnetwork_name project = var.project_id_for_network != "" ? var.project_id_for_network : data.google_project.project.project_id } resource "google_compute_address" "default" { name = local.name address_type = "INTERNAL" purpose = "GCE_ENDPOINT" subnetwork = data.google_compute_subnetwork.default.id } resource "google_compute_forwarding_rule" "default" { name = local.name ip_address = google_compute_address.default.id load_balancing_scheme = "" network = data.google_compute_network.default.id target = data.ec_gcp_private_service_connect_endpoint.default.service_attachment_uri } resource "google_dns_managed_zone" "default" { name = replace(data.ec_gcp_private_service_connect_endpoint.default.domain_name, ".", "-") dns_name = local.dns_name visibility = "private" private_visibility_config { networks { network_url = data.google_compute_network.default.id } } } resource "google_dns_record_set" "default" { managed_zone = google_dns_managed_zone.default.name name = "*.${local.dns_name}" type = "A" rrdatas = [google_compute_address.default.address] ttl = 3600 }