diff --git a/postgres/postgres.tf b/postgres/postgres.tf index 22b1cd0..ccdda26 100644 --- a/postgres/postgres.tf +++ b/postgres/postgres.tf @@ -12,18 +12,24 @@ resource "stackit_postgresflex_instance" "this" { // Postgres User resource "stackit_postgresflex_user" "this" { + for_each = { + for db in var.postgres_databases : db.user_name => db + } depends_on = [ stackit_postgresflex_instance.this ] project_id = var.stackit_project_id instance_id = stackit_postgresflex_instance.this.instance_id - username = var.postgres_db_user_name - roles = var.postgres_db_user_roles + username = each.value.user_name + roles = each.value.user_roles } // Postgres Database resource "stackit_postgresflex_database" "this" { - depends_on = [ stackit_postgresflex_user.this ] + for_each = { + for db in var.postgres_databases : db.db_name => db + } + depends_on = [stackit_postgresflex_user.this] project_id = var.stackit_project_id instance_id = stackit_postgresflex_instance.this.instance_id - name = var.postgres_db_name - owner = var.postgres_db_user_name -} \ No newline at end of file + name = each.value.db_name + owner = each.value.user_name +} diff --git a/postgres/variables.tf b/postgres/variables.tf index b29923d..886fd59 100644 --- a/postgres/variables.tf +++ b/postgres/variables.tf @@ -10,11 +10,6 @@ variable "postgres_instance_name" { type = string } -# variable "postegres_instance_id" { -# description = "postgres instance id" -# type = string -# } - variable "postgres_instance_replicas" { description = "number of replicas for postgres instance" type = number @@ -58,19 +53,12 @@ variable "postgres_instance_region" { type = string } -# Postgres User Configs -variable "postgres_db_user_name" { - description = "username and owner for postgres db" - type = string -} - -variable "postgres_db_user_roles" { - description = "List of database access levels for the user. Supported values are: login, createdb." - type = list(string) -} - -# Postgres Database Configs -variable "postgres_db_name" { - description = "db name inside the instance" - type = string +# Postgres User and DB Configs +variable "postgres_databases" { + description = "list of users and databases" + type = list(object({ + db_name = string # db name inside the instance + user_name = string # username and owner for postgres db + user_roles = list(string) # List of database access levels for the user. Supported values are: login, createdb. + })) } \ No newline at end of file