Simplify gateway module

This commit is contained in:
Andrew Dryga
2023-10-20 00:48:57 -06:00
parent 414028a8ee
commit 711fb67868
3 changed files with 49 additions and 48 deletions

View File

@@ -1,4 +1,9 @@
# Deploy our dogfood gateways
locals {
gateways_region = "n1-standard-1"
gateways_zones = ["us-central1-b"]
}
resource "google_compute_network" "gateways" {
project = module.google-cloud-project.project.project_id
name = "gateways"
@@ -12,24 +17,31 @@ resource "google_compute_network" "gateways" {
]
}
resource "google_compute_subnetwork" "gateways" {
project = module.google-cloud-project.project.project_id
name = "gateways"
region = local.gateways_region
network = google_compute_network.gateways.self_link
stack_type = "IPV4_IPV6"
ip_cidr_range = "10.101.0.0/24"
ipv6_access_type = "EXTERNAL"
private_ip_google_access = true
}
module "gateways" {
count = var.gateway_portal_token != null ? 1 : 0
source = "../../modules/gateway-app"
project_id = module.google-cloud-project.project.project_id
compute_network = "projects/${module.google-cloud-project.project.project_id}/global/networks/default"
compute_network = google_compute_network.gateways.self_link
compute_subnetwork = google_compute_subnetwork.gateways.self_link
compute_instances = {
"us-central1" = {
type = "n1-standard-1"
replicas = 2
zones = ["us-central1-b"]
network = google_compute_network.gateways.self_link
ip_cidr_range = "10.200.0.0/24"
}
}
compute_region = local.gateways_region
compute_region_zones = local.gateways_zones
container_registry = module.google-artifact-registry.url

View File

@@ -117,33 +117,15 @@ resource "google_project_iam_member" "cloudtrace" {
member = "serviceAccount:${google_service_account.application.email}"
}
resource "google_compute_subnetwork" "gateways" {
for_each = var.compute_instances
project = var.project_id
name = "gateways-${each.key}"
region = each.key
network = var.compute_network
stack_type = "IPV4_IPV6"
ip_cidr_range = each.value.ip_cidr_range
ipv6_access_type = "EXTERNAL"
private_ip_google_access = true
}
# Deploy app
resource "google_compute_instance_template" "application" {
for_each = var.compute_instances
project = var.project_id
name_prefix = "${local.application_name}-${each.key}-"
name_prefix = "${local.application_name}-"
description = "This template is used to create ${local.application_name} instances."
machine_type = each.value.type
machine_type = var.compute_instance_type
can_ip_forward = true
@@ -167,7 +149,7 @@ resource "google_compute_instance_template" "application" {
}
network_interface {
subnetwork = google_compute_subnetwork.gateways[each.key].self_link
subnetwork = var.compute_subnetwork
stack_type = "IPV4_IPV6"
@@ -280,24 +262,22 @@ resource "google_compute_instance_template" "application" {
# Use template to deploy zonal instance group
resource "google_compute_region_instance_group_manager" "application" {
for_each = var.compute_instances
project = var.project_id
name = "${local.application_name}-group-${each.key}"
name = "${local.application_name}-${var.compute_region}"
base_instance_name = local.application_name
region = each.key
distribution_policy_zones = each.value.zones
region = var.compute_region
distribution_policy_zones = var.compute_region_zones
target_size = each.value.replicas
target_size = var.compute_instance_replicas
wait_for_instances = true
wait_for_instances_status = "STABLE"
version {
instance_template = google_compute_instance_template.application[each.key].self_link
instance_template = google_compute_instance_template.application.self_link
}
# named_port {
@@ -335,7 +315,7 @@ resource "google_compute_region_instance_group_manager" "application" {
# project = var.project_id
# name = "${local.application_name}-healthcheck"
# network = google_compute_network.network.self_link
# network = var.compute_network
# source_ranges = local.google_health_check_ip_ranges
# target_tags = ["app-${local.application_name}"]

View File

@@ -11,16 +11,25 @@ variable "compute_network" {
type = string
}
variable "compute_instances" {
type = map(object({
type = string
replicas = number
zones = list(string)
variable "compute_subnetwork" {
type = string
}
ip_cidr_range = string
}))
variable "compute_region" {
type = string
}
description = "List deployment locations for the application."
variable "compute_region_zones" {
type = string
description = "List of zones in the region defined in `compute_region` where replicas should be deployed."
}
variable "compute_instance_replicas" {
type = string
}
variable "compute_instance_type" {
type = string
}
################################################################################