Skip to content

Commit 262bcb7

Browse files
committed
feat: Added terraform IAC for deploying to stg and prd
1 parent c47e0cd commit 262bcb7

File tree

6 files changed

+89
-0
lines changed

6 files changed

+89
-0
lines changed

terraform/environments/prd.tfvars

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
variable "region" {
2+
type = string
3+
default = "us-central1"
4+
}
5+
6+
variable "project_id" {
7+
type = string
8+
}

terraform/environments/stg.tfvars

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
environment = "stg"
2+
region = "us-central1"
3+
project_id = "your-project-id"
4+
db_tier = "db-f1-micro"
5+
6+
# db_user, db_password & db_name come from the pipeline

terraform/main.tf

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
resource "google_sql_database_instance" "main" {
2+
name = "${var.environment}-postgres"
3+
database_version = "POSTGRES_15"
4+
region = var.region
5+
6+
settings {
7+
tier = var.db_tier
8+
9+
ip_configuration {
10+
ipv4_enabled = true # enable public IP
11+
12+
authorized_networks {
13+
name = "allow-all"
14+
value = "0.0.0.0/0"
15+
}
16+
}
17+
}
18+
19+
deletion_protection = false
20+
}
21+
22+
resource "google_sql_database" "database" { # db creation
23+
name = var.db_name
24+
instance = google_sql_database_instance.main.name
25+
}
26+
27+
resource "google_sql_user" "user" { # db user creation
28+
name = var.db_user
29+
instance = google_sql_database_instance.main.name
30+
password = var.db_password
31+
}

terraform/outputs.tf

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
output "db_host" { # db public IP
2+
value = google_sql_database_instance.main.public_ip_address
3+
}

terraform/provider.tf

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
provider "google" {
2+
project = var.project_id
3+
region = var.region
4+
}

terraform/variables.tf

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
variable "region" {
2+
type = string
3+
default = "us-central1"
4+
}
5+
6+
variable "db_tier" {
7+
type = string
8+
default = "db-f1-micro"
9+
}
10+
11+
# db_port=5432 by default in Cloud SQL
12+
13+
# required vars
14+
15+
variable "project_id" {
16+
type = string
17+
}
18+
19+
variable "environment" {
20+
type = string
21+
}
22+
23+
# database vars
24+
25+
variable "db_user" {
26+
type = string
27+
}
28+
29+
variable "db_password" {
30+
type = string
31+
}
32+
33+
variable "db_name" {
34+
type = string
35+
}
36+
37+
# cloud run vars

0 commit comments

Comments
 (0)