Skip to content

Commit 397ba67

Browse files
committed
create deployment module
1 parent dd102f3 commit 397ba67

File tree

6 files changed

+153
-87
lines changed

6 files changed

+153
-87
lines changed

terraform/main.tf

Lines changed: 10 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
terraform {
22
backend "gcs" {
33
bucket = "sst-terraform-state"
4+
prefix = "dev"
45
}
56
required_providers {
67
google = {
@@ -21,93 +22,18 @@ provider "google" {
2122
zone = var.zone
2223
}
2324

24-
module "network" {
25-
source = "./modules/network"
25+
module "deployment" {
26+
source = "./modules/deployment"
2627

27-
environment = var.environment
28-
region = var.region
29-
}
30-
31-
module "iam" {
32-
source = "./modules/iam"
33-
34-
project = var.project
35-
environment = var.environment
36-
}
37-
38-
module "database" {
39-
source = "./modules/database"
40-
41-
environment = var.environment
28+
project = var.project
4229
region = var.region
30+
environment = var.environment
4331
zone = var.zone
44-
database_name = var.database_name
4532
database_version = var.database_version
46-
47-
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
48-
cloudbuild_service_account_email = module.iam.cloudbuild_service_account_email
49-
network_id = module.network.network_id
50-
}
51-
52-
module "migrate" {
53-
source = "./modules/migrate"
54-
55-
environment = var.environment
56-
region = var.region
57-
image = var.frontend_image
58-
database_name = var.database_name
59-
60-
database_password_secret_id = module.database.password_secret_id
61-
database_instance_connection_name = module.database.instance_connection_name
62-
database_instance_private_ip = module.database.instance_private_ip
63-
network_id = module.network.network_id
64-
subnetwork_id = module.network.subnetwork_id
65-
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
66-
}
67-
68-
module "webapp" {
69-
source = "./modules/service"
70-
71-
name = "webapp"
72-
project = var.project
73-
environment = var.environment
74-
region = var.region
75-
image = var.webapp_image
76-
database_name = var.database_name
77-
78-
database_password_secret_id = module.database.password_secret_id
79-
database_instance_connection_name = module.database.instance_connection_name
80-
database_instance_private_ip = module.database.instance_private_ip
81-
network_id = module.network.network_id
82-
subnetwork_id = module.network.subnetwork_id
83-
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
84-
}
85-
86-
module "frontend" {
87-
source = "./modules/service"
88-
89-
name = "frontend"
90-
project = var.project
91-
environment = var.environment
92-
region = var.region
93-
image = var.frontend_image
94-
database_name = var.database_name
95-
96-
database_password_secret_id = module.database.password_secret_id
97-
database_instance_connection_name = module.database.instance_connection_name
98-
database_instance_private_ip = module.database.instance_private_ip
99-
network_id = module.network.network_id
100-
subnetwork_id = module.network.subnetwork_id
101-
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
102-
}
103-
104-
module "load_balancer" {
105-
source = "./modules/load_balancer"
106-
107-
project = var.project
108-
environment = var.environment
109-
region = var.region
110-
domain = var.domain
33+
database_name = var.database_name
34+
domain = var.domain
35+
webapp_image = var.webapp_image
36+
frontend_image = var.frontend_image
11137
}
11238

11339
module "cloudbuild" {
@@ -120,5 +46,5 @@ module "cloudbuild" {
12046
webapp_image = var.webapp_image
12147
frontend_image = var.frontend_image
12248

123-
cloudbuild_service_account_id = module.iam.cloudbuild_service_account_id
49+
cloudbuild_service_account_id = module.deployment.iam.cloudbuild_service_account_id
12450
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
module "network" {
2+
source = "../network"
3+
4+
environment = var.environment
5+
region = var.region
6+
}
7+
8+
module "iam" {
9+
source = "../iam"
10+
11+
project = var.project
12+
environment = var.environment
13+
}
14+
15+
module "database" {
16+
source = "../database"
17+
18+
environment = var.environment
19+
region = var.region
20+
zone = var.zone
21+
database_name = var.database_name
22+
database_version = var.database_version
23+
24+
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
25+
cloudbuild_service_account_email = module.iam.cloudbuild_service_account_email
26+
network_id = module.network.network_id
27+
}
28+
29+
module "migrate" {
30+
source = "../migrate"
31+
32+
environment = var.environment
33+
region = var.region
34+
image = var.frontend_image
35+
database_name = var.database_name
36+
37+
database_password_secret_id = module.database.password_secret_id
38+
database_instance_connection_name = module.database.instance_connection_name
39+
database_instance_private_ip = module.database.instance_private_ip
40+
network_id = module.network.network_id
41+
subnetwork_id = module.network.subnetwork_id
42+
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
43+
}
44+
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
61+
}
62+
63+
module "frontend" {
64+
source = "../service"
65+
66+
name = "frontend"
67+
project = var.project
68+
environment = var.environment
69+
region = var.region
70+
image = var.frontend_image
71+
database_name = var.database_name
72+
73+
database_password_secret_id = module.database.password_secret_id
74+
database_instance_connection_name = module.database.instance_connection_name
75+
database_instance_private_ip = module.database.instance_private_ip
76+
network_id = module.network.network_id
77+
subnetwork_id = module.network.subnetwork_id
78+
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
79+
}
80+
81+
module "load_balancer" {
82+
source = "../load_balancer"
83+
84+
project = var.project
85+
environment = var.environment
86+
region = var.region
87+
domain = var.domain
88+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
output "iam" {
2+
value = module.iam
3+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
variable "project" {
2+
description = "The project ID"
3+
type = string
4+
}
5+
6+
variable "region" {
7+
description = "The region to deploy resources"
8+
type = string
9+
}
10+
11+
variable "environment" {
12+
description = "The environment to deploy resources"
13+
type = string
14+
}
15+
16+
variable "zone" {
17+
description = "The zone to deploy resources"
18+
type = string
19+
}
20+
21+
variable "database_version" {
22+
description = "The database version"
23+
type = string
24+
}
25+
26+
variable "database_name" {
27+
description = "The database name"
28+
type = string
29+
}
30+
31+
variable "domain" {
32+
description = "The domain name"
33+
type = string
34+
}
35+
36+
variable "webapp_image" {
37+
description = "Image for the webapp service"
38+
type = string
39+
}
40+
41+
variable "frontend_image" {
42+
description = "Image for the frontend service"
43+
type = string
44+
}

terraform/modules/load_balancer/main.tf

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,19 @@ variable "environment" {
1818
type = string
1919
}
2020

21+
resource "google_compute_global_address" "lb_ip" {
22+
name = "tf-cr-lb-1-address"
23+
address_type = "EXTERNAL"
24+
}
25+
2126
module "lb-http" {
2227
source = "terraform-google-modules/lb-http/google//modules/serverless_negs"
2328
version = "~> 12.0"
2429

2530
project = var.project
2631
name = "tf-cr-lb-1"
2732

28-
address = "35.227.226.31"
33+
address = google_compute_global_address.lb_ip.address
2934
ssl = true
3035
managed_ssl_certificate_domains = [var.domain]
3136
https_redirect = true

terraform/variables.tf

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ variable "domain" {
3535

3636
variable "webapp_image" {
3737
description = "Image for the webapp service"
38-
type = string
38+
type = string
3939
}
4040

4141
variable "frontend_image" {
4242
description = "Image for the frontend service"
43-
type = string
43+
type = string
4444
}

0 commit comments

Comments
 (0)