provisioning/terraform/secrets.tf (44 lines of code) (raw):

# Secret Manager values ## Django Admin Password resource "random_password" "django_admin_password" { length = 32 special = false } resource "google_secret_manager_secret" "django_admin_password" { secret_id = "django_admin_password" replication { auto {} } depends_on = [google_project_service.enabled] } resource "google_secret_manager_secret_iam_binding" "django_admin_password" { secret_id = google_secret_manager_secret.django_admin_password.id role = "roles/secretmanager.secretAccessor" members = [local.automation_SA] } resource "google_secret_manager_secret_version" "django_admin_password" { secret = google_secret_manager_secret.django_admin_password.id secret_data = random_password.django_admin_password.result } ## Django Secret Key resource "random_password" "django_secret_key" { special = false length = 50 } resource "google_secret_manager_secret" "django_settings" { secret_id = "django_settings" replication { auto {} } depends_on = [google_project_service.enabled] } ## Django configuration settings resource "google_secret_manager_secret_version" "django_settings" { secret = google_secret_manager_secret.django_settings.id secret_data = <<EOF DATABASE_URL="postgres://${google_sql_user.django.name}:${google_sql_user.django.password}@//cloudsql/${google_sql_database_instance.postgres.project}:${google_sql_database_instance.postgres.region}:${google_sql_database_instance.postgres.name}/${google_sql_database.database.name}" GS_BUCKET_NAME="${google_storage_bucket.media.name}" SECRET_KEY="${random_password.django_secret_key.result}" EOF } resource "google_secret_manager_secret_iam_binding" "django_settings" { secret_id = google_secret_manager_secret.django_settings.id role = "roles/secretmanager.secretAccessor" members = [local.server_SA, local.automation_SA] }