Finished first version of network, network-peering and linux-vm modules.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# Peering
|
||||
resource "google_compute_network_peering" "left_to_right" {
|
||||
name = "${var.left.network_name}-to-${var.right.network_name}"
|
||||
network = var.left.network_id
|
||||
peer_network = var.right.network_id
|
||||
|
||||
export_custom_routes = true
|
||||
import_custom_routes = var.hub_spoke ? false : true
|
||||
|
||||
export_subnet_routes_with_public_ip = true
|
||||
import_subnet_routes_with_public_ip = var.hub_spoke ? false : true
|
||||
}
|
||||
|
||||
resource "google_compute_network_peering" "right_to_left" {
|
||||
name = "${var.right.network_name}-to-${var.left.network_name}"
|
||||
network = var.right.network_id
|
||||
peer_network = var.left.network_id
|
||||
|
||||
export_custom_routes = var.hub_spoke ? false : true
|
||||
import_custom_routes = true
|
||||
|
||||
export_subnet_routes_with_public_ip = var.hub_spoke ? false : true
|
||||
import_subnet_routes_with_public_ip = true
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
variable "left" {
|
||||
description = "The left side of the peering connection."
|
||||
type = object({
|
||||
project_id = string
|
||||
network_id = string
|
||||
network_name = string
|
||||
})
|
||||
}
|
||||
|
||||
variable "right" {
|
||||
description = "The right side of the peering connection."
|
||||
type = object({
|
||||
project_id = string
|
||||
network_id = string
|
||||
network_name = string
|
||||
})
|
||||
}
|
||||
|
||||
variable "hub_spoke" {
|
||||
type = bool
|
||||
default = false
|
||||
description = "Set to true if the peering is hub-spoke."
|
||||
}
|
||||
+10
-10
@@ -1,5 +1,5 @@
|
||||
# VPC
|
||||
resource "google_compute_network" "vpc_network" {
|
||||
resource "google_compute_network" "network" {
|
||||
name = var.name
|
||||
auto_create_subnetworks = false
|
||||
}
|
||||
@@ -10,21 +10,21 @@ resource "google_compute_subnetwork" "subnet" {
|
||||
name = var.subnets[count.index].name
|
||||
ip_cidr_range = var.subnets[count.index].cidr
|
||||
region = var.subnets[count.index].region != null ? var.subnets[count.index].region : var.subnets[0].region
|
||||
network = google_compute_network.vpc_network.id
|
||||
network = google_compute_network.network.id
|
||||
}
|
||||
|
||||
# Cloud NAT
|
||||
resource "google_compute_router" "cr" {
|
||||
name = "${var.name}-router"
|
||||
network = google_compute_network.vpc_network.id
|
||||
region = var.subnets[0].region
|
||||
network = var.name
|
||||
|
||||
depends_on = [google_compute_network.network]
|
||||
}
|
||||
|
||||
resource "google_compute_router_nat" "name" {
|
||||
name = "${var.name}-nat"
|
||||
region = var.subnets[0].region
|
||||
router = google_compute_router.cr.name
|
||||
nat_ip_allocate_option = "AUTO_ONLY"
|
||||
resource "google_compute_router_nat" "nat" {
|
||||
name = "${var.name}-nat"
|
||||
router = google_compute_router.cr.name
|
||||
nat_ip_allocate_option = "AUTO_ONLY"
|
||||
source_subnetwork_ip_ranges_to_nat = "ALL_SUBNETWORKS_ALL_IP_RANGES"
|
||||
enable_dynamic_port_allocation = true
|
||||
enable_dynamic_port_allocation = true
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
output "id" {
|
||||
description = "The ID of the VPC network."
|
||||
value = google_compute_network.network.id
|
||||
}
|
||||
|
||||
output "name" {
|
||||
description = "The name of the VPC network."
|
||||
value = google_compute_network.network.name
|
||||
}
|
||||
Reference in New Issue
Block a user