mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-27 18:18:55 +00:00
Simplify gateway module
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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}"]
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
################################################################################
|
||||
|
||||
Reference in New Issue
Block a user