blob: de1dc72a37d433f18ef38cd7dc8ff0d1a919bec1 [file] [log] [blame]
gio404e2372025-07-11 12:50:26 +04001# Copyright Broadcom, Inc. All Rights Reserved.
2# SPDX-License-Identifier: APACHE-2.0
3
4## @section Global parameters
5## Please, note that this will override the parameters, including dependencies, configured to use the global value
6##
7global:
8 ## @param global.imageRegistry Global Docker image registry
9 ##
10 imageRegistry: ""
11 ## @param global.imagePullSecrets Global Docker registry secret names as an array
12 ## e.g.
13 ## imagePullSecrets:
14 ## - myRegistryKeySecretName
15 ##
16 imagePullSecrets: []
17 ## @param global.defaultStorageClass Global default StorageClass for Persistent Volume(s)
18## @param global.storageClass DEPRECATED: use global.defaultStorageClass instead
19 ##
20 defaultStorageClass: ""
21 storageClass: ""
22 postgresql:
23 ## @param global.postgresql.auth.postgresPassword Password for the "postgres" admin user (overrides `auth.postgresPassword`)
24 ## @param global.postgresql.auth.username Name for a custom user to create (overrides `auth.username`)
25 ## @param global.postgresql.auth.password Password for the custom user to create (overrides `auth.password`)
26 ## @param global.postgresql.auth.database Name for a custom database to create (overrides `auth.database`)
27 ## @param global.postgresql.auth.existingSecret Name of existing secret to use for PostgreSQL credentials (overrides `auth.existingSecret`).
28 ## @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.
29 ## @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.
30 ## @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.
31 ##
32 auth:
33 postgresPassword: ""
34 username: ""
35 password: ""
36 database: ""
37 existingSecret: ""
38 secretKeys:
39 adminPasswordKey: ""
40 userPasswordKey: ""
41 replicationPasswordKey: ""
42 ## @param global.postgresql.service.ports.postgresql PostgreSQL service port (overrides `service.ports.postgresql`)
43 ##
44 service:
45 ports:
46 postgresql: ""
47 ## Compatibility adaptations for Kubernetes platforms
48 ##
49 compatibility:
50 ## Compatibility adaptations for Openshift
51 ##
52 openshift:
53 ## @param global.compatibility.openshift.adaptSecurityContext Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)
54 ##
55 adaptSecurityContext: auto
56## @section Common parameters
57##
58
59## @param kubeVersion Override Kubernetes version
60##
61kubeVersion: ""
62## @param nameOverride String to partially override common.names.fullname template (will maintain the release name)
63##
64nameOverride: ""
65## @param fullnameOverride String to fully override common.names.fullname template
66##
67fullnameOverride: ""
68## @param clusterDomain Kubernetes Cluster Domain
69##
70clusterDomain: cluster.local
71## @param extraDeploy Array of extra objects to deploy with the release (evaluated as a template)
72##
73extraDeploy: []
74## @param commonLabels Add labels to all the deployed resources
75##
76commonLabels: {}
77## @param commonAnnotations Add annotations to all the deployed resources
78##
79commonAnnotations: {}
80## Enable diagnostic mode in the statefulset
81##
82diagnosticMode:
83 ## @param diagnosticMode.enabled Enable diagnostic mode (all probes will be disabled and the command will be overridden)
84 ##
85 enabled: false
86 ## @param diagnosticMode.command Command to override all containers in the statefulset
87 ##
88 command:
89 - sleep
90 ## @param diagnosticMode.args Args to override all containers in the statefulset
91 ##
92 args:
93 - infinity
94## @section PostgreSQL common parameters
95##
96
97## Bitnami PostgreSQL image version
98## ref: https://hub.docker.com/r/bitnami/postgresql/tags/
99## @param image.registry [default: REGISTRY_NAME] PostgreSQL image registry
100## @param image.repository [default: REPOSITORY_NAME/postgresql] PostgreSQL image repository
101## @skip image.tag PostgreSQL image tag (immutable tags are recommended)
102## @param image.digest PostgreSQL image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
103## @param image.pullPolicy PostgreSQL image pull policy
104## @param image.pullSecrets Specify image pull secrets
105## @param image.debug Specify if debug values should be set
106##
107image:
108 registry: docker.io
109 repository: bitnami/postgresql
110 tag: 17.0.0-debian-12-r0
111 digest: ""
112 ## Specify a imagePullPolicy
113 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
114 ## ref: https://kubernetes.io/docs/concepts/containers/images/#pre-pulled-images
115 ##
116 pullPolicy: IfNotPresent
117 ## Optionally specify an array of imagePullSecrets.
118 ## Secrets must be manually created in the namespace.
119 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
120 ## Example:
121 ## pullSecrets:
122 ## - myRegistryKeySecretName
123 ##
124 pullSecrets: []
125 ## Set to true if you would like to see extra information on logs
126 ##
127 debug: false
128## Authentication parameters
129## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#setting-the-root-password-on-first-run
130## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#creating-a-database-on-first-run
131## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#creating-a-database-user-on-first-run
132##
133auth:
134 ## @param auth.enablePostgresUser Assign a password to the "postgres" admin user. Otherwise, remote access will be blocked for this user
135 ##
136 enablePostgresUser: true
137 ## @param auth.postgresPassword Password for the "postgres" admin user. Ignored if `auth.existingSecret` is provided
138 ##
139 postgresPassword: ""
140 ## @param auth.username Name for a custom user to create
141 ##
142 username: ""
143 ## @param auth.password Password for the custom user to create. Ignored if `auth.existingSecret` is provided
144 ##
145 password: ""
146 ## @param auth.database Name for a custom database to create
147 ##
148 database: ""
149 ## @param auth.replicationUsername Name of the replication user
150 ##
151 replicationUsername: repl_user
152 ## @param auth.replicationPassword Password for the replication user. Ignored if `auth.existingSecret` is provided
153 ##
154 replicationPassword: ""
155 ## @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.
156 ##
157 existingSecret: ""
158 ## @param auth.secretKeys.adminPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set.
159 ## @param auth.secretKeys.userPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set.
160 ## @param auth.secretKeys.replicationPasswordKey Name of key in existing secret to use for PostgreSQL credentials. Only used when `auth.existingSecret` is set.
161 ##
162 secretKeys:
163 adminPasswordKey: postgres-password
164 userPasswordKey: password
165 replicationPasswordKey: replication-password
166 ## @param auth.usePasswordFiles Mount credentials as a files instead of using an environment variable
167 ##
168 usePasswordFiles: false
169## @param architecture PostgreSQL architecture (`standalone` or `replication`)
170##
171architecture: standalone
172## Replication configuration
173## Ignored if `architecture` is `standalone`
174##
175replication:
176 ## @param replication.synchronousCommit Set synchronous commit mode. Allowed values: `on`, `remote_apply`, `remote_write`, `local` and `off`
177 ## @param replication.numSynchronousReplicas Number of replicas that will have synchronous replication. Note: Cannot be greater than `readReplicas.replicaCount`.
178 ## ref: https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-SYNCHRONOUS-COMMIT
179 ##
180 synchronousCommit: "off"
181 numSynchronousReplicas: 0
182 ## @param replication.applicationName Cluster application name. Useful for advanced replication settings
183 ##
184 applicationName: my_application
185## @param containerPorts.postgresql PostgreSQL container port
186##
187containerPorts:
188 postgresql: 5432
189## Audit settings
190## https://github.com/bitnami/containers/tree/main/bitnami/postgresql#auditing
191## @param audit.logHostname Log client hostnames
192## @param audit.logConnections Add client log-in operations to the log file
193## @param audit.logDisconnections Add client log-outs operations to the log file
194## @param audit.pgAuditLog Add operations to log using the pgAudit extension
195## @param audit.pgAuditLogCatalog Log catalog using pgAudit
196## @param audit.clientMinMessages Message log level to share with the user
197## @param audit.logLinePrefix Template for log line prefix (default if not set)
198## @param audit.logTimezone Timezone for the log timestamps
199##
200audit:
201 logHostname: false
202 logConnections: false
203 logDisconnections: false
204 pgAuditLog: ""
205 pgAuditLogCatalog: "off"
206 clientMinMessages: error
207 logLinePrefix: ""
208 logTimezone: ""
209## LDAP configuration
210## @param ldap.enabled Enable LDAP support
211## DEPRECATED ldap.url It will removed in a future, please use 'ldap.uri' instead
212## @param ldap.server IP address or name of the LDAP server.
213## @param ldap.port Port number on the LDAP server to connect to
214## @param ldap.prefix String to prepend to the user name when forming the DN to bind
215## @param ldap.suffix String to append to the user name when forming the DN to bind
216## DEPRECATED ldap.baseDN It will removed in a future, please use 'ldap.basedn' instead
217## DEPRECATED ldap.bindDN It will removed in a future, please use 'ldap.binddn' instead
218## DEPRECATED ldap.bind_password It will removed in a future, please use 'ldap.bindpw' instead
219## @param ldap.basedn Root DN to begin the search for the user in
220## @param ldap.binddn DN of user to bind to LDAP
221## @param ldap.bindpw Password for the user to bind to LDAP
222## DEPRECATED ldap.search_attr It will removed in a future, please use 'ldap.searchAttribute' instead
223## DEPRECATED ldap.search_filter It will removed in a future, please use 'ldap.searchFilter' instead
224## @param ldap.searchAttribute Attribute to match against the user name in the search
225## @param ldap.searchFilter The search filter to use when doing search+bind authentication
226## @param ldap.scheme Set to `ldaps` to use LDAPS
227## DEPRECATED ldap.tls as string is deprecated, please use 'ldap.tls.enabled' instead
228## @param ldap.tls.enabled Se to true to enable TLS encryption
229##
230ldap:
231 enabled: false
232 server: ""
233 port: ""
234 prefix: ""
235 suffix: ""
236 basedn: ""
237 binddn: ""
238 bindpw: ""
239 searchAttribute: ""
240 searchFilter: ""
241 scheme: ""
242 tls:
243 enabled: false
244 ## @param ldap.uri LDAP URL beginning in the form `ldap[s]://host[:port]/basedn`. If provided, all the other LDAP parameters will be ignored.
245 ## Ref: https://www.postgresql.org/docs/current/auth-ldap.html
246 ##
247 uri: ""
248## @param postgresqlDataDir PostgreSQL data dir folder
249##
250postgresqlDataDir: /bitnami/postgresql/data
251## @param postgresqlSharedPreloadLibraries Shared preload libraries (comma-separated list)
252##
253postgresqlSharedPreloadLibraries: "pgaudit"
254## Start PostgreSQL pod(s) without limitations on shm memory.
255## By default docker and containerd (and possibly other container runtimes) limit `/dev/shm` to `64M`
256## ref: https://github.com/docker-library/postgres/issues/416
257## ref: https://github.com/containerd/containerd/issues/3654
258##
259shmVolume:
260 ## @param shmVolume.enabled Enable emptyDir volume for /dev/shm for PostgreSQL pod(s)
261 ##
262 enabled: true
263 ## @param shmVolume.sizeLimit Set this to enable a size limit on the shm tmpfs
264 ## Note: the size of the tmpfs counts against container's memory limit
265 ## e.g:
266 ## sizeLimit: 1Gi
267 ##
268 sizeLimit: ""
269## TLS configuration
270##
271tls:
272 ## @param tls.enabled Enable TLS traffic support
273 ##
274 enabled: false
275 ## @param tls.autoGenerated Generate automatically self-signed TLS certificates
276 ##
277 autoGenerated: false
278 ## @param tls.preferServerCiphers Whether to use the server's TLS cipher preferences rather than the client's
279 ##
280 preferServerCiphers: true
281 ## @param tls.certificatesSecret Name of an existing secret that contains the certificates
282 ##
283 certificatesSecret: ""
284 ## @param tls.certFilename Certificate filename
285 ##
286 certFilename: ""
287 ## @param tls.certKeyFilename Certificate key filename
288 ##
289 certKeyFilename: ""
290 ## @param tls.certCAFilename CA Certificate filename
291 ## If provided, PostgreSQL will authenticate TLS/SSL clients by requesting them a certificate
292 ## ref: https://www.postgresql.org/docs/9.6/auth-methods.html
293 ##
294 certCAFilename: ""
295 ## @param tls.crlFilename File containing a Certificate Revocation List
296 ##
297 crlFilename: ""
298## @section PostgreSQL Primary parameters
299##
300primary:
301 ## @param primary.name Name of the primary database (eg primary, master, leader, ...)
302 ##
303 name: primary
304 ## @param primary.configuration PostgreSQL Primary main configuration to be injected as ConfigMap
305 ## ref: https://www.postgresql.org/docs/current/static/runtime-config.html
306 ##
307 configuration: ""
308 ## @param primary.pgHbaConfiguration PostgreSQL Primary client authentication configuration
309 ## ref: https://www.postgresql.org/docs/current/static/auth-pg-hba-conf.html
310 ## e.g:#
311 ## pgHbaConfiguration: |-
312 ## local all all trust
313 ## host all all localhost trust
314 ## host mydatabase mysuser 192.168.0.0/24 md5
315 ##
316 pgHbaConfiguration: ""
317 ## @param primary.existingConfigmap Name of an existing ConfigMap with PostgreSQL Primary configuration
318 ## NOTE: `primary.configuration` and `primary.pgHbaConfiguration` will be ignored
319 ##
320 existingConfigmap: ""
321 ## @param primary.extendedConfiguration Extended PostgreSQL Primary configuration (appended to main or default configuration)
322 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#allow-settings-to-be-loaded-from-files-other-than-the-default-postgresqlconf
323 ##
324 extendedConfiguration: ""
325 ## @param primary.existingExtendedConfigmap Name of an existing ConfigMap with PostgreSQL Primary extended configuration
326 ## NOTE: `primary.extendedConfiguration` will be ignored
327 ##
328 existingExtendedConfigmap: ""
329 ## Initdb configuration
330 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#specifying-initdb-arguments
331 ##
332 initdb:
333 ## @param primary.initdb.args PostgreSQL initdb extra arguments
334 ##
335 args: ""
336 ## @param primary.initdb.postgresqlWalDir Specify a custom location for the PostgreSQL transaction log
337 ##
338 postgresqlWalDir: ""
339 ## @param primary.initdb.scripts Dictionary of initdb scripts
340 ## Specify dictionary of scripts to be run at first boot
341 ## e.g:
342 ## scripts:
343 ## my_init_script.sh: |
344 ## #!/bin/sh
345 ## echo "Do something."
346 ##
347 scripts: {}
348 ## @param primary.initdb.scriptsConfigMap ConfigMap with scripts to be run at first boot
349 ## NOTE: This will override `primary.initdb.scripts`
350 ##
351 scriptsConfigMap: ""
352 ## @param primary.initdb.scriptsSecret Secret with scripts to be run at first boot (in case it contains sensitive information)
353 ## NOTE: This can work along `primary.initdb.scripts` or `primary.initdb.scriptsConfigMap`
354 ##
355 scriptsSecret: ""
356 ## @param primary.initdb.user Specify the PostgreSQL username to execute the initdb scripts
357 ##
358 user: ""
359 ## @param primary.initdb.password Specify the PostgreSQL password to execute the initdb scripts
360 ##
361 password: ""
362 ## Pre-init configuration
363 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql/#on-container-start
364 preInitDb:
365 ## @param primary.preInitDb.scripts Dictionary of pre-init scripts
366 ## Specify dictionary of shell scripts to be run before db boot
367 ## e.g:
368 ## scripts:
369 ## my_pre_init_script.sh: |
370 ## #!/bin/sh
371 ## echo "Do something."
372 scripts: {}
373 ## @param primary.preInitDb.scriptsConfigMap ConfigMap with pre-init scripts to be run
374 ## NOTE: This will override `primary.preInitDb.scripts`
375 scriptsConfigMap: ""
376 ## @param primary.preInitDb.scriptsSecret Secret with pre-init scripts to be run
377 ## NOTE: This can work along `primary.preInitDb.scripts` or `primary.preInitDb.scriptsConfigMap`
378 scriptsSecret: ""
379 ## Configure current cluster's primary server to be the standby server in other cluster.
380 ## This will allow cross cluster replication and provide cross cluster high availability.
381 ## You will need to configure pgHbaConfiguration if you want to enable this feature with local cluster replication enabled.
382 ## @param primary.standby.enabled Whether to enable current cluster's primary as standby server of another cluster or not
383 ## @param primary.standby.primaryHost The Host of replication primary in the other cluster
384 ## @param primary.standby.primaryPort The Port of replication primary in the other cluster
385 ##
386 standby:
387 enabled: false
388 primaryHost: ""
389 primaryPort: ""
390 ## @param primary.extraEnvVars Array with extra environment variables to add to PostgreSQL Primary nodes
391 ## e.g:
392 ## extraEnvVars:
393 ## - name: FOO
394 ## value: "bar"
395 ##
396 extraEnvVars: []
397 ## @param primary.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for PostgreSQL Primary nodes
398 ##
399 extraEnvVarsCM: ""
400 ## @param primary.extraEnvVarsSecret Name of existing Secret containing extra env vars for PostgreSQL Primary nodes
401 ##
402 extraEnvVarsSecret: ""
403 ## @param primary.command Override default container command (useful when using custom images)
404 ##
405 command: []
406 ## @param primary.args Override default container args (useful when using custom images)
407 ##
408 args: []
409 ## Configure extra options for PostgreSQL Primary containers' liveness, readiness and startup probes
410 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
411 ## @param primary.livenessProbe.enabled Enable livenessProbe on PostgreSQL Primary containers
412 ## @param primary.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
413 ## @param primary.livenessProbe.periodSeconds Period seconds for livenessProbe
414 ## @param primary.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
415 ## @param primary.livenessProbe.failureThreshold Failure threshold for livenessProbe
416 ## @param primary.livenessProbe.successThreshold Success threshold for livenessProbe
417 ##
418 livenessProbe:
419 enabled: true
420 initialDelaySeconds: 30
421 periodSeconds: 10
422 timeoutSeconds: 5
423 failureThreshold: 6
424 successThreshold: 1
425 ## @param primary.readinessProbe.enabled Enable readinessProbe on PostgreSQL Primary containers
426 ## @param primary.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
427 ## @param primary.readinessProbe.periodSeconds Period seconds for readinessProbe
428 ## @param primary.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
429 ## @param primary.readinessProbe.failureThreshold Failure threshold for readinessProbe
430 ## @param primary.readinessProbe.successThreshold Success threshold for readinessProbe
431 ##
432 readinessProbe:
433 enabled: true
434 initialDelaySeconds: 5
435 periodSeconds: 10
436 timeoutSeconds: 5
437 failureThreshold: 6
438 successThreshold: 1
439 ## @param primary.startupProbe.enabled Enable startupProbe on PostgreSQL Primary containers
440 ## @param primary.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
441 ## @param primary.startupProbe.periodSeconds Period seconds for startupProbe
442 ## @param primary.startupProbe.timeoutSeconds Timeout seconds for startupProbe
443 ## @param primary.startupProbe.failureThreshold Failure threshold for startupProbe
444 ## @param primary.startupProbe.successThreshold Success threshold for startupProbe
445 ##
446 startupProbe:
447 enabled: false
448 initialDelaySeconds: 30
449 periodSeconds: 10
450 timeoutSeconds: 1
451 failureThreshold: 15
452 successThreshold: 1
453 ## @param primary.customLivenessProbe Custom livenessProbe that overrides the default one
454 ##
455 customLivenessProbe: {}
456 ## @param primary.customReadinessProbe Custom readinessProbe that overrides the default one
457 ##
458 customReadinessProbe: {}
459 ## @param primary.customStartupProbe Custom startupProbe that overrides the default one
460 ##
461 customStartupProbe: {}
462 ## @param primary.lifecycleHooks for the PostgreSQL Primary container to automate configuration before or after startup
463 ##
464 lifecycleHooks: {}
465 ## PostgreSQL Primary resource requests and limits
466 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
467 ## @param primary.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production).
468 ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
469 ##
470 resourcesPreset: "nano"
471 ## @param primary.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
472 ## Example:
473 ## resources:
474 ## requests:
475 ## cpu: 2
476 ## memory: 512Mi
477 ## limits:
478 ## cpu: 3
479 ## memory: 1024Mi
480 ##
481 resources: {}
482 ## Pod Security Context
483 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
484 ## @param primary.podSecurityContext.enabled Enable security context
485 ## @param primary.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
486 ## @param primary.podSecurityContext.sysctls Set kernel settings using the sysctl interface
487 ## @param primary.podSecurityContext.supplementalGroups Set filesystem extra groups
488 ## @param primary.podSecurityContext.fsGroup Group ID for the pod
489 ##
490 podSecurityContext:
491 enabled: true
492 fsGroupChangePolicy: Always
493 sysctls: []
494 supplementalGroups: []
495 fsGroup: 1001
496 ## Container Security Context
497 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
498 ## @param primary.containerSecurityContext.enabled Enabled containers' Security Context
499 ## @param primary.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
500 ## @param primary.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
501 ## @param primary.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
502 ## @param primary.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
503 ## @param primary.containerSecurityContext.privileged Set container's Security Context privileged
504 ## @param primary.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
505 ## @param primary.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
506 ## @param primary.containerSecurityContext.capabilities.drop List of capabilities to be dropped
507 ## @param primary.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
508 ##
509 containerSecurityContext:
510 enabled: true
511 seLinuxOptions: {}
512 runAsUser: 1001
513 runAsGroup: 1001
514 runAsNonRoot: true
515 privileged: false
516 readOnlyRootFilesystem: true
517 allowPrivilegeEscalation: false
518 capabilities:
519 drop: ["ALL"]
520 seccompProfile:
521 type: "RuntimeDefault"
522 ## @param primary.automountServiceAccountToken Mount Service Account token in pod
523 ##
524 automountServiceAccountToken: false
525 ## @param primary.hostAliases PostgreSQL primary pods host aliases
526 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
527 ##
528 hostAliases: []
529 ## @param primary.hostNetwork Specify if host network should be enabled for PostgreSQL pod (postgresql primary)
530 ##
531 hostNetwork: false
532 ## @param primary.hostIPC Specify if host IPC should be enabled for PostgreSQL pod (postgresql primary)
533 ##
534 hostIPC: false
535 ## @param primary.labels Map of labels to add to the statefulset (postgresql primary)
536 ##
537 labels: {}
538 ## @param primary.annotations Annotations for PostgreSQL primary pods
539 ##
540 annotations: {}
541 ## @param primary.podLabels Map of labels to add to the pods (postgresql primary)
542 ##
543 podLabels: {}
544 ## @param primary.podAnnotations Map of annotations to add to the pods (postgresql primary)
545 ##
546 podAnnotations: {}
547 ## @param primary.podAffinityPreset PostgreSQL primary pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
548 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
549 ##
550 podAffinityPreset: ""
551 ## @param primary.podAntiAffinityPreset PostgreSQL primary pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
552 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
553 ##
554 podAntiAffinityPreset: soft
555 ## PostgreSQL Primary node affinity preset
556 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
557 ##
558 nodeAffinityPreset:
559 ## @param primary.nodeAffinityPreset.type PostgreSQL primary node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
560 ##
561 type: ""
562 ## @param primary.nodeAffinityPreset.key PostgreSQL primary node label key to match Ignored if `primary.affinity` is set.
563 ## E.g.
564 ## key: "kubernetes.io/e2e-az-name"
565 ##
566 key: ""
567 ## @param primary.nodeAffinityPreset.values PostgreSQL primary node label values to match. Ignored if `primary.affinity` is set.
568 ## E.g.
569 ## values:
570 ## - e2e-az1
571 ## - e2e-az2
572 ##
573 values: []
574 ## @param primary.affinity Affinity for PostgreSQL primary pods assignment
575 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
576 ## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set
577 ##
578 affinity: {}
579 ## @param primary.nodeSelector Node labels for PostgreSQL primary pods assignment
580 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
581 ##
582 nodeSelector: {}
583 ## @param primary.tolerations Tolerations for PostgreSQL primary pods assignment
584 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
585 ##
586 tolerations: []
587 ## @param primary.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
588 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
589 ##
590 topologySpreadConstraints: []
591 ## @param primary.priorityClassName Priority Class to use for each pod (postgresql primary)
592 ##
593 priorityClassName: ""
594 ## @param primary.schedulerName Use an alternate scheduler, e.g. "stork".
595 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
596 ##
597 schedulerName: ""
598 ## @param primary.terminationGracePeriodSeconds Seconds PostgreSQL primary pod needs to terminate gracefully
599 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
600 ##
601 terminationGracePeriodSeconds: ""
602 ## @param primary.updateStrategy.type PostgreSQL Primary statefulset strategy type
603 ## @param primary.updateStrategy.rollingUpdate PostgreSQL Primary statefulset rolling update configuration parameters
604 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
605 ##
606 updateStrategy:
607 type: RollingUpdate
608 rollingUpdate: {}
609 ## @param primary.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the PostgreSQL Primary container(s)
610 ##
611 extraVolumeMounts: []
612 ## @param primary.extraVolumes Optionally specify extra list of additional volumes for the PostgreSQL Primary pod(s)
613 ##
614 extraVolumes: []
615 ## @param primary.sidecars Add additional sidecar containers to the PostgreSQL Primary pod(s)
616 ## For example:
617 ## sidecars:
618 ## - name: your-image-name
619 ## image: your-image
620 ## imagePullPolicy: Always
621 ## ports:
622 ## - name: portname
623 ## containerPort: 1234
624 ##
625 sidecars: []
626 ## @param primary.initContainers Add additional init containers to the PostgreSQL Primary pod(s)
627 ## Example
628 ##
629 ## initContainers:
630 ## - name: do-something
631 ## image: busybox
632 ## command: ['do', 'something']
633 ##
634 initContainers: []
635 ## Pod Disruption Budget configuration
636 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
637 ## @param primary.pdb.create Enable/disable a Pod Disruption Budget creation
638 ## @param primary.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
639 ## @param primary.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `primary.pdb.minAvailable` and `primary.pdb.maxUnavailable` are empty.
640 ##
641 pdb:
642 create: true
643 minAvailable: ""
644 maxUnavailable: ""
645 ## @param primary.extraPodSpec Optionally specify extra PodSpec for the PostgreSQL Primary pod(s)
646 ##
647 extraPodSpec: {}
648 ## Network Policies
649 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
650 ##
651 networkPolicy:
652 ## @param primary.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
653 ##
654 enabled: true
655 ## @param primary.networkPolicy.allowExternal Don't require server label for connections
656 ## The Policy model to apply. When set to false, only pods with the correct
657 ## server label will have network access to the ports server is listening
658 ## on. When true, server will accept connections from any source
659 ## (with the correct destination port).
660 ##
661 allowExternal: true
662 ## @param primary.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
663 ##
664 allowExternalEgress: true
665 ## @param primary.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
666 ## e.g:
667 ## extraIngress:
668 ## - ports:
669 ## - port: 1234
670 ## from:
671 ## - podSelector:
672 ## - matchLabels:
673 ## - role: frontend
674 ## - podSelector:
675 ## - matchExpressions:
676 ## - key: role
677 ## operator: In
678 ## values:
679 ## - frontend
680 extraIngress: []
681 ## @param primary.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
682 ## e.g:
683 ## extraEgress:
684 ## - ports:
685 ## - port: 1234
686 ## to:
687 ## - podSelector:
688 ## - matchLabels:
689 ## - role: frontend
690 ## - podSelector:
691 ## - matchExpressions:
692 ## - key: role
693 ## operator: In
694 ## values:
695 ## - frontend
696 ##
697 extraEgress: []
698 ## @param primary.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
699 ## @param primary.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
700 ##
701 ingressNSMatchLabels: {}
702 ingressNSPodMatchLabels: {}
703 ## PostgreSQL Primary service configuration
704 ##
705 service:
706 ## @param primary.service.type Kubernetes Service type
707 ##
708 type: ClusterIP
709 ## @param primary.service.ports.postgresql PostgreSQL service port
710 ##
711 ports:
712 postgresql: 5432
713 ## Node ports to expose
714 ## NOTE: choose port between <30000-32767>
715 ## @param primary.service.nodePorts.postgresql Node port for PostgreSQL
716 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
717 ##
718 nodePorts:
719 postgresql: ""
720 ## @param primary.service.clusterIP Static clusterIP or None for headless services
721 ## e.g:
722 ## clusterIP: None
723 ##
724 clusterIP: ""
725 ## @param primary.service.annotations Annotations for PostgreSQL primary service
726 ##
727 annotations: {}
728 ## @param primary.service.loadBalancerClass Load balancer class if service type is `LoadBalancer`
729 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
730 ##
731 loadBalancerClass: ""
732 ## @param primary.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
733 ## Set the LoadBalancer service type to internal only
734 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
735 ##
736 loadBalancerIP: ""
737 ## @param primary.service.externalTrafficPolicy Enable client source IP preservation
738 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
739 ##
740 externalTrafficPolicy: Cluster
741 ## @param primary.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
742 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
743 ##
744 ## loadBalancerSourceRanges:
745 ## - 10.10.10.0/24
746 ##
747 loadBalancerSourceRanges: []
748 ## @param primary.service.extraPorts Extra ports to expose in the PostgreSQL primary service
749 ##
750 extraPorts: []
751 ## @param primary.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
752 ## If "ClientIP", consecutive client requests will be directed to the same Pod
753 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
754 ##
755 sessionAffinity: None
756 ## @param primary.service.sessionAffinityConfig Additional settings for the sessionAffinity
757 ## sessionAffinityConfig:
758 ## clientIP:
759 ## timeoutSeconds: 300
760 ##
761 sessionAffinityConfig: {}
762 ## Headless service properties
763 ##
764 headless:
765 ## @param primary.service.headless.annotations Additional custom annotations for headless PostgreSQL primary service
766 ##
767 annotations: {}
768 ## PostgreSQL Primary persistence configuration
769 ##
770 persistence:
771 ## @param primary.persistence.enabled Enable PostgreSQL Primary data persistence using PVC
772 ##
773 enabled: true
774 ## @param primary.persistence.volumeName Name to assign the volume
775 ##
776 volumeName: "data"
777 ## @param primary.persistence.existingClaim Name of an existing PVC to use
778 ##
779 existingClaim: ""
780 ## @param primary.persistence.mountPath The path the volume will be mounted at
781 ## Note: useful when using custom PostgreSQL images
782 ##
783 mountPath: /bitnami/postgresql
784 ## @param primary.persistence.subPath The subdirectory of the volume to mount to
785 ## Useful in dev environments and one PV for multiple services
786 ##
787 subPath: ""
788 ## @param primary.persistence.storageClass PVC Storage Class for PostgreSQL Primary data volume
789 ## If defined, storageClassName: <storageClass>
790 ## If set to "-", storageClassName: "", which disables dynamic provisioning
791 ## If undefined (the default) or set to null, no storageClassName spec is
792 ## set, choosing the default provisioner. (gp2 on AWS, standard on
793 ## GKE, AWS & OpenStack)
794 ##
795 storageClass: ""
796 ## @param primary.persistence.accessModes PVC Access Mode for PostgreSQL volume
797 ##
798 accessModes:
799 - ReadWriteOnce
800 ## @param primary.persistence.size PVC Storage Request for PostgreSQL volume
801 ##
802 size: 8Gi
803 ## @param primary.persistence.annotations Annotations for the PVC
804 ##
805 annotations: {}
806 ## @param primary.persistence.labels Labels for the PVC
807 ##
808 labels: {}
809 ## @param primary.persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
810 ## selector:
811 ## matchLabels:
812 ## app: my-app
813 ##
814 selector: {}
815 ## @param primary.persistence.dataSource Custom PVC data source
816 ##
817 dataSource: {}
818 ## PostgreSQL Primary Persistent Volume Claim Retention Policy
819 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
820 ##
821 persistentVolumeClaimRetentionPolicy:
822 ## @param primary.persistentVolumeClaimRetentionPolicy.enabled Enable Persistent volume retention policy for Primary Statefulset
823 ##
824 enabled: false
825 ## @param primary.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
826 ##
827 whenScaled: Retain
828 ## @param primary.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
829 ##
830 whenDeleted: Retain
831## @section PostgreSQL read only replica parameters (only used when `architecture` is set to `replication`)
832##
833readReplicas:
834 ## @param readReplicas.name Name of the read replicas database (eg secondary, slave, ...)
835 ##
836 name: read
837 ## @param readReplicas.replicaCount Number of PostgreSQL read only replicas
838 ##
839 replicaCount: 1
840 ## @param readReplicas.extendedConfiguration Extended PostgreSQL read only replicas configuration (appended to main or default configuration)
841 ## ref: https://github.com/bitnami/containers/tree/main/bitnami/postgresql#allow-settings-to-be-loaded-from-files-other-than-the-default-postgresqlconf
842 ##
843 extendedConfiguration: ""
844 ## @param readReplicas.extraEnvVars Array with extra environment variables to add to PostgreSQL read only nodes
845 ## e.g:
846 ## extraEnvVars:
847 ## - name: FOO
848 ## value: "bar"
849 ##
850 extraEnvVars: []
851 ## @param readReplicas.extraEnvVarsCM Name of existing ConfigMap containing extra env vars for PostgreSQL read only nodes
852 ##
853 extraEnvVarsCM: ""
854 ## @param readReplicas.extraEnvVarsSecret Name of existing Secret containing extra env vars for PostgreSQL read only nodes
855 ##
856 extraEnvVarsSecret: ""
857 ## @param readReplicas.command Override default container command (useful when using custom images)
858 ##
859 command: []
860 ## @param readReplicas.args Override default container args (useful when using custom images)
861 ##
862 args: []
863 ## Configure extra options for PostgreSQL read only containers' liveness, readiness and startup probes
864 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
865 ## @param readReplicas.livenessProbe.enabled Enable livenessProbe on PostgreSQL read only containers
866 ## @param readReplicas.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
867 ## @param readReplicas.livenessProbe.periodSeconds Period seconds for livenessProbe
868 ## @param readReplicas.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
869 ## @param readReplicas.livenessProbe.failureThreshold Failure threshold for livenessProbe
870 ## @param readReplicas.livenessProbe.successThreshold Success threshold for livenessProbe
871 ##
872 livenessProbe:
873 enabled: true
874 initialDelaySeconds: 30
875 periodSeconds: 10
876 timeoutSeconds: 5
877 failureThreshold: 6
878 successThreshold: 1
879 ## @param readReplicas.readinessProbe.enabled Enable readinessProbe on PostgreSQL read only containers
880 ## @param readReplicas.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
881 ## @param readReplicas.readinessProbe.periodSeconds Period seconds for readinessProbe
882 ## @param readReplicas.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
883 ## @param readReplicas.readinessProbe.failureThreshold Failure threshold for readinessProbe
884 ## @param readReplicas.readinessProbe.successThreshold Success threshold for readinessProbe
885 ##
886 readinessProbe:
887 enabled: true
888 initialDelaySeconds: 5
889 periodSeconds: 10
890 timeoutSeconds: 5
891 failureThreshold: 6
892 successThreshold: 1
893 ## @param readReplicas.startupProbe.enabled Enable startupProbe on PostgreSQL read only containers
894 ## @param readReplicas.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
895 ## @param readReplicas.startupProbe.periodSeconds Period seconds for startupProbe
896 ## @param readReplicas.startupProbe.timeoutSeconds Timeout seconds for startupProbe
897 ## @param readReplicas.startupProbe.failureThreshold Failure threshold for startupProbe
898 ## @param readReplicas.startupProbe.successThreshold Success threshold for startupProbe
899 ##
900 startupProbe:
901 enabled: false
902 initialDelaySeconds: 30
903 periodSeconds: 10
904 timeoutSeconds: 1
905 failureThreshold: 15
906 successThreshold: 1
907 ## @param readReplicas.customLivenessProbe Custom livenessProbe that overrides the default one
908 ##
909 customLivenessProbe: {}
910 ## @param readReplicas.customReadinessProbe Custom readinessProbe that overrides the default one
911 ##
912 customReadinessProbe: {}
913 ## @param readReplicas.customStartupProbe Custom startupProbe that overrides the default one
914 ##
915 customStartupProbe: {}
916 ## @param readReplicas.lifecycleHooks for the PostgreSQL read only container to automate configuration before or after startup
917 ##
918 lifecycleHooks: {}
919 ## PostgreSQL read only resource requests and limits
920 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
921 ## @param readReplicas.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if readReplicas.resources is set (readReplicas.resources is recommended for production).
922 ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
923 ##
924 resourcesPreset: "nano"
925 ## @param readReplicas.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
926 ## Example:
927 ## resources:
928 ## requests:
929 ## cpu: 2
930 ## memory: 512Mi
931 ## limits:
932 ## cpu: 3
933 ## memory: 1024Mi
934 ##
935 resources: {}
936 ## Pod Security Context
937 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
938 ## @param readReplicas.podSecurityContext.enabled Enable security context
939 ## @param readReplicas.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
940 ## @param readReplicas.podSecurityContext.sysctls Set kernel settings using the sysctl interface
941 ## @param readReplicas.podSecurityContext.supplementalGroups Set filesystem extra groups
942 ## @param readReplicas.podSecurityContext.fsGroup Group ID for the pod
943 ##
944 podSecurityContext:
945 enabled: true
946 fsGroupChangePolicy: Always
947 sysctls: []
948 supplementalGroups: []
949 fsGroup: 1001
950 ## Container Security Context
951 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
952 ## @param readReplicas.containerSecurityContext.enabled Enabled containers' Security Context
953 ## @param readReplicas.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
954 ## @param readReplicas.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
955 ## @param readReplicas.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
956 ## @param readReplicas.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
957 ## @param readReplicas.containerSecurityContext.privileged Set container's Security Context privileged
958 ## @param readReplicas.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
959 ## @param readReplicas.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
960 ## @param readReplicas.containerSecurityContext.capabilities.drop List of capabilities to be dropped
961 ## @param readReplicas.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
962 ##
963 containerSecurityContext:
964 enabled: true
965 seLinuxOptions: {}
966 runAsUser: 1001
967 runAsGroup: 1001
968 runAsNonRoot: true
969 privileged: false
970 readOnlyRootFilesystem: true
971 allowPrivilegeEscalation: false
972 capabilities:
973 drop: ["ALL"]
974 seccompProfile:
975 type: "RuntimeDefault"
976 ## @param readReplicas.automountServiceAccountToken Mount Service Account token in pod
977 ##
978 automountServiceAccountToken: false
979 ## @param readReplicas.hostAliases PostgreSQL read only pods host aliases
980 ## https://kubernetes.io/docs/concepts/services-networking/add-entries-to-pod-etc-hosts-with-host-aliases/
981 ##
982 hostAliases: []
983 ## @param readReplicas.hostNetwork Specify if host network should be enabled for PostgreSQL pod (PostgreSQL read only)
984 ##
985 hostNetwork: false
986 ## @param readReplicas.hostIPC Specify if host IPC should be enabled for PostgreSQL pod (postgresql primary)
987 ##
988 hostIPC: false
989 ## @param readReplicas.labels Map of labels to add to the statefulset (PostgreSQL read only)
990 ##
991 labels: {}
992 ## @param readReplicas.annotations Annotations for PostgreSQL read only pods
993 ##
994 annotations: {}
995 ## @param readReplicas.podLabels Map of labels to add to the pods (PostgreSQL read only)
996 ##
997 podLabels: {}
998 ## @param readReplicas.podAnnotations Map of annotations to add to the pods (PostgreSQL read only)
999 ##
1000 podAnnotations: {}
1001 ## @param readReplicas.podAffinityPreset PostgreSQL read only pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
1002 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1003 ##
1004 podAffinityPreset: ""
1005 ## @param readReplicas.podAntiAffinityPreset PostgreSQL read only pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
1006 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity
1007 ##
1008 podAntiAffinityPreset: soft
1009 ## PostgreSQL read only node affinity preset
1010 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
1011 ##
1012 nodeAffinityPreset:
1013 ## @param readReplicas.nodeAffinityPreset.type PostgreSQL read only node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`
1014 ##
1015 type: ""
1016 ## @param readReplicas.nodeAffinityPreset.key PostgreSQL read only node label key to match Ignored if `primary.affinity` is set.
1017 ## E.g.
1018 ## key: "kubernetes.io/e2e-az-name"
1019 ##
1020 key: ""
1021 ## @param readReplicas.nodeAffinityPreset.values PostgreSQL read only node label values to match. Ignored if `primary.affinity` is set.
1022 ## E.g.
1023 ## values:
1024 ## - e2e-az1
1025 ## - e2e-az2
1026 ##
1027 values: []
1028 ## @param readReplicas.affinity Affinity for PostgreSQL read only pods assignment
1029 ## ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
1030 ## Note: primary.podAffinityPreset, primary.podAntiAffinityPreset, and primary.nodeAffinityPreset will be ignored when it's set
1031 ##
1032 affinity: {}
1033 ## @param readReplicas.nodeSelector Node labels for PostgreSQL read only pods assignment
1034 ## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/
1035 ##
1036 nodeSelector: {}
1037 ## @param readReplicas.tolerations Tolerations for PostgreSQL read only pods assignment
1038 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1039 ##
1040 tolerations: []
1041 ## @param readReplicas.topologySpreadConstraints Topology Spread Constraints for pod assignment spread across your cluster among failure-domains. Evaluated as a template
1042 ## Ref: https://kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/#spread-constraints-for-pods
1043 ##
1044 topologySpreadConstraints: []
1045 ## @param readReplicas.priorityClassName Priority Class to use for each pod (PostgreSQL read only)
1046 ##
1047 priorityClassName: ""
1048 ## @param readReplicas.schedulerName Use an alternate scheduler, e.g. "stork".
1049 ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/
1050 ##
1051 schedulerName: ""
1052 ## @param readReplicas.terminationGracePeriodSeconds Seconds PostgreSQL read only pod needs to terminate gracefully
1053 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/pod/#termination-of-pods
1054 ##
1055 terminationGracePeriodSeconds: ""
1056 ## @param readReplicas.updateStrategy.type PostgreSQL read only statefulset strategy type
1057 ## @param readReplicas.updateStrategy.rollingUpdate PostgreSQL read only statefulset rolling update configuration parameters
1058 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies
1059 ##
1060 updateStrategy:
1061 type: RollingUpdate
1062 rollingUpdate: {}
1063 ## @param readReplicas.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the PostgreSQL read only container(s)
1064 ##
1065 extraVolumeMounts: []
1066 ## @param readReplicas.extraVolumes Optionally specify extra list of additional volumes for the PostgreSQL read only pod(s)
1067 ##
1068 extraVolumes: []
1069 ## @param readReplicas.sidecars Add additional sidecar containers to the PostgreSQL read only pod(s)
1070 ## For example:
1071 ## sidecars:
1072 ## - name: your-image-name
1073 ## image: your-image
1074 ## imagePullPolicy: Always
1075 ## ports:
1076 ## - name: portname
1077 ## containerPort: 1234
1078 ##
1079 sidecars: []
1080 ## @param readReplicas.initContainers Add additional init containers to the PostgreSQL read only pod(s)
1081 ## Example
1082 ##
1083 ## initContainers:
1084 ## - name: do-something
1085 ## image: busybox
1086 ## command: ['do', 'something']
1087 ##
1088 initContainers: []
1089 ## Pod Disruption Budget configuration
1090 ## ref: https://kubernetes.io/docs/tasks/run-application/configure-pdb
1091 ## @param readReplicas.pdb.create Enable/disable a Pod Disruption Budget creation
1092 ## @param readReplicas.pdb.minAvailable Minimum number/percentage of pods that should remain scheduled
1093 ## @param readReplicas.pdb.maxUnavailable Maximum number/percentage of pods that may be made unavailable. Defaults to `1` if both `readReplicas.pdb.minAvailable` and `readReplicas.pdb.maxUnavailable` are empty.
1094 ##
1095 pdb:
1096 create: true
1097 minAvailable: ""
1098 maxUnavailable: ""
1099 ## @param readReplicas.extraPodSpec Optionally specify extra PodSpec for the PostgreSQL read only pod(s)
1100 ##
1101 extraPodSpec: {}
1102 ## Network Policies
1103 ## Ref: https://kubernetes.io/docs/concepts/services-networking/network-policies/
1104 ##
1105 networkPolicy:
1106 ## @param readReplicas.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1107 ##
1108 enabled: true
1109 ## @param readReplicas.networkPolicy.allowExternal Don't require server label for connections
1110 ## The Policy model to apply. When set to false, only pods with the correct
1111 ## server label will have network access to the ports server is listening
1112 ## on. When true, server will accept connections from any source
1113 ## (with the correct destination port).
1114 ##
1115 allowExternal: true
1116 ## @param readReplicas.networkPolicy.allowExternalEgress Allow the pod to access any range of port and all destinations.
1117 ##
1118 allowExternalEgress: true
1119 ## @param readReplicas.networkPolicy.extraIngress [array] Add extra ingress rules to the NetworkPolicy
1120 ## e.g:
1121 ## extraIngress:
1122 ## - ports:
1123 ## - port: 1234
1124 ## from:
1125 ## - podSelector:
1126 ## - matchLabels:
1127 ## - role: frontend
1128 ## - podSelector:
1129 ## - matchExpressions:
1130 ## - key: role
1131 ## operator: In
1132 ## values:
1133 ## - frontend
1134 extraIngress: []
1135 ## @param readReplicas.networkPolicy.extraEgress [array] Add extra ingress rules to the NetworkPolicy
1136 ## e.g:
1137 ## extraEgress:
1138 ## - ports:
1139 ## - port: 1234
1140 ## to:
1141 ## - podSelector:
1142 ## - matchLabels:
1143 ## - role: frontend
1144 ## - podSelector:
1145 ## - matchExpressions:
1146 ## - key: role
1147 ## operator: In
1148 ## values:
1149 ## - frontend
1150 ##
1151 extraEgress: []
1152 ## @param readReplicas.networkPolicy.ingressNSMatchLabels [object] Labels to match to allow traffic from other namespaces
1153 ## @param readReplicas.networkPolicy.ingressNSPodMatchLabels [object] Pod labels to match to allow traffic from other namespaces
1154 ##
1155 ingressNSMatchLabels: {}
1156 ingressNSPodMatchLabels: {}
1157 ## PostgreSQL read only service configuration
1158 ##
1159 service:
1160 ## @param readReplicas.service.type Kubernetes Service type
1161 ##
1162 type: ClusterIP
1163 ## @param readReplicas.service.ports.postgresql PostgreSQL service port
1164 ##
1165 ports:
1166 postgresql: 5432
1167 ## Node ports to expose
1168 ## NOTE: choose port between <30000-32767>
1169 ## @param readReplicas.service.nodePorts.postgresql Node port for PostgreSQL
1170 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport
1171 ##
1172 nodePorts:
1173 postgresql: ""
1174 ## @param readReplicas.service.clusterIP Static clusterIP or None for headless services
1175 ## e.g:
1176 ## clusterIP: None
1177 ##
1178 clusterIP: ""
1179 ## @param readReplicas.service.annotations Annotations for PostgreSQL read only service
1180 ##
1181 annotations: {}
1182 ## @param readReplicas.service.loadBalancerClass Load balancer class if service type is `LoadBalancer`
1183 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#load-balancer-class
1184 ##
1185 loadBalancerClass: ""
1186 ## @param readReplicas.service.loadBalancerIP Load balancer IP if service type is `LoadBalancer`
1187 ## Set the LoadBalancer service type to internal only
1188 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
1189 ##
1190 loadBalancerIP: ""
1191 ## @param readReplicas.service.externalTrafficPolicy Enable client source IP preservation
1192 ## ref https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
1193 ##
1194 externalTrafficPolicy: Cluster
1195 ## @param readReplicas.service.loadBalancerSourceRanges Addresses that are allowed when service is LoadBalancer
1196 ## https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/#restrict-access-for-loadbalancer-service
1197 ##
1198 ## loadBalancerSourceRanges:
1199 ## - 10.10.10.0/24
1200 ##
1201 loadBalancerSourceRanges: []
1202 ## @param readReplicas.service.extraPorts Extra ports to expose in the PostgreSQL read only service
1203 ##
1204 extraPorts: []
1205 ## @param readReplicas.service.sessionAffinity Session Affinity for Kubernetes service, can be "None" or "ClientIP"
1206 ## If "ClientIP", consecutive client requests will be directed to the same Pod
1207 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies
1208 ##
1209 sessionAffinity: None
1210 ## @param readReplicas.service.sessionAffinityConfig Additional settings for the sessionAffinity
1211 ## sessionAffinityConfig:
1212 ## clientIP:
1213 ## timeoutSeconds: 300
1214 ##
1215 sessionAffinityConfig: {}
1216 ## Headless service properties
1217 ##
1218 headless:
1219 ## @param readReplicas.service.headless.annotations Additional custom annotations for headless PostgreSQL read only service
1220 ##
1221 annotations: {}
1222 ## PostgreSQL read only persistence configuration
1223 ##
1224 persistence:
1225 ## @param readReplicas.persistence.enabled Enable PostgreSQL read only data persistence using PVC
1226 ##
1227 enabled: true
1228 ## @param readReplicas.persistence.existingClaim Name of an existing PVC to use
1229 ##
1230 existingClaim: ""
1231 ## @param readReplicas.persistence.mountPath The path the volume will be mounted at
1232 ## Note: useful when using custom PostgreSQL images
1233 ##
1234 mountPath: /bitnami/postgresql
1235 ## @param readReplicas.persistence.subPath The subdirectory of the volume to mount to
1236 ## Useful in dev environments and one PV for multiple services
1237 ##
1238 subPath: ""
1239 ## @param readReplicas.persistence.storageClass PVC Storage Class for PostgreSQL read only data volume
1240 ## If defined, storageClassName: <storageClass>
1241 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1242 ## If undefined (the default) or set to null, no storageClassName spec is
1243 ## set, choosing the default provisioner. (gp2 on AWS, standard on
1244 ## GKE, AWS & OpenStack)
1245 ##
1246 storageClass: ""
1247 ## @param readReplicas.persistence.accessModes PVC Access Mode for PostgreSQL volume
1248 ##
1249 accessModes:
1250 - ReadWriteOnce
1251 ## @param readReplicas.persistence.size PVC Storage Request for PostgreSQL volume
1252 ##
1253 size: 8Gi
1254 ## @param readReplicas.persistence.annotations Annotations for the PVC
1255 ##
1256 annotations: {}
1257 ## @param readReplicas.persistence.labels Labels for the PVC
1258 ##
1259 labels: {}
1260 ## @param readReplicas.persistence.selector Selector to match an existing Persistent Volume (this value is evaluated as a template)
1261 ## selector:
1262 ## matchLabels:
1263 ## app: my-app
1264 ##
1265 selector: {}
1266 ## @param readReplicas.persistence.dataSource Custom PVC data source
1267 ##
1268 dataSource: {}
1269 ## PostgreSQL Read only Persistent Volume Claim Retention Policy
1270 ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#persistentvolumeclaim-retention
1271 ##
1272 persistentVolumeClaimRetentionPolicy:
1273 ## @param readReplicas.persistentVolumeClaimRetentionPolicy.enabled Enable Persistent volume retention policy for read only Statefulset
1274 ##
1275 enabled: false
1276 ## @param readReplicas.persistentVolumeClaimRetentionPolicy.whenScaled Volume retention behavior when the replica count of the StatefulSet is reduced
1277 ##
1278 whenScaled: Retain
1279 ## @param readReplicas.persistentVolumeClaimRetentionPolicy.whenDeleted Volume retention behavior that applies when the StatefulSet is deleted
1280 ##
1281 whenDeleted: Retain
1282## @section Backup parameters
1283## This section implements a trivial logical dump cronjob of the database.
1284## This only comes with the consistency guarantees of the dump program.
1285## This is not a snapshot based roll forward/backward recovery backup.
1286## ref: https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/
1287backup:
1288 ## @param backup.enabled Enable the logical dump of the database "regularly"
1289 enabled: false
1290 cronjob:
1291 ## @param backup.cronjob.schedule Set the cronjob parameter schedule
1292 schedule: "@daily"
1293 ## @param backup.cronjob.timeZone Set the cronjob parameter timeZone
1294 timeZone: ""
1295 ## @param backup.cronjob.concurrencyPolicy Set the cronjob parameter concurrencyPolicy
1296 concurrencyPolicy: Allow
1297 ## @param backup.cronjob.failedJobsHistoryLimit Set the cronjob parameter failedJobsHistoryLimit
1298 failedJobsHistoryLimit: 1
1299 ## @param backup.cronjob.successfulJobsHistoryLimit Set the cronjob parameter successfulJobsHistoryLimit
1300 successfulJobsHistoryLimit: 3
1301 ## @param backup.cronjob.startingDeadlineSeconds Set the cronjob parameter startingDeadlineSeconds
1302 startingDeadlineSeconds: ""
1303 ## @param backup.cronjob.ttlSecondsAfterFinished Set the cronjob parameter ttlSecondsAfterFinished
1304 ttlSecondsAfterFinished: ""
1305 ## @param backup.cronjob.restartPolicy Set the cronjob parameter restartPolicy
1306 restartPolicy: OnFailure
1307 ## @param backup.cronjob.podSecurityContext.enabled Enable PodSecurityContext for CronJob/Backup
1308 ## @param backup.cronjob.podSecurityContext.fsGroupChangePolicy Set filesystem group change policy
1309 ## @param backup.cronjob.podSecurityContext.sysctls Set kernel settings using the sysctl interface
1310 ## @param backup.cronjob.podSecurityContext.supplementalGroups Set filesystem extra groups
1311 ## @param backup.cronjob.podSecurityContext.fsGroup Group ID for the CronJob
1312 podSecurityContext:
1313 enabled: true
1314 fsGroupChangePolicy: Always
1315 sysctls: []
1316 supplementalGroups: []
1317 fsGroup: 1001
1318 ## backup container's Security Context
1319 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1320 ## @param backup.cronjob.containerSecurityContext.enabled Enabled containers' Security Context
1321 ## @param backup.cronjob.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1322 ## @param backup.cronjob.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1323 ## @param backup.cronjob.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1324 ## @param backup.cronjob.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1325 ## @param backup.cronjob.containerSecurityContext.privileged Set container's Security Context privileged
1326 ## @param backup.cronjob.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1327 ## @param backup.cronjob.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1328 ## @param backup.cronjob.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1329 ## @param backup.cronjob.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1330 containerSecurityContext:
1331 enabled: true
1332 seLinuxOptions: {}
1333 runAsUser: 1001
1334 runAsGroup: 1001
1335 runAsNonRoot: true
1336 privileged: false
1337 readOnlyRootFilesystem: true
1338 allowPrivilegeEscalation: false
1339 capabilities:
1340 drop: ["ALL"]
1341 seccompProfile:
1342 type: "RuntimeDefault"
1343 ## @param backup.cronjob.command Set backup container's command to run
1344 command:
1345 - /bin/sh
1346 - -c
1347 - "pg_dumpall --clean --if-exists --load-via-partition-root --quote-all-identifiers --no-password --file=${PGDUMP_DIR}/pg_dumpall-$(date '+%Y-%m-%d-%H-%M').pgdump"
1348 ## @param backup.cronjob.labels Set the cronjob labels
1349 labels: {}
1350 ## @param backup.cronjob.annotations Set the cronjob annotations
1351 annotations: {}
1352 ## @param backup.cronjob.nodeSelector Node labels for PostgreSQL backup CronJob pod assignment
1353 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/
1354 ##
1355 nodeSelector: {}
1356 ## @param backup.cronjob.tolerations Tolerations for PostgreSQL backup CronJob pods assignment
1357 ## ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
1358 ##
1359 tolerations: []
1360 ## backup cronjob container resource requests and limits
1361 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1362 ## @param backup.cronjob.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if backup.cronjob.resources is set (backup.cronjob.resources is recommended for production).
1363 ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
1364 ##
1365 resourcesPreset: "nano"
1366 ## @param backup.cronjob.resources Set container requests and limits for different resources like CPU or memory
1367 ## Example:
1368 resources: {}
1369 ## resources:
1370 ## requests:
1371 ## cpu: 1
1372 ## memory: 512Mi
1373 ## limits:
1374 ## cpu: 2
1375 ## memory: 1024Mi
1376 networkPolicy:
1377 ## @param backup.cronjob.networkPolicy.enabled Specifies whether a NetworkPolicy should be created
1378 ##
1379 enabled: true
1380 storage:
1381 ## @param backup.cronjob.storage.enabled Enable using a `PersistentVolumeClaim` as backup data volume
1382 ##
1383 enabled: true
1384 ## @param backup.cronjob.storage.existingClaim Provide an existing `PersistentVolumeClaim` (only when `architecture=standalone`)
1385 ## If defined, PVC must be created manually before volume will be bound
1386 ##
1387 existingClaim: ""
1388 ## @param backup.cronjob.storage.resourcePolicy Setting it to "keep" to avoid removing PVCs during a helm delete operation. Leaving it empty will delete PVCs after the chart deleted
1389 ##
1390 resourcePolicy: ""
1391 ## @param backup.cronjob.storage.storageClass PVC Storage Class for the backup data volume
1392 ## If defined, storageClassName: <storageClass>
1393 ## If set to "-", storageClassName: "", which disables dynamic provisioning
1394 ## If undefined (the default) or set to null, no storageClassName spec is
1395 ## set, choosing the default provisioner.
1396 ##
1397 storageClass: ""
1398 ## @param backup.cronjob.storage.accessModes PV Access Mode
1399 ##
1400 accessModes:
1401 - ReadWriteOnce
1402 ## @param backup.cronjob.storage.size PVC Storage Request for the backup data volume
1403 ##
1404 size: 8Gi
1405 ## @param backup.cronjob.storage.annotations PVC annotations
1406 ##
1407 annotations: {}
1408 ## @param backup.cronjob.storage.mountPath Path to mount the volume at
1409 ##
1410 mountPath: /backup/pgdump
1411 ## @param backup.cronjob.storage.subPath Subdirectory of the volume to mount at
1412 ## and one PV for multiple services.
1413 ##
1414 subPath: ""
1415 ## Fine tuning for volumeClaimTemplates
1416 ##
1417 volumeClaimTemplates:
1418 ## @param backup.cronjob.storage.volumeClaimTemplates.selector A label query over volumes to consider for binding (e.g. when using local volumes)
1419 ## A label query over volumes to consider for binding (e.g. when using local volumes)
1420 ## See https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#labelselector-v1-meta for more details
1421 ##
1422 selector: {}
1423 ## @param backup.cronjob.extraVolumeMounts Optionally specify extra list of additional volumeMounts for the backup container
1424 ##
1425 extraVolumeMounts: []
1426 ## @param backup.cronjob.extraVolumes Optionally specify extra list of additional volumes for the backup container
1427 ##
1428 extraVolumes: []
1429## @section Volume Permissions parameters
1430##
1431
1432## Init containers parameters:
1433## volumePermissions: Change the owner and group of the persistent volume(s) mountpoint(s) to 'runAsUser:fsGroup' on each node
1434##
1435volumePermissions:
1436 ## @param volumePermissions.enabled Enable init container that changes the owner and group of the persistent volume
1437 ##
1438 enabled: false
1439 ## @param volumePermissions.image.registry [default: REGISTRY_NAME] Init container volume-permissions image registry
1440 ## @param volumePermissions.image.repository [default: REPOSITORY_NAME/os-shell] Init container volume-permissions image repository
1441 ## @skip volumePermissions.image.tag Init container volume-permissions image tag (immutable tags are recommended)
1442 ## @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
1443 ## @param volumePermissions.image.pullPolicy Init container volume-permissions image pull policy
1444 ## @param volumePermissions.image.pullSecrets Init container volume-permissions image pull secrets
1445 ##
1446 image:
1447 registry: docker.io
1448 repository: bitnami/os-shell
1449 tag: 12-debian-12-r30
1450 digest: ""
1451 pullPolicy: IfNotPresent
1452 ## Optionally specify an array of imagePullSecrets.
1453 ## Secrets must be manually created in the namespace.
1454 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1455 ## Example:
1456 ## pullSecrets:
1457 ## - myRegistryKeySecretName
1458 ##
1459 pullSecrets: []
1460 ## Init container resource requests and limits
1461 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1462 ## @param volumePermissions.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).
1463 ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
1464 ##
1465 resourcesPreset: "nano"
1466 ## @param volumePermissions.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1467 ## Example:
1468 ## resources:
1469 ## requests:
1470 ## cpu: 2
1471 ## memory: 512Mi
1472 ## limits:
1473 ## cpu: 3
1474 ## memory: 1024Mi
1475 ##
1476 resources: {}
1477 ## Init container' Security Context
1478 ## Note: the chown of the data folder is done to containerSecurityContext.runAsUser
1479 ## and not the below volumePermissions.containerSecurityContext.runAsUser
1480 ## @param volumePermissions.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1481 ## @param volumePermissions.containerSecurityContext.runAsUser User ID for the init container
1482 ## @param volumePermissions.containerSecurityContext.runAsGroup Group ID for the init container
1483 ## @param volumePermissions.containerSecurityContext.runAsNonRoot runAsNonRoot for the init container
1484 ## @param volumePermissions.containerSecurityContext.seccompProfile.type seccompProfile.type for the init container
1485 ##
1486 containerSecurityContext:
1487 seLinuxOptions: {}
1488 runAsUser: 0
1489 runAsGroup: 0
1490 runAsNonRoot: false
1491 seccompProfile:
1492 type: RuntimeDefault
1493## @section Other Parameters
1494##
1495
1496## @param serviceBindings.enabled Create secret for service binding (Experimental)
1497## Ref: https://servicebinding.io/service-provider/
1498##
1499serviceBindings:
1500 enabled: false
1501## Service account for PostgreSQL to use.
1502## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
1503##
1504serviceAccount:
1505 ## @param serviceAccount.create Enable creation of ServiceAccount for PostgreSQL pod
1506 ##
1507 create: true
1508 ## @param serviceAccount.name The name of the ServiceAccount to use.
1509 ## If not set and create is true, a name is generated using the common.names.fullname template
1510 ##
1511 name: ""
1512 ## @param serviceAccount.automountServiceAccountToken Allows auto mount of ServiceAccountToken on the serviceAccount created
1513 ## Can be set to false if pods using this serviceAccount do not need to use K8s API
1514 ##
1515 automountServiceAccountToken: false
1516 ## @param serviceAccount.annotations Additional custom annotations for the ServiceAccount
1517 ##
1518 annotations: {}
1519## Creates role for ServiceAccount
1520## @param rbac.create Create Role and RoleBinding (required for PSP to work)
1521##
1522rbac:
1523 create: false
1524 ## @param rbac.rules Custom RBAC rules to set
1525 ## e.g:
1526 ## rules:
1527 ## - apiGroups:
1528 ## - ""
1529 ## resources:
1530 ## - pods
1531 ## verbs:
1532 ## - get
1533 ## - list
1534 ##
1535 rules: []
1536## Pod Security Policy
1537## ref: https://kubernetes.io/docs/concepts/policy/pod-security-policy/
1538## @param psp.create Whether to create a PodSecurityPolicy. WARNING: PodSecurityPolicy is deprecated in Kubernetes v1.21 or later, unavailable in v1.25 or later
1539##
1540psp:
1541 create: false
1542## @section Metrics Parameters
1543##
1544metrics:
1545 ## @param metrics.enabled Start a prometheus exporter
1546 ##
1547 enabled: false
1548 ## @param metrics.image.registry [default: REGISTRY_NAME] PostgreSQL Prometheus Exporter image registry
1549 ## @param metrics.image.repository [default: REPOSITORY_NAME/postgres-exporter] PostgreSQL Prometheus Exporter image repository
1550 ## @skip metrics.image.tag PostgreSQL Prometheus Exporter image tag (immutable tags are recommended)
1551 ## @param metrics.image.digest PostgreSQL image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag
1552 ## @param metrics.image.pullPolicy PostgreSQL Prometheus Exporter image pull policy
1553 ## @param metrics.image.pullSecrets Specify image pull secrets
1554 ##
1555 image:
1556 registry: docker.io
1557 repository: bitnami/postgres-exporter
1558 tag: 0.15.0-debian-12-r44
1559 digest: ""
1560 pullPolicy: IfNotPresent
1561 ## Optionally specify an array of imagePullSecrets.
1562 ## Secrets must be manually created in the namespace.
1563 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
1564 ## Example:
1565 ## pullSecrets:
1566 ## - myRegistryKeySecretName
1567 ##
1568 pullSecrets: []
1569 ## @param metrics.collectors Control enabled collectors
1570 ## ref: https://github.com/prometheus-community/postgres_exporter#flags
1571 ## Example:
1572 ## collectors:
1573 ## wal: false
1574 collectors: {}
1575 ## @param metrics.customMetrics Define additional custom metrics
1576 ## ref: https://github.com/prometheus-community/postgres_exporter#adding-new-metrics-via-a-config-file-deprecated
1577 ## customMetrics:
1578 ## pg_database:
1579 ## 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')"
1580 ## metrics:
1581 ## - name:
1582 ## usage: "LABEL"
1583 ## description: "Name of the database"
1584 ## - size_bytes:
1585 ## usage: "GAUGE"
1586 ## description: "Size of the database in bytes"
1587 ##
1588 customMetrics: {}
1589 ## @param metrics.extraEnvVars Extra environment variables to add to PostgreSQL Prometheus exporter
1590 ## see: https://github.com/prometheus-community/postgres_exporter#environment-variables
1591 ## For example:
1592 ## extraEnvVars:
1593 ## - name: PG_EXPORTER_DISABLE_DEFAULT_METRICS
1594 ## value: "true"
1595 ##
1596 extraEnvVars: []
1597 ## PostgreSQL Prometheus exporter containers' Security Context
1598 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container
1599 ## @param metrics.containerSecurityContext.enabled Enabled containers' Security Context
1600 ## @param metrics.containerSecurityContext.seLinuxOptions [object,nullable] Set SELinux options in container
1601 ## @param metrics.containerSecurityContext.runAsUser Set containers' Security Context runAsUser
1602 ## @param metrics.containerSecurityContext.runAsGroup Set containers' Security Context runAsGroup
1603 ## @param metrics.containerSecurityContext.runAsNonRoot Set container's Security Context runAsNonRoot
1604 ## @param metrics.containerSecurityContext.privileged Set container's Security Context privileged
1605 ## @param metrics.containerSecurityContext.readOnlyRootFilesystem Set container's Security Context readOnlyRootFilesystem
1606 ## @param metrics.containerSecurityContext.allowPrivilegeEscalation Set container's Security Context allowPrivilegeEscalation
1607 ## @param metrics.containerSecurityContext.capabilities.drop List of capabilities to be dropped
1608 ## @param metrics.containerSecurityContext.seccompProfile.type Set container's Security Context seccomp profile
1609 ##
1610 containerSecurityContext:
1611 enabled: true
1612 seLinuxOptions: {}
1613 runAsUser: 1001
1614 runAsGroup: 1001
1615 runAsNonRoot: true
1616 privileged: false
1617 readOnlyRootFilesystem: true
1618 allowPrivilegeEscalation: false
1619 capabilities:
1620 drop: ["ALL"]
1621 seccompProfile:
1622 type: "RuntimeDefault"
1623 ## Configure extra options for PostgreSQL Prometheus exporter containers' liveness, readiness and startup probes
1624 ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes
1625 ## @param metrics.livenessProbe.enabled Enable livenessProbe on PostgreSQL Prometheus exporter containers
1626 ## @param metrics.livenessProbe.initialDelaySeconds Initial delay seconds for livenessProbe
1627 ## @param metrics.livenessProbe.periodSeconds Period seconds for livenessProbe
1628 ## @param metrics.livenessProbe.timeoutSeconds Timeout seconds for livenessProbe
1629 ## @param metrics.livenessProbe.failureThreshold Failure threshold for livenessProbe
1630 ## @param metrics.livenessProbe.successThreshold Success threshold for livenessProbe
1631 ##
1632 livenessProbe:
1633 enabled: true
1634 initialDelaySeconds: 5
1635 periodSeconds: 10
1636 timeoutSeconds: 5
1637 failureThreshold: 6
1638 successThreshold: 1
1639 ## @param metrics.readinessProbe.enabled Enable readinessProbe on PostgreSQL Prometheus exporter containers
1640 ## @param metrics.readinessProbe.initialDelaySeconds Initial delay seconds for readinessProbe
1641 ## @param metrics.readinessProbe.periodSeconds Period seconds for readinessProbe
1642 ## @param metrics.readinessProbe.timeoutSeconds Timeout seconds for readinessProbe
1643 ## @param metrics.readinessProbe.failureThreshold Failure threshold for readinessProbe
1644 ## @param metrics.readinessProbe.successThreshold Success threshold for readinessProbe
1645 ##
1646 readinessProbe:
1647 enabled: true
1648 initialDelaySeconds: 5
1649 periodSeconds: 10
1650 timeoutSeconds: 5
1651 failureThreshold: 6
1652 successThreshold: 1
1653 ## @param metrics.startupProbe.enabled Enable startupProbe on PostgreSQL Prometheus exporter containers
1654 ## @param metrics.startupProbe.initialDelaySeconds Initial delay seconds for startupProbe
1655 ## @param metrics.startupProbe.periodSeconds Period seconds for startupProbe
1656 ## @param metrics.startupProbe.timeoutSeconds Timeout seconds for startupProbe
1657 ## @param metrics.startupProbe.failureThreshold Failure threshold for startupProbe
1658 ## @param metrics.startupProbe.successThreshold Success threshold for startupProbe
1659 ##
1660 startupProbe:
1661 enabled: false
1662 initialDelaySeconds: 10
1663 periodSeconds: 10
1664 timeoutSeconds: 1
1665 failureThreshold: 15
1666 successThreshold: 1
1667 ## @param metrics.customLivenessProbe Custom livenessProbe that overrides the default one
1668 ##
1669 customLivenessProbe: {}
1670 ## @param metrics.customReadinessProbe Custom readinessProbe that overrides the default one
1671 ##
1672 customReadinessProbe: {}
1673 ## @param metrics.customStartupProbe Custom startupProbe that overrides the default one
1674 ##
1675 customStartupProbe: {}
1676 ## @param metrics.containerPorts.metrics PostgreSQL Prometheus exporter metrics container port
1677 ##
1678 containerPorts:
1679 metrics: 9187
1680 ## PostgreSQL Prometheus exporter resource requests and limits
1681 ## ref: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/
1682 ## @param metrics.resourcesPreset Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).
1683 ## More information: https://github.com/bitnami/charts/blob/main/bitnami/common/templates/_resources.tpl#L15
1684 ##
1685 resourcesPreset: "nano"
1686 ## @param metrics.resources Set container requests and limits for different resources like CPU or memory (essential for production workloads)
1687 ## Example:
1688 ## resources:
1689 ## requests:
1690 ## cpu: 2
1691 ## memory: 512Mi
1692 ## limits:
1693 ## cpu: 3
1694 ## memory: 1024Mi
1695 ##
1696 resources: {}
1697 ## Service configuration
1698 ##
1699 service:
1700 ## @param metrics.service.ports.metrics PostgreSQL Prometheus Exporter service port
1701 ##
1702 ports:
1703 metrics: 9187
1704 ## @param metrics.service.clusterIP Static clusterIP or None for headless services
1705 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#choosing-your-own-ip-address
1706 ##
1707 clusterIP: ""
1708 ## @param metrics.service.sessionAffinity Control where client requests go, to the same pod or round-robin
1709 ## Values: ClientIP or None
1710 ## ref: https://kubernetes.io/docs/concepts/services-networking/service/
1711 ##
1712 sessionAffinity: None
1713 ## @param metrics.service.annotations [object] Annotations for Prometheus to auto-discover the metrics endpoint
1714 ##
1715 annotations:
1716 prometheus.io/scrape: "true"
1717 prometheus.io/port: "{{ .Values.metrics.service.ports.metrics }}"
1718 ## Prometheus Operator ServiceMonitor configuration
1719 ##
1720 serviceMonitor:
1721 ## @param metrics.serviceMonitor.enabled Create ServiceMonitor Resource for scraping metrics using Prometheus Operator
1722 ##
1723 enabled: false
1724 ## @param metrics.serviceMonitor.namespace Namespace for the ServiceMonitor Resource (defaults to the Release Namespace)
1725 ##
1726 namespace: ""
1727 ## @param metrics.serviceMonitor.interval Interval at which metrics should be scraped.
1728 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1729 ##
1730 interval: ""
1731 ## @param metrics.serviceMonitor.scrapeTimeout Timeout after which the scrape is ended
1732 ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#endpoint
1733 ##
1734 scrapeTimeout: ""
1735 ## @param metrics.serviceMonitor.labels Additional labels that can be used so ServiceMonitor will be discovered by Prometheus
1736 ##
1737 labels: {}
1738 ## @param metrics.serviceMonitor.selector Prometheus instance selector labels
1739 ## ref: https://github.com/bitnami/charts/tree/main/bitnami/prometheus-operator#prometheus-configuration
1740 ##
1741 selector: {}
1742 ## @param metrics.serviceMonitor.relabelings RelabelConfigs to apply to samples before scraping
1743 ##
1744 relabelings: []
1745 ## @param metrics.serviceMonitor.metricRelabelings MetricRelabelConfigs to apply to samples before ingestion
1746 ##
1747 metricRelabelings: []
1748 ## @param metrics.serviceMonitor.honorLabels Specify honorLabels parameter to add the scrape endpoint
1749 ##
1750 honorLabels: false
1751 ## @param metrics.serviceMonitor.jobLabel The name of the label on the target service to use as the job name in prometheus.
1752 ##
1753 jobLabel: ""
1754 ## Custom PrometheusRule to be defined
1755 ## The value is evaluated as a template, so, for example, the value can depend on .Release or .Chart
1756 ## ref: https://github.com/coreos/prometheus-operator#customresourcedefinitions
1757 ##
1758 prometheusRule:
1759 ## @param metrics.prometheusRule.enabled Create a PrometheusRule for Prometheus Operator
1760 ##
1761 enabled: false
1762 ## @param metrics.prometheusRule.namespace Namespace for the PrometheusRule Resource (defaults to the Release Namespace)
1763 ##
1764 namespace: ""
1765 ## @param metrics.prometheusRule.labels Additional labels that can be used so PrometheusRule will be discovered by Prometheus
1766 ##
1767 labels: {}
1768 ## @param metrics.prometheusRule.rules PrometheusRule definitions
1769 ## Make sure to constraint the rules to the current postgresql service.
1770 ## rules:
1771 ## - alert: HugeReplicationLag
1772 ## expr: pg_replication_lag{service="{{ printf "%s-metrics" (include "common.names.fullname" .) }}"} / 3600 > 1
1773 ## for: 1m
1774 ## labels:
1775 ## severity: critical
1776 ## annotations:
1777 ## description: replication for {{ include "common.names.fullname" . }} PostgreSQL is lagging by {{ "{{ $value }}" }} hour(s).
1778 ## summary: PostgreSQL replication is lagging by {{ "{{ $value }}" }} hour(s).
1779 ##
1780 rules: []