Skip to content

Commit

Permalink
create deployment module
Browse files Browse the repository at this point in the history
  • Loading branch information
jamalc committed Feb 5, 2025
1 parent dd102f3 commit 397ba67
Show file tree
Hide file tree
Showing 6 changed files with 153 additions and 87 deletions.
94 changes: 10 additions & 84 deletions terraform/main.tf
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
terraform {
backend "gcs" {
bucket = "sst-terraform-state"
prefix = "dev"
}
required_providers {
google = {
Expand All @@ -21,93 +22,18 @@ provider "google" {
zone = var.zone
}

module "network" {
source = "./modules/network"
module "deployment" {
source = "./modules/deployment"

environment = var.environment
region = var.region
}

module "iam" {
source = "./modules/iam"

project = var.project
environment = var.environment
}

module "database" {
source = "./modules/database"

environment = var.environment
project = var.project
region = var.region
environment = var.environment
zone = var.zone
database_name = var.database_name
database_version = var.database_version

cloudrun_service_account_email = module.iam.cloudrun_service_account_email
cloudbuild_service_account_email = module.iam.cloudbuild_service_account_email
network_id = module.network.network_id
}

module "migrate" {
source = "./modules/migrate"

environment = var.environment
region = var.region
image = var.frontend_image
database_name = var.database_name

database_password_secret_id = module.database.password_secret_id
database_instance_connection_name = module.database.instance_connection_name
database_instance_private_ip = module.database.instance_private_ip
network_id = module.network.network_id
subnetwork_id = module.network.subnetwork_id
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
}

module "webapp" {
source = "./modules/service"

name = "webapp"
project = var.project
environment = var.environment
region = var.region
image = var.webapp_image
database_name = var.database_name

database_password_secret_id = module.database.password_secret_id
database_instance_connection_name = module.database.instance_connection_name
database_instance_private_ip = module.database.instance_private_ip
network_id = module.network.network_id
subnetwork_id = module.network.subnetwork_id
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
}

module "frontend" {
source = "./modules/service"

name = "frontend"
project = var.project
environment = var.environment
region = var.region
image = var.frontend_image
database_name = var.database_name

database_password_secret_id = module.database.password_secret_id
database_instance_connection_name = module.database.instance_connection_name
database_instance_private_ip = module.database.instance_private_ip
network_id = module.network.network_id
subnetwork_id = module.network.subnetwork_id
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
}

module "load_balancer" {
source = "./modules/load_balancer"

project = var.project
environment = var.environment
region = var.region
domain = var.domain
database_name = var.database_name
domain = var.domain
webapp_image = var.webapp_image
frontend_image = var.frontend_image
}

module "cloudbuild" {
Expand All @@ -120,5 +46,5 @@ module "cloudbuild" {
webapp_image = var.webapp_image
frontend_image = var.frontend_image

cloudbuild_service_account_id = module.iam.cloudbuild_service_account_id
cloudbuild_service_account_id = module.deployment.iam.cloudbuild_service_account_id
}
88 changes: 88 additions & 0 deletions terraform/modules/deployment/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
module "network" {
source = "../network"

environment = var.environment
region = var.region
}

module "iam" {
source = "../iam"

project = var.project
environment = var.environment
}

module "database" {
source = "../database"

environment = var.environment
region = var.region
zone = var.zone
database_name = var.database_name
database_version = var.database_version

cloudrun_service_account_email = module.iam.cloudrun_service_account_email
cloudbuild_service_account_email = module.iam.cloudbuild_service_account_email
network_id = module.network.network_id
}

module "migrate" {
source = "../migrate"

environment = var.environment
region = var.region
image = var.frontend_image
database_name = var.database_name

database_password_secret_id = module.database.password_secret_id
database_instance_connection_name = module.database.instance_connection_name
database_instance_private_ip = module.database.instance_private_ip
network_id = module.network.network_id
subnetwork_id = module.network.subnetwork_id
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
}

module "webapp" {
source = "../service"

name = "webapp"
project = var.project
environment = var.environment
region = var.region
image = var.webapp_image
database_name = var.database_name

database_password_secret_id = module.database.password_secret_id
database_instance_connection_name = module.database.instance_connection_name
database_instance_private_ip = module.database.instance_private_ip
network_id = module.network.network_id
subnetwork_id = module.network.subnetwork_id
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
}

module "frontend" {
source = "../service"

name = "frontend"
project = var.project
environment = var.environment
region = var.region
image = var.frontend_image
database_name = var.database_name

database_password_secret_id = module.database.password_secret_id
database_instance_connection_name = module.database.instance_connection_name
database_instance_private_ip = module.database.instance_private_ip
network_id = module.network.network_id
subnetwork_id = module.network.subnetwork_id
cloudrun_service_account_email = module.iam.cloudrun_service_account_email
}

module "load_balancer" {
source = "../load_balancer"

project = var.project
environment = var.environment
region = var.region
domain = var.domain
}
3 changes: 3 additions & 0 deletions terraform/modules/deployment/output.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
output "iam" {
value = module.iam
}
44 changes: 44 additions & 0 deletions terraform/modules/deployment/variables.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
variable "project" {
description = "The project ID"
type = string
}

variable "region" {
description = "The region to deploy resources"
type = string
}

variable "environment" {
description = "The environment to deploy resources"
type = string
}

variable "zone" {
description = "The zone to deploy resources"
type = string
}

variable "database_version" {
description = "The database version"
type = string
}

variable "database_name" {
description = "The database name"
type = string
}

variable "domain" {
description = "The domain name"
type = string
}

variable "webapp_image" {
description = "Image for the webapp service"
type = string
}

variable "frontend_image" {
description = "Image for the frontend service"
type = string
}
7 changes: 6 additions & 1 deletion terraform/modules/load_balancer/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,19 @@ variable "environment" {
type = string
}

resource "google_compute_global_address" "lb_ip" {
name = "tf-cr-lb-1-address"
address_type = "EXTERNAL"
}

module "lb-http" {
source = "terraform-google-modules/lb-http/google//modules/serverless_negs"
version = "~> 12.0"

project = var.project
name = "tf-cr-lb-1"

address = "35.227.226.31"
address = google_compute_global_address.lb_ip.address
ssl = true
managed_ssl_certificate_domains = [var.domain]
https_redirect = true
Expand Down
4 changes: 2 additions & 2 deletions terraform/variables.tf
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ variable "domain" {

variable "webapp_image" {
description = "Image for the webapp service"
type = string
type = string
}

variable "frontend_image" {
description = "Image for the frontend service"
type = string
type = string
}

0 comments on commit 397ba67

Please sign in to comment.