From 0ea9da3a532d5854f6387495cd135f22c66b457b Mon Sep 17 00:00:00 2001 From: Ian Fijolek Date: Tue, 25 Jul 2023 16:40:35 -0700 Subject: [PATCH] Update postgres bootstrap allowing multiple databases --- services/service/service_template.nomad | 22 ++++++++++++++++------ services/service/vars.tf | 1 + 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/services/service/service_template.nomad b/services/service/service_template.nomad index 812f4ac..e2e6a2b 100644 --- a/services/service/service_template.nomad +++ b/services/service/service_template.nomad @@ -265,19 +265,23 @@ SELECT 'NOOP'; template { data = < 0 } +%{ for db_name in postgres_bootstrap.databases ~} +/usr/bin/createdb ${db_name} +%{ endfor } +%{ else } +{{ with nomadVar "nomad/jobs/${name}" }}/usr/bin/createdb {{ .${postgres_bootstrap.db_name_key} }}{{ end }} +%{ endif } +/usr/bin/psql -X -f $${NOMAD_SECRETS_DIR}/bootstrap.sql EOF - destination = "$${NOMAD_TASK_DIR}/boostrap.sh" + destination = "$${NOMAD_TASK_DIR}/bootstrap.sh" } template { data = < 0 } +%{ for db_name in postgres_bootstrap.databases } +GRANT ALL ON DATABASE "${db_name}" TO {{ .${postgres_bootstrap.db_user_key} }}; +%{ endfor } +%{ else } GRANT ALL ON DATABASE "{{ .${postgres_bootstrap.db_name_key} }}" TO {{ .${postgres_bootstrap.db_user_key} }}; +%{ endif } EXCEPTION WHEN duplicate_object THEN RAISE NOTICE '%, skipping', SQLERRM USING ERRCODE = SQLSTATE; END $$; diff --git a/services/service/vars.tf b/services/service/vars.tf index 7d21148..1d0a0f9 100644 --- a/services/service/vars.tf +++ b/services/service/vars.tf @@ -188,6 +188,7 @@ variable "postgres_bootstrap" { db_name_key = optional(string, "db_name") db_user_key = optional(string, "db_user") db_pass_key = optional(string, "db_pass") + databases = optional(list(string), []) }) default = null