blob: 7f8b20b7f854e03f79efeacc47b016991b586571 [file] [log] [blame]
Giorgi Lekveishvili8c99d622023-05-30 14:40:50 +04001## @section Global parameters
2## Please, note that this will override the parameters, including dependencies, configured to use the global value
3##
4global:
5 ## @param global.imageRegistry Global Docker image registry
6 ##
7 imageRegistry: ""
8 ## @param global.imagePullSecrets Global Docker registry secret names as an array
9 ## e.g.
10 ## imagePullSecrets:
11 ## - myRegistryKeySecretName
12 ##
13 imagePullSecrets: []
14 ## @param global.storageClass Global StorageClass for Persistent Volume(s)
15 ##
16 storageClass: ""
17 postgresql:
18 ## @param global.postgresql.auth.postgresPassword Password for the "postgres" admin user (overrides `auth.postgresPassword`)
19 ## @param global.postgresql.auth.username Name for a custom user to create (overrides `auth.username`)
20 ## @param global.postgresql.auth.password Password for the custom user to create (overrides `auth.password`)
21 ## @param global.postgresql.auth.database Name for a custom database to create (overrides `auth.database`)
22 ## @param global.postgresql.auth.existingSecret Name of existing secret to use for PostgreSQL credentials (overrides `auth.existingSecret`).
23 ## @param global.postgresql.auth.secretKeys.adminPasswordKey Name of key in existing secret to use for PostgreSQL credentials (overrides `auth.secretKeys.adminPasswordKey`). Only used when `global.postgresql.auth.existingSecret` is set.
24 ## @param global.postgresql.auth.secretKeys.userPasswordKey Name of key in existing secret to use for PostgreSQL credentials (overrides `auth.secretKeys.userPasswordKey`). Only used when `global.postgresql.auth.existingSecret` is set.
25 ## @param global.postgresql.auth.secretKeys.replicationPasswordKey Name of key in existing secret to use for PostgreSQL credentials (overrides `auth.secretKeys.replicationPasswordKey`). Only used when `global.postgresql.auth.existingSecret` is set.
26 ##
27 auth:
28 postgresPassword: ""
29 username: ""
30 password: ""
31 database: ""
32 existingSecret: ""
33 secretKeys:
34 adminPasswordKey: ""
35 userPasswordKey: ""
36 replicationPasswordKey: ""
37 ## @param global.postgresql.service.ports.postgresql PostgreSQL service port (overrides `service.ports.postgresql`)
38 ##
39 service:
40 ports:
41 postgresql: ""
42
43## @section Common parameters
44##
45
46## @param kubeVersion Override Kubernetes version
47##
48kubeVersion: ""
49## @param nameOverride String to partially override common.names.fullname template (will maintain the release name)
50##
51nameOverride: ""
52## @param fullnameOverride String to fully override common.names.fullname template
53##
54fullnameOverride: ""
55## @param clusterDomain Kubernetes Cluster Domain
56##
57clusterDomain: cluster.local
58## @param extraDeploy Array of extra objects to deploy with the release (evaluated as a template)
59##
60extraDeploy: []
61## @param commonLabels Add labels to all the deployed resources
62##
63commonLabels: {}
64## @param commonAnnotations Add annotations to all the deployed resources
65##
66commonAnnotations: {}
67## Enable diagnostic mode in the statefulset
68##
69diagnosticMode:
70 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
71 ##
72 enabled: false
73 ## @param diagnosticMode.command Command to override all containers in the statefulset
74 ##
75 command:
76 - sleep
77 ## @param diagnosticMode.args Args to override all containers in the statefulset
78 ##
79 args:
80 - infinity
81
82## @section PostgreSQL common parameters
83##
84
85## Bitnami PostgreSQL image version
86## ref: https://hub.docker.com/r/bitnami/postgresql/tags/
87## @param image.registry PostgreSQL image registry
88## @param image.repository PostgreSQL image repository
89## @param image.tag PostgreSQL image tag (immutable tags are recommended)
90## @param image.digest PostgreSQL image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
91## @param image.pullPolicy PostgreSQL image pull policy
92## @param image.pullSecrets Specify image pull secrets
93## @param image.debug Specify if debug values should be set
94##
95image:
96 registry: docker.io
97 repository: bitnami/postgresql
98 tag: 15.3.0-debian-11-r7
99 digest: ""
100 ## Specify a imagePullPolicy
101 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
102 ## ref: https://kubernetes.io/docs/user-guide/images/#pre-pulling-images
103 ##
104 pullPolicy: IfNotPresent
105 ## Optionally specify an array of imagePullSecrets.
106 ## Secrets must be manually created in the namespace.
107 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
108 ## Example:
109 ## pullSecrets:
110 ## - myRegistryKeySecretName
111 ##
112 pullSecrets: []
113 ## Set to true if you would like to see extra information on logs
114 ##
115 debug: false
116## Authentication parameters
117## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#setting-the-root-password-on-first-run
118## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#creating-a-database-on-first-run
119## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#creating-a-database-user-on-first-run
120##
121auth:
122 ## @param auth.enablePostgresUser Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user
123 ##
124 enablePostgresUser: true
125 ## @param auth.postgresPassword Password for the "postgres" admin user. Ignored if `auth.existingSecret` is provided
126 ##
127 postgresPassword: ""
128 ## @param auth.username Name for a custom user to create
129 ##
130 username: ""
131 ## @param auth.password Password for the custom user to create. Ignored if `auth.existingSecret` is provided
132 ##
133 password: ""
134 ## @param auth.database Name for a custom database to create
135 ##
136 database: ""
137 ## @param auth.replicationUsername Name of the replication user
138 ##
139 replicationUsername: repl_user
140 ## @param auth.replicationPassword Password for the replication user. Ignored if `auth.existingSecret` is provided
141 ##
142 replicationPassword: ""
143 ## @param auth.existingSecret Name of existing secret to use for PostgreSQL credentials. `auth.postgresPassword`, `auth.password`, and `auth.replicationPassword` will be ignored and picked up from this secret. The secret might also contains the key `ldap-password` if LDAP is enabled. `ldap.bind_password` will be ignored and picked from this secret in this case.
144 ##
145 existingSecret: ""
146 ## @param auth.secretKeys.adminPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set.
147 ## @param auth.secretKeys.userPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set.
148 ## @param auth.secretKeys.replicationPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set.
149 ##
150 secretKeys:
151 adminPasswordKey: postgres-password
152 userPasswordKey: password
153 replicationPasswordKey: replication-password
154 ## @param auth.usePasswordFiles Mount credentials as a files instead of using an environment variable
155 ##
156 usePasswordFiles: false
157## @param architecture PostgreSQL architecture (`standalone` or `replication`)
158##
159architecture: standalone
160## Replication configuration
161## Ignored if `architecture` is `standalone`
162##
163replication:
164 ## @param replication.synchronousCommit Set synchronous commit mode. Allowed values: `on`, `remote_apply`, `remote_write`, `local` and `off`
165 ## @param replication.numSynchronousReplicas Number of replicas that will have synchronous replication. Note: Cannot be greater than `readReplicas.replicaCount`.
166 ## ref: https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT
167 ##
168 synchronousCommit: "off"
169 numSynchronousReplicas: 0
170 ## @param replication.applicationName Cluster application name. Useful for advanced replication settings
171 ##
172 applicationName: my_application
173## @param containerPorts.postgresql PostgreSQL container port
174##
175containerPorts:
176 postgresql: 5432
177## Audit settings
178## https://github.com/bitnami/containers/tree/main/bitnami/postgresql#auditing
179## @param audit.logHostname Log client hostnames
180## @param audit.logConnections Add client log-in operations to the log file
181## @param audit.logDisconnections Add client log-outs operations to the log file
182## @param audit.pgAuditLog Add operations to log using the pgAudit extension
183## @param audit.pgAuditLogCatalog Log catalog using pgAudit
184## @param audit.clientMinMessages Message log level to share with the user
185## @param audit.logLinePrefix Template for log line prefix (default if not set)
186## @param audit.logTimezone Timezone for the log timestamps
187##
188audit:
189 logHostname: false
190 logConnections: false
191 logDisconnections: false
192 pgAuditLog: ""
193 pgAuditLogCatalog: "off"
194 clientMinMessages: error
195 logLinePrefix: ""
196 logTimezone: ""
197## LDAP configuration
198## @param ldap.enabled Enable LDAP support
199## DEPRECATED ldap.url It will removed in a future, please use 'ldap.uri' instead
200## @param ldap.server IP address or name of the LDAP server.
201## @param ldap.port Port number on the LDAP server to connect to
202## @param ldap.prefix String to prepend to the user name when forming the DN to bind
203## @param ldap.suffix String to append to the user name when forming the DN to bind
204## DEPRECATED ldap.baseDN It will removed in a future, please use 'ldap.basedn' instead
205## DEPRECATED ldap.bindDN It will removed in a future, please use 'ldap.binddn' instead
206## DEPRECATED ldap.bind_password It will removed in a future, please use 'ldap.bindpw' instead
207## @param ldap.basedn Root DN to begin the search for the user in
208## @param ldap.binddn DN of user to bind to LDAP
209## @param ldap.bindpw Password for the user to bind to LDAP
210## DEPRECATED ldap.search_attr It will removed in a future, please use 'ldap.searchAttribute' instead
211## DEPRECATED ldap.search_filter It will removed in a future, please use 'ldap.searchFilter' instead
212## @param ldap.searchAttribute Attribute to match against the user name in the search
213## @param ldap.searchFilter The search filter to use when doing search+bind authentication
214## @param ldap.scheme Set to `ldaps` to use LDAPS
215## DEPRECATED ldap.tls as string is deprecated,please use 'ldap.tls.enabled' instead
216## @param ldap.tls.enabled Se to true to enable TLS encryption
217##
218ldap:
219 enabled: false
220 server: ""
221 port: ""
222 prefix: ""
223 suffix: ""
224 basedn: ""
225 binddn: ""
226 bindpw: ""
227 searchAttribute: ""
228 searchFilter: ""
229 scheme: ""
230 tls:
231 enabled: false
232 ## @param ldap.uri LDAP URL beginning in the form `ldap[s]://host[:port]/basedn`. If provided, all the other LDAP parameters will be ignored.
233 ## Ref: https://www.postgresql.org/docs/current/auth-ldap.html
234 ##
235 uri: ""
236## @param postgresqlDataDir PostgreSQL data dir folder
237##
238postgresqlDataDir: /bitnami/postgresql/data
239## @param postgresqlSharedPreloadLibraries Shared preload libraries (comma-separated list)
240##
241postgresqlSharedPreloadLibraries: "pgaudit"
242## Start PostgreSQL pod(s) without limitations on shm memory.
243## By default docker and containerd (and possibly other container runtimes) limit `/dev/shm` to `64M`
244## ref: https://github.com/docker-library/postgres/issues/416
245## ref: https://github.com/containerd/containerd/issues/3654
246##
247shmVolume:
248 ## @param shmVolume.enabled Enable emptyDir volume for /dev/shm for PostgreSQL pod(s)
249 ##
250 enabled: true
251 ## @param shmVolume.sizeLimit Set this to enable a size limit on the shm tmpfs
252 ## Note: the size of the tmpfs counts against container's memory limit
253 ## e.g:
254 ## sizeLimit: 1Gi
255 ##
256 sizeLimit: ""
257## TLS configuration
258##
259tls:
260 ## @param tls.enabled Enable TLS traffic support
261 ##
262 enabled: false
263 ## @param tls.autoGenerated Generate automatically self-signed TLS certificates
264 ##
265 autoGenerated: false
266 ## @param tls.preferServerCiphers Whether to use the server's TLS cipher preferences rather than the client's
267 ##
268 preferServerCiphers: true
269 ## @param tls.certificatesSecret Name of an existing secret that contains the certificates
270 ##
271 certificatesSecret: ""
272 ## @param tls.certFilename Certificate filename
273 ##
274 certFilename: ""
275 ## @param tls.certKeyFilename Certificate key filename
276 ##
277 certKeyFilename: ""
278 ## @param tls.certCAFilename CA Certificate filename
279 ## If provided, PostgreSQL will authenticate TLS/SSL clients by requesting them a certificate
280 ## ref: https://www.postgresql.org/docs/9.6/auth-methods.html
281 ##
282 certCAFilename: ""
283 ## @param tls.crlFilename File containing a Certificate Revocation List
284 ##
285 crlFilename: ""
286
287## @section PostgreSQL Primary parameters
288##
289primary:
290 ## @param primary.name Name of the primary database (eg primary, master, leader, ...)
291 ##
292 name: primary
293 ## @param primary.configuration PostgreSQL Primary main configuration to be injected as ConfigMap
294 ## ref: https://www.postgresql.org/docs/current/static/runtime-config.html
295 ##
296 configuration: ""
297 ## @param primary.pgHbaConfiguration PostgreSQL Primary client authentication configuration
298 ## ref: https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
299 ## e.g:#
300 ## pgHbaConfiguration: |-
301 ## local all all trust
302 ## host all all localhost trust
303 ## host mydatabase mysuser 192.168.0.0/24 md5
304 ##
305 pgHbaConfiguration: ""
306 ## @param primary.existingConfigmap Name of an existing ConfigMap with PostgreSQL Primary configuration
307 ## NOTE: `primary.configuration` and `primary.pgHbaConfiguration` will be ignored
308 ##
309 existingConfigmap: ""
310 ## @param primary.extendedConfiguration Extended PostgreSQL Primary configuration (appended to main or default configuration)
311 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#allow-settings-to-be-loaded-from-files-other-than-the-default-postgresqlconf
312 ##
313 extendedConfiguration: ""
314 ## @param primary.existingExtendedConfigmap Name of an existing ConfigMap with PostgreSQL Primary extended configuration
315 ## NOTE: `primary.extendedConfiguration` will be ignored
316 ##
317 existingExtendedConfigmap: ""
318 ## Initdb configuration
319 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#specifying-initdb-arguments
320 ##
321 initdb:
322 ## @param primary.initdb.args PostgreSQL initdb extra arguments
323 ##
324 args: ""
325 ## @param primary.initdb.postgresqlWalDir Specify a custom location for the PostgreSQL transaction log
326 ##
327 postgresqlWalDir: ""
328 ## @param primary.initdb.scripts Dictionary of initdb scripts
329 ## Specify dictionary of scripts to be run at first boot
330 ## e.g:
331 ## scripts:
332 ## my_init_script.sh: |
333 ## #!/bin/sh
334 ## echo "Do something."
335 ##
336 scripts: {}
337 ## @param primary.initdb.scriptsConfigMap ConfigMap with scripts to be run at first boot
338 ## NOTE: This will override `primary.initdb.scripts`
339 ##
340 scriptsConfigMap: ""
341 ## @param primary.initdb.scriptsSecret Secret with scripts to be run at first boot (in case it contains sensitive information)
342 ## NOTE: This can work along `primary.initdb.scripts` or `primary.initdb.scriptsConfigMap`
343 ##
344 scriptsSecret: ""
345 ## @param primary.initdb.user Specify the PostgreSQL username to execute the initdb scripts
346 ##
347 user: ""
348 ## @param primary.initdb.password Specify the PostgreSQL password to execute the initdb scripts
349 ##
350 password: ""
351 ## Configure current cluster's primary server to be the standby server in other cluster.
352 ## This will allow cross cluster replication and provide cross cluster high availability.
353 ## You will need to configure pgHbaConfiguration if you want to enable this feature with local cluster replication enabled.
354 ## @param primary.standby.enabled Whether to enable current cluster's primary as standby server of another cluster or not
355 ## @param primary.standby.primaryHost The Host of replication primary in the other cluster
356 ## @param primary.standby.primaryPort The Port of replication primary in the other cluster
357 ##
358 standby:
359 enabled: false
360 primaryHost: ""
361 primaryPort: ""
362 ## @param primary.extraEnvVars Array with extra environment variables to add to PostgreSQL Primary nodes
363 ## e.g:
364 ## extraEnvVars:
365 ## - name: FOO
366 ## value: "bar"
367 ##
368 extraEnvVars: []
369 ## @param primary.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for PostgreSQL Primary nodes
370 ##
371 extraEnvVarsCM: ""
372 ## @param primary.extraEnvVarsSecret Name of existing Secret containing extra env vars for PostgreSQL Primary nodes
373 ##
374 extraEnvVarsSecret: ""
375 ## @param primary.command Override default container command (useful when using custom images)
376 ##
377 command: []
378 ## @param primary.args Override default container args (useful when using custom images)
379 ##
380 args: []
381 ## Configure extra options for PostgreSQL Primary containers' liveness, readiness and startup probes
382 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
383 ## @param primary.livenessProbe.enabled Enable livenessProbe on PostgreSQL Primary containers
384 ## @param primary.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
385 ## @param primary.livenessProbe.periodSeconds Period seconds for livenessProbe
386 ## @param primary.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
387 ## @param primary.livenessProbe.failureThreshold Failure threshold for livenessProbe
388 ## @param primary.livenessProbe.successThreshold Success threshold for livenessProbe
389 ##
390 livenessProbe:
391 enabled: true
392 initialDelaySeconds: 30
393 periodSeconds: 10
394 timeoutSeconds: 5
395 failureThreshold: 6
396 successThreshold: 1
397 ## @param primary.readinessProbe.enabled Enable readinessProbe on PostgreSQL Primary containers
398 ## @param primary.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
399 ## @param primary.readinessProbe.periodSeconds Period seconds for readinessProbe
400 ## @param primary.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
401 ## @param primary.readinessProbe.failureThreshold Failure threshold for readinessProbe
402 ## @param primary.readinessProbe.successThreshold Success threshold for readinessProbe
403 ##
404 readinessProbe:
405 enabled: true
406 initialDelaySeconds: 5
407 periodSeconds: 10
408 timeoutSeconds: 5
409 failureThreshold: 6
410 successThreshold: 1
411 ## @param primary.startupProbe.enabled Enable startupProbe on PostgreSQL Primary containers
412 ## @param primary.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
413 ## @param primary.startupProbe.periodSeconds Period seconds for startupProbe
414 ## @param primary.startupProbe.timeoutSeconds Timeout seconds for startupProbe
415 ## @param primary.startupProbe.failureThreshold Failure threshold for startupProbe
416 ## @param primary.startupProbe.successThreshold Success threshold for startupProbe
417 ##
418 startupProbe:
419 enabled: false
420 initialDelaySeconds: 30
421 periodSeconds: 10
422 timeoutSeconds: 1
423 failureThreshold: 15
424 successThreshold: 1
425 ## @param primary.customLivenessProbe Custom livenessProbe that overrides the default one
426 ##
427 customLivenessProbe: {}
428 ## @param primary.customReadinessProbe Custom readinessProbe that overrides the default one
429 ##
430 customReadinessProbe: {}
431 ## @param primary.customStartupProbe Custom startupProbe that overrides the default one
432 ##
433 customStartupProbe: {}
434 ## @param primary.lifecycleHooks for the PostgreSQL Primary container to automate configuration before or after startup
435 ##
436 lifecycleHooks: {}
437 ## PostgreSQL Primary resource requests and limits
438 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
439 ## @param primary.resources.limits The resources limits for the PostgreSQL Primary containers
440 ## @param primary.resources.requests.memory The requested memory for the PostgreSQL Primary containers
441 ## @param primary.resources.requests.cpu The requested cpu for the PostgreSQL Primary containers
442 ##
443 resources:
444 limits: {}
445 requests:
446 memory: 256Mi
447 cpu: 250m
448 ## Pod Security Context
449 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
450 ## @param primary.podSecurityContext.enabled Enable security context
451 ## @param primary.podSecurityContext.fsGroup Group ID for the pod
452 ##
453 podSecurityContext:
454 enabled: true
455 fsGroup: 1001
456 ## Container Security Context
457 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
458 ## @param primary.containerSecurityContext.enabled Enable container security context
459 ## @param primary.containerSecurityContext.runAsUser User ID for the container
460 ##
461 containerSecurityContext:
462 enabled: true
463 runAsUser: 1001
464 ## @param primary.hostAliases PostgreSQL primary pods host aliases
465 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
466 ##
467 hostAliases: []
468 ## @param primary.hostNetwork Specify if host network should be enabled for PostgreSQL pod (postgresql primary)
469 ##
470 hostNetwork: false
471 ## @param primary.hostIPC Specify if host IPC should be enabled for PostgreSQL pod (postgresql primary)
472 ##
473 hostIPC: false
474 ## @param primary.labels Map of labels to add to the statefulset (postgresql primary)
475 ##
476 labels: {}
477 ## @param primary.annotations Annotations for PostgreSQL primary pods
478 ##
479 annotations: {}
480 ## @param primary.podLabels Map of labels to add to the pods (postgresql primary)
481 ##
482 podLabels: {}
483 ## @param primary.podAnnotations Map of annotations to add to the pods (postgresql primary)
484 ##
485 podAnnotations: {}
486 ## @param primary.podAffinityPreset PostgreSQL primary pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
487 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
488 ##
489 podAffinityPreset: ""
490 ## @param primary.podAntiAffinityPreset PostgreSQL primary pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
491 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
492 ##
493 podAntiAffinityPreset: soft
494 ## PostgreSQL Primary node affinity preset
495 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
496 ##
497 nodeAffinityPreset:
498 ## @param primary.nodeAffinityPreset.type PostgreSQL primary node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
499 ##
500 type: ""
501 ## @param primary.nodeAffinityPreset.key PostgreSQL primary node label key to match Ignored if `primary.affinity` is set.
502 ## E.g.
503 ## key: "kubernetes.io/e2e-az-name"
504 ##
505 key: ""
506 ## @param primary.nodeAffinityPreset.values PostgreSQL primary node label values to match. Ignored if `primary.affinity` is set.
507 ## E.g.
508 ## values:
509 ## - e2e-az1
510 ## - e2e-az2
511 ##
512 values: []
513 ## @param primary.affinity Affinity for PostgreSQL primary pods assignment
514 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
515 ## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set
516 ##
517 affinity: {}
518 ## @param primary.nodeSelector Node labels for PostgreSQL primary pods assignment
519 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
520 ##
521 nodeSelector: {}
522 ## @param primary.tolerations Tolerations for PostgreSQL primary pods assignment
523 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
524 ##
525 tolerations: []
526 ## @param primary.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
527 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
528 ##
529 topologySpreadConstraints: []
530 ## @param primary.priorityClassName Priority Class to use for each pod (postgresql primary)
531 ##
532 priorityClassName: ""
533 ## @param primary.schedulerName Use an alternate scheduler, e.g. "stork".
534 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
535 ##
536 schedulerName: ""
537 ## @param primary.terminationGracePeriodSeconds Seconds PostgreSQL primary pod needs to terminate gracefully
538 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
539 ##
540 terminationGracePeriodSeconds: ""
541 ## @param primary.updateStrategy.type PostgreSQL Primary statefulset strategy type
542 ## @param primary.updateStrategy.rollingUpdate PostgreSQL Primary statefulset rolling update configuration parameters
543 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
544 ##
545 updateStrategy:
546 type: RollingUpdate
547 rollingUpdate: {}
548 ## @param primary.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the PostgreSQL Primary container(s)
549 ##
550 extraVolumeMounts: []
551 ## @param primary.extraVolumes Optionally specify extra list of additional volumes for the PostgreSQL Primary pod(s)
552 ##
553 extraVolumes: []
554 ## @param primary.sidecars Add additional sidecar containers to the PostgreSQL Primary pod(s)
555 ## For example:
556 ## sidecars:
557 ## - name: your-image-name
558 ## image: your-image
559 ## imagePullPolicy: Always
560 ## ports:
561 ## - name: portname
562 ## containerPort: 1234
563 ##
564 sidecars: []
565 ## @param primary.initContainers Add additional init containers to the PostgreSQL Primary pod(s)
566 ## Example
567 ##
568 ## initContainers:
569 ## - name: do-something
570 ## image: busybox
571 ## command: ['do', 'something']
572 ##
573 initContainers: []
574 ## @param primary.extraPodSpec Optionally specify extra PodSpec for the PostgreSQL Primary pod(s)
575 ##
576 extraPodSpec: {}
577 ## PostgreSQL Primary service configuration
578 ##
579 service:
580 ## @param primary.service.type Kubernetes Service type
581 ##
582 type: ClusterIP
583 ## @param primary.service.ports.postgresql PostgreSQL service port
584 ##
585 ports:
586 postgresql: 5432
587 ## Node ports to expose
588 ## NOTE: choose port between <30000-32767>
589 ## @param primary.service.nodePorts.postgresql Node port for PostgreSQL
590 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
591 ##
592 nodePorts:
593 postgresql: ""
594 ## @param primary.service.clusterIP Static clusterIP or None for headless services
595 ## e.g:
596 ## clusterIP: None
597 ##
598 clusterIP: ""
599 ## @param primary.service.annotations Annotations for PostgreSQL primary service
600 ##
601 annotations: {}
602 ## @param primary.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
603 ## Set the LoadBalancer service type to internal only
604 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
605 ##
606 loadBalancerIP: ""
607 ## @param primary.service.externalTrafficPolicy Enable client source IP preservation
608 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
609 ##
610 externalTrafficPolicy: Cluster
611 ## @param primary.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
612 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
613 ##
614 ## loadBalancerSourceRanges:
615 ## - 10.10.10.0/24
616 ##
617 loadBalancerSourceRanges: []
618 ## @param primary.service.extraPorts Extra ports to expose in the PostgreSQL primary service
619 ##
620 extraPorts: []
621 ## @param primary.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
622 ## If "ClientIP", consecutive client requests will be directed to the same Pod
623 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
624 ##
625 sessionAffinity: None
626 ## @param primary.service.sessionAffinityConfig Additional settings for the sessionAffinity
627 ## sessionAffinityConfig:
628 ## clientIP:
629 ## timeoutSeconds: 300
630 ##
631 sessionAffinityConfig: {}
632 ## Headless service properties
633 ##
634 headless:
635 ## @param primary.service.headless.annotations Additional custom annotations for headless PostgreSQL primary service
636 ##
637 annotations: {}
638 ## PostgreSQL Primary persistence configuration
639 ##
640 persistence:
641 ## @param primary.persistence.enabled Enable PostgreSQL Primary data persistence using PVC
642 ##
643 enabled: true
644 ## @param primary.persistence.existingClaim Name of an existing PVC to use
645 ##
646 existingClaim: ""
647 ## @param primary.persistence.mountPath The path the volume will be mounted at
648 ## Note: useful when using custom PostgreSQL images
649 ##
650 mountPath: /bitnami/postgresql
651 ## @param primary.persistence.subPath The subdirectory of the volume to mount to
652 ## Useful in dev environments and one PV for multiple services
653 ##
654 subPath: ""
655 ## @param primary.persistence.storageClass PVC Storage Class for PostgreSQL Primary data volume
656 ## If defined, storageClassName: <storageClass>
657 ## If set to "-", storageClassName: "", which disables dynamic provisioning
658 ## If undefined (the default) or set to null, no storageClassName spec is
659 ## set, choosing the default provisioner. (gp2 on AWS, standard on
660 ## GKE, AWS & OpenStack)
661 ##
662 storageClass: ""
663 ## @param primary.persistence.accessModes PVC Access Mode for PostgreSQL volume
664 ##
665 accessModes:
666 - ReadWriteOnce
667 ## @param primary.persistence.size PVC Storage Request for PostgreSQL volume
668 ##
669 size: 8Gi
670 ## @param primary.persistence.annotations Annotations for the PVC
671 ##
672 annotations: {}
673 ## @param primary.persistence.labels Labels for the PVC
674 ##
675 labels: {}
676 ## @param primary.persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
677 ## selector:
678 ## matchLabels:
679 ## app: my-app
680 ##
681 selector: {}
682 ## @param primary.persistence.dataSource Custom PVC data source
683 ##
684 dataSource: {}
685
686## @section PostgreSQL read only replica parameters (only used when `architecture` is set to `replication`)
687##
688readReplicas:
689 ## @param readReplicas.name Name of the read replicas database (eg secondary, slave, ...)
690 ##
691 name: read
692 ## @param readReplicas.replicaCount Number of PostgreSQL read only replicas
693 ##
694 replicaCount: 1
695 ## @param readReplicas.extendedConfiguration Extended PostgreSQL read only replicas configuration (appended to main or default configuration)
696 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#allow-settings-to-be-loaded-from-files-other-than-the-default-postgresqlconf
697 ##
698 extendedConfiguration: ""
699 ## @param readReplicas.extraEnvVars Array with extra environment variables to add to PostgreSQL read only nodes
700 ## e.g:
701 ## extraEnvVars:
702 ## - name: FOO
703 ## value: "bar"
704 ##
705 extraEnvVars: []
706 ## @param readReplicas.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for PostgreSQL read only nodes
707 ##
708 extraEnvVarsCM: ""
709 ## @param readReplicas.extraEnvVarsSecret Name of existing Secret containing extra env vars for PostgreSQL read only nodes
710 ##
711 extraEnvVarsSecret: ""
712 ## @param readReplicas.command Override default container command (useful when using custom images)
713 ##
714 command: []
715 ## @param readReplicas.args Override default container args (useful when using custom images)
716 ##
717 args: []
718 ## Configure extra options for PostgreSQL read only containers' liveness, readiness and startup probes
719 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
720 ## @param readReplicas.livenessProbe.enabled Enable livenessProbe on PostgreSQL read only containers
721 ## @param readReplicas.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
722 ## @param readReplicas.livenessProbe.periodSeconds Period seconds for livenessProbe
723 ## @param readReplicas.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
724 ## @param readReplicas.livenessProbe.failureThreshold Failure threshold for livenessProbe
725 ## @param readReplicas.livenessProbe.successThreshold Success threshold for livenessProbe
726 ##
727 livenessProbe:
728 enabled: true
729 initialDelaySeconds: 30
730 periodSeconds: 10
731 timeoutSeconds: 5
732 failureThreshold: 6
733 successThreshold: 1
734 ## @param readReplicas.readinessProbe.enabled Enable readinessProbe on PostgreSQL read only containers
735 ## @param readReplicas.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
736 ## @param readReplicas.readinessProbe.periodSeconds Period seconds for readinessProbe
737 ## @param readReplicas.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
738 ## @param readReplicas.readinessProbe.failureThreshold Failure threshold for readinessProbe
739 ## @param readReplicas.readinessProbe.successThreshold Success threshold for readinessProbe
740 ##
741 readinessProbe:
742 enabled: true
743 initialDelaySeconds: 5
744 periodSeconds: 10
745 timeoutSeconds: 5
746 failureThreshold: 6
747 successThreshold: 1
748 ## @param readReplicas.startupProbe.enabled Enable startupProbe on PostgreSQL read only containers
749 ## @param readReplicas.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
750 ## @param readReplicas.startupProbe.periodSeconds Period seconds for startupProbe
751 ## @param readReplicas.startupProbe.timeoutSeconds Timeout seconds for startupProbe
752 ## @param readReplicas.startupProbe.failureThreshold Failure threshold for startupProbe
753 ## @param readReplicas.startupProbe.successThreshold Success threshold for startupProbe
754 ##
755 startupProbe:
756 enabled: false
757 initialDelaySeconds: 30
758 periodSeconds: 10
759 timeoutSeconds: 1
760 failureThreshold: 15
761 successThreshold: 1
762 ## @param readReplicas.customLivenessProbe Custom livenessProbe that overrides the default one
763 ##
764 customLivenessProbe: {}
765 ## @param readReplicas.customReadinessProbe Custom readinessProbe that overrides the default one
766 ##
767 customReadinessProbe: {}
768 ## @param readReplicas.customStartupProbe Custom startupProbe that overrides the default one
769 ##
770 customStartupProbe: {}
771 ## @param readReplicas.lifecycleHooks for the PostgreSQL read only container to automate configuration before or after startup
772 ##
773 lifecycleHooks: {}
774 ## PostgreSQL read only resource requests and limits
775 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
776 ## @param readReplicas.resources.limits The resources limits for the PostgreSQL read only containers
777 ## @param readReplicas.resources.requests.memory The requested memory for the PostgreSQL read only containers
778 ## @param readReplicas.resources.requests.cpu The requested cpu for the PostgreSQL read only containers
779 ##
780 resources:
781 limits: {}
782 requests:
783 memory: 256Mi
784 cpu: 250m
785 ## Pod Security Context
786 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
787 ## @param readReplicas.podSecurityContext.enabled Enable security context
788 ## @param readReplicas.podSecurityContext.fsGroup Group ID for the pod
789 ##
790 podSecurityContext:
791 enabled: true
792 fsGroup: 1001
793 ## Container Security Context
794 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
795 ## @param readReplicas.containerSecurityContext.enabled Enable container security context
796 ## @param readReplicas.containerSecurityContext.runAsUser User ID for the container
797 ##
798 containerSecurityContext:
799 enabled: true
800 runAsUser: 1001
801 ## @param readReplicas.hostAliases PostgreSQL read only pods host aliases
802 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
803 ##
804 hostAliases: []
805 ## @param readReplicas.hostNetwork Specify if host network should be enabled for PostgreSQL pod (PostgreSQL read only)
806 ##
807 hostNetwork: false
808 ## @param readReplicas.hostIPC Specify if host IPC should be enabled for PostgreSQL pod (postgresql primary)
809 ##
810 hostIPC: false
811 ## @param readReplicas.labels Map of labels to add to the statefulset (PostgreSQL read only)
812 ##
813 labels: {}
814 ## @param readReplicas.annotations Annotations for PostgreSQL read only pods
815 ##
816 annotations: {}
817 ## @param readReplicas.podLabels Map of labels to add to the pods (PostgreSQL read only)
818 ##
819 podLabels: {}
820 ## @param readReplicas.podAnnotations Map of annotations to add to the pods (PostgreSQL read only)
821 ##
822 podAnnotations: {}
823 ## @param readReplicas.podAffinityPreset PostgreSQL read only pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
824 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
825 ##
826 podAffinityPreset: ""
827 ## @param readReplicas.podAntiAffinityPreset PostgreSQL read only pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
828 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
829 ##
830 podAntiAffinityPreset: soft
831 ## PostgreSQL read only node affinity preset
832 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
833 ##
834 nodeAffinityPreset:
835 ## @param readReplicas.nodeAffinityPreset.type PostgreSQL read only node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
836 ##
837 type: ""
838 ## @param readReplicas.nodeAffinityPreset.key PostgreSQL read only node label key to match Ignored if `primary.affinity` is set.
839 ## E.g.
840 ## key: "kubernetes.io/e2e-az-name"
841 ##
842 key: ""
843 ## @param readReplicas.nodeAffinityPreset.values PostgreSQL read only node label values to match. Ignored if `primary.affinity` is set.
844 ## E.g.
845 ## values:
846 ## - e2e-az1
847 ## - e2e-az2
848 ##
849 values: []
850 ## @param readReplicas.affinity Affinity for PostgreSQL read only pods assignment
851 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
852 ## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set
853 ##
854 affinity: {}
855 ## @param readReplicas.nodeSelector Node labels for PostgreSQL read only pods assignment
856 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
857 ##
858 nodeSelector: {}
859 ## @param readReplicas.tolerations Tolerations for PostgreSQL read only pods assignment
860 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
861 ##
862 tolerations: []
863 ## @param readReplicas.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
864 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
865 ##
866 topologySpreadConstraints: []
867 ## @param readReplicas.priorityClassName Priority Class to use for each pod (PostgreSQL read only)
868 ##
869 priorityClassName: ""
870 ## @param readReplicas.schedulerName Use an alternate scheduler, e.g. "stork".
871 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
872 ##
873 schedulerName: ""
874 ## @param readReplicas.terminationGracePeriodSeconds Seconds PostgreSQL read only pod needs to terminate gracefully
875 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
876 ##
877 terminationGracePeriodSeconds: ""
878 ## @param readReplicas.updateStrategy.type PostgreSQL read only statefulset strategy type
879 ## @param readReplicas.updateStrategy.rollingUpdate PostgreSQL read only statefulset rolling update configuration parameters
880 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
881 ##
882 updateStrategy:
883 type: RollingUpdate
884 rollingUpdate: {}
885 ## @param readReplicas.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the PostgreSQL read only container(s)
886 ##
887 extraVolumeMounts: []
888 ## @param readReplicas.extraVolumes Optionally specify extra list of additional volumes for the PostgreSQL read only pod(s)
889 ##
890 extraVolumes: []
891 ## @param readReplicas.sidecars Add additional sidecar containers to the PostgreSQL read only pod(s)
892 ## For example:
893 ## sidecars:
894 ## - name: your-image-name
895 ## image: your-image
896 ## imagePullPolicy: Always
897 ## ports:
898 ## - name: portname
899 ## containerPort: 1234
900 ##
901 sidecars: []
902 ## @param readReplicas.initContainers Add additional init containers to the PostgreSQL read only pod(s)
903 ## Example
904 ##
905 ## initContainers:
906 ## - name: do-something
907 ## image: busybox
908 ## command: ['do', 'something']
909 ##
910 initContainers: []
911 ## @param readReplicas.extraPodSpec Optionally specify extra PodSpec for the PostgreSQL read only pod(s)
912 ##
913 extraPodSpec: {}
914 ## PostgreSQL read only service configuration
915 ##
916 service:
917 ## @param readReplicas.service.type Kubernetes Service type
918 ##
919 type: ClusterIP
920 ## @param readReplicas.service.ports.postgresql PostgreSQL service port
921 ##
922 ports:
923 postgresql: 5432
924 ## Node ports to expose
925 ## NOTE: choose port between <30000-32767>
926 ## @param readReplicas.service.nodePorts.postgresql Node port for PostgreSQL
927 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
928 ##
929 nodePorts:
930 postgresql: ""
931 ## @param readReplicas.service.clusterIP Static clusterIP or None for headless services
932 ## e.g:
933 ## clusterIP: None
934 ##
935 clusterIP: ""
936 ## @param readReplicas.service.annotations Annotations for PostgreSQL read only service
937 ##
938 annotations: {}
939 ## @param readReplicas.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
940 ## Set the LoadBalancer service type to internal only
941 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
942 ##
943 loadBalancerIP: ""
944 ## @param readReplicas.service.externalTrafficPolicy Enable client source IP preservation
945 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
946 ##
947 externalTrafficPolicy: Cluster
948 ## @param readReplicas.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
949 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
950 ##
951 ## loadBalancerSourceRanges:
952 ## - 10.10.10.0/24
953 ##
954 loadBalancerSourceRanges: []
955 ## @param readReplicas.service.extraPorts Extra ports to expose in the PostgreSQL read only service
956 ##
957 extraPorts: []
958 ## @param readReplicas.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
959 ## If "ClientIP", consecutive client requests will be directed to the same Pod
960 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
961 ##
962 sessionAffinity: None
963 ## @param readReplicas.service.sessionAffinityConfig Additional settings for the sessionAffinity
964 ## sessionAffinityConfig:
965 ## clientIP:
966 ## timeoutSeconds: 300
967 ##
968 sessionAffinityConfig: {}
969 ## Headless service properties
970 ##
971 headless:
972 ## @param readReplicas.service.headless.annotations Additional custom annotations for headless PostgreSQL read only service
973 ##
974 annotations: {}
975 ## PostgreSQL read only persistence configuration
976 ##
977 persistence:
978 ## @param readReplicas.persistence.enabled Enable PostgreSQL read only data persistence using PVC
979 ##
980 enabled: true
981 ## @param readReplicas.persistence.existingClaim Name of an existing PVC to use
982 ##
983 existingClaim: ""
984 ## @param readReplicas.persistence.mountPath The path the volume will be mounted at
985 ## Note: useful when using custom PostgreSQL images
986 ##
987 mountPath: /bitnami/postgresql
988 ## @param readReplicas.persistence.subPath The subdirectory of the volume to mount to
989 ## Useful in dev environments and one PV for multiple services
990 ##
991 subPath: ""
992 ## @param readReplicas.persistence.storageClass PVC Storage Class for PostgreSQL read only data volume
993 ## If defined, storageClassName: <storageClass>
994 ## If set to "-", storageClassName: "", which disables dynamic provisioning
995 ## If undefined (the default) or set to null, no storageClassName spec is
996 ## set, choosing the default provisioner. (gp2 on AWS, standard on
997 ## GKE, AWS & OpenStack)
998 ##
999 storageClass: ""
1000 ## @param readReplicas.persistence.accessModes PVC Access Mode for PostgreSQL volume
1001 ##
1002 accessModes:
1003 - ReadWriteOnce
1004 ## @param readReplicas.persistence.size PVC Storage Request for PostgreSQL volume
1005 ##
1006 size: 8Gi
1007 ## @param readReplicas.persistence.annotations Annotations for the PVC
1008 ##
1009 annotations: {}
1010 ## @param readReplicas.persistence.labels Labels for the PVC
1011 ##
1012 labels: {}
1013 ## @param readReplicas.persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
1014 ## selector:
1015 ## matchLabels:
1016 ## app: my-app
1017 ##
1018 selector: {}
1019 ## @param readReplicas.persistence.dataSource Custom PVC data source
1020 ##
1021 dataSource: {}
1022
1023## @section NetworkPolicy parameters
1024##
1025
1026## Add networkpolicies
1027##
1028networkPolicy:
1029 ## @param networkPolicy.enabled Enable network policies
1030 ##
1031 enabled: false
1032 ## @param networkPolicy.metrics.enabled Enable network policies for metrics (prometheus)
1033 ## @param networkPolicy.metrics.namespaceSelector [object] Monitoring namespace selector labels. These labels will be used to identify the prometheus' namespace.
1034 ## @param networkPolicy.metrics.podSelector [object] Monitoring pod selector labels. These labels will be used to identify the Prometheus pods.
1035 ##
1036 metrics:
1037 enabled: false
1038 ## e.g:
1039 ## namespaceSelector:
1040 ## label: monitoring
1041 ##
1042 namespaceSelector: {}
1043 ## e.g:
1044 ## podSelector:
1045 ## label: monitoring
1046 ##
1047 podSelector: {}
1048 ## Ingress Rules
1049 ##
1050 ingressRules:
1051 ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.enabled Enable ingress rule that makes PostgreSQL primary node only accessible from a particular origin.
1052 ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.namespaceSelector [object] Namespace selector label that is allowed to access the PostgreSQL primary node. This label will be used to identified the allowed namespace(s).
1053 ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.podSelector [object] Pods selector label that is allowed to access the PostgreSQL primary node. This label will be used to identified the allowed pod(s).
1054 ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.customRules Custom network policy for the PostgreSQL primary node.
1055 ##
1056 primaryAccessOnlyFrom:
1057 enabled: false
1058 ## e.g:
1059 ## namespaceSelector:
1060 ## label: ingress
1061 ##
1062 namespaceSelector: {}
1063 ## e.g:
1064 ## podSelector:
1065 ## label: access
1066 ##
1067 podSelector: {}
1068 ## custom ingress rules
1069 ## e.g:
1070 ## customRules:
1071 ## - from:
1072 ## - namespaceSelector:
1073 ## matchLabels:
1074 ## label: example
1075 ##
1076 customRules: []
1077 ## @param networkPolicy.ingressRules.readReplicasAccessOnlyFrom.enabled Enable ingress rule that makes PostgreSQL read-only nodes only accessible from a particular origin.
1078 ## @param networkPolicy.ingressRules.readReplicasAccessOnlyFrom.namespaceSelector [object] Namespace selector label that is allowed to access the PostgreSQL read-only nodes. This label will be used to identified the allowed namespace(s).
1079 ## @param networkPolicy.ingressRules.readReplicasAccessOnlyFrom.podSelector [object] Pods selector label that is allowed to access the PostgreSQL read-only nodes. This label will be used to identified the allowed pod(s).
1080 ## @param networkPolicy.ingressRules.readReplicasAccessOnlyFrom.customRules Custom network policy for the PostgreSQL read-only nodes.
1081 ##
1082 readReplicasAccessOnlyFrom:
1083 enabled: false
1084 ## e.g:
1085 ## namespaceSelector:
1086 ## label: ingress
1087 ##
1088 namespaceSelector: {}
1089 ## e.g:
1090 ## podSelector:
1091 ## label: access
1092 ##
1093 podSelector: {}
1094 ## custom ingress rules
1095 ## e.g:
1096 ## CustomRules:
1097 ## - from:
1098 ## - namespaceSelector:
1099 ## matchLabels:
1100 ## label: example
1101 ##
1102 customRules: []
1103 ## @param networkPolicy.egressRules.denyConnectionsToExternal Enable egress rule that denies outgoing traffic outside the cluster, except for DNS (port 53).
1104 ## @param networkPolicy.egressRules.customRules Custom network policy rule
1105 ##
1106 egressRules:
1107 # Deny connections to external. This is not compatible with an external database.
1108 denyConnectionsToExternal: false
1109 ## Additional custom egress rules
1110 ## e.g:
1111 ## customRules:
1112 ## - to:
1113 ## - namespaceSelector:
1114 ## matchLabels:
1115 ## label: example
1116 ##
1117 customRules: []
1118
1119## @section Volume Permissions parameters
1120##
1121
1122## Init containers parameters:
1123## volumePermissions: Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each node
1124##
1125volumePermissions:
1126 ## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume
1127 ##
1128 enabled: false
1129 ## @param volumePermissions.image.registry Init container volume-permissions image registry
1130 ## @param volumePermissions.image.repository Init container volume-permissions image repository
1131 ## @param volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)
1132 ## @param volumePermissions.image.digest Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1133 ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
1134 ## @param volumePermissions.image.pullSecrets Init container volume-permissions image pull secrets
1135 ##
1136 image:
1137 registry: docker.io
1138 repository: bitnami/bitnami-shell
1139 tag: 11-debian-11-r120
1140 digest: ""
1141 pullPolicy: IfNotPresent
1142 ## Optionally specify an array of imagePullSecrets.
1143 ## Secrets must be manually created in the namespace.
1144 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1145 ## Example:
1146 ## pullSecrets:
1147 ## - myRegistryKeySecretName
1148 ##
1149 pullSecrets: []
1150 ## Init container resource requests and limits
1151 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
1152 ## @param volumePermissions.resources.limits Init container volume-permissions resource limits
1153 ## @param volumePermissions.resources.requests Init container volume-permissions resource requests
1154 ##
1155 resources:
1156 limits: {}
1157 requests: {}
1158 ## Init container' Security Context
1159 ## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
1160 ## and not the below volumePermissions.containerSecurityContext.runAsUser
1161 ## @param volumePermissions.containerSecurityContext.runAsUser User ID for the init container
1162 ##
1163 containerSecurityContext:
1164 runAsUser: 0
1165
1166## @section Other Parameters
1167##
1168
1169## @param serviceBindings.enabled Create secret for service binding (Experimental)
1170## Ref: https://servicebinding.io/service-provider/
1171##
1172serviceBindings:
1173 enabled: false
1174
1175## Service account for PostgreSQL to use.
1176## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1177##
1178serviceAccount:
1179 ## @param serviceAccount.create Enable creation of ServiceAccount for PostgreSQL pod
1180 ##
1181 create: false
1182 ## @param serviceAccount.name The name of the ServiceAccount to use.
1183 ## If not set and create is true, a name is generated using the common.names.fullname template
1184 ##
1185 name: ""
1186 ## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
1187 ## Can be set to false if pods using this serviceAccount do not need to use K8s API
1188 ##
1189 automountServiceAccountToken: true
1190 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
1191 ##
1192 annotations: {}
1193## Creates role for ServiceAccount
1194## @param rbac.create Create Role and RoleBinding (required for PSP to work)
1195##
1196rbac:
1197 create: false
1198 ## @param rbac.rules Custom RBAC rules to set
1199 ## e.g:
1200 ## rules:
1201 ## - apiGroups:
1202 ## - ""
1203 ## resources:
1204 ## - pods
1205 ## verbs:
1206 ## - get
1207 ## - list
1208 ##
1209 rules: []
1210## Pod Security Policy
1211## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1212## @param psp.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
1213##
1214psp:
1215 create: false
1216
1217## @section Metrics Parameters
1218##
1219
1220metrics:
1221 ## @param metrics.enabled Start a prometheus exporter
1222 ##
1223 enabled: false
1224 ## @param metrics.image.registry PostgreSQL Prometheus Exporter image registry
1225 ## @param metrics.image.repository PostgreSQL Prometheus Exporter image repository
1226 ## @param metrics.image.tag PostgreSQL Prometheus Exporter image tag (immutable tags are recommended)
1227 ## @param metrics.image.digest PostgreSQL image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1228 ## @param metrics.image.pullPolicy PostgreSQL Prometheus Exporter image pull policy
1229 ## @param metrics.image.pullSecrets Specify image pull secrets
1230 ##
1231 image:
1232 registry: docker.io
1233 repository: bitnami/postgres-exporter
1234 tag: 0.12.0-debian-11-r91
1235 digest: ""
1236 pullPolicy: IfNotPresent
1237 ## Optionally specify an array of imagePullSecrets.
1238 ## Secrets must be manually created in the namespace.
1239 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1240 ## Example:
1241 ## pullSecrets:
1242 ## - myRegistryKeySecretName
1243 ##
1244 pullSecrets: []
1245 ## @param metrics.customMetrics Define additional custom metrics
1246 ## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file
1247 ## customMetrics:
1248 ## pg_database:
1249 ## 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_bytes FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')"
1250 ## metrics:
1251 ## - name:
1252 ## usage: "LABEL"
1253 ## description: "Name of the database"
1254 ## - size_bytes:
1255 ## usage: "GAUGE"
1256 ## description: "Size of the database in bytes"
1257 ##
1258 customMetrics: {}
1259 ## @param metrics.extraEnvVars Extra environment variables to add to PostgreSQL Prometheus exporter
1260 ## see: https://github.com/wrouesnel/postgres_exporter#environment-variables
1261 ## For example:
1262 ## extraEnvVars:
1263 ## - name: PG_EXPORTER_DISABLE_DEFAULT_METRICS
1264 ## value: "true"
1265 ##
1266 extraEnvVars: []
1267 ## PostgreSQL Prometheus exporter containers' Security Context
1268 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1269 ## @param metrics.containerSecurityContext.enabled Enable PostgreSQL Prometheus exporter containers' Security Context
1270 ## @param metrics.containerSecurityContext.runAsUser Set PostgreSQL Prometheus exporter containers' Security Context runAsUser
1271 ## @param metrics.containerSecurityContext.runAsNonRoot Set PostgreSQL Prometheus exporter containers' Security Context runAsNonRoot
1272 ##
1273 containerSecurityContext:
1274 enabled: true
1275 runAsUser: 1001
1276 runAsNonRoot: true
1277 ## Configure extra options for PostgreSQL Prometheus exporter containers' liveness, readiness and startup probes
1278 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1279 ## @param metrics.livenessProbe.enabled Enable livenessProbe on PostgreSQL Prometheus exporter containers
1280 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1281 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
1282 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1283 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
1284 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
1285 ##
1286 livenessProbe:
1287 enabled: true
1288 initialDelaySeconds: 5
1289 periodSeconds: 10
1290 timeoutSeconds: 5
1291 failureThreshold: 6
1292 successThreshold: 1
1293 ## @param metrics.readinessProbe.enabled Enable readinessProbe on PostgreSQL Prometheus exporter containers
1294 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1295 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
1296 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1297 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
1298 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
1299 ##
1300 readinessProbe:
1301 enabled: true
1302 initialDelaySeconds: 5
1303 periodSeconds: 10
1304 timeoutSeconds: 5
1305 failureThreshold: 6
1306 successThreshold: 1
1307 ## @param metrics.startupProbe.enabled Enable startupProbe on PostgreSQL Prometheus exporter containers
1308 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1309 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
1310 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1311 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
1312 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
1313 ##
1314 startupProbe:
1315 enabled: false
1316 initialDelaySeconds: 10
1317 periodSeconds: 10
1318 timeoutSeconds: 1
1319 failureThreshold: 15
1320 successThreshold: 1
1321 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
1322 ##
1323 customLivenessProbe: {}
1324 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
1325 ##
1326 customReadinessProbe: {}
1327 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
1328 ##
1329 customStartupProbe: {}
1330 ## @param metrics.containerPorts.metrics PostgreSQL Prometheus exporter metrics container port
1331 ##
1332 containerPorts:
1333 metrics: 9187
1334 ## PostgreSQL Prometheus exporter resource requests and limits
1335 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
1336 ## @param metrics.resources.limits The resources limits for the PostgreSQL Prometheus exporter container
1337 ## @param metrics.resources.requests The requested resources for the PostgreSQL Prometheus exporter container
1338 ##
1339 resources:
1340 limits: {}
1341 requests: {}
1342 ## Service configuration
1343 ##
1344 service:
1345 ## @param metrics.service.ports.metrics PostgreSQL Prometheus Exporter service port
1346 ##
1347 ports:
1348 metrics: 9187
1349 ## @param metrics.service.clusterIP Static clusterIP or None for headless services
1350 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
1351 ##
1352 clusterIP: ""
1353 ## @param metrics.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1354 ## Values: ClientIP or None
1355 ## ref: https://kubernetes.io/docs/user-guide/services/
1356 ##
1357 sessionAffinity: None
1358 ## @param metrics.service.annotations [object] Annotations for Prometheus to auto-discover the metrics endpoint
1359 ##
1360 annotations:
1361 prometheus.io/scrape: "true"
1362 prometheus.io/port: "{{ .Values.metrics.service.ports.metrics }}"
1363 ## Prometheus Operator ServiceMonitor configuration
1364 ##
1365 serviceMonitor:
1366 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using Prometheus Operator
1367 ##
1368 enabled: false
1369 ## @param metrics.serviceMonitor.namespace Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)
1370 ##
1371 namespace: ""
1372 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
1373 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1374 ##
1375 interval: ""
1376 ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
1377 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1378 ##
1379 scrapeTimeout: ""
1380 ## @param metrics.serviceMonitor.labels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
1381 ##
1382 labels: {}
1383 ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
1384 ## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
1385 ##
1386 selector: {}
1387 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
1388 ##
1389 relabelings: []
1390 ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
1391 ##
1392 metricRelabelings: []
1393 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
1394 ##
1395 honorLabels: false
1396 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1397 ##
1398 jobLabel: ""
1399 ## Custom PrometheusRule to be defined
1400 ## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart
1401 ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
1402 ##
1403 prometheusRule:
1404 ## @param metrics.prometheusRule.enabled Create a PrometheusRule for Prometheus Operator
1405 ##
1406 enabled: false
1407 ## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
1408 ##
1409 namespace: ""
1410 ## @param metrics.prometheusRule.labels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
1411 ##
1412 labels: {}
1413 ## @param metrics.prometheusRule.rules PrometheusRule definitions
1414 ## Make sure to constraint the rules to the current postgresql service.
1415 ## rules:
1416 ## - alert: HugeReplicationLag
1417 ## expr: pg_replication_lag{service="{{ printf "%s-metrics" (include "common.names.fullname" .) }}"} / 3600 > 1
1418 ## for: 1m
1419 ## labels:
1420 ## severity: critical
1421 ## annotations:
1422 ## description: replication for {{ include "common.names.fullname" . }} PostgreSQL is lagging by {{ "{{ $value }}" }} hour(s).
1423 ## summary: PostgreSQL replication is lagging by {{ "{{ $value }}" }} hour(s).
1424 ##
1425 rules: []