infrastructure/modules/services/postgresql.tf

36 lines
1 KiB
HCL

resource "random_password" "postgresql_service_passwords" {
for_each = local.services_database
length = 32
special = false
}
resource "postgresql_role" "service_roles" {
for_each = local.services_database
name = each.key
login = true
password = random_password.postgresql_service_passwords[each.key].result
}
resource "postgresql_database" "service_databases" {
for_each = local.services_database
name = each.key
owner = postgresql_role.service_roles[each.key].name
}
resource "random_password" "postgresql_metrics_collector_password" {
length = 32
special = false
}
resource "postgresql_role" "metrics_collector_role" {
name = "metrics_collector"
login = true
password = random_password.postgresql_metrics_collector_password.result
search_path = ["postgres_exporter", "pg_catalog"]
roles = ["pg_monitor", "pg_read_all_stats"]
}
resource "postgresql_database" "metrics_collector_database" {
name = "metrics_collector"
owner = postgresql_role.metrics_collector_role.name
}