313 lines
12 KiB
YAML
313 lines
12 KiB
YAML
# For a full explanation of how to set up the custom resource, please refer to
|
|
# the documentation:
|
|
# https://access.crunchydata.com/documentation/postgres-operator/v5/
|
|
|
|
###########
|
|
# General #
|
|
###########
|
|
|
|
# name is the name of the cluster. This defaults to the name of the Helm
|
|
# release.
|
|
name: clank
|
|
# postgresVersion sets the version to deploy. This version number needs to be
|
|
# available as one of the "RELATED_IMAGE_POSTGRES_..." images as part of the PGO
|
|
# installation if you want to deploy the image without setting the "postgres"
|
|
# image variable. This value is required.
|
|
postgresVersion: 15
|
|
# postGISVersion if sets and coupled with a PostGIS enabled container, enables
|
|
# PostGIS. This version number needs to be available as one of the
|
|
# "RELATED_IMAGE_POSTGRES_..." images as part of the PGO installation if you
|
|
# want to deploy the image without setting the "postgres" image variable.
|
|
# postGISVersion: 3.1
|
|
|
|
# NOTE: pgBackRest is enabled by default. It must be set in
|
|
# "RELATED_IMAGE_PGBACKREST" on the PGO deployment, otherwise you will need to
|
|
# override the "pgBackRest" image.
|
|
|
|
# pgBouncerReplicas sets the number of pgBouncer instances to deploy. The
|
|
# default is 0. You need to set this to at least 1 to deploy pgBouncer or set
|
|
# "pgBouncerConfig". Setting "pgBouncerConfig" will override the value of
|
|
# pgBouncerReplicas. The "RELATED_IMAGE_PGBOUNCER" in the PGO deployment must be
|
|
# set if you want to enable this without explicitly setting "pgBouncer".
|
|
# pgBouncerReplicas: 1
|
|
|
|
# monitoring enables the ability to monitor the Postgres cluster through a
|
|
# metrics exporter than can be scraped by Prometheus. This defaults to the value
|
|
# below.
|
|
monitoring: true
|
|
|
|
###################
|
|
# Image Overrides #
|
|
###################
|
|
|
|
# imagePostgres can be a Postgres or GIS-enabled Postgres image. This defaults to the
|
|
# below value. "postgresVersion" needs to match the version of Postgres that is
|
|
# used here. If using the GIS-enabled Postgres image, you need to ensure
|
|
# "postGISVersion" matches the version of PostGIS used.
|
|
# imagePostgres: registry.developers.crunchydata.com/crunchydata/crunchy-postgres:ubi8-14.7-0
|
|
|
|
# imagePgBackRest is the pgBackRest backup utility image. This defaults to the
|
|
# below value.
|
|
# imagePgBackRest: registry.developers.crunchydata.com/crunchydata/crunchy-pgbackrest:ubi8-2.41-4
|
|
|
|
# imagePgBouncer is the image for the PgBouncer connection pooler. This defaults
|
|
# to the below value.
|
|
# imagePgBouncer: registry.developers.crunchydata.com/crunchydata/crunchy-pgbouncer:ubi8-1.18-0
|
|
|
|
# imageExporter is the image name for the exporter used as a part of monitoring.
|
|
# This defaults to the value below.
|
|
# imageExporter: registry.developers.crunchydata.com/crunchydata/crunchy-postgres-exporter:ubi8-5.3.1-0
|
|
|
|
###########################
|
|
# Basic Postgres Settings #
|
|
###########################
|
|
|
|
# instanceName lets you set the name of your instances. This defaults to
|
|
# the value below. Setting "instances" overrides this value.
|
|
# instanceName: instance1
|
|
|
|
# instanceSize sets the size of the volume that contains the data. This defaults
|
|
# to the value below. Settings "instances" overrides this value.
|
|
# instanceSize: 1Gi
|
|
|
|
# instanceStorageClassName sets the storage class for the volume that contains the data.
|
|
# This defaults to the "default" storage class defined in the cluster.
|
|
# See: 'kubectl get storageclasses.storage.k8s.io | grep default'
|
|
# Settings "instances" overrides this value.
|
|
# instanceStorageClassName: "hostpath"
|
|
|
|
# instanceMemory sets the memory limit for the Postgres instances. This defaults
|
|
# to no limit being set, but an example value is set below. Settings "instances"
|
|
# overrides this value.
|
|
# instanceMemory: 2Gi
|
|
|
|
# instanceCPU sets the CPU limit for the Postgres instances. This defaults to
|
|
# no limit being set, but an example value is set below. Setting "instances"
|
|
# overrides this value.
|
|
# instanceCPU: 1000m
|
|
|
|
# instanceReplicas lets you set the total number of Postgres replicas. This
|
|
# defaults to the value below. More than on replica enables high availability
|
|
# (HA). Settings "instances" overrides this value.
|
|
# instanceReplicas: 1
|
|
|
|
##############################
|
|
# Advanced Postgres Settings #
|
|
##############################
|
|
|
|
# instances allows you to define one or more Postgres instance sets. By default,
|
|
# PGO will only deploy a single instance. Each instance set has similar
|
|
# characteristics to the other instances in the set, e.g. storage size, resource
|
|
# etc. You can have multiple replicas within an instance set.
|
|
#
|
|
# This allows you to fully customize the topology of your Postgres instances.
|
|
#
|
|
# For example, to set up an instance set with HA (due to the default pod
|
|
# topology spread constraints)
|
|
#
|
|
# instances:
|
|
# - name: pgha1
|
|
# replicas: 2
|
|
# dataVolumeClaimSpec:
|
|
# accessModes:
|
|
# - "ReadWriteOnce"
|
|
# resources:
|
|
# requests:
|
|
# storage: 1Gi
|
|
# instances: {}
|
|
|
|
# port sets the port that Postgres listens on. Defaults to 5432.
|
|
# port: 5432
|
|
|
|
# patroni lets you set the Patroni configuration for the Postgres cluster.
|
|
# for example, to set up synchronous replication:
|
|
# patroni:
|
|
# dynamicConfiguration:
|
|
# synchronous_mode: true
|
|
# postgresql:
|
|
# parameters:
|
|
# synchronous_commit: "on"
|
|
# patroni: {}
|
|
|
|
# users sets any custom Postgres users and databases that they have access to
|
|
# as well as any permissions assoicated with the user account.
|
|
# users: {}
|
|
|
|
# dataSource specifies a data source for bootstrapping a Postgres cluster.
|
|
# dataSource: {}
|
|
|
|
# customTLSSecret references a Secret that contains the relevant information for
|
|
# bringing external TLS artifacts to a PostgreSQL cluster. This provides the
|
|
# TLS for the cluster itself.
|
|
# customTLSSecret: {}
|
|
|
|
# customReplicationTLSSecret references a Secret that contains the relevant
|
|
# information for bringing external TLS artifacts to a PostgreSQL cluster. This
|
|
# provides the information for the replication user.
|
|
# customReplicationTLSSecret: {}
|
|
|
|
# databaseInitSQL referencs a ConfigMap that contains a SQL file that should be
|
|
# run a cluster bootstrap.
|
|
# databaseInitSQL:
|
|
# name: bootstrap-sql
|
|
# key: bootstrap.sql
|
|
|
|
# standby sets whether or not to run this as a standby cluster. Setting "enabled" to
|
|
# "true" eunables the standby cluster while "repoName" points to a pgBackRest
|
|
# archive to replay WAL files from, and "host" and "port" point to a primary
|
|
# cluster from which to stream data.
|
|
# standby:
|
|
# enabled: false
|
|
# repoName: repo1
|
|
# host: "192.0.2.2"
|
|
# port: 5432
|
|
|
|
# shutdown when set scales the entire workload to zero. By default this is not
|
|
# set.
|
|
# shutdown: true
|
|
|
|
#################################
|
|
# Backups / pgBackRest Settings #
|
|
#################################
|
|
|
|
# backupsSize sets the storage size of the backups to a volume in Kubernetes.
|
|
# can be overridden by "pgBackRestConfig", if set. Defaults to the value below.
|
|
# backupsSize: 1Gi
|
|
|
|
# backupsStorageClassName sets the storage class to a class existing in Kubernetes.
|
|
# Defaults to the "default" storage class defined in the cluster.
|
|
# Can be overridden by "pgBackRestConfig", if set.
|
|
# backupsStorageClassName: "hostpath"
|
|
|
|
# s3 allows for AWS S3 or an S3 compatible storage system to be used for
|
|
# backups. This allows for a quick setup with S3; if you need more advanced
|
|
# setup, use pgBackRestConfig.
|
|
# s3:
|
|
# # bucket specifies the S3 bucket to use,
|
|
# bucket: ""
|
|
# # endpoint specifies the S3 endpoint to use.
|
|
# endpoint: ""
|
|
# # region specifies the S3 region to use. If your S3 storage system does not
|
|
# # use "region", fill this in with a random vaule.
|
|
# region: ""
|
|
# # key is the S3 key. This is stored in a Secret.
|
|
# key: ""
|
|
# # keySecret is the S3 key secret. This is stored in a Secret.
|
|
# keySecret: ""
|
|
# # keyType can be configured to enable IAM integration via AssumeRole
|
|
# keyType: ""
|
|
# # encryptionPassphrase is an optional parameter to enable encrypted backups
|
|
# # with pgBackRest. This is encrypted by pgBackRest and does not use S3's
|
|
# # built-in encrpytion system.
|
|
# encryptionPassphrase: ""
|
|
|
|
# gcs allows for Google Cloud Storage (GCS) to be used for backups. This allows
|
|
# for a quick setup with GCS; if you need a more advanced setup, use
|
|
# "pgBackRestConfig".
|
|
# gcs:
|
|
# # bucket is the name of the GCS bucket that the backups will be stored in.
|
|
# bucket: ""
|
|
# # key is a multi-line string that contains the GCS key, which is a JSON
|
|
# # structure.
|
|
# key: |
|
|
# {}
|
|
|
|
# azure allows for Azure Blob Storage to be used for backups. This allows
|
|
# for a quick setup with Azure Blob Storage; if you need a more advanced setup,
|
|
# use "pgBackRestConfig".
|
|
# azure:
|
|
# # account is the name of the Azure account to be used.
|
|
# account: ""
|
|
# # key is the Secret key used associated with the Azure acount.
|
|
# key: ""
|
|
# # container is the Azure container that the backups will be stored in.
|
|
# container: ""
|
|
|
|
# multiBackupRepos allows for backing up to multiple repositories. This is
|
|
# effectively uses the "quickstarts" for each of the backup types (volume, s3,
|
|
# gcs, azure). You can have any permutation of these types. You can set up to 4.
|
|
# can be overwritten by "pgBackRestConfig".
|
|
#
|
|
# You can't set "multiBackupRepos" and any of the individual quickstarts at the
|
|
# same time. "multiBackupRepos" will take precedence.
|
|
#
|
|
# Below is an example that enables one of each backup type. Note all of the
|
|
# available quickstart options are presented below; please see the backup types
|
|
# if you want to see how each option works.
|
|
# multiBackupRepos:
|
|
# - volume:
|
|
# backupsSize: 1Gi
|
|
# - s3:
|
|
# bucket: ""
|
|
# endpoint: ""
|
|
# region: ""
|
|
# key: ""
|
|
# keySecret: ""
|
|
# keyType: ""
|
|
# - gcs:
|
|
# bucket: ""
|
|
# key: |
|
|
# {}
|
|
# - azure:
|
|
# account: ""
|
|
# key: ""
|
|
# container: ""
|
|
|
|
# pgBackRestConfig allows for the configuration of every pgBackRest option
|
|
# except for "image", which is set by "pgBackRest".
|
|
# pgBackRestConfig: {}
|
|
|
|
################################
|
|
# Pooling / pgBouncer Settings #
|
|
################################
|
|
|
|
# pgBouncerConfig sets all of the pgBouncer portion of the spec except for
|
|
# image. To set image, you need to set the "pgBouncer" setting.
|
|
# pgBouncerConfig: {}
|
|
|
|
#######################
|
|
# Monitoring Settings #
|
|
#######################
|
|
|
|
# monitoringConfig sets all of the monitoring portion of the spec except for the
|
|
# image. To set the image, which also enables monitoring, you need to set the
|
|
# "monitoring" setting.
|
|
# monitoringConfig: {}
|
|
|
|
#######################
|
|
# Kubernetes Settings #
|
|
#######################
|
|
|
|
# metadata contains any metadata that should be applied to all PGO managed
|
|
# objects in this Postgres cluster. This includes "annotations" and "labels" as
|
|
# subkeys.
|
|
# metadata: {}
|
|
|
|
# service customizes the Service that exposes the Postgres primary.
|
|
# service: {}
|
|
|
|
# imagePullPolicy sets the pull policy for all the images. This defaults to
|
|
# the Kubernetes heuristic:
|
|
# https://kubernetes.io/docs/concepts/containers/images/#imagepullpolicy-defaulting
|
|
# imagePullPolicy: IfNotPresent
|
|
|
|
# imagePullSecrets references Secrets that credentials for pulling image from
|
|
# private repositories
|
|
# imagePullSecrets: []
|
|
|
|
# supplementalGroups sets any group IDs that should be assigned to
|
|
# Pods, particularly around file system contraints within a system
|
|
# supplementalGroups: []
|
|
|
|
# disableDefaultPodScheduling if set to true, will disable any of the default
|
|
# scheduling constraints for Pods, such as the default Pod Topology Spread
|
|
# Constraints. If set to false or unset, the default scheduling constraints will
|
|
# be used in addition to any customizations that are added in.
|
|
# disableDefaultPodScheduling: false
|
|
|
|
# openshift can set explicitly if this is an OpenShift cluster, or a cluster
|
|
# that uses a SecurityContextConstraint. This usually does not need to be set,
|
|
# but you may want to explicitly set it to "false" when using a SCC like
|
|
# "anyuid"
|
|
# openshift: false
|