Skip to content

Commit e28854f

Browse files
committed
create worker service with lb
1 parent ca63276 commit e28854f

File tree

1 file changed

+62
-19
lines changed
  • terraform/modules/deployment

1 file changed

+62
-19
lines changed

terraform/modules/deployment/main.tf

Lines changed: 62 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -42,32 +42,33 @@ module "migrate" {
4242
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
4343
}
4444

45-
module "webapp" {
46-
source = "../service"
47-
48-
name = "webapp"
49-
project = var.project
50-
environment = var.environment
51-
region = var.region
52-
image = var.webapp_image
53-
database_name = var.database_name
54-
55-
database_password_secret_id = module.database.password_secret_id
56-
database_instance_connection_name = module.database.instance_connection_name
57-
database_instance_private_ip = module.database.instance_private_ip
58-
network_id = module.network.network_id
59-
subnetwork_id = module.network.subnetwork_id
60-
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
45+
locals {
46+
services = [
47+
{
48+
name = "webapp"
49+
image = var.webapp_image
50+
},
51+
{
52+
name = "frontend"
53+
image = var.frontend_image
54+
},
55+
{
56+
name = "worker"
57+
image = var.webapp_image
58+
}
59+
]
6160
}
6261

63-
module "frontend" {
62+
module "services" {
63+
for_each = { for s in local.services : s.name => s }
64+
6465
source = "../service"
6566

66-
name = "frontend"
67+
name = each.value.name
6768
project = var.project
6869
environment = var.environment
6970
region = var.region
70-
image = var.frontend_image
71+
image = each.value.image
7172
database_name = var.database_name
7273

7374
database_password_secret_id = module.database.password_secret_id
@@ -86,3 +87,45 @@ module "load_balancer" {
8687
region = var.region
8788
domain = var.domain
8889
}
90+
91+
resource "google_compute_global_address" "worker_lb_ip" {
92+
name = "${var.environment}-tf-cr-lb-worker-address"
93+
address_type = "EXTERNAL"
94+
}
95+
96+
module "worker_lb" {
97+
source = "terraform-google-modules/lb-http/google//modules/serverless_negs"
98+
version = "~> 12.0"
99+
100+
project = var.project
101+
name = "${var.environment}-tf-cr-lb-worker"
102+
103+
address = google_compute_global_address.worker_lb_ip.address
104+
create_address = false
105+
ssl = true
106+
managed_ssl_certificate_domains = [var.domain]
107+
https_redirect = true
108+
109+
backends = {
110+
"${var.environment}-worker" = {
111+
description = "Cloud Run worker"
112+
groups = []
113+
serverless_neg_backends = [{
114+
region : var.region,
115+
type : "cloud-run",
116+
service : {
117+
name : "${var.environment}-worker",
118+
}
119+
}]
120+
121+
enable_cdn = false
122+
123+
iap_config = {
124+
enable = true
125+
}
126+
log_config = {
127+
enable = false
128+
}
129+
}
130+
}
131+
}

0 commit comments

Comments
 (0)