1 ## @section Global parameters
2 ## Please, note that this will override the parameters, including dependencies, configured to use the global value
5 ## @param global.imageRegistry Global Docker image registry
8 ## @param global.imagePullSecrets Global Docker registry secret names as an array
11 ## - myRegistryKeySecretName
14 ## @param global.storageClass Global StorageClass for Persistent Volume(s)
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.
36 replicationPasswordKey: ""
37 ## @param global.postgresql.service.ports.postgresql PostgreSQL service port (overrides `service.ports.postgresql`)
43 ## @section Common parameters
46 ## @param kubeVersion Override Kubernetes version
49 ## @param nameOverride String to partially override common.names.fullname template (will maintain the release name)
52 ## @param fullnameOverride String to fully override common.names.fullname template
55 ## @param clusterDomain Kubernetes Cluster Domain
57 clusterDomain: cluster.local
58 ## @param extraDeploy Array of extra objects to deploy with the release (evaluated as a template)
61 ## @param commonLabels Add labels to all the deployed resources
64 ## @param commonAnnotations Add annotations to all the deployed resources
67 ## Enable diagnostic mode in the statefulset
70 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
73 ## @param diagnosticMode.command Command to override all containers in the statefulset
77 ## @param diagnosticMode.args Args to override all containers in the statefulset
82 ## @section PostgreSQL common parameters
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
97 repository: bitnami/postgresql
98 tag: 14.5.0-debian-11-r35
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
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/
110 ## - myRegistryKeySecretName
113 ## Set to true if you would like to see extra information on logs
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
122 ## @param auth.enablePostgresUser Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user
124 enablePostgresUser: true
125 ## @param auth.postgresPassword Password for the "postgres" admin user. Ignored if `auth.existingSecret` with key `postgres-password` is provided
128 ## @param auth.username Name for a custom user to create
131 ## @param auth.password Password for the custom user to create. Ignored if `auth.existingSecret` with key `password` is provided
134 ## @param auth.database Name for a custom database to create
137 ## @param auth.replicationUsername Name of the replication user
139 replicationUsername: repl_user
140 ## @param auth.replicationPassword Password for the replication user. Ignored if `auth.existingSecret` with key `replication-password` is provided
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.
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.
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
156 usePasswordFiles: false
157 ## @param architecture PostgreSQL architecture (`standalone` or `replication`)
159 architecture: standalone
160 ## Replication configuration
161 ## Ignored if `architecture` is `standalone`
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
168 synchronousCommit: "off"
169 numSynchronousReplicas: 0
170 ## @param replication.applicationName Cluster application name. Useful for advanced replication settings
172 applicationName: my_application
173 ## @param containerPorts.postgresql PostgreSQL container port
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
190 logConnections: false
191 logDisconnections: false
193 pgAuditLogCatalog: "off"
194 clientMinMessages: error
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
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
235 ## @param postgresqlDataDir PostgreSQL data dir folder
237 postgresqlDataDir: /bitnami/postgresql/data
238 ## @param postgresqlSharedPreloadLibraries Shared preload libraries (comma-separated list)
240 postgresqlSharedPreloadLibraries: "pgaudit"
241 ## Start PostgreSQL pod(s) without limitations on shm memory.
242 ## By default docker and containerd (and possibly other container runtimes) limit `/dev/shm` to `64M`
243 ## ref: https://github.com/docker-library/postgres/issues/416
244 ## ref: https://github.com/containerd/containerd/issues/3654
247 ## @param shmVolume.enabled Enable emptyDir volume for /dev/shm for PostgreSQL pod(s)
250 ## @param shmVolume.sizeLimit Set this to enable a size limit on the shm tmpfs
251 ## Note: the size of the tmpfs counts against container's memory limit
259 ## @param tls.enabled Enable TLS traffic support
262 ## @param tls.autoGenerated Generate automatically self-signed TLS certificates
265 ## @param tls.preferServerCiphers Whether to use the server's TLS cipher preferences rather than the client's
267 preferServerCiphers: true
268 ## @param tls.certificatesSecret Name of an existing secret that contains the certificates
270 certificatesSecret: ""
271 ## @param tls.certFilename Certificate filename
274 ## @param tls.certKeyFilename Certificate key filename
277 ## @param tls.certCAFilename CA Certificate filename
278 ## If provided, PostgreSQL will authenticate TLS/SSL clients by requesting them a certificate
279 ## ref: https://www.postgresql.org/docs/9.6/auth-methods.html
282 ## @param tls.crlFilename File containing a Certificate Revocation List
286 ## @section PostgreSQL Primary parameters
289 ## @param primary.name Name of the primary database (eg primary, master, leader, ...)
292 ## @param primary.configuration PostgreSQL Primary main configuration to be injected as ConfigMap
293 ## ref: https://www.postgresql.org/docs/current/static/runtime-config.html
296 ## @param primary.pgHbaConfiguration PostgreSQL Primary client authentication configuration
297 ## ref: https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
299 ## pgHbaConfiguration: |-
300 ## local all all trust
301 ## host all all localhost trust
302 ## host mydatabase mysuser 192.168.0.0/24 md5
304 pgHbaConfiguration: ""
305 ## @param primary.existingConfigmap Name of an existing ConfigMap with PostgreSQL Primary configuration
306 ## NOTE: `primary.configuration` and `primary.pgHbaConfiguration` will be ignored
308 existingConfigmap: ""
309 ## @param primary.extendedConfiguration Extended PostgreSQL Primary configuration (appended to main or default configuration)
310 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#allow-settings-to-be-loaded-from-files-other-than-the-default-postgresqlconf
312 extendedConfiguration: ""
313 ## @param primary.existingExtendedConfigmap Name of an existing ConfigMap with PostgreSQL Primary extended configuration
314 ## NOTE: `primary.extendedConfiguration` will be ignored
316 existingExtendedConfigmap: ""
317 ## Initdb configuration
318 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#specifying-initdb-arguments
321 ## @param primary.initdb.args PostgreSQL initdb extra arguments
324 ## @param primary.initdb.postgresqlWalDir Specify a custom location for the PostgreSQL transaction log
327 ## @param primary.initdb.scripts Dictionary of initdb scripts
328 ## Specify dictionary of scripts to be run at first boot
331 ## my_init_script.sh: |
333 ## echo "Do something."
336 ## @param primary.initdb.scriptsConfigMap ConfigMap with scripts to be run at first boot
337 ## NOTE: This will override `primary.initdb.scripts`
340 ## @param primary.initdb.scriptsSecret Secret with scripts to be run at first boot (in case it contains sensitive information)
341 ## NOTE: This can work along `primary.initdb.scripts` or `primary.initdb.scriptsConfigMap`
344 ## @param primary.initdb.user Specify the PostgreSQL username to execute the initdb scripts
347 ## @param primary.initdb.password Specify the PostgreSQL password to execute the initdb scripts
350 ## Configure current cluster's primary server to be the standby server in other cluster.
351 ## This will allow cross cluster replication and provide cross cluster high availability.
352 ## You will need to configure pgHbaConfiguration if you want to enable this feature with local cluster replication enabled.
353 ## @param primary.standby.enabled Whether to enable current cluster's primary as standby server of another cluster or not
354 ## @param primary.standby.primaryHost The Host of replication primary in the other cluster
355 ## @param primary.standby.primaryPort The Port of replication primary in the other cluster
361 ## @param primary.extraEnvVars Array with extra environment variables to add to PostgreSQL Primary nodes
368 ## @param primary.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for PostgreSQL Primary nodes
371 ## @param primary.extraEnvVarsSecret Name of existing Secret containing extra env vars for PostgreSQL Primary nodes
373 extraEnvVarsSecret: ""
374 ## @param primary.command Override default container command (useful when using custom images)
377 ## @param primary.args Override default container args (useful when using custom images)
380 ## Configure extra options for PostgreSQL Primary containers' liveness, readiness and startup probes
381 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
382 ## @param primary.livenessProbe.enabled Enable livenessProbe on PostgreSQL Primary containers
383 ## @param primary.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
384 ## @param primary.livenessProbe.periodSeconds Period seconds for livenessProbe
385 ## @param primary.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
386 ## @param primary.livenessProbe.failureThreshold Failure threshold for livenessProbe
387 ## @param primary.livenessProbe.successThreshold Success threshold for livenessProbe
391 initialDelaySeconds: 30
396 ## @param primary.readinessProbe.enabled Enable readinessProbe on PostgreSQL Primary containers
397 ## @param primary.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
398 ## @param primary.readinessProbe.periodSeconds Period seconds for readinessProbe
399 ## @param primary.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
400 ## @param primary.readinessProbe.failureThreshold Failure threshold for readinessProbe
401 ## @param primary.readinessProbe.successThreshold Success threshold for readinessProbe
405 initialDelaySeconds: 5
410 ## @param primary.startupProbe.enabled Enable startupProbe on PostgreSQL Primary containers
411 ## @param primary.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
412 ## @param primary.startupProbe.periodSeconds Period seconds for startupProbe
413 ## @param primary.startupProbe.timeoutSeconds Timeout seconds for startupProbe
414 ## @param primary.startupProbe.failureThreshold Failure threshold for startupProbe
415 ## @param primary.startupProbe.successThreshold Success threshold for startupProbe
419 initialDelaySeconds: 30
424 ## @param primary.customLivenessProbe Custom livenessProbe that overrides the default one
426 customLivenessProbe: {}
427 ## @param primary.customReadinessProbe Custom readinessProbe that overrides the default one
429 customReadinessProbe: {}
430 ## @param primary.customStartupProbe Custom startupProbe that overrides the default one
432 customStartupProbe: {}
433 ## @param primary.lifecycleHooks for the PostgreSQL Primary container to automate configuration before or after startup
436 ## PostgreSQL Primary resource requests and limits
437 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
438 ## @param primary.resources.limits The resources limits for the PostgreSQL Primary containers
439 ## @param primary.resources.requests.memory The requested memory for the PostgreSQL Primary containers
440 ## @param primary.resources.requests.cpu The requested cpu for the PostgreSQL Primary containers
447 ## Pod Security Context
448 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
449 ## @param primary.podSecurityContext.enabled Enable security context
450 ## @param primary.podSecurityContext.fsGroup Group ID for the pod
455 ## Container Security Context
456 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
457 ## @param primary.containerSecurityContext.enabled Enable container security context
458 ## @param primary.containerSecurityContext.runAsUser User ID for the container
460 containerSecurityContext:
463 ## @param primary.hostAliases PostgreSQL primary pods host aliases
464 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
467 ## @param primary.hostNetwork Specify if host network should be enabled for PostgreSQL pod (postgresql primary)
470 ## @param primary.hostIPC Specify if host IPC should be enabled for PostgreSQL pod (postgresql primary)
473 ## @param primary.labels Map of labels to add to the statefulset (postgresql primary)
476 ## @param primary.annotations Annotations for PostgreSQL primary pods
479 ## @param primary.podLabels Map of labels to add to the pods (postgresql primary)
482 ## @param primary.podAnnotations Map of annotations to add to the pods (postgresql primary)
485 ## @param primary.podAffinityPreset PostgreSQL primary pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
486 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
488 podAffinityPreset: ""
489 ## @param primary.podAntiAffinityPreset PostgreSQL primary pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
490 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
492 podAntiAffinityPreset: soft
493 ## PostgreSQL Primary node affinity preset
494 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
497 ## @param primary.nodeAffinityPreset.type PostgreSQL primary node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
500 ## @param primary.nodeAffinityPreset.key PostgreSQL primary node label key to match Ignored if `primary.affinity` is set.
502 ## key: "kubernetes.io/e2e-az-name"
505 ## @param primary.nodeAffinityPreset.values PostgreSQL primary node label values to match. Ignored if `primary.affinity` is set.
512 ## @param primary.affinity Affinity for PostgreSQL primary pods assignment
513 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
514 ## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set
517 ## @param primary.nodeSelector Node labels for PostgreSQL primary pods assignment
518 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
521 ## @param primary.tolerations Tolerations for PostgreSQL primary pods assignment
522 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
525 ## @param primary.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
526 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
528 topologySpreadConstraints: []
529 ## @param primary.priorityClassName Priority Class to use for each pod (postgresql primary)
531 priorityClassName: ""
532 ## @param primary.schedulerName Use an alternate scheduler, e.g. "stork".
533 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
536 ## @param primary.terminationGracePeriodSeconds Seconds PostgreSQL primary pod needs to terminate gracefully
537 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
539 terminationGracePeriodSeconds: ""
540 ## @param primary.updateStrategy.type PostgreSQL Primary statefulset strategy type
541 ## @param primary.updateStrategy.rollingUpdate PostgreSQL Primary statefulset rolling update configuration parameters
542 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
547 ## @param primary.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the PostgreSQL Primary container(s)
549 extraVolumeMounts: []
550 ## @param primary.extraVolumes Optionally specify extra list of additional volumes for the PostgreSQL Primary pod(s)
553 ## @param primary.sidecars Add additional sidecar containers to the PostgreSQL Primary pod(s)
556 ## - name: your-image-name
558 ## imagePullPolicy: Always
561 ## containerPort: 1234
564 ## @param primary.initContainers Add additional init containers to the PostgreSQL Primary pod(s)
568 ## - name: do-something
570 ## command: ['do', 'something']
573 ## @param primary.extraPodSpec Optionally specify extra PodSpec for the PostgreSQL Primary pod(s)
576 ## PostgreSQL Primary service configuration
579 ## @param primary.service.type Kubernetes Service type
582 ## @param primary.service.ports.postgresql PostgreSQL service port
586 ## Node ports to expose
587 ## NOTE: choose port between <30000-32767>
588 ## @param primary.service.nodePorts.postgresql Node port for PostgreSQL
589 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
593 ## @param primary.service.clusterIP Static clusterIP or None for headless services
598 ## @param primary.service.annotations Annotations for PostgreSQL primary service
601 ## @param primary.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
602 ## Set the LoadBalancer service type to internal only
603 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
606 ## @param primary.service.externalTrafficPolicy Enable client source IP preservation
607 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
609 externalTrafficPolicy: Cluster
610 ## @param primary.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
611 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
613 ## loadBalancerSourceRanges:
616 loadBalancerSourceRanges: []
617 ## @param primary.service.extraPorts Extra ports to expose in the PostgreSQL primary service
620 ## @param primary.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
621 ## If "ClientIP", consecutive client requests will be directed to the same Pod
622 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
624 sessionAffinity: None
625 ## @param primary.service.sessionAffinityConfig Additional settings for the sessionAffinity
626 ## sessionAffinityConfig:
628 ## timeoutSeconds: 300
630 sessionAffinityConfig: {}
631 ## PostgreSQL Primary persistence configuration
634 ## @param primary.persistence.enabled Enable PostgreSQL Primary data persistence using PVC
637 ## @param primary.persistence.existingClaim Name of an existing PVC to use
640 ## @param primary.persistence.mountPath The path the volume will be mounted at
641 ## Note: useful when using custom PostgreSQL images
643 mountPath: /bitnami/postgresql
644 ## @param primary.persistence.subPath The subdirectory of the volume to mount to
645 ## Useful in dev environments and one PV for multiple services
648 ## @param primary.persistence.storageClass PVC Storage Class for PostgreSQL Primary data volume
649 ## If defined, storageClassName: <storageClass>
650 ## If set to "-", storageClassName: "", which disables dynamic provisioning
651 ## If undefined (the default) or set to null, no storageClassName spec is
652 ## set, choosing the default provisioner. (gp2 on AWS, standard on
653 ## GKE, AWS & OpenStack)
656 ## @param primary.persistence.accessModes PVC Access Mode for PostgreSQL volume
660 ## @param primary.persistence.size PVC Storage Request for PostgreSQL volume
663 ## @param primary.persistence.annotations Annotations for the PVC
666 ## @param primary.persistence.labels Labels for the PVC
669 ## @param primary.persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
675 ## @param primary.persistence.dataSource Custom PVC data source
679 ## @section PostgreSQL read only replica parameters (only used when `architecture` is set to `replication`)
682 ## @param readReplicas.name Name of the read replicas database (eg secondary, slave, ...)
685 ## @param readReplicas.replicaCount Number of PostgreSQL read only replicas
688 ## @param readReplicas.extendedConfiguration Extended PostgreSQL read only replicas configuration (appended to main or default configuration)
689 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#allow-settings-to-be-loaded-from-files-other-than-the-default-postgresqlconf
691 extendedConfiguration: ""
692 ## @param readReplicas.extraEnvVars Array with extra environment variables to add to PostgreSQL read only nodes
699 ## @param readReplicas.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for PostgreSQL read only nodes
702 ## @param readReplicas.extraEnvVarsSecret Name of existing Secret containing extra env vars for PostgreSQL read only nodes
704 extraEnvVarsSecret: ""
705 ## @param readReplicas.command Override default container command (useful when using custom images)
708 ## @param readReplicas.args Override default container args (useful when using custom images)
711 ## Configure extra options for PostgreSQL read only containers' liveness, readiness and startup probes
712 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
713 ## @param readReplicas.livenessProbe.enabled Enable livenessProbe on PostgreSQL read only containers
714 ## @param readReplicas.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
715 ## @param readReplicas.livenessProbe.periodSeconds Period seconds for livenessProbe
716 ## @param readReplicas.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
717 ## @param readReplicas.livenessProbe.failureThreshold Failure threshold for livenessProbe
718 ## @param readReplicas.livenessProbe.successThreshold Success threshold for livenessProbe
722 initialDelaySeconds: 30
727 ## @param readReplicas.readinessProbe.enabled Enable readinessProbe on PostgreSQL read only containers
728 ## @param readReplicas.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
729 ## @param readReplicas.readinessProbe.periodSeconds Period seconds for readinessProbe
730 ## @param readReplicas.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
731 ## @param readReplicas.readinessProbe.failureThreshold Failure threshold for readinessProbe
732 ## @param readReplicas.readinessProbe.successThreshold Success threshold for readinessProbe
736 initialDelaySeconds: 5
741 ## @param readReplicas.startupProbe.enabled Enable startupProbe on PostgreSQL read only containers
742 ## @param readReplicas.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
743 ## @param readReplicas.startupProbe.periodSeconds Period seconds for startupProbe
744 ## @param readReplicas.startupProbe.timeoutSeconds Timeout seconds for startupProbe
745 ## @param readReplicas.startupProbe.failureThreshold Failure threshold for startupProbe
746 ## @param readReplicas.startupProbe.successThreshold Success threshold for startupProbe
750 initialDelaySeconds: 30
755 ## @param readReplicas.customLivenessProbe Custom livenessProbe that overrides the default one
757 customLivenessProbe: {}
758 ## @param readReplicas.customReadinessProbe Custom readinessProbe that overrides the default one
760 customReadinessProbe: {}
761 ## @param readReplicas.customStartupProbe Custom startupProbe that overrides the default one
763 customStartupProbe: {}
764 ## @param readReplicas.lifecycleHooks for the PostgreSQL read only container to automate configuration before or after startup
767 ## PostgreSQL read only resource requests and limits
768 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
769 ## @param readReplicas.resources.limits The resources limits for the PostgreSQL read only containers
770 ## @param readReplicas.resources.requests.memory The requested memory for the PostgreSQL read only containers
771 ## @param readReplicas.resources.requests.cpu The requested cpu for the PostgreSQL read only containers
778 ## Pod Security Context
779 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
780 ## @param readReplicas.podSecurityContext.enabled Enable security context
781 ## @param readReplicas.podSecurityContext.fsGroup Group ID for the pod
786 ## Container Security Context
787 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
788 ## @param readReplicas.containerSecurityContext.enabled Enable container security context
789 ## @param readReplicas.containerSecurityContext.runAsUser User ID for the container
791 containerSecurityContext:
794 ## @param readReplicas.hostAliases PostgreSQL read only pods host aliases
795 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
798 ## @param readReplicas.hostNetwork Specify if host network should be enabled for PostgreSQL pod (PostgreSQL read only)
801 ## @param readReplicas.hostIPC Specify if host IPC should be enabled for PostgreSQL pod (postgresql primary)
804 ## @param readReplicas.labels Map of labels to add to the statefulset (PostgreSQL read only)
807 ## @param readReplicas.annotations Annotations for PostgreSQL read only pods
810 ## @param readReplicas.podLabels Map of labels to add to the pods (PostgreSQL read only)
813 ## @param readReplicas.podAnnotations Map of annotations to add to the pods (PostgreSQL read only)
816 ## @param readReplicas.podAffinityPreset PostgreSQL read only pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
817 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
819 podAffinityPreset: ""
820 ## @param readReplicas.podAntiAffinityPreset PostgreSQL read only pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
821 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
823 podAntiAffinityPreset: soft
824 ## PostgreSQL read only node affinity preset
825 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
828 ## @param readReplicas.nodeAffinityPreset.type PostgreSQL read only node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
831 ## @param readReplicas.nodeAffinityPreset.key PostgreSQL read only node label key to match Ignored if `primary.affinity` is set.
833 ## key: "kubernetes.io/e2e-az-name"
836 ## @param readReplicas.nodeAffinityPreset.values PostgreSQL read only node label values to match. Ignored if `primary.affinity` is set.
843 ## @param readReplicas.affinity Affinity for PostgreSQL read only pods assignment
844 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
845 ## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set
848 ## @param readReplicas.nodeSelector Node labels for PostgreSQL read only pods assignment
849 ## ref: https://kubernetes.io/docs/user-guide/node-selection/
852 ## @param readReplicas.tolerations Tolerations for PostgreSQL read only pods assignment
853 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
856 ## @param readReplicas.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
857 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
859 topologySpreadConstraints: []
860 ## @param readReplicas.priorityClassName Priority Class to use for each pod (PostgreSQL read only)
862 priorityClassName: ""
863 ## @param readReplicas.schedulerName Use an alternate scheduler, e.g. "stork".
864 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
867 ## @param readReplicas.terminationGracePeriodSeconds Seconds PostgreSQL read only pod needs to terminate gracefully
868 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
870 terminationGracePeriodSeconds: ""
871 ## @param readReplicas.updateStrategy.type PostgreSQL read only statefulset strategy type
872 ## @param readReplicas.updateStrategy.rollingUpdate PostgreSQL read only statefulset rolling update configuration parameters
873 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
878 ## @param readReplicas.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the PostgreSQL read only container(s)
880 extraVolumeMounts: []
881 ## @param readReplicas.extraVolumes Optionally specify extra list of additional volumes for the PostgreSQL read only pod(s)
884 ## @param readReplicas.sidecars Add additional sidecar containers to the PostgreSQL read only pod(s)
887 ## - name: your-image-name
889 ## imagePullPolicy: Always
892 ## containerPort: 1234
895 ## @param readReplicas.initContainers Add additional init containers to the PostgreSQL read only pod(s)
899 ## - name: do-something
901 ## command: ['do', 'something']
904 ## @param readReplicas.extraPodSpec Optionally specify extra PodSpec for the PostgreSQL read only pod(s)
907 ## PostgreSQL read only service configuration
910 ## @param readReplicas.service.type Kubernetes Service type
913 ## @param readReplicas.service.ports.postgresql PostgreSQL service port
917 ## Node ports to expose
918 ## NOTE: choose port between <30000-32767>
919 ## @param readReplicas.service.nodePorts.postgresql Node port for PostgreSQL
920 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
924 ## @param readReplicas.service.clusterIP Static clusterIP or None for headless services
929 ## @param readReplicas.service.annotations Annotations for PostgreSQL read only service
932 ## @param readReplicas.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
933 ## Set the LoadBalancer service type to internal only
934 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
937 ## @param readReplicas.service.externalTrafficPolicy Enable client source IP preservation
938 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
940 externalTrafficPolicy: Cluster
941 ## @param readReplicas.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
942 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
944 ## loadBalancerSourceRanges:
947 loadBalancerSourceRanges: []
948 ## @param readReplicas.service.extraPorts Extra ports to expose in the PostgreSQL read only service
951 ## @param readReplicas.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
952 ## If "ClientIP", consecutive client requests will be directed to the same Pod
953 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
955 sessionAffinity: None
956 ## @param readReplicas.service.sessionAffinityConfig Additional settings for the sessionAffinity
957 ## sessionAffinityConfig:
959 ## timeoutSeconds: 300
961 sessionAffinityConfig: {}
962 ## PostgreSQL read only persistence configuration
965 ## @param readReplicas.persistence.enabled Enable PostgreSQL read only data persistence using PVC
968 ## @param readReplicas.persistence.existingClaim Name of an existing PVC to use
971 ## @param readReplicas.persistence.mountPath The path the volume will be mounted at
972 ## Note: useful when using custom PostgreSQL images
974 mountPath: /bitnami/postgresql
975 ## @param readReplicas.persistence.subPath The subdirectory of the volume to mount to
976 ## Useful in dev environments and one PV for multiple services
979 ## @param readReplicas.persistence.storageClass PVC Storage Class for PostgreSQL read only data volume
980 ## If defined, storageClassName: <storageClass>
981 ## If set to "-", storageClassName: "", which disables dynamic provisioning
982 ## If undefined (the default) or set to null, no storageClassName spec is
983 ## set, choosing the default provisioner. (gp2 on AWS, standard on
984 ## GKE, AWS & OpenStack)
987 ## @param readReplicas.persistence.accessModes PVC Access Mode for PostgreSQL volume
991 ## @param readReplicas.persistence.size PVC Storage Request for PostgreSQL volume
994 ## @param readReplicas.persistence.annotations Annotations for the PVC
997 ## @param readReplicas.persistence.labels Labels for the PVC
1000 ## @param readReplicas.persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
1006 ## @param readReplicas.persistence.dataSource Custom PVC data source
1010 ## @section NetworkPolicy parameters
1012 ## Add networkpolicies
1015 ## @param networkPolicy.enabled Enable network policies
1018 ## @param networkPolicy.metrics.enabled Enable network policies for metrics (prometheus)
1019 ## @param networkPolicy.metrics.namespaceSelector [object] Monitoring namespace selector labels. These labels will be used to identify the prometheus' namespace.
1020 ## @param networkPolicy.metrics.podSelector [object] Monitoring pod selector labels. These labels will be used to identify the Prometheus pods.
1025 ## namespaceSelector:
1026 ## label: monitoring
1028 namespaceSelector: {}
1031 ## label: monitoring
1037 ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.enabled Enable ingress rule that makes PostgreSQL primary node only accessible from a particular origin.
1038 ## @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).
1039 ## @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).
1040 ## @param networkPolicy.ingressRules.primaryAccessOnlyFrom.customRules [object] Custom network policy for the PostgreSQL primary node.
1042 primaryAccessOnlyFrom:
1045 ## namespaceSelector:
1048 namespaceSelector: {}
1054 ## custom ingress rules
1058 ## - namespaceSelector:
1062 ## @param networkPolicy.ingressRules.readReplicasAccessOnlyFrom.enabled Enable ingress rule that makes PostgreSQL read-only nodes only accessible from a particular origin.
1063 ## @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).
1064 ## @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).
1065 ## @param networkPolicy.ingressRules.readReplicasAccessOnlyFrom.customRules [object] Custom network policy for the PostgreSQL read-only nodes.
1067 readReplicasAccessOnlyFrom:
1070 ## namespaceSelector:
1073 namespaceSelector: {}
1079 ## custom ingress rules
1083 ## - namespaceSelector:
1087 ## @param networkPolicy.egressRules.denyConnectionsToExternal Enable egress rule that denies outgoing traffic outside the cluster, except for DNS (port 53).
1088 ## @param networkPolicy.egressRules.customRules [object] Custom network policy rule
1091 # Deny connections to external. This is not compatible with an external database.
1092 denyConnectionsToExternal: false
1093 ## Additional custom egress rules
1097 ## - namespaceSelector:
1102 ## @section Volume Permissions parameters
1104 ## Init containers parameters:
1105 ## volumePermissions: Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each node
1108 ## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume
1111 ## @param volumePermissions.image.registry Init container volume-permissions image registry
1112 ## @param volumePermissions.image.repository Init container volume-permissions image repository
1113 ## @param volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)
1114 ## @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
1115 ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
1116 ## @param volumePermissions.image.pullSecrets Init container volume-permissions image pull secrets
1120 repository: bitnami/bitnami-shell
1121 tag: 11-debian-11-r45
1123 pullPolicy: IfNotPresent
1124 ## Optionally specify an array of imagePullSecrets.
1125 ## Secrets must be manually created in the namespace.
1126 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1129 ## - myRegistryKeySecretName
1132 ## Init container resource requests and limits
1133 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
1134 ## @param volumePermissions.resources.limits Init container volume-permissions resource limits
1135 ## @param volumePermissions.resources.requests Init container volume-permissions resource requests
1140 ## Init container' Security Context
1141 ## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
1142 ## and not the below volumePermissions.containerSecurityContext.runAsUser
1143 ## @param volumePermissions.containerSecurityContext.runAsUser User ID for the init container
1145 containerSecurityContext:
1148 ## @section Other Parameters
1150 ## Service account for PostgreSQL to use.
1151 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1154 ## @param serviceAccount.create Enable creation of ServiceAccount for PostgreSQL pod
1157 ## @param serviceAccount.name The name of the ServiceAccount to use.
1158 ## If not set and create is true, a name is generated using the common.names.fullname template
1161 ## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
1162 ## Can be set to false if pods using this serviceAccount do not need to use K8s API
1164 automountServiceAccountToken: true
1165 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
1168 ## Creates role for ServiceAccount
1169 ## @param rbac.create Create Role and RoleBinding (required for PSP to work)
1173 ## @param rbac.rules Custom RBAC rules to set
1185 ## Pod Security Policy
1186 ## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1187 ## @param psp.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
1192 ## @section Metrics Parameters
1195 ## @param metrics.enabled Start a prometheus exporter
1198 ## @param metrics.image.registry PostgreSQL Prometheus Exporter image registry
1199 ## @param metrics.image.repository PostgreSQL Prometheus Exporter image repository
1200 ## @param metrics.image.tag PostgreSQL Prometheus Exporter image tag (immutable tags are recommended)
1201 ## @param metrics.image.digest PostgreSQL image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1202 ## @param metrics.image.pullPolicy PostgreSQL Prometheus Exporter image pull policy
1203 ## @param metrics.image.pullSecrets Specify image pull secrets
1207 repository: bitnami/postgres-exporter
1208 tag: 0.11.1-debian-11-r22
1210 pullPolicy: IfNotPresent
1211 ## Optionally specify an array of imagePullSecrets.
1212 ## Secrets must be manually created in the namespace.
1213 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1216 ## - myRegistryKeySecretName
1219 ## @param metrics.customMetrics Define additional custom metrics
1220 ## ref: https://github.com/wrouesnel/postgres_exporter#adding-new-metrics-via-a-config-file
1223 ## 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')"
1227 ## description: "Name of the database"
1230 ## description: "Size of the database in bytes"
1233 ## @param metrics.extraEnvVars Extra environment variables to add to PostgreSQL Prometheus exporter
1234 ## see: https://github.com/wrouesnel/postgres_exporter#environment-variables
1237 ## - name: PG_EXPORTER_DISABLE_DEFAULT_METRICS
1241 ## PostgreSQL Prometheus exporter containers' Security Context
1242 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1243 ## @param metrics.containerSecurityContext.enabled Enable PostgreSQL Prometheus exporter containers' Security Context
1244 ## @param metrics.containerSecurityContext.runAsUser Set PostgreSQL Prometheus exporter containers' Security Context runAsUser
1245 ## @param metrics.containerSecurityContext.runAsNonRoot Set PostgreSQL Prometheus exporter containers' Security Context runAsNonRoot
1247 containerSecurityContext:
1251 ## Configure extra options for PostgreSQL Prometheus exporter containers' liveness, readiness and startup probes
1252 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1253 ## @param metrics.livenessProbe.enabled Enable livenessProbe on PostgreSQL Prometheus exporter containers
1254 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1255 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
1256 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1257 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
1258 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
1262 initialDelaySeconds: 5
1267 ## @param metrics.readinessProbe.enabled Enable readinessProbe on PostgreSQL Prometheus exporter containers
1268 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1269 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
1270 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1271 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
1272 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
1276 initialDelaySeconds: 5
1281 ## @param metrics.startupProbe.enabled Enable startupProbe on PostgreSQL Prometheus exporter containers
1282 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1283 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
1284 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1285 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
1286 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
1290 initialDelaySeconds: 10
1293 failureThreshold: 15
1295 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
1297 customLivenessProbe: {}
1298 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
1300 customReadinessProbe: {}
1301 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
1303 customStartupProbe: {}
1304 ## @param metrics.containerPorts.metrics PostgreSQL Prometheus exporter metrics container port
1308 ## PostgreSQL Prometheus exporter resource requests and limits
1309 ## ref: https://kubernetes.io/docs/user-guide/compute-resources/
1310 ## @param metrics.resources.limits The resources limits for the PostgreSQL Prometheus exporter container
1311 ## @param metrics.resources.requests The requested resources for the PostgreSQL Prometheus exporter container
1316 ## Service configuration
1319 ## @param metrics.service.ports.metrics PostgreSQL Prometheus Exporter service port
1323 ## @param metrics.service.clusterIP Static clusterIP or None for headless services
1324 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
1327 ## @param metrics.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1328 ## Values: ClientIP or None
1329 ## ref: https://kubernetes.io/docs/user-guide/services/
1331 sessionAffinity: None
1332 ## @param metrics.service.annotations [object] Annotations for Prometheus to auto-discover the metrics endpoint
1335 prometheus.io/scrape: "true"
1336 prometheus.io/port: "{{ .Values.metrics.service.ports.metrics }}"
1337 ## Prometheus Operator ServiceMonitor configuration
1340 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using Prometheus Operator
1343 ## @param metrics.serviceMonitor.namespace Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)
1346 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
1347 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1350 ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
1351 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1354 ## @param metrics.serviceMonitor.labels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
1357 ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
1358 ## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
1361 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
1364 ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
1366 metricRelabelings: []
1367 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
1370 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1373 ## Custom PrometheusRule to be defined
1374 ## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart
1375 ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
1378 ## @param metrics.prometheusRule.enabled Create a PrometheusRule for Prometheus Operator
1381 ## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
1384 ## @param metrics.prometheusRule.labels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
1387 ## @param metrics.prometheusRule.rules PrometheusRule definitions
1388 ## Make sure to constraint the rules to the current postgresql service.
1390 ## - alert: HugeReplicationLag
1391 ## expr: pg_replication_lag{service="{{ printf "%s-metrics" (include "common.names.fullname" .) }}"} / 3600 > 1
1394 ## severity: critical
1396 ## description: replication for {{ include "common.names.fullname" . }} PostgreSQL is lagging by {{ "{{ $value }}" }} hour(s).
1397 ## summary: PostgreSQL replication is lagging by {{ "{{ $value }}" }} hour(s).