1 ## Global Docker image parameters
2 ## Please, note that this will override the image parameters, including dependencies, configured to use the global value
3 ## Current available global Docker image parameters: imageRegistry and imagePullSecrets
7 # imageRegistry: myRegistryName
9 # - myRegistryKeySecretName
10 # storageClass: myStorageClass
12 ## Bitnami PostgreSQL image version
13 ## ref: https://hub.docker.com/r/bitnami/postgresql/tags/
17 repository: bitnami/postgresql
18 tag: 11.6.0-debian-9-r0
19 ## Specify a imagePullPolicy
20 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
21 ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
23 pullPolicy: IfNotPresent
24 ## Optionally specify an array of imagePullSecrets.
25 ## Secrets must be manually created in the namespace.
26 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
29 # - myRegistryKeySecretName
31 ## Set to true if you would like to see extra information on logs
32 ## It turns BASH and NAMI debugging in minideb
33 ## ref: https://github.com/bitnami/minideb-extras/#turn-on-bash-debugging
36 ## String to partially override postgresql.fullname template (will maintain the release name)
40 ## String to fully override postgresql.fullname template
45 ## Init containers parameters:
46 ## volumePermissions: Change the owner of the persist volume mountpoint to RunAsUser:fsGroup
52 repository: bitnami/minideb
54 ## Specify a imagePullPolicy
55 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
56 ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
59 ## Optionally specify an array of imagePullSecrets.
60 ## Secrets must be manually created in the namespace.
61 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
64 # - myRegistryKeySecretName
65 ## Init container Security Context
69 ## Use an alternate scheduler, e.g. "stork".
70 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
74 ## Pod Security Context
75 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
82 ## Pod Service Account
83 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
86 ## Name of an already existing service account. Setting this value disables the automatic service account creation.
92 password: repl_password
94 ## Set synchronous commit mode: on, off, remote_apply, remote_write and local
95 ## ref: https://www.postgresql.org/docs/9.6/runtime-config-wal.html#GUC-WAL-LEVEL
96 synchronousCommit: "off"
97 ## From the number of `slaveReplicas` defined above, set the number of those that will have synchronous replication
98 ## NOTE: It cannot be > slaveReplicas
99 numSynchronousReplicas: 0
100 ## Replication Cluster application name. Useful for defining multiple replication policies
101 applicationName: my_application
103 ## PostgreSQL admin password (used when `postgresqlUsername` is not `postgres`)
104 ## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#creating-a-database-user-on-first-run (see note!)
105 # postgresqlPostgresPassword:
107 ## PostgreSQL user (has superuser privileges if username is `postgres`)
108 ## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#setting-the-root-password-on-first-run
109 postgresqlUsername: postgres
111 ## PostgreSQL password
112 ## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#setting-the-root-password-on-first-run
114 # postgresqlPassword:
116 ## PostgreSQL password using existing secret
117 ## existingSecret: secret
119 ## Mount PostgreSQL secret as a file instead of passing environment variable
120 # usePasswordFile: false
123 ## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md#creating-a-database-on-first-run
125 # postgresqlDatabase:
127 ## PostgreSQL data dir
128 ## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md
130 postgresqlDataDir: /bitnami/postgresql/data
132 ## An array to add extra environment variables
141 ## Specify extra initdb args
142 ## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md
144 # postgresqlInitdbArgs:
146 ## Specify a custom location for the PostgreSQL transaction log
147 ## ref: https://github.com/bitnami/bitnami-docker-postgresql/blob/master/README.md
149 # postgresqlInitdbWalDir:
151 ## PostgreSQL configuration
152 ## Specify runtime configuration parameters as a dict, using camelCase, e.g.
153 ## {"sharedBuffers": "500MB"}
154 ## Alternatively, you can put your postgresql.conf under the files/ directory
155 ## ref: https://www.postgresql.org/docs/current/static/runtime-config.html
157 # postgresqlConfiguration:
159 ## PostgreSQL extended configuration
160 ## As above, but _appended_ to the main configuration
161 ## Alternatively, you can put your *.conf under the files/conf.d/ directory
162 ## https://github.com/bitnami/bitnami-docker-postgresql#allow-settings-to-be-loaded-from-files-other-than-the-default-postgresqlconf
164 # postgresqlExtendedConf:
166 ## PostgreSQL client authentication configuration
167 ## Specify content for pg_hba.conf
168 ## Default: do not create pg_hba.conf
169 ## Alternatively, you can put your pg_hba.conf under the files/ directory
170 # pgHbaConfiguration: |-
171 # local all all trust
172 # host all all localhost trust
173 # host mydatabase mysuser 192.168.0.0/24 md5
175 ## ConfigMap with PostgreSQL configuration
176 ## NOTE: This will override postgresqlConfiguration and pgHbaConfiguration
177 # configurationConfigMap:
179 ## ConfigMap with PostgreSQL extended configuration
180 # extendedConfConfigMap:
183 ## Specify dictionary of scripts to be run at first boot
184 ## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory
187 # my_init_script.sh: |
189 # echo "Do something."
191 ## ConfigMap with scripts to be run at first boot
192 ## NOTE: This will override initdbScripts
193 # initdbScriptsConfigMap:
195 ## Secret with scripts to be run at first boot (in case it contains sensitive information)
196 ## NOTE: This can work along initdbScripts or initdbScriptsConfigMap
197 # initdbScriptsSecret:
199 ## Specify the PostgreSQL username and password to execute the initdb scripts
203 ## Optional duration in seconds the pod needs to terminate gracefully.
204 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
206 # terminationGracePeriodSeconds: 30
208 ## LDAP configuration
225 ## PostgreSQL service configuration
227 ## PosgresSQL service type
232 ## Specify the nodePort value for the LoadBalancer and NodePort service types.
233 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
237 ## Provide any additional annotations which may be required.
238 ## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart
240 ## Set the LoadBalancer service type to internal only.
241 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
245 ## Load Balancer sources
246 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
248 # loadBalancerSourceRanges:
251 ## Start master and slave(s) pod(s) without limitations on shm memory.
252 ## By default docker and containerd (and possibly other container runtimes)
253 ## limit `/dev/shm` to `64M` (see e.g. the
254 ## [docker issue](https://github.com/docker-library/postgres/issues/416) and the
255 ## [containerd issue](https://github.com/containerd/containerd/issues/3654),
256 ## which could be not enough if PostgreSQL uses parallel workers heavily.
257 ## If this option is present and value is `true`,
258 ## to the target database pod will be mounted a new tmpfs volume to remove
263 ## PostgreSQL data Persistent Volume Storage Class
264 ## If defined, storageClassName: <storageClass>
265 ## If set to "-", storageClassName: "", which disables dynamic provisioning
266 ## If undefined (the default) or set to null, no storageClassName spec is
267 ## set, choosing the default provisioner. (gp2 on AWS, standard on
268 ## GKE, AWS & OpenStack)
272 ## A manually managed Persistent Volume and Claim
273 ## If defined, PVC must be created manually before volume will be bound
274 ## The value is evaluated as a template, so, for example, the name can depend on .Release or .Chart
278 ## The path the volume will be mounted at, useful when using different
279 ## PostgreSQL images.
281 mountPath: /bitnami/postgresql
283 ## The subdirectory of the volume to mount to, useful in dev environments
284 ## and one PV for multiple services.
294 ## updateStrategy for PostgreSQL StatefulSet and its slaves StatefulSets
295 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
300 ## PostgreSQL Master parameters
303 ## Node, affinity, tolerations, and priorityclass settings for pod assignment
304 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
305 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
306 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
307 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption
315 priorityClassName: ""
316 extraInitContainers: |
317 # - name: do-something
319 # command: ['do', 'something']
320 ## Additional PostgreSQL Master Volume mounts
322 extraVolumeMounts: []
323 ## Additional PostgreSQL Master Volumes
328 ## PostgreSQL Slave parameters
331 ## Node, affinity, tolerations, and priorityclass settings for pod assignment
332 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector
333 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
334 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#taints-and-tolerations-beta-feature
335 ## ref: https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption
343 priorityClassName: ""
344 extraInitContainers: |
345 # - name: do-something
347 # command: ['do', 'something']
348 ## Additional PostgreSQL Slave Volume mounts
350 extraVolumeMounts: []
351 ## Additional PostgreSQL Slave Volumes
355 ## Configure resource requests and limits
356 ## ref: http://kubernetes.io/docs/user-guide/compute-resources/
364 ## Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now.
368 ## The Policy model to apply. When set to false, only pods with the correct
369 ## client label will have network access to the port PostgreSQL is listening
370 ## on. When true, PostgreSQL will accept connections from any source
371 ## (with the correct destination port).
375 ## if explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace
376 ## and that match other criteria, the ones that have the good label, can reach the DB.
377 ## But sometimes, we want the DB to be accessible to clients from other namespaces, in this case, we can use this
378 ## LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added.
380 # explicitNamespacesSelector:
384 # - {key: role, operator: In, values: [frontend]}
386 ## Configure extra options for liveness and readiness probes
387 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
390 initialDelaySeconds: 30
398 initialDelaySeconds: 5
404 ## Configure metrics exporter
412 prometheus.io/scrape: "true"
413 prometheus.io/port: "9187"
418 # namespace: monitoring
421 ## Custom PrometheusRule to be defined
422 ## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart
423 ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
429 ## These are just examples rules, please adapt them to your needs.
430 ## Make sure to constraint the rules to the current postgresql service.
431 # - alert: HugeReplicationLag
432 # expr: pg_replication_lag{service="{{ template "postgresql.fullname" . }}-metrics"} / 3600 > 1
437 # description: replication for {{ template "postgresql.fullname" . }} PostgreSQL is lagging by {{ "{{ $value }}" }} hour(s).
438 # summary: PostgreSQL replication is lagging by {{ "{{ $value }}" }} hour(s).
441 repository: bitnami/postgres-exporter
442 tag: 0.7.0-debian-9-r12
443 pullPolicy: IfNotPresent
444 ## Optionally specify an array of imagePullSecrets.
445 ## Secrets must be manually created in the namespace.
446 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
449 # - myRegistryKeySecretName
450 ## Define additional custom metrics
451 ## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file
454 # query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')"
458 # description: "Name of the database"
461 # description: "Size of the database in bytes"
462 ## Pod Security Context
463 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
468 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/#configure-probes)
469 ## Configure extra options for liveness and readiness probes
472 initialDelaySeconds: 5
480 initialDelaySeconds: 5