Okay, I think I’m missing something about how the launcher script (or pups) works here.
I have one YAML file for each instance, which looks like this:
discourse@hawthorn:~/discourse$ cat containers/clicsargent.yml
templates:
- "templates/torchbox-web.template.yml"
- "private/clicsargent.template.yml"
env:
DISCOURSE_HOSTNAME: 'clicsargent-stage-discourse.torchboxapps.com'
DISCOURSE_DB_USERNAME: clicsargent_discourse
DISCOURSE_DB_NAME: clicsargent_discourse
torchbox-web.template.yml sets the global database configuration:
discourse@hawthorn:~/discourse$ cat templates/torchbox-web.template.yml
# This is a Discourse build for Torchbox servers on Kubernetes.
templates:
- "templates/web.template.yml"
- "templates/web.ratelimited.template.yml"
env:
LANG: en_US.UTF-8
UNICORN_WORKERS: 1
DISCOURSE_DEVELOPER_EMAILS: 'sysadmin@torchbox.com'
DISCOURSE_DB_SOCKET: ''
DISCOURSE_DB_HOST: postgres-2.itl.rslon.torchbox.net
DISCOURSE_REDIS_HOST: redis-1-cache.itl.rslon.torchbox.net
DISCOURSE_REDIS_DB: '9'
DISCOURSE_REDIS_PORT: '6381'
DISCOURSE_SMTP_ADDRESS: mailer.itl.svc.torchbox.net
Then I set a database password in a separate file, so it doesn’t need to go in the Git repository:
discourse@hawthorn:~/discourse$ cat private/clicsargent.template.yml
env:
DISCOURSE_DB_PASSWORD: <password>
However, running the build doesn’t seem to pick up the correct database settings from the template
discourse@hawthorn:~/discourse$ ./launcher bootstrap clicsargent
[...]
Failed to initialize site default
rake aborted!
PG::ConnectionBad: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
If I move all the database settings except password to containers/<instance>.yml, then it does work, and it correctly picks up the password from private/<instance>.yml.
What am I missing here? My understanding was that all the env settings would be merged from templates.