36 lines
1 KiB
HCL
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
|
|
}
|