provisioning/terraform/database.tf (23 lines of code) (raw):
# Cloud SQL Database
## Instance
resource "google_sql_database_instance" "postgres" {
name = var.instance_name
database_version = "POSTGRES_14"
project = var.project_id
region = var.region
settings {
tier = "db-custom-2-4096" # 2 CPU, 4GB Memory
}
depends_on = [google_project_service.enabled]
}
## Database
resource "google_sql_database" "database" {
name = var.database_name
instance = google_sql_database_instance.postgres.name
}
## Database User
## Details used in Django config settings
# NOTE: users created this way automatically gain cloudsqladmin rights.
resource "google_sql_user" "django" {
name = var.database_username
instance = google_sql_database_instance.postgres.name
password = random_password.database_user_password.result
}
resource "random_password" "database_user_password" {
length = 30
special = false
}