@@ -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