58 lines
1.7 KiB
HCL
58 lines
1.7 KiB
HCL
variable "project" {
|
|
description = "Project ID."
|
|
type = string
|
|
}
|
|
|
|
variable "region" {
|
|
description = "Region."
|
|
type = string
|
|
}
|
|
|
|
output "private_network_id" {
|
|
description = "Private network id."
|
|
value = google_compute_network.private_network.id
|
|
}
|
|
|
|
output "private_subnetwork_id" {
|
|
description = "Private subnetwork id."
|
|
value = google_compute_subnetwork.subnet.id
|
|
}
|
|
|
|
resource "google_project_service" "servicenetworking" {
|
|
project = var.project
|
|
service = "servicenetworking.googleapis.com"
|
|
disable_dependent_services = true
|
|
}
|
|
|
|
resource "google_compute_network" "private_network" {
|
|
project = var.project
|
|
name = "private-network"
|
|
auto_create_subnetworks = false
|
|
depends_on = [
|
|
google_project_service.servicenetworking
|
|
]
|
|
}
|
|
|
|
resource "google_compute_subnetwork" "subnet" {
|
|
project = google_compute_network.private_network.project
|
|
name = "private-subnetwork"
|
|
ip_cidr_range = "10.100.0.0/16"
|
|
region = var.region
|
|
network = google_compute_network.private_network.id
|
|
}
|
|
|
|
resource "google_compute_global_address" "private_ip_address" {
|
|
project = google_compute_network.private_network.project
|
|
name = "private-ip-address"
|
|
purpose = "VPC_PEERING"
|
|
address_type = "INTERNAL"
|
|
prefix_length = 16
|
|
network = google_compute_network.private_network.id
|
|
}
|
|
|
|
resource "google_service_networking_connection" "private_vpc_connection" {
|
|
network = google_compute_network.private_network.id
|
|
service = "servicenetworking.googleapis.com"
|
|
reserved_peering_ranges = [google_compute_global_address.private_ip_address.name]
|
|
}
|