## Default values for PostgreSQL deployment ## PostgreSQL docker image image: registry: "docker.io" repository: "postgres" pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: "" ## Pull secrets and name override options imagePullSecrets: [] nameOverride: "" fullnameOverride: "" ## Additional labels for Deployment or StatefulSet customLabels: {} ## Additional annotations for Deployment or StatefulSet customAnnotations: {} ## Optional service account serviceAccount: # Specifies whether a service account should be created create: false # Annotations to add to the service account annotations: {} # The name of the service account to use. # If not set and create is true, a name is generated using the fullname template name: "" ## Additional pod annotations podAnnotations: {} ## Additional pod labels podLabels: {} ## Pod management policy podManagementPolicy: OrderedReady ## Pod update strategy updateStrategyType: RollingUpdate ## Pod security context uses file system group 999 (postgres) podSecurityContext: fsGroup: 999 supplementalGroups: - 999 ## Default security options to run PostgreSQL as non-root (postgres user), read only container without privilege escalation securityContext: allowPrivilegeEscalation: false privileged: false readOnlyRootFilesystem: true runAsNonRoot: true runAsGroup: 999 runAsUser: 999 capabilities: drop: - ALL ## The postgres service configuration (Default is ClusterIP with port 5432) service: type: ClusterIP port: 5432 ## The node port (only relevant for type LoadBalancer or NodePort) nodePort: ## The cluster ip address (only relevant for type LoadBalancer or NodePort) clusterIP: ## The loadbalancer ip address (only relevant for type LoadBalancer) loadBalancerIP: ## The list of IP CIDR ranges that are allowed to access the load balancer (only relevent for type LoadBalancer) loadBalancerSourceRanges: [] ## Annotations to add to the service annotations: {} ## Labels to add to the service labels: {} resources: {} # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m # memory: 128Mi ## Pod priority class name priorityClassName: "" ## Additional node selector nodeSelector: {} ## Tolerations for pod assignment tolerations: [] ## Affinity for pod assignment affinity: {} ## Topology spread constraints for pods topologySpreadConstraints: {} ## Maximum number of revisions maintained in revision history revisionHistoryLimit: ## Custom startup probe (overwrites default startup probe) customStartupProbe: {} ## Default startup check startupProbe: enabled: true initialDelaySeconds: 10 timeoutSeconds: 5 failureThreshold: 30 successThreshold: 1 periodSeconds: 10 ## Custom liveness probe (overwrites default liveness probe) customLivenessProbe: {} ## Default health check livenessProbe: enabled: true initialDelaySeconds: 10 timeoutSeconds: 5 failureThreshold: 3 successThreshold: 1 periodSeconds: 10 ## Custom readiness probe (overwrites default readiness probe) customReadinessProbe: {} ## Default readiness probe readinessProbe: enabled: true initialDelaySeconds: 10 timeoutSeconds: 5 failureThreshold: 3 successThreshold: 1 periodSeconds: 10 ## Extra init containers extraInitContainers: [] ## Extra containers for usage as sidecars extraContainers: [] ## Resources of the default init container initResources: {} # limits: # cpu: 100m # memory: 128Mi # requests: # cpu: 100m # memory: 128Mi ## Additional environment variables env: [] ## Arguments for the container entrypoint process args: [] ## Use Kubernetes Deployment instead of StatefulSet useDeployment: false ## Database configuration settings: ## Optional existing secret for the Postgrest superuser existingSecret: ## The default postgres superuser (default when nothing is set: "postgres") superuser: # secretKey: # value: ## The superuser password superuserPassword: # secretKey: # value: ## Postgres database authentication method ## For example: "md5" authMethod: ## Optional init database arguments ## For example: "--auth-local=md5" initDbArgs: ## Default data directory mountpoint dataDir: "/var/lib/postgresql/data" ## Name of the postgres directory inside data directory ## This is necessary because of the default behavior of the docker-entrypoint.sh in the container image ## The default entrypoint always tries to create a directory and set permissions on it. Thats is the reason why data directory mountpoint and directory inside must two different configuration options ## PGDATA will be dataDir+pgDir => "/var/lib/postgresql/data/pg" while volume mount point will be dataDir => "/var/lib/postgresql/data" pgDir: "pg" ## Optional user database which is created during first startup with user and password userDatabase: {} ## Optional existing secret with database name, user and password # existingSecret: ## Name of the user database # name: ## Use secretKey when existingSecret was specified otherwise value # secretKey: # value: ## Database user with full access rights ## Use secretKey when existingSecret was specified otherwise value # user: # secretKey: # value: ## Password of the database user ## Use secretKey when existingSecret was specified otherwise value # password: # secretKey: # value: ## Optional custom configuration block that will be mounted as file in /etc/postgresql/postgresql.conf ## For more flexible options see extraSecretConfigs: section customConfig: | ## Optional custom scripts that can be defined inline and will be mounted as files in /docker-entrypoint-initdb.d customScripts: {} # 01-a-script.sh: | # echo "hello" # 02-another-script.sh: | # echo "hello 2" ## A list of existing secrets that will be mounted into the container as environment variables ## As an alternative these secrets can set the database superuser password or other options when settings.superuserPassword was not specified ## For example: Setting POSTGRES_DB, USERDB_USER, USERDB_PASSWORD will allow creating a user database and grant access for the given user extraEnvSecrets: [] ## An existing secret with files that will be added to the postgres configuration in addition to /etc/postgresql/postgresql.conf extraSecretConfigs: ## An existing configMap with files that will be mounted into the container as script files (*.sql, *.sh) in /docker-entrypoint-initdb.d ## For more details see https://hub.docker.com/_/postgres extraScripts: ## A list of additional existing secrets that will be mounted into the container ## The mounted files of the secrets can be used for advanced configuration - f.e. TLS extraSecrets: [] ## Name of the existing K8s secret # - name: ## Mount default mode (0440 if parameter is omitted) # defaultMode: 0440 ## Mount path where the secret should be mounted into the container (f.e. /mysecretfolder) # mountPath: ## A list of additional existing configMaps that will be mounted into the container extraConfigs: [] ## Name of the existing K8s configMap # - name: ## Mount default mode (0440 if parameter is omitted) # defaultMode: 0440 ## Mount path where the configMap should be mounted into the container (f.e. /mysecretfolder) # mountPath: ## Storage parameters storage: ## Set persistentVolumenClaimName to reference an existing PVC persistentVolumeClaimName: ## Internal volume name and prefix of a created PVC volumeName: "postgres-data" ## Alternative set requestedSize to define a size for a dynmaically created PVC requestedSize: ## the storage class name className: ## Default access mode (ReadWriteOnce) accessModes: - ReadWriteOnce ## Keep a created Persistent volume claim when uninstalling the helm chart (only for option useDeployment: true) keepPvc: false ## Persistent volume claim retention policy for the StatefulSet (only applies when useDeployment: false) persistentVolumeClaimRetentionPolicy: ## Policy for PVCs when the StatefulSet is deleted (Retain or Delete) whenDeleted: ## Policy for PVCs when the StatefulSet is scaled down (Retain or Delete) whenScaled: ## Additional storage annotations annotations: {} ## Additional storage labels labels: {} ## Mount existing extra PVC extraStorage: {} ## Internal volume name # - name: ## Container mount path # mountPath: ## Name of existing PVC # pvcName: ## Network policies networkPolicy: {} ## Ingress and Egress policies # ingress: {} # egress: {}