psql templates overrides globally set options with defaults
Summary
The templates for postgresql were updated, but now any subchart that initiates the psql
will override the global configured variables with the defaults, unless explicitly overridden. This fails e.g. in the gitlab/task-runner chart, where psql is initiated as an empty map.
specifically, https://gitlab.com/gitlab-org/charts/gitlab/-/blob/4-2-stable/templates/_helpers.tpl#L191 doesn't work for me.
Steps to reproduce
see below
Configuration used
(Please provide a sanitized version of the configuration used wrapped in a code block (```yaml))
global:
psql:
database: my-database-name
Current behavior
# charts/gitlab/charts/task-runner/templates/configmap.yaml
...
data:
database.yml.erb: |
production:
adapter: postgresql
encoding: unicode
database: gitlabhq_production
username: gitlab
password: "<%= File.read("/etc/gitlab/postgres/psql-password").strip.dump[1..-2] %>"
host: "postgresql-release-name"
port: 5432
pool: 1
prepared_statements: false
Expected behavior
# charts/gitlab/charts/task-runner/templates/configmap.yaml
...
data:
database.yml.erb: |
production:
adapter: postgresql
encoding: unicode
database: my-database-name
username: gitlab
password: "<%= File.read("/etc/gitlab/postgres/psql-password").strip.dump[1..-2] %>"
host: "postgresql-deployment-name"
port: 5432
pool: 1
prepared_statements: false
Workaround
Duplicate your configuration from global.psql
to the various sub-charts like so:
global:
psql:
database: my-database-name
gitlab:
geo-logcursor:
psql:
database: my-database-name
task-runner:
psql:
database: my-database-name
...:
psql:
database: my-database-name
... etc.
Versions
- Chart: 4.2.0, HEAD
- Platform:
- Cloud: (GKE | AKS | EKS | ?)
- Self-hosted: (OpenShift | Minikube | Rancher RKE | ?)
- Kubernetes: (
kubectl version
)- Client: 1.18.2
- Server:
- Helm: (
helm version
)- Client: v2.16.9
- Server: N/A
Edited by Matthias van de Meent