Skip to content
logo
Percona Operator for PostgreSQL
Custom Resource options
Initializing search
    percona/k8spg-docs
    percona/k8spg-docs
    • Welcome
      • System Requirements
      • Design and architecture
      • Comparison with other solutions
      • Install on Minikube
      • Install on Google Kubernetes Engine (GKE)
      • Install with Helm
      • Generic Kubernetes installation
      • Install on OpenShift
      • Application and system users
      • Changing PostgreSQL Options
      • Anti-affinity and tolerations
      • Transport Encryption (TLS/SSL)
      • Telemetry
      • Backup and restore
      • Upgrade Percona Distribution for PostgreSQL and the Operator
      • Horizontal and vertical scaling
      • Monitor with Percona Monitoring and Management (PMM)
      • Restart or pause the cluster
      • Deploy a standby cluster for Disaster Recovery
      • Provide Percona Operator for PostgreSQL single-namespace and multi-namespace deployment
      • Use PostgreSQL tablespaces with Percona Operator for PostgreSQL
      • Custom Resource options
        • Upgrade Options Section
        • pgPrimary Section
        • Tablespaces Storage Section
        • Write-ahead Log Storage Section
        • Backup Section
        • PMM Section
        • pgBouncer Section
        • pgReplicas Section
        • pgBadger Section
      • Operator installation options
      • Percona certified images
      • Frequently Asked Questions
      • Release notes index
      • Percona Operator for PostgreSQL 1.3.0 (2022-08-04)
      • Percona Operator for PostgreSQL 1.2.0 (2022-04-06)
      • Percona Operator for PostgreSQL 1.1.0 (2021-12-07)
      • Percona Operator for PostgreSQL 1.0.0 (2021-10-07)
      • Percona Operator for PostgreSQL 0.2.0 (2021-08-12)
      • Percona Operator for PostgreSQL 0.1.0 (2021-05-10)

    • Upgrade Options Section
    • pgPrimary Section
    • Tablespaces Storage Section
    • Write-ahead Log Storage Section
    • Backup Section
    • PMM Section
    • pgBouncer Section
    • pgReplicas Section
    • pgBadger Section

    Custom Resource options¶

    The Cluster is configured via the deploy/cr.yaml file.

    The metadata part of this file contains the following keys:

    • name (cluster1 by default) sets the name of your Percona Distribution for PostgreSQL Cluster; it should include only URL-compatible characters, not exceed 22 characters, start with an alphabetic character, and end with an alphanumeric character;

    The spec part of the deploy/cr.yaml file contains the following sections:

    Key Value type Default Description
    pause boolean false Pause/resume: setting it to true gracefully stops the cluster, and setting it to false after shut down starts the cluster back.
    upgradeOptions subdoc Percona Distribution for PostgreSQL upgrade options section
    pgPrimary subdoc PostgreSQL Primary instance options section
    walStorage subdoc Tablespaces Storage Section
    walStorage subdoc Write-ahead Log Storage Section
    backup subdoc Section to configure backups and pgBackRest
    pmm subdoc Percona Monitoring and Management section
    pgBouncer subdoc The pgBouncer connection pooler section
    pgReplicas subdoc Section required to manage the replicas within a PostgreSQL cluster
    pgBadger subdoc The pgBadger PostgreSQL log analyzer section
    Key database
    Value string
    Example pgdb
    Description The name of a database that the PostgreSQL user can log into after the PostgreSQL cluster is created
    Key disableAutofail
    Value boolean
    Example false
    Description Turns high availability on or off. By default, every cluster can have high availability if there is at least one replica
    Key tlsOnly
    Value boolean
    Example false
    Description Enforece Operator to use only Transport Layer Security (TLS) for both internal and external communications
    Key sslCA
    Value string
    Example cluster1-ssl-ca
    Description The name of the secret with TLS used for both connection encryption (external traffic), and replication (internal traffic)
    Key sslSecretName
    Value string
    Example cluster1-ssl-keypair
    Description The name of the secret created to encrypt external communications
    Key sslReplicationSecretName
    Value string
    Example cluster1-ssl-keypair"
    Description The name of the secret created to encrypt internal communications
    Key keepData
    Value boolean
    Example true
    Description If true, PVCs will be kept after the cluster deletion
    Key keepBackups
    Value boolean
    Example true
    Description If true, local backups will be kept after the cluster deletion
    Key pgDataSource.restoreFrom
    Value string
    Example ""
    Description The name of a data source PostgreSQL cluster, which is used to restore backup to a new cluster
    Key pgDataSource.restoreOpts
    Value string
    Example ""
    Description Custom pgBackRest options to restore backup to a new cluster

    Upgrade Options Section¶

    The upgradeOptions section in the deploy/cr.yaml file contains various configuration options to control Percona Distribution for PostgreSQL upgrades.

    Key upgradeOptions.versionServiceEndpoint
    Value string
    Example https://check.percona.com
    Description The Version Service URL used to check versions compatibility for upgrade
    Key upgradeOptions.apply
    Value string
    Example disabled
    Description Specifies how updates are processed by the Operator. Never or Disabled will completely disable automatic upgrades, otherwise it can be set to Latest or Recommended or to a specific version number of Percona Distribution for PostgreSQL to have it version-locked (so that the user can control the version running, but use automatic upgrades to move between them).
    Key upgradeOptions.schedule
    Value string
    Example 0 2 \* \* \*
    Description Scheduled time to check for updates, specified in the crontab format

    pgPrimary Section¶

    The pgPrimary section controls the PostgreSQL Primary instance.

    Key pgPrimary.image
    Value string
    Example perconalab/percona-postgresql-operator:main-ppg13-postgres-ha
    Description The Docker image of the PostgreSQL Primary instance
    Key pgPrimary.imagePullPolicy
    Value string
    Example Always
    Description This option is used to set the policy for updating pgPrimary and pgReplicas images
    Key pgPrimary.resources.requests.memory
    Value int
    Example 256Mi
    Description The Kubernetes memory requests for a PostgreSQL Primary container
    Key pgPrimary.resources.requests.cpu
    Value string
    Example 500m
    Description Kubernetes CPU requests for a PostgreSQL Primary container
    Key pgPrimary.resources.limits.cpu
    Value string
    Example 500m
    Description Kubernetes CPU limits for a PostgreSQL Primary container
    Key pgPrimary.resources.limits.memory
    Value string
    Example 256Mi
    Description The Kubernetes memory limits for a PostgreSQL Primary container
    Key pgPrimary.affinity.antiAffinityType
    Value string
    Example preferred
    Description Pod anti-affinity type, can be either preferred or required
    Key pgPrimary.affinity.nodeAffinityType
    Value string
    Example preferred
    Description Node affinity type, can be either preferred or required
    Key pgPrimary.affinity.nodeLabel
    Value label
    Example kubernetes.io/region: us-central1
    Description Set labels for PostgreSQL instances Node affinity
    Key pgPrimary.affinity.advanced
    Value subdoc
    Example
    Description Allows using standard Kubernetes affinity constraints for advanced affinity and anti-affinity tuning
    Key pgPrimary.volumeSpec.size
    Value int
    Example 1G
    Description The Kubernetes PersistentVolumeClaim size for the PostgreSQL Primary storage
    Key pgPrimary.tolerations
    Value subdoc
    Example node.alpha.kubernetes.io/unreachable
    Description Kubernetes Pod tolerations
    Key pgPrimary.volumeSpec.size
    Value int
    Example 1G
    Description The Kubernetes PersistentVolumeClaim size for the PostgreSQL Primary storage
    Key pgPrimary.volumeSpec.accessmode
    Value string
    Example ReadWriteOnce
    Description The Kubernetes PersistentVolumeClaim access modes for the PostgreSQL Primary storage
    Key pgPrimary.volumeSpec.storagetype
    Value string
    Example dynamic
    Description Type of the PostgreSQL Primary storage provisioning: create (the default variant; used if storage is provisioned, e.g. using hostpath) or dynamic (for a dynamic storage provisioner, e.g. via a StorageClass)
    Key pgPrimary.volumeSpec.storageclass
    Value string
    Example ""
    Description Optionally sets the Kubernetes storage class to use with the PostgreSQL Primary storage PersistentVolumeClaim
    Key pgPrimary.volumeSpec.matchLabels
    Value string
    Example ""
    Description A PostgreSQL Primary storage label selector
    Key pgPrimary.imagePullPolicy
    Value string
    Example Always
    Description This option is used to set the policy for updating pgPrimary and pgReplicas images
    Key pgPrimary.customconfig
    Value string
    Example ""
    Description Name of the Custom configuration options ConfigMap for PostgreSQL cluster

    Tablespaces Storage Section¶

    The tablespaceStorages section in the deploy/cr.yaml file contains configuration options for PostgreSQL Tablespace.

    Key tablespaceStorages.<storage-name>.volumeSpec.size
    Value int
    Example 1G
    Description The Kubernetes PersistentVolumeClaim size for the PostgreSQL Tablespaces storage
    Key tablespaceStorages.<storage-name>.volumeSpec.accessmode
    Value string
    Example ReadWriteOnce
    Description The Kubernetes PersistentVolumeClaim access modes for the PostgreSQL Tablespaces storage
    Key tablespaceStorages.<storage-name>.volumeSpec.storagetype
    Value string
    Example dynamic
    Description Type of the PostgreSQL Tablespaces storage provisioning: create (the default variant; used if storage is provisioned, e.g. using hostpath) or dynamic (for a dynamic storage provisioner, e.g. via a StorageClass)
    Key tablespaceStorages.<storage-name>.volumeSpec.storageclass
    Value string
    Example ""
    Description Optionally sets the Kubernetes storage class to use with the PostgreSQL Tablespaces storage PersistentVolumeClaim
    Key tablespaceStorages.<storage-name>.volumeSpec.matchLabels
    Value string
    Example ""
    Description A PostgreSQL Tablespaces storage label selector

    Write-ahead Log Storage Section¶

    The walStorage section in the deploy/cr.yaml file contains configuration options for PostgreSQL write-ahead logging.

    Key walStorage.volumeSpec.size
    Value int
    Example 1G
    Description The Kubernetes PersistentVolumeClaim size for the PostgreSQL Write-ahead Log storage
    Key walStorage.volumeSpec.accessmode
    Value string
    Example ReadWriteOnce
    Description The Kubernetes PersistentVolumeClaim access modes for the PostgreSQL Write-ahead Log storage
    Key walStorage.volumeSpec.storagetype
    Value string
    Example dynamic
    Description Type of the PostgreSQL Write-ahead Log storage provisioning: create (the default variant; used if storage is provisioned, e.g. using hostpath) or dynamic (for a dynamic storage provisioner, e.g. via a StorageClass)
    Key walStorage.volumeSpec.storageclass
    Value string
    Example ""
    Description Optionally sets the Kubernetes storage class to use with the PostgreSQL Write-ahead Log storage PersistentVolumeClaim
    Key walStorage.volumeSpec.matchLabels
    Value string
    Example ""
    Description A PostgreSQL Write-ahead Log storage label selector

    Backup Section¶

    The backup section in the deploy/cr.yaml file contains the following configuration options for the regular Percona Distribution for PostgreSQL backups.

    Key backup.image
    Value string
    Example perconalab/percona-postgresql-operator:main-ppg13-pgbackrest
    Description The Docker image for pgBackRest
    Key backup.backrestRepoImage
    Value string
    Example perconalab/percona-postgresql-operator:main-ppg13-pgbackrest-repo
    Description The Docker image for the BackRest repository
    Key backup.resources.requests.cpu
    Value string
    Example 500m
    Description Kubernetes CPU requests for a pgBackRest container
    Key backup.resources.requests.memory
    Value int
    Example 48Mi
    Description The Kubernetes memory requests for a pgBackRest container
    Key backup.resources.limits.cpu
    Value int
    Example 1
    Description Kubernetes CPU limits for a pgBackRest container
    Key backup.resources.limits.memory
    Value int
    Example 64Mi
    Description The Kubernetes memory limits for a pgBackRest container
    Key backup.affinity.antiAffinityType
    Value string
    Example preferred
    Description Pod anti-affinity type, can be either preferred or required
    Key backup.volumeSpec.size
    Value int
    Example 1G
    Description The Kubernetes PersistentVolumeClaim size for the pgBackRest Storage
    Key backup.volumeSpec.accessmode
    Value string
    Example ReadWriteOnce
    Description The Kubernetes PersistentVolumeClaim access modes for the pgBackRest Storage
    Key backup.volumeSpec.storagetype
    Value string
    Example dynamic
    Description Type of the pgBackRest storage provisioning: create (the default variant; used if storage is provisioned, e.g. using hostpath) or dynamic (for a dynamic storage provisioner, e.g. via a StorageClass)
    Key backup.volumeSpec.storageclass
    Value string
    Example ""
    Description Optionally sets the Kubernetes storage class to use with the pgBackRest Storage PersistentVolumeClaim
    Key backup.volumeSpec.matchLabels
    Value string
    Example ""
    Description A pgBackRest storage label selector
    Key backup.storages.<storage-name>.type
    Value string
    Example s3
    Description Type of the storage used for backups
    Key backup.storages.<storage-name>.endpointURL
    Value string
    Example minio-gateway-svc:9000
    Description The endpoint URL of the S3-compatible storage to be used for backups (not needed for the original Amazon S3 cloud)
    Key backup.storages.<storage-name>.bucket
    Value string
    Example ""
    Description The Amazon S3 bucket or Google Cloud Storage bucket
    name used for backups
    Key backup.storages.<storage-name>.region
    Value boolean
    Example us-east-1
    Description The AWS region to use for Amazon and all S3-compatible storages
    Key backup.storages.<storage-name>.uriStyle
    Value string
    Example path
    Description Optional parameter that specifies if pgBackRest should use the path or host S3 URI style
    Key backup.storages.<storage-name>.verifyTLS
    Value boolean
    Example false
    Description Enables or disables TLS verification for pgBackRest
    Key backup.storageTypes
    Value array
    Example [ "s3" ]
    Description The backup storage types for the pgBackRest repository
    Key backup.repoPath
    Value string
    Example ""
    Description Custom path for pgBackRest repository backups
    Key backup.schedule.name
    Value string
    Example sat-night-backup
    Description The backup name
    Key backup.schedule.schedule
    Value string
    Example 0 0 \* \* 6
    Description Scheduled time to make a backup specified in the
    crontab format
    Key backup.schedule.keep
    Value int
    Example 3
    Description The amount of most recent backups to store. Older backups are automatically deleted. Set keep to zero or completely remove it to disable automatic deletion of backups
    Key backup.schedule.type
    Value string
    Example full
    Description The type of the pgBackRest backup
    Key backup.schedule.storage
    Value string
    Example local
    Description The type of the pgBackRest repository
    Key backup.customconfig
    Value string
    Example ""
    Description Name of the ConfigMap to pass custom pgBackRest configuration options
    Key backup.imagePullPolicy
    Value string
    Example Always
    Description This option is used to set the policy for updating pgBackRest images

    PMM Section¶

    The pmm section in the deploy/cr.yaml file contains configuration options for Percona Monitoring and Management.

    Key pmm.enabled
    Value boolean
    Example false
    Description Enables or disables monitoring Percona Distribution for PostgreSQL cluster with PMM
    Key pmm.image
    Value string
    Example percona/pmm-client:2.29.0
    Description Percona Monitoring and Management (PMM) Client Docker image
    Key pmm.serverHost
    Value string
    Example monitoring-service
    Description Address of the PMM Server to collect data from the cluster
    Key pmm.serverUser
    Value string
    Example admin
    Description The PMM Server User. The PMM Server password should be configured using Secrets
    Key pmm.pmmSecret
    Value string
    Example cluster1-pmm-secret
    Description Name of the Kubernetes Secret object for the PMM Server password
    Key pmm.resources.requests.memory
    Value string
    Example 200M
    Description The Kubernetes memory requests for a PMM container
    Key pmm.resources.requests.cpu
    Value string
    Example 500m
    Description Kubernetes CPU requests for a PMM container
    Key pmm.resources.limits.cpu
    Value string
    Example 500m
    Description Kubernetes CPU limits for a PMM container
    Key pmm.resources.limits.memory
    Value string
    Example 200M
    Description The Kubernetes memory limits for a PMM container
    Key pmm.imagePullPolicy
    Value string
    Example Always
    Description This option is used to set the policy for updating PMM Client images

    pgBouncer Section¶

    The pgBouncer section in the deploy/cr.yaml file contains configuration options for the pgBouncer connection pooler for PostgreSQL.

    Key pgBouncer.image
    Value string
    Example perconalab/percona-postgresql-operator:main-ppg13-pgbouncer
    Description Docker image for the pgBouncer connection pooler
    Key pgBouncer.exposePostgresUser
    Value boolean
    Example false
    Description Enables or disables exposing postgres user through pgBouncer
    Key pgBouncer.size
    Value int
    Example 1G
    Description The number of the pgBouncer Pods to provide connection pooling
    Key pgBouncer.resources.requests.cpu
    Value int
    Example 1
    Description Kubernetes CPU requests for a pgBouncer container
    Key pgBouncer.resources.requests.memory
    Value int
    Example 128Mi
    Description The Kubernetes memory requests for a pgBouncer container
    Key pgBouncer.resources.limits.cpu
    Value int
    Example 2
    Description Kubernetes CPU limits for a pgBouncer container
    Key pgBouncer.resources.limits.memory
    Value int
    Example 512Mi
    Description The Kubernetes memory limits for a pgBouncer container
    Key pgBouncer.affinity.antiAffinityType
    Value string
    Example preferred
    Description Pod anti-affinity type, can be either preferred or required
    Key pgBouncer.expose.serviceType
    Value string
    Example ClusterIP
    Description Specifies the type of Kubernetes Service for pgBouncer
    Key pgBouncer.expose.loadBalancerSourceRanges
    Value string
    Example "10.0.0.0/8"
    Description The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations)
    Key pgBouncer.expose.annotations
    Value label
    Example pg-cluster-annot: cluster1
    Description The Kubernetes annotations metadata for pgBouncer
    Key pgBouncer.expose.labels
    Value label
    Example pg-cluster-label: cluster1
    Description Set labels for the pgBouncer Service
    Key pgBouncer.imagePullPolicy
    Value string
    Example Always
    Description This option is used to set the policy for updating pgBouncer images

    pgReplicas Section¶

    The pgReplicas section in the deploy/cr.yaml file stores information required to manage the replicas within a PostgreSQL cluster.

    Key pgReplicas..size
    Value int
    Example 1G
    Description The number of the PostgreSQL Replica Pods
    Key pgReplicas..resources.requests.cpu
    Value int
    Example 500m
    Description Kubernetes CPU requests for a PostgreSQL Replica container
    Key pgReplicas..resources.requests.memory
    Value int
    Example 256Mi
    Description The Kubernetes memory requests for a PostgreSQL Replica container
    Key pgReplicas..resources.limits.cpu
    Value int
    Example 500m
    Description Kubernetes CPU limits for a PostgreSQL Replica container
    Key pgReplicas..resources.limits.memory
    Value int
    Example 256Mi
    Description The Kubernetes memory limits
    for a PostgreSQL Replica container
    Key pgReplicas..volumeSpec.accessmode
    Value string
    Example ReadWriteOnce
    Description The Kubernetes PersistentVolumeClaim access modes for the PostgreSQL Replica storage
    Key pgReplicas..volumeSpec.size
    Value int
    Example 1G
    Description The Kubernetes PersistentVolumeClaim size for the PostgreSQL Replica storage
    Key pgReplicas..volumeSpec.storagetype
    Value string
    Example dynamic
    Description Type of the PostgreSQL Replica storage provisioning: create (the default variant; used if storage is provisioned, e.g. using hostpath) or dynamic (for a dynamic storage provisioner, e.g. via a StorageClass)
    Key pgReplicas..volumeSpec.storageclass
    Value string
    Example standard
    Description Optionally sets the Kubernetes storage class to use with the PostgreSQL Replica storage PersistentVolumeClaim
    Key pgReplicas..volumeSpec.matchLabels
    Value string
    Example ""
    Description A PostgreSQL Replica storage label selector
    Key pgReplicas..labels
    Value label
    Example pg-cluster-label: cluster1
    Description Set labels for PostgreSQL Replica Pods
    Key pgReplicas..annotations
    Value label
    Example pg-cluster-annot: cluster1-1
    Description The Kubernetes annotations metadata for PostgreSQL Replica
    Key pgReplicas..expose.serviceType
    Value string
    Example ClusterIP
    Description Specifies the type of Kubernetes Service for for PostgreSQL Replica
    Key pgReplicas..expose.loadBalancerSourceRanges
    Value string
    Example "10.0.0.0/8"
    Description The range of client IP addresses from which the load balancer should be reachable (if not set, there is no limitations)
    Key pgReplicas..expose.annotations
    Value label
    Example pg-cluster-annot: cluster1
    Description The Kubernetes annotations metadata for PostgreSQL Replica
    Key pgReplicas..expose.labels
    Value label
    Example pg-cluster-label: cluster1
    Description Set labels for the PostgreSQL Replica Service

    pgBadger Section¶

    The pgBadger section in the deploy/cr.yaml file contains configuration options for the pgBadger PostgreSQL log analyzer.

    Key pgBadger.enabled
    Value boolean
    Example false
    Description Enables or disables the pgBadger PostgreSQL log analyzer
    Key pgBadger.image
    Value string
    Example perconalab/percona-postgresql-operator:main-ppg13-pgbadger
    Description pgBadger PostgreSQL log analyzer Docker image
    Key pgBadger.port
    Value int
    Example 10000
    Description The port number for pgBadger
    Key pgBadger.imagePullPolicy
    Value string
    Example Always
    Description This option is used to set the policy for updating pgBadger images

    Contact Us

    For free technical help, visit the Percona Community Forum.

    To report bugs or submit feature requests, open a JIRA ticket.

    For paid support and managed or consulting services , contact Percona Sales.


    Last update: 2023-02-09
    Back to top
    Percona LLC and/or its affiliates, © 2009 - 2022
    Made with Material for MkDocs

    Cookie consent

    We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better.