API Reference

Package v1 contains API Schema definitions for the postgresql v1 API group

Resource Types

Backup

A Backup resource is a request for a PostgreSQL backup by the user.

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

Backup

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

spec [Required] _BackupSpec_

Specification of the desired behavior of the backup. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

status _BackupStatus_

Most recently observed status of the backup. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

Cluster

Cluster is the Schema for the PostgreSQL API

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

Cluster

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

spec [Required] _ClusterSpec_

Specification of the desired behavior of the cluster. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

status _ClusterStatus_

Most recently observed status of the cluster. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

ClusterImageCatalog

ClusterImageCatalog is the Schema for the clusterimagecatalogs API

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

ClusterImageCatalog

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

spec [Required] _ImageCatalogSpec_

Specification of the desired behavior of the ClusterImageCatalog. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

Database

Database is the Schema for the databases API

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

Database

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

spec [Required] _DatabaseSpec_

Specification of the desired Database. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

status _DatabaseStatus_

Most recently observed status of the Database. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

FailoverQuorum

Appears in:

FailoverQuorum contains the information about the current failover quorum status of a PG cluster. It is updated by the instance manager of the primary node and reset to zero by the operator to trigger an update.

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

FailoverQuorum

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

status _FailoverQuorumStatus_

Most recently observed status of the failover quorum.

ImageCatalog

ImageCatalog is the Schema for the imagecatalogs API

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

ImageCatalog

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

spec [Required] _ImageCatalogSpec_

Specification of the desired behavior of the ImageCatalog. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

Pooler

Pooler is the Schema for the poolers API

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

Pooler

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

spec [Required] _PoolerSpec_

Specification of the desired behavior of the Pooler. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

status _PoolerStatus_

Most recently observed status of the Pooler. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

Publication

Publication is the Schema for the publications API

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

Publication

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

spec [Required] _PublicationSpec_

No description provided.

status [Required] _PublicationStatus_

No description provided.

ScheduledBackup

ScheduledBackup is the Schema for the scheduledbackups API

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

ScheduledBackup

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

spec [Required] _ScheduledBackupSpec_

Specification of the desired behavior of the ScheduledBackup. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

status _ScheduledBackupStatus_

Most recently observed status of the ScheduledBackup. This data may not be up to date. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

Subscription

Subscription is the Schema for the subscriptions API

Field

Description

apiVersion [Required] string

postgresql.cnpg.io/v1

kind [Required] string

Subscription

metadata [Required] _meta/v1.ObjectMeta_

No description provided.Refer to the Kubernetes API documentation for the fields of the metadata field.

spec [Required] _SubscriptionSpec_

No description provided.

status [Required] _SubscriptionStatus_

No description provided.

AffinityConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

AffinityConfiguration contains the info we need to create the affinity rules for Pods

Field

Description

enablePodAntiAffinity _bool_

Activates anti-affinity for the pods. The operator will define pods anti-affinity unless this field is explicitly set to false

topologyKey _string_

TopologyKey to use for anti-affinity configuration. See k8s documentation for more info on that

nodeSelector _map[string]string_

NodeSelector is map of key-value pairs used to define the nodes on which the pods can run. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

nodeAffinity _core/v1.NodeAffinity_

NodeAffinity describes node affinity scheduling rules for the pod. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity

tolerations [_[]core/v1.Toleration_](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#toleration-v1-core)

Tolerations is a list of Tolerations that should be set for all the pods, in order to allow them to run on tainted nodes. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

podAntiAffinityType _string_

PodAntiAffinityType allows the user to decide whether pod anti-affinity between cluster instance has to be considered a strong requirement during scheduling or not. Allowed values are: "preferred" (default if empty) or "required". Setting it to "required", could lead to instances remaining pending until new kubernetes nodes are added if all the existing nodes don't match the required pod anti-affinity rule. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#inter-pod-affinity-and-anti-affinity

additionalPodAntiAffinity _core/v1.PodAntiAffinity_

AdditionalPodAntiAffinity allows to specify pod anti-affinity terms to be added to the ones generated by the operator if EnablePodAntiAffinity is set to true (default) or to be used exclusively if set to false.

additionalPodAffinity _core/v1.PodAffinity_

AdditionalPodAffinity allows to specify pod affinity terms to be passed to all the cluster's pods.

AvailableArchitecture

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

AvailableArchitecture represents the state of a cluster’s architecture

Field

Description

goArch [Required] _string_

GoArch is the name of the executable architecture

hash [Required] _string_

Hash is the hash of the executable

BackupConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

BackupConfiguration defines how the backup of the cluster are taken. The supported backup methods are BarmanObjectStore and VolumeSnapshot. For details and examples refer to the Backup and Recovery section of the documentation

Field

Description

volumeSnapshot _VolumeSnapshotConfiguration_

VolumeSnapshot provides the configuration for the execution of volume snapshot backups.

barmanObjectStore _github.com/cloudnative-pg/barman-cloud/pkg/api.BarmanObjectStoreConfiguration_

The configuration for the barman-cloud tool suite

retentionPolicy _string_

RetentionPolicy is the retention policy to be used for backups and WALs (i.e. '60d'). The retention policy is expressed in the form of XXu where XX is a positive integer and u is in [dwm]- days, weeks, months. It's currently only applicable when using the BarmanObjectStore method.

target _BackupTarget_

The policy to decide which instance should perform backups. Available options are empty string, which will default to prefer-standby policy, primary to have backups run always on primary instances, prefer-standby to have backups run preferably on the most updated standby, if available.

BackupMethod

(Alias of string )

Appears in:

  • BackupSpec {postgresql-cnpg-io-v1-BackupSpec}

BackupMethod defines the way of executing the physical base backups of the selected PostgreSQL instance

BackupPhase

(Alias of string )

Appears in:

  • BackupStatus {postgresql-cnpg-io-v1-BackupStatus}

BackupPhase is the phase of the backup

BackupPluginConfiguration

Appears in:

  • BackupSpec {postgresql-cnpg-io-v1-BackupSpec}

BackupPluginConfiguration contains the backup configuration used by the backup plugin

Field

Description

name [Required] _string_

Name is the name of the plugin managing this backup

parameters _map[string]string_

Parameters are the configuration parameters passed to the backup plugin for this backup

BackupSnapshotElementStatus

Appears in:

  • BackupSnapshotStatus {postgresql-cnpg-io-v1-BackupSnapshotStatus}

BackupSnapshotElementStatus is a volume snapshot that is part of a volume snapshot method backup

Field

Description

name [Required] _string_

Name is the snapshot resource name

type [Required] _string_

Type is tho role of the snapshot in the cluster, such as PG_DATA, PG_WAL and PG_TABLESPACE

tablespaceName _string_

TablespaceName is the name of the snapshotted tablespace. Only set when type is PG_TABLESPACE

BackupSnapshotStatus

Appears in:

  • BackupStatus {postgresql-cnpg-io-v1-BackupStatus}

BackupSnapshotStatus the fields exclusive to the volumeSnapshot method backup

Field

Description

elements [_[]BackupSnapshotElementStatus_](BackupSnapshotElementStatus)

The elements list, populated with the gathered volume snapshots

BackupSource

Appears in:

  • BootstrapRecovery {postgresql-cnpg-io-v1-BootstrapRecovery}

BackupSource contains the backup we need to restore from, plus some information that could be needed to correctly restore it.

Field

Description

LocalObjectReference _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

(Members of LocalObjectReference are embedded into this type.) No description provided.

endpointCA _github.com/cloudnative-pg/machinery/pkg/api.SecretKeySelector_

EndpointCA store the CA bundle of the barman endpoint. Useful when using self-signed certificates to avoid errors with certificate issuer and barman-cloud-wal-archive.

BackupSpec

Appears in:

BackupSpec defines the desired state of Backup

Field

Description

cluster [Required] _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

The cluster to backup

target _BackupTarget_

The policy to decide which instance should perform this backup. If empty, it defaults to cluster.spec.backup.target. Available options are empty string, primary and prefer-standby. primary to have backups run always on primary instances, prefer-standby to have backups run preferably on the most updated standby, if available.

method _BackupMethod_

The backup method to be used, possible options are barmanObjectStore, volumeSnapshot or plugin. Defaults to: barmanObjectStore.

pluginConfiguration _BackupPluginConfiguration_

Configuration parameters passed to the plugin managing this backup

online _bool_

Whether the default type of backup with volume snapshots is online/hot (true, default) or offline/cold (false) Overrides the default setting specified in the cluster field '.spec.backup.volumeSnapshot.online'

onlineConfiguration _OnlineConfiguration_

Configuration parameters to control the online/hot backup with volume snapshots Overrides the default settings specified in the cluster '.backup.volumeSnapshot.onlineConfiguration' stanza

BackupStatus

Appears in:

BackupStatus defines the observed state of Backup

Field

Description

BarmanCredentials _github.com/cloudnative-pg/barman-cloud/pkg/api.BarmanCredentials_

(Members of BarmanCredentials are embedded into this type.) The potential credentials for each cloud provider

endpointCA _github.com/cloudnative-pg/machinery/pkg/api.SecretKeySelector_

EndpointCA store the CA bundle of the barman endpoint. Useful when using self-signed certificates to avoid errors with certificate issuer and barman-cloud-wal-archive.

endpointURL _string_

Endpoint to be used to upload data to the cloud, overriding the automatic endpoint discovery

destinationPath _string_

The path where to store the backup (i.e. s3://bucket/path/to/folder) this path, with different destination folders, will be used for WALs and for data. This may not be populated in case of errors.

serverName _string_

The server name on S3, the cluster name is used if this parameter is omitted

encryption _string_

Encryption method required to S3 API

backupId _string_

The ID of the Barman backup

backupName _string_

The Name of the Barman backup

phase _BackupPhase_

The last backup status

startedAt _meta/v1.Time_

When the backup was started

stoppedAt _meta/v1.Time_

When the backup was terminated

beginWal _string_

The starting WAL

endWal _string_

The ending WAL

beginLSN _string_

The starting xlog

endLSN _string_

The ending xlog

error _string_

The detected error

commandOutput _string_

Unused. Retained for compatibility with old versions.

commandError _string_

The backup command output in case of error

backupLabelFile _[]byte_

Backup label file content as returned by Postgres in case of online (hot) backups

tablespaceMapFile _[]byte_

Tablespace map file content as returned by Postgres in case of online (hot) backups

instanceID _InstanceID_

Information to identify the instance where the backup has been taken from

snapshotBackupStatus _BackupSnapshotStatus_

Status of the volumeSnapshot backup

method _BackupMethod_

The backup method being used

online _bool_

Whether the backup was online/hot (true) or offline/cold (false)

pluginMetadata _map[string]string_

A map containing the plugin metadata

BackupTarget

(Alias of string )

Appears in:

  • BackupConfiguration {postgresql-cnpg-io-v1-BackupConfiguration}

BackupTarget describes the preferred targets for a backup

BootstrapConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

BootstrapConfiguration contains information about how to create the PostgreSQL cluster. Only a single bootstrap method can be defined among the supported ones. initdb will be used as the bootstrap method if left unspecified. Refer to the Bootstrap page of the documentation for more information.

Field

Description

initdb _BootstrapInitDB_

Bootstrap the cluster via initdb

recovery _BootstrapRecovery_

Bootstrap the cluster from a backup

pg_basebackup _BootstrapPgBaseBackup_

Bootstrap the cluster taking a physical backup of another compatible PostgreSQL instance

BootstrapInitDB

Appears in:

  • BootstrapConfiguration {postgresql-cnpg-io-v1-BootstrapConfiguration}

BootstrapInitDB is the configuration of the bootstrap process when initdb is used Refer to the Bootstrap page of the documentation for more information.

Field

Description

database _string_

Name of the database used by the application. Default: app.

owner _string_

Name of the owner of the database in the instance to be used by applications. Defaults to the value of the database key.

secret _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

Name of the secret containing the initial credentials for the owner of the user database. If empty a new secret will be created from scratch

options _[]string_

The list of options that must be passed to initdb when creating the cluster. Deprecated: This could lead to inconsistent configurations, please use the explicit provided parameters instead. If defined, explicit values will be ignored.

dataChecksums _bool_

Whether the -k option should be passed to initdb, enabling checksums on data pages (default: false)

encoding _string_

The value to be passed as option --encoding for initdb (default:UTF8)

localeCollate _string_

The value to be passed as option --lc-collate for initdb (default:C)

localeCType _string_

The value to be passed as option --lc-ctype for initdb (default:C)

locale _string_

Sets the default collation order and character classification in the new database.

localeProvider _string_

This option sets the locale provider for databases created in the new cluster. Available from PostgreSQL 16.

icuLocale _string_

Specifies the ICU locale when the ICU provider is used. This option requires localeProvider to be set to icu. Available from PostgreSQL 15.

icuRules _string_

Specifies additional collation rules to customize the behavior of the default collation. This option requires localeProvider to be set to icu. Available from PostgreSQL 16.

builtinLocale _string_

Specifies the locale name when the builtin provider is used. This option requires localeProvider to be set to builtin. Available from PostgreSQL 17.

walSegmentSize _int_

The value in megabytes (1 to 1024) to be passed to the --wal-segsize option for initdb (default: empty, resulting in PostgreSQL default: 16MB)

postInitSQL _[]string_

List of SQL queries to be executed as a superuser in the postgres database right after the cluster has been created- to be used with extreme care (by default empty)

postInitApplicationSQL _[]string_

List of SQL queries to be executed as a superuser in the application database right after the cluster has been created- to be used with extreme care (by default empty)

postInitTemplateSQL _[]string_

List of SQL queries to be executed as a superuser in the template1 database right after the cluster has been created- to be used with extreme care (by default empty)

import _Import_

Bootstraps the new cluster by importing data from an existing PostgreSQL instance using logical backup (pg_dump and pg_restore)

postInitApplicationSQLRefs _SQLRefs_

List of references to ConfigMaps or Secrets containing SQL files to be executed as a superuser in the application database right after the cluster has been created. The references are processed in a specific order: first, all Secrets are processed, followed by all ConfigMaps. Within each group, the processing order follows the sequence specified in their respective arrays. (by default empty)

postInitTemplateSQLRefs _SQLRefs_

List of references to ConfigMaps or Secrets containing SQL files to be executed as a superuser in the template1 database right after the cluster has been created. The references are processed in a specific order: first, all Secrets are processed, followed by all ConfigMaps. Within each group, the processing order follows the sequence specified in their respective arrays. (by default empty)

postInitSQLRefs _SQLRefs_

List of references to ConfigMaps or Secrets containing SQL files to be executed as a superuser in the postgres database right after the cluster has been created. The references are processed in a specific order: first, all Secrets are processed, followed by all ConfigMaps. Within each group, the processing order follows the sequence specified in their respective arrays. (by default empty)

BootstrapPgBaseBackup

Appears in:

  • BootstrapConfiguration {postgresql-cnpg-io-v1-BootstrapConfiguration}

BootstrapPgBaseBackup contains the configuration required to take a physical backup of an existing PostgreSQL cluster

Field

Description

source [Required] _string_

The name of the server of which we need to take a physical backup

database _string_

Name of the database used by the application. Default: app.

owner _string_

Name of the owner of the database in the instance to be used by applications. Defaults to the value of the database key.

secret _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

Name of the secret containing the initial credentials for the owner of the user database. If empty a new secret will be created from scratch

BootstrapRecovery

Appears in:

  • BootstrapConfiguration {postgresql-cnpg-io-v1-BootstrapConfiguration}

BootstrapRecovery contains the configuration required to restore from an existing cluster using 3 methodologies: external cluster, volume snapshots or backup objects. Full recovery and Point-In-Time Recovery are supported. The method can be also be used to create clusters in continuous recovery (replica clusters), also supporting cascading replication when instances >

  1. Once the cluster exits recovery, the password for the superuser will be changed through the provided secret. Refer to the Bootstrap page of the documentation for more information.

Field

Description

backup _BackupSource_

The backup object containing the physical base backup from which to initiate the recovery procedure. Mutually exclusive with source and volumeSnapshots.

source _string_

The external cluster whose backup we will restore. This is also used as the name of the folder under which the backup is stored, so it must be set to the name of the source cluster Mutually exclusive with backup.

volumeSnapshots _DataSource_

The static PVC data source(s) from which to initiate the recovery procedure. Currently supporting VolumeSnapshot and PersistentVolumeClaim resources that map an existing PVC group, compatible with CloudNativePG, and taken with a cold backup copy on a fenced Postgres instance (limitation which will be removed in the future when online backup will be implemented). Mutually exclusive with backup.

recoveryTarget _RecoveryTarget_ by specifying a RecoveryTarget object, as expected by PostgreSQL (i.e., timestamp, transaction Id, LSN, ...). More info: https://www.postgresql.org/docs/current/runtime-config-wal.html#RUNTIME-CONFIG-WAL-RECOVERY-TARGET

database _string_

Name of the database used by the application. Default: app.

owner _string_

Name of the owner of the database in the instance to be used by applications. Defaults to the value of the database key.

secret _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

Name of the secret containing the initial credentials for the owner of the user database. If empty a new secret will be created from scratch

CatalogImage

Appears in:

  • ImageCatalogSpec {postgresql-cnpg-io-v1-ImageCatalogSpec}

CatalogImage defines the image and major version

Field

Description

image [Required] _string_

The image reference

major [Required] _int_

The PostgreSQL major version of the image. Must be unique within the catalog.

CertificatesConfiguration

Appears in:

  • CertificatesStatus {postgresql-cnpg-io-v1-CertificatesStatus}

CertificatesConfiguration contains the needed configurations to handle server certificates.

Field

Description

serverCASecret _string_

The secret containing the Server CA certificate. If not defined, a new secret will be created with a self-signed CA and will be used to generate the TLS certificate ServerTLSSecret. Contains: `ca.crt`: CA that should be used to validate the server certificate, used as `sslrootcert` in client connection strings. ca.key: key used to generate Server SSL certs, if ServerTLSSecret is provided, this can be omitted.

serverTLSSecret _string_

The secret of type kubernetes.io/tls containing the server TLS certificate and key that will be set as ssl_cert_file and ssl_key_file so that clients can connect to postgres securely. If not defined, ServerCASecret must provide also ca.key and a new secret will be created using the provided CA.

replicationTLSSecret _string_

The secret of type kubernetes.io/tls containing the client certificate to authenticate as the streaming_replica user. If not defined, ClientCASecret must provide also ca.key, and a new secret will be created using the provided CA.

clientCASecret _string_

The secret containing the Client CA certificate. If not defined, a new secret will be created with a self-signed CA and will be used to generate all the client certificates. Contains: `ca.crt`: CA that should be used to validate the client certificates, used as `ssl_ca_file` of all the instances. ca.key: key used to generate client certificates, if ReplicationTLSSecret is provided, this can be omitted.

serverAltDNSNames _[]string_

The list of the server alternative DNS names to be added to the generated server TLS certificates, when required.

CertificatesStatus

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

CertificatesStatus contains configuration certificates and related expiration dates.

Field

Description

CertificatesConfiguration _CertificatesConfiguration_

(Members of CertificatesConfiguration are embedded into this type.) Needed configurations to handle server certificates, initialized with default values, if needed.

expirations _map[string]string_

Expiration dates for all certificates.

ClusterMonitoringTLSConfiguration

Appears in:

  • MonitoringConfiguration {postgresql-cnpg-io-v1-MonitoringConfiguration}

ClusterMonitoringTLSConfiguration is the type containing the TLS configuration for the cluster’s monitoring

Field

Description

enabled _bool_

Enable TLS for the monitoring endpoint. Changing this option will force a rollout of all instances.

ClusterSpec

Appears in:

ClusterSpec defines the desired state of Cluster

Field

Description

description _string_

Description of this PostgreSQL cluster

inheritedMetadata _EmbeddedObjectMetadata_

Metadata that will be inherited by all objects related to the Cluster

imageName _string_

Name of the container image, supporting both tags (<image>:<tag>) and digests for deterministic and repeatable deployments (<image>:<tag>@sha256:<digestValue>)

imageCatalogRef _ImageCatalogRef_

Defines the major PostgreSQL version we want to use within an ImageCatalog

imagePullPolicy _core/v1.PullPolicy_

Image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containerimages#updating-images

schedulerName _string_

If specified, the pod will be dispatched by specified Kubernetes scheduler. If not specified, the pod will be dispatched by the default scheduler. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/kube-scheduler/

postgresUID _int64_

The UID of the postgres user inside the image, defaults to 26

postgresGID _int64_

The GID of the postgres user inside the image, defaults to 26

instances [Required] _int_

Number of instances required in the cluster

minSyncReplicas _int_

Minimum number of instances required in synchronous replication with the primary. Undefined or 0 allow writes to complete when no standby is available.

maxSyncReplicas _int_

The target value for the synchronous replication quorum, that can be decreased if the number of ready standbys is lower than this. Undefined or 0 disable synchronous replication.

postgresql _PostgresConfiguration_

Configuration of the PostgreSQL server

replicationSlots _ReplicationSlotsConfiguration_

Replication slots management configuration

bootstrap _BootstrapConfiguration_

Instructions to bootstrap this cluster

replica _ReplicaClusterConfiguration_

Replica cluster configuration

superuserSecret _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

The secret containing the superuser password. If not defined a new secret will be created with a randomly generated password

enableSuperuserAccess _bool_

When this option is enabled, the operator will use the SuperuserSecret to update the postgres user password (if the secret is not present, the operator will automatically create one). When this option is disabled, the operator will ignore the SuperuserSecret content, delete it when automatically created, and then blank the password of the postgres user by setting it to NULL. Disabled by default.

certificates _CertificatesConfiguration_

The configuration for the CA and related certificates

imagePullSecrets [_[]github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_](https://pkg.go.dev/github.com/cloudnative-pg/machinery/pkg/api/#LocalObjectReference)

The list of pull secrets to be used to pull the images

storage _StorageConfiguration_

Configuration of the storage of the instances

serviceAccountTemplate _ServiceAccountTemplate_

Configure the generation of the service account

walStorage _StorageConfiguration_

ephemeralVolumeSource _core/v1.EphemeralVolumeSource_

EphemeralVolumeSource allows the user to configure the source of ephemeral volumes.

startDelay _int32_

The time in seconds that is allowed for a PostgreSQL instance to successfully start up (default 3600). The startup probe failure threshold is derived from this value using the formula: ceiling(startDelay / 10).

stopDelay _int32_

The time in seconds that is allowed for a PostgreSQL instance to gracefully shutdown (default 1800)

smartShutdownTimeout _int32_

The time in seconds that controls the window of time reserved for the smart shutdown of Postgres to complete. Make sure you reserve enough time for the operator to request a fast shutdown of Postgres (that is: stopDelay- smartShutdownTimeout).

switchoverDelay _int32_

The time in seconds that is allowed for a primary PostgreSQL instance to gracefully shutdown during a switchover. Default value is 3600 seconds (1 hour).

failoverDelay _int32_

The amount of time (in seconds) to wait before triggering a failover after the primary PostgreSQL instance in the cluster was detected to be unhealthy

livenessProbeTimeout _int32_

LivenessProbeTimeout is the time (in seconds) that is allowed for a PostgreSQL instance to successfully respond to the liveness probe (default 30). The Liveness probe failure threshold is derived from this value using the formula: ceiling(livenessProbe / 10).

affinity _AffinityConfiguration_

Affinity/Anti-affinity rules for Pods

topologySpreadConstraints [_[]core/v1.TopologySpreadConstraint_](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#topologyspreadconstraint-v1-core)

TopologySpreadConstraints specifies how to spread matching pods among the given topology. More info: https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/

resources _core/v1.ResourceRequirements_

Resources requirements of every generated Pod. Please refer to https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ for more information.

ephemeralVolumesSizeLimit _EphemeralVolumesSizeLimitConfiguration_

EphemeralVolumesSizeLimit allows the user to set the limits for the ephemeral volumes

priorityClassName _string_

Name of the priority class which will be used in every generated Pod, if the PriorityClass specified does not exist, the pod will not be able to schedule. Please refer to https://kubernetes.io/docs/concepts/scheduling-eviction/pod-priority-preemption/#priorityclass for more information

primaryUpdateStrategy _PrimaryUpdateStrategy_ or manual (supervised)

primaryUpdateMethod _PrimaryUpdateMethod_

backup _BackupConfiguration_

The configuration to be used for backups

nodeMaintenanceWindow _NodeMaintenanceWindow_

Define a maintenance window for the Kubernetes nodes

monitoring _MonitoringConfiguration_

The configuration of the monitoring infrastructure of this cluster

externalClusters [_[]ExternalCluster_](ExternalCluster)

The list of external clusters which are used in the configuration

logLevel _string_

The instances' log level, one of the following values: error, warning, info (default), debug, trace

projectedVolumeTemplate _core/v1.ProjectedVolumeSource_

Template to be used to define projected volumes, projected volumes will be mounted under /projected base folder

env [_[]core/v1.EnvVar_](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#envvar-v1-core)

Env follows the Env format to pass environment variables to the pods created in the cluster

envFrom [_[]core/v1.EnvFromSource_](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#envfromsource-v1-core)

EnvFrom follows the EnvFrom format to pass environment variables sources to the pods to be used by Env

managed _ManagedConfiguration_

The configuration that is used by the portions of PostgreSQL that are managed by the instance manager

seccompProfile _core/v1.SeccompProfile_

The SeccompProfile applied to every Pod and Container. Defaults to: RuntimeDefault

tablespaces [_[]TablespaceConfiguration_](TablespaceConfiguration)

The tablespaces configuration

enablePDB _bool_

Manage the PodDisruptionBudget resources within the cluster. When configured as true (default setting), the pod disruption budgets will safeguard the primary node from being terminated. Conversely, setting it to false will result in the absence of any PodDisruptionBudget resource, permitting the shutdown of all nodes hosting the PostgreSQL cluster. This latter configuration is advisable for any PostgreSQL cluster employed for development/staging purposes.

plugins [_[]PluginConfiguration_](PluginConfiguration)

The plugins configuration, containing any plugin to be loaded with the corresponding configuration

probes _ProbesConfiguration_

The configuration of the probes to be injected in the PostgreSQL Pods.

ClusterStatus

Appears in:

ClusterStatus defines the observed state of Cluster

Field

Description

instances _int_

The total number of PVC Groups detected in the cluster. It may differ from the number of existing instance pods.

readyInstances _int_

The total number of ready instances in the cluster. It is equal to the number of ready instance pods.

instancesStatus _map[PodStatus][]string_

InstancesStatus indicates in which status the instances are

instancesReportedState [_map[PodName]InstanceReportedState_](InstanceReportedState)

The reported state of the instances during the last reconciliation loop

managedRolesStatus _ManagedRoles_

ManagedRolesStatus reports the state of the managed roles in the cluster

tablespacesStatus [_[]TablespaceState_](TablespaceState)

TablespacesStatus reports the state of the declarative tablespaces in the cluster

timelineID _int_

The timeline of the Postgres cluster

topology _Topology_

Instances topology.

latestGeneratedNode _int_

ID of the latest generated node (used to avoid node name clashing)

currentPrimary _string_

Current primary instance

targetPrimary _string_

Target primary instance, this is different from the previous one during a switchover or a failover

lastPromotionToken _string_

LastPromotionToken is the last verified promotion token that was used to promote a replica cluster

pvcCount _int32_

How many PVCs have been created by this cluster

jobCount _int32_

How many Jobs have been created by this cluster

danglingPVC _[]string_

List of all the PVCs created by this cluster and still available which are not attached to a Pod

resizingPVC _[]string_

List of all the PVCs that have ResizingPVC condition.

initializingPVC _[]string_

List of all the PVCs that are being initialized by this cluster

healthyPVC _[]string_

List of all the PVCs not dangling nor initializing

unusablePVC _[]string_

List of all the PVCs that are unusable because another PVC is missing

writeService _string_

Current write pod

readService _string_

Current list of read pods

phase _string_

Current phase of the cluster

phaseReason _string_

Reason for the current phase

secretsResourceVersion _SecretsResourceVersion_

The list of resource versions of the secrets managed by the operator. Every change here is done in the interest of the instance manager, which will refresh the secret data

configMapResourceVersion _ConfigMapResourceVersion_

The list of resource versions of the configmaps, managed by the operator. Every change here is done in the interest of the instance manager, which will refresh the configmap data

certificates _CertificatesStatus_

The configuration for the CA and related certificates, initialized with defaults.

firstRecoverabilityPoint _string_

The first recoverability point, stored as a date in RFC3339 format. This field is calculated from the content of FirstRecoverabilityPointByMethod. Deprecated: the field is not set for backup plugins.

firstRecoverabilityPointByMethod [_map[BackupMethod]meta/v1.Time_](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)

The first recoverability point, stored as a date in RFC3339 format, per backup method type. Deprecated: the field is not set for backup plugins.

lastSuccessfulBackup _string_

Last successful backup, stored as a date in RFC3339 format. This field is calculated from the content of LastSuccessfulBackupByMethod. Deprecated: the field is not set for backup plugins.

lastSuccessfulBackupByMethod [_map[BackupMethod]meta/v1.Time_](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#time-v1-meta)

Last successful backup, stored as a date in RFC3339 format, per backup method type. Deprecated: the field is not set for backup plugins.

lastFailedBackup _string_

Last failed backup, stored as a date in RFC3339 format. Deprecated: the field is not set for backup plugins.

cloudNativePGCommitHash _string_

The commit hash number of which this operator running

currentPrimaryTimestamp _string_

The timestamp when the last actual promotion to primary has occurred

currentPrimaryFailingSinceTimestamp _string_

The timestamp when the primary was detected to be unhealthy This field is reported when .spec.failoverDelay is populated or during online upgrades

targetPrimaryTimestamp _string_

The timestamp when the last request for a new primary has occurred

poolerIntegrations _PoolerIntegrations_

The integration needed by poolers referencing the cluster

cloudNativePGOperatorHash _string_

The hash of the binary of the operator

availableArchitectures [_[]AvailableArchitecture_](AvailableArchitecture)

AvailableArchitectures reports the available architectures of a cluster

conditions [_[]meta/v1.Condition_](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#condition-v1-meta)

Conditions for cluster object

instanceNames _[]string_

List of instance names in the cluster

onlineUpdateEnabled _bool_

OnlineUpdateEnabled shows if the online upgrade is enabled inside the cluster

image _string_

Image contains the image name used by the pods

pgDataImageInfo _ImageInfo_

PGDataImageInfo contains the details of the latest image that has run on the current data directory.

pluginStatus [_[]PluginStatus_](PluginStatus)

PluginStatus is the status of the loaded plugins

switchReplicaClusterStatus _SwitchReplicaClusterStatus_

SwitchReplicaClusterStatus is the status of the switch to replica cluster

demotionToken _string_

DemotionToken is a JSON token containing the information from pg_controldata such as Database system identifier, Latest checkpoint's TimeLineID, Latest checkpoint's REDO location, Latest checkpoint's REDO WAL file, and Time of latest checkpoint

systemID _string_

SystemID is the latest detected PostgreSQL SystemID

ConfigMapResourceVersion

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

ConfigMapResourceVersion is the resource versions of the secrets managed by the operator

Field

Description

metrics _map[string]string_

A map with the versions of all the config maps used to pass metrics. Map keys are the config map names, map values are the versions

DataDurabilityLevel

(Alias of string )

Appears in:

  • SynchronousReplicaConfiguration {postgresql-cnpg-io-v1-SynchronousReplicaConfiguration}

DataDurabilityLevel specifies how strictly to enforce synchronous replication when cluster instances are unavailable. Options are required or preferred .

DataSource

Appears in:

  • BootstrapRecovery {postgresql-cnpg-io-v1-BootstrapRecovery}

DataSource contains the configuration required to bootstrap a PostgreSQL cluster from an existing storage

Field

Description

storage [Required] _core/v1.TypedLocalObjectReference_

Configuration of the storage of the instances

walStorage _core/v1.TypedLocalObjectReference_

Configuration of the storage for PostgreSQL WAL (Write-Ahead Log)

tablespaceStorage [_map[string]core/v1.TypedLocalObjectReference_](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#typedlocalobjectreference-v1-core)

Configuration of the storage for PostgreSQL tablespaces

DatabaseObjectSpec

Appears in:

  • ExtensionSpec {postgresql-cnpg-io-v1-ExtensionSpec}

DatabaseObjectSpec contains the fields which are common to every database object

Field

Description

name [Required] _string_

Name of the extension/schema

ensure _EnsureOption_

Specifies whether an extension/schema should be present or absent in the database. If set to present, the extension/schema will be created if it does not exist. If set to absent, the extension/schema will be removed if it exists.

DatabaseObjectStatus

Appears in:

  • DatabaseStatus {postgresql-cnpg-io-v1-DatabaseStatus}

DatabaseObjectStatus is the status of the managed database objects

Field

Description

name [Required] _string_

The name of the object

applied [Required] _bool_

True of the object has been installed successfully in the database

message _string_

Message is the object reconciliation message

DatabaseReclaimPolicy

(Alias of string )

Appears in:

  • DatabaseSpec {postgresql-cnpg-io-v1-DatabaseSpec}

DatabaseReclaimPolicy describes a policy for end-of-life maintenance of databases.

DatabaseRoleRef

Appears in:

  • TablespaceConfiguration {postgresql-cnpg-io-v1-TablespaceConfiguration}

DatabaseRoleRef is a reference an a role available inside PostgreSQL

Field

Description

name _string_

No description provided.

DatabaseSpec

Appears in:

DatabaseSpec is the specification of a Postgresql Database, built around the CREATE DATABASE , ALTER DATABASE , and DROP DATABASE SQL commands of PostgreSQL.

Field

Description

cluster [Required] _core/v1.LocalObjectReference_

The name of the PostgreSQL cluster hosting the database.

ensure _EnsureOption_

Ensure the PostgreSQL database is present or absent- defaults to "present".

name [Required] _string_

The name of the database to create inside PostgreSQL. This setting cannot be changed.

owner [Required] _string_

Maps to the OWNER parameter of CREATE DATABASE. Maps to the OWNER TO command of ALTER DATABASE. The role name of the user who owns the database inside PostgreSQL.

template _string_

Maps to the TEMPLATE parameter of CREATE DATABASE. This setting cannot be changed. The name of the template from which to create this database.

encoding _string_

Maps to the ENCODING parameter of CREATE DATABASE. This setting cannot be changed. Character set encoding to use in the database.

locale _string_

Maps to the LOCALE parameter of CREATE DATABASE. This setting cannot be changed. Sets the default collation order and character classification in the new database.

localeProvider _string_

Maps to the LOCALE_PROVIDER parameter of CREATE DATABASE. This setting cannot be changed. This option sets the locale provider for databases created in the new cluster. Available from PostgreSQL 16.

localeCollate _string_

Maps to the LC_COLLATE parameter of CREATE DATABASE. This setting cannot be changed.

localeCType _string_

Maps to the LC_CTYPE parameter of CREATE DATABASE. This setting cannot be changed.

icuLocale _string_

Maps to the ICU_LOCALE parameter of CREATE DATABASE. This setting cannot be changed. Specifies the ICU locale when the ICU provider is used. This option requires localeProvider to be set to icu. Available from PostgreSQL 15.

icuRules _string_

Maps to the ICU_RULES parameter of CREATE DATABASE. This setting cannot be changed. Specifies additional collation rules to customize the behavior of the default collation. This option requires localeProvider to be set to icu. Available from PostgreSQL 16.

builtinLocale _string_

Maps to the BUILTIN_LOCALE parameter of CREATE DATABASE. This setting cannot be changed. Specifies the locale name when the builtin provider is used. This option requires localeProvider to be set to builtin. Available from PostgreSQL 17.

collationVersion _string_

Maps to the COLLATION_VERSION parameter of CREATE DATABASE. This setting cannot be changed.

isTemplate _bool_

Maps to the IS_TEMPLATE parameter of CREATE DATABASE and ALTER DATABASE. If true, this database is considered a template and can be cloned by any user with CREATEDB privileges.

allowConnections _bool_

Maps to the ALLOW_CONNECTIONS parameter of CREATE DATABASE and ALTER DATABASE. If false then no one can connect to this database.

connectionLimit _int_

Maps to the CONNECTION LIMIT clause of CREATE DATABASE and ALTER DATABASE. How many concurrent connections can be made to this database. -1 (the default) means no limit.

tablespace _string_

Maps to the TABLESPACE parameter of CREATE DATABASE. Maps to the SET TABLESPACE command of ALTER DATABASE. The name of the tablespace (in PostgreSQL) that will be associated with the new database. This tablespace will be the default tablespace used for objects created in this database.

databaseReclaimPolicy _DatabaseReclaimPolicy_

The policy for end-of-life maintenance of this database.

schemas [_[]SchemaSpec_](SchemaSpec)

The list of schemas to be managed in the database

extensions [_[]ExtensionSpec_](ExtensionSpec)

The list of extensions to be managed in the database

DatabaseStatus

Appears in:

DatabaseStatus defines the observed state of Database

Field

Description

observedGeneration _int64_

A sequence number representing the latest desired state that was synchronized

applied _bool_

Applied is true if the database was reconciled correctly

message _string_

Message is the reconciliation output message

schemas [_[]DatabaseObjectStatus_](DatabaseObjectStatus)

Schemas is the status of the managed schemas

extensions [_[]DatabaseObjectStatus_](DatabaseObjectStatus)

Extensions is the status of the managed extensions

EmbeddedObjectMetadata

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

EmbeddedObjectMetadata contains metadata to be inherited by all resources related to a Cluster

Field

Description

labels _map[string]string_

No description provided.

annotations _map[string]string_

No description provided.

EnsureOption

(Alias of string )

Appears in:

  • DatabaseObjectSpec {postgresql-cnpg-io-v1-DatabaseObjectSpec}

EnsureOption represents whether we should enforce the presence or absence of a Role in a PostgreSQL instance

EphemeralVolumesSizeLimitConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

EphemeralVolumesSizeLimitConfiguration contains the configuration of the ephemeral storage

Field

Description

shm _k8s.io/apimachinery/pkg/api/resource.Quantity_

Shm is the size limit of the shared memory volume

temporaryData _k8s.io/apimachinery/pkg/api/resource.Quantity_

TemporaryData is the size limit of the temporary data volume

ExtensionConfiguration

Appears in:

  • PostgresConfiguration {postgresql-cnpg-io-v1-PostgresConfiguration}

ExtensionConfiguration is the configuration used to add PostgreSQL extensions to the Cluster.

Field

Description

name [Required] _string_

The name of the extension, required

image [Required] _core/v1.ImageVolumeSource_

The image containing the extension, required

extension_control_path _[]string_

The list of directories inside the image which should be added to extension_control_path. If not defined, defaults to "/share".

dynamic_library_path _[]string_

The list of directories inside the image which should be added to dynamic_library_path. If not defined, defaults to "/lib".

ld_library_path _[]string_

The list of directories inside the image which should be added to ld_library_path.

ExtensionSpec

Appears in:

  • DatabaseSpec {postgresql-cnpg-io-v1-DatabaseSpec}

ExtensionSpec configures an extension in a database

Field

Description

DatabaseObjectSpec _DatabaseObjectSpec_

(Members of DatabaseObjectSpec are embedded into this type.) Common fields

version [Required] _string_

The version of the extension to install. If empty, the operator will install the default version (whatever is specified in the extension's control file)

schema [Required] _string_

The name of the schema in which to install the extension's objects, in case the extension allows its contents to be relocated. If not specified (default), and the extension's control file does not specify a schema either, the current default object creation schema is used.

ExternalCluster

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

ExternalCluster represents the connection parameters to an external cluster which is used in the other sections of the configuration

Field

Description

name [Required] _string_

The server name, required

connectionParameters _map[string]string_

The list of connection parameters, such as dbname, host, username, etc

sslCert _core/v1.SecretKeySelector_

The reference to an SSL certificate to be used to connect to this instance

sslKey _core/v1.SecretKeySelector_

The reference to an SSL private key to be used to connect to this instance

sslRootCert _core/v1.SecretKeySelector_

The reference to an SSL CA public key to be used to connect to this instance

password _core/v1.SecretKeySelector_

The reference to the password to be used to connect to the server. If a password is provided, CloudNativePG creates a PostgreSQL passfile at /controller/external/NAME/pass (where "NAME" is the cluster's name). This passfile is automatically referenced in the connection string when establishing a connection to the remote PostgreSQL server from the current PostgreSQL Cluster. This ensures secure and efficient password management for external clusters.

barmanObjectStore _github.com/cloudnative-pg/barman-cloud/pkg/api.BarmanObjectStoreConfiguration_

The configuration for the barman-cloud tool suite

plugin [Required] _PluginConfiguration_

The configuration of the plugin that is taking care of WAL archiving and backups for this external cluster

FailoverQuorumStatus

Appears in:

  • FailoverQuorum {postgresql-cnpg-io-v1-FailoverQuorum}

FailoverQuorumStatus is the latest observed status of the failover quorum of the PG cluster.

Field

Description

method _string_

Contains the latest reported Method value.

standbyNames _[]string_

StandbyNames is the list of potentially synchronous instance names.

standbyNumber _int_

StandbyNumber is the number of synchronous standbys that transactions need to wait for replies from.

primary _string_

Primary is the name of the primary instance that updated this object the latest time.

ImageCatalogRef

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

ImageCatalogRef defines the reference to a major version in an ImageCatalog

Field

Description

TypedLocalObjectReference _core/v1.TypedLocalObjectReference_

(Members of TypedLocalObjectReference are embedded into this type.) No description provided.

major [Required] _int_

The major version of PostgreSQL we want to use from the ImageCatalog

ImageCatalogSpec

Appears in:

  • ClusterImageCatalog {postgresql-cnpg-io-v1-ClusterImageCatalog}

ImageCatalogSpec defines the desired ImageCatalog

Field

Description

images [Required] [_[]CatalogImage_](CatalogImage)

List of CatalogImages available in the catalog

ImageInfo

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

ImageInfo contains the information about a PostgreSQL image

Field

Description

image [Required] _string_

Image is the image name

majorVersion [Required] _int_

MajorVersion is the major version of the image

Import

Appears in:

  • BootstrapInitDB {postgresql-cnpg-io-v1-BootstrapInitDB}

Import contains the configuration to init a database from a logic snapshot of an externalCluster

Field

Description

source [Required] _ImportSource_

The source of the import

type [Required] _SnapshotType_

The import type. Can be microservice or monolith.

databases [Required] _[]string_

The databases to import

roles _[]string_

The roles to import

postImportApplicationSQL _[]string_

List of SQL queries to be executed as a superuser in the application database right after is imported- to be used with extreme care (by default empty). Only available in microservice type.

schemaOnly _bool_

When set to true, only the pre-data and post-data sections of pg_restore are invoked, avoiding data import. Default: false.

pgDumpExtraOptions _[]string_

List of custom options to pass to the pg_dump command. IMPORTANT: Use these options with caution and at your own risk, as the operator does not validate their content. Be aware that certain options may conflict with the operator's intended functionality or design.

pgRestoreExtraOptions _[]string_

List of custom options to pass to the pg_restore command. IMPORTANT: Use these options with caution and at your own risk, as the operator does not validate their content. Be aware that certain options may conflict with the operator's intended functionality or design.

ImportSource

Appears in:

  • Import {postgresql-cnpg-io-v1-Import}

ImportSource describes the source for the logical snapshot

Field

Description

externalCluster [Required] _string_

The name of the externalCluster used for import

InstanceID

Appears in:

  • BackupStatus {postgresql-cnpg-io-v1-BackupStatus}

InstanceID contains the information to identify an instance

Field

Description

podName _string_

The pod name

ContainerID _string_

The container ID

InstanceReportedState

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

InstanceReportedState describes the last reported state of an instance during a reconciliation loop

Field

Description

isPrimary [Required] _bool_

indicates if an instance is the primary one

timeLineID _int_

indicates on which TimelineId the instance is

ip [Required] _string_

IP address of the instance

IsolationCheckConfiguration

Appears in:

  • LivenessProbe {postgresql-cnpg-io-v1-LivenessProbe}

IsolationCheckConfiguration contains the configuration for the isolation check functionality in the liveness probe

Field

Description

enabled _bool_

Whether primary isolation checking is enabled for the liveness probe

requestTimeout _int_

Timeout in milliseconds for requests during the primary isolation check

connectionTimeout _int_

Timeout in milliseconds for connections during the primary isolation check

LDAPBindAsAuth

Appears in:

  • LDAPConfig {postgresql-cnpg-io-v1-LDAPConfig}

LDAPBindAsAuth provides the required fields to use the bind authentication for LDAP

Field

Description

prefix _string_

Prefix for the bind authentication option

suffix _string_

Suffix for the bind authentication option

LDAPBindSearchAuth

Appears in:

  • LDAPConfig {postgresql-cnpg-io-v1-LDAPConfig}

LDAPBindSearchAuth provides the required fields to use the bind+search LDAP authentication process

Field

Description

baseDN _string_

Root DN to begin the user search

bindDN _string_

DN of the user to bind to the directory

bindPassword _core/v1.SecretKeySelector_

Secret with the password for the user to bind to the directory

searchAttribute _string_

Attribute to match against the username

searchFilter _string_

Search filter to use when doing the search+bind authentication

LDAPConfig

Appears in:

  • PostgresConfiguration {postgresql-cnpg-io-v1-PostgresConfiguration}

LDAPConfig contains the parameters needed for LDAP authentication

Field

Description

server _string_

LDAP hostname or IP address

port _int_

LDAP server port

scheme _LDAPScheme_

LDAP schema to be used, possible options are ldap and ldaps

bindAsAuth _LDAPBindAsAuth_

Bind as authentication configuration

bindSearchAuth _LDAPBindSearchAuth_

Bind+Search authentication configuration

tls _bool_

Set to 'true' to enable LDAP over TLS. 'false' is default

LDAPScheme

(Alias of string )

Appears in:

  • LDAPConfig {postgresql-cnpg-io-v1-LDAPConfig}

LDAPScheme defines the possible schemes for LDAP

LivenessProbe

Appears in:

  • ProbesConfiguration {postgresql-cnpg-io-v1-ProbesConfiguration}

LivenessProbe is the configuration of the liveness probe

Field

Description

Probe _Probe_

(Members of Probe are embedded into this type.) Probe is the standard probe configuration

isolationCheck _IsolationCheckConfiguration_

Configure the feature that extends the liveness probe for a primary instance. In addition to the basic checks, this verifies whether the primary is isolated from the Kubernetes API server and from its replicas, ensuring that it can be safely shut down if network partition or API unavailability is detected. Enabled by default.

ManagedConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

ManagedConfiguration represents the portions of PostgreSQL that are managed by the instance manager

Field

Description

roles [_[]RoleConfiguration_](RoleConfiguration)

Database roles managed by the Cluster

services _ManagedServices_

Services roles managed by the Cluster

ManagedRoles

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

ManagedRoles tracks the status of a cluster’s managed roles

Field

Description

byStatus _map[RoleStatus][]string_

ByStatus gives the list of roles in each state

cannotReconcile _map[string][]string_

CannotReconcile lists roles that cannot be reconciled in PostgreSQL, with an explanation of the cause

passwordStatus [_map[string]PasswordState_](PasswordState)

PasswordStatus gives the last transaction id and password secret version for each managed role

ManagedService

Appears in:

  • ManagedServices {postgresql-cnpg-io-v1-ManagedServices}

ManagedService represents a specific service managed by the cluster. It includes the type of service and its associated template specification.

Field

Description

selectorType [Required] _ServiceSelectorType_

SelectorType specifies the type of selectors that the service will have. Valid values are "rw", "r", and "ro", representing read-write, read, and read-only services.

updateStrategy _ServiceUpdateStrategy_

UpdateStrategy describes how the service differences should be reconciled

serviceTemplate [Required] _ServiceTemplateSpec_

ServiceTemplate is the template specification for the service.

ManagedServices

Appears in:

  • ManagedConfiguration {postgresql-cnpg-io-v1-ManagedConfiguration}

ManagedServices represents the services managed by the cluster.

Field

Description

disabledDefaultServices [_[]ServiceSelectorType_](ServiceSelectorType)

DisabledDefaultServices is a list of service types that are disabled by default. Valid values are "r", and "ro", representing read, and read-only services.

additional [_[]ManagedService_](ManagedService)

Additional is a list of additional managed services specified by the user.

Metadata

Appears in:

  • PodTemplateSpec {postgresql-cnpg-io-v1-PodTemplateSpec}

Metadata is a structure similar to the metav1.ObjectMeta, but still parseable by controller-gen to create a suitable CRD for the user. The comment of PodTemplateSpec has an explanation of why we are not using the core data types.

Field

Description

name _string_

The name of the resource. Only supported for certain types

labels _map[string]string_

Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels

annotations _map[string]string_

Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations

MonitoringConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

MonitoringConfiguration is the type containing all the monitoring configuration for a certain cluster

Field

Description

disableDefaultQueries _bool_

Whether the default queries should be injected. Set it to true if you don't want to inject default queries into the cluster. Default: false.

customQueriesConfigMap [_[]github.com/cloudnative-pg/machinery/pkg/api.ConfigMapKeySelector_](https://pkg.go.dev/github.com/cloudnative-pg/machinery/pkg/api/#ConfigMapKeySelector)

The list of config maps containing the custom queries

customQueriesSecret [_[]github.com/cloudnative-pg/machinery/pkg/api.SecretKeySelector_](https://pkg.go.dev/github.com/cloudnative-pg/machinery/pkg/api/#SecretKeySelector)

The list of secrets containing the custom queries

enablePodMonitor _bool_

Enable or disable the PodMonitor

tls _ClusterMonitoringTLSConfiguration_

Configure TLS communication for the metrics endpoint. Changing tls.enabled option will force a rollout of all instances.

podMonitorMetricRelabelings [_[]github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1.RelabelConfig_](https://pkg.go.dev/github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1#RelabelConfig)

The list of metric relabelings for the PodMonitor. Applied to samples before ingestion.

podMonitorRelabelings [_[]github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1.RelabelConfig_](https://pkg.go.dev/github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1#RelabelConfig)

The list of relabelings for the PodMonitor. Applied to samples before scraping.

NodeMaintenanceWindow

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

NodeMaintenanceWindow contains information that the operator will use while upgrading the underlying node.

This option is only useful when the chosen storage prevents the Pods from being freely moved across nodes.

Field

Description

reusePVC _bool_

Reuse the existing PVC (wait for the node to come up again) or not (recreate it elsewhere- when instances >1)

inProgress _bool_

Is there a node maintenance activity in progress?

OnlineConfiguration

Appears in:

  • BackupSpec {postgresql-cnpg-io-v1-BackupSpec}

OnlineConfiguration contains the configuration parameters for the online volume snapshot

Field

Description

waitForArchive _bool_

If false, the function will return immediately after the backup is completed, without waiting for WAL to be archived. This behavior is only useful with backup software that independently monitors WAL archiving. Otherwise, WAL required to make the backup consistent might be missing and make the backup useless. By default, or when this parameter is true, pg_backup_stop will wait for WAL to be archived when archiving is enabled. On a standby, this means that it will wait only when archive_mode = always. If write activity on the primary is low, it may be useful to run pg_switch_wal on the primary in order to trigger an immediate segment switch.

immediateCheckpoint _bool_

Control whether the I/O workload for the backup initial checkpoint will be limited, according to the checkpoint_completion_target setting on the PostgreSQL server. If set to true, an immediate checkpoint will be used, meaning PostgreSQL will complete the checkpoint as soon as possible. false by default.

PasswordState

Appears in:

  • ManagedRoles {postgresql-cnpg-io-v1-ManagedRoles}

PasswordState represents the state of the password of a managed RoleConfiguration

Field

Description

transactionID _int64_

the last transaction ID to affect the role definition in PostgreSQL

resourceVersion _string_

the resource version of the password secret

PgBouncerIntegrationStatus

Appears in:

  • PoolerIntegrations {postgresql-cnpg-io-v1-PoolerIntegrations}

PgBouncerIntegrationStatus encapsulates the needed integration for the pgbouncer poolers referencing the cluster

Field

Description

secrets _[]string_

No description provided.

PgBouncerPoolMode

(Alias of string )

Appears in:

  • PgBouncerSpec {postgresql-cnpg-io-v1-PgBouncerSpec}

PgBouncerPoolMode is the mode of PgBouncer

PgBouncerSecrets

Appears in:

  • PoolerSecrets {postgresql-cnpg-io-v1-PoolerSecrets}

PgBouncerSecrets contains the versions of the secrets used by pgbouncer

Field

Description

authQuery _SecretVersion_

The auth query secret version

PgBouncerSpec

Appears in:

  • PoolerSpec {postgresql-cnpg-io-v1-PoolerSpec}

PgBouncerSpec defines how to configure PgBouncer

Field

Description

poolMode _PgBouncerPoolMode_

The pool mode. Default: session.

authQuerySecret _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

The credentials of the user that need to be used for the authentication query. In case it is specified, also an AuthQuery (e.g. "SELECT usename, passwd FROM pg_catalog.pg_shadow WHERE usename=$1") has to be specified and no automatic CNPG Cluster integration will be triggered.

authQuery _string_

The query that will be used to download the hash of the password of a certain user. Default: "SELECT usename, passwd FROM public.user_search($1)". In case it is specified, also an AuthQuerySecret has to be specified and no automatic CNPG Cluster integration will be triggered.

parameters _map[string]string_

Additional parameters to be passed to PgBouncer- please check the CNPG documentation for a list of options you can configure

pg_hba _[]string_

PostgreSQL Host Based Authentication rules (lines to be appended to the pg_hba.conf file)

paused _bool_

When set to true, PgBouncer will disconnect from the PostgreSQL server, first waiting for all queries to complete, and pause all new client connections until this value is set to false (default). Internally, the operator calls PgBouncer's PAUSE and RESUME commands.

PluginConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

PluginConfiguration specifies a plugin that need to be loaded for this cluster to be reconciled

Field

Description

name [Required] _string_

Name is the plugin name

enabled _bool_

Enabled is true if this plugin will be used

isWALArchiver _bool_

Only one plugin can be declared as WALArchiver. Cannot be active if ".spec.backup.barmanObjectStore" configuration is present.

parameters _map[string]string_

Parameters is the configuration of the plugin

PluginStatus

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

PluginStatus is the status of a loaded plugin

Field

Description

name [Required] _string_

Name is the name of the plugin

version [Required] _string_

Version is the version of the plugin loaded by the latest reconciliation loop

capabilities _[]string_

Capabilities are the list of capabilities of the plugin

operatorCapabilities _[]string_

OperatorCapabilities are the list of capabilities of the plugin regarding the reconciler

walCapabilities _[]string_

WALCapabilities are the list of capabilities of the plugin regarding the WAL management

backupCapabilities _[]string_

BackupCapabilities are the list of capabilities of the plugin regarding the Backup management

restoreJobHookCapabilities _[]string_

RestoreJobHookCapabilities are the list of capabilities of the plugin regarding the RestoreJobHook management

status _string_

Status contain the status reported by the plugin through the SetStatusInCluster interface

PodTemplateSpec

Appears in:

  • PoolerSpec {postgresql-cnpg-io-v1-PoolerSpec}

PodTemplateSpec is a structure allowing the user to set a template for Pod generation.

Unfortunately we can’t use the corev1.PodTemplateSpec type because the generated CRD won’t have the field for the metadata section.

References: https://github.com/kubernetes-sigs/controller-tools/issues/385 https://github.com/kubernetes-sigs/controller-tools/issues/448 https://github.com/prometheus-operator/prometheus-operator/issues/3041

Field

Description

metadata _Metadata_

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec _core/v1.PodSpec_

Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

PodTopologyLabels

(Alias of `map[string]string` )

Appears in:

  • PodTopologyLabels {postgresql-cnpg-io-v1-PodTopologyLabels}

PodTopologyLabels represent the topology of a Pod. map[labelName]labelValue

PoolerIntegrations

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

PoolerIntegrations encapsulates the needed integration for the poolers referencing the cluster

Field

Description

pgBouncerIntegration _PgBouncerIntegrationStatus_

No description provided.

PoolerMonitoringConfiguration

Appears in:

  • PoolerSpec {postgresql-cnpg-io-v1-PoolerSpec}

PoolerMonitoringConfiguration is the type containing all the monitoring configuration for a certain Pooler.

Mirrors the Cluster’s MonitoringConfiguration but without the custom queries part for now.

Field

Description

enablePodMonitor _bool_

Enable or disable the PodMonitor

podMonitorMetricRelabelings [_[]github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1.RelabelConfig_](https://pkg.go.dev/github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1#RelabelConfig)

The list of metric relabelings for the PodMonitor. Applied to samples before ingestion.

podMonitorRelabelings [_[]github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1.RelabelConfig_](https://pkg.go.dev/github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1#RelabelConfig)

The list of relabelings for the PodMonitor. Applied to samples before scraping.

PoolerSecrets

Appears in:

  • PoolerStatus {postgresql-cnpg-io-v1-PoolerStatus}

PoolerSecrets contains the versions of all the secrets used

Field

Description

serverTLS _SecretVersion_

The server TLS secret version

serverCA _SecretVersion_

The server CA secret version

clientCA _SecretVersion_

The client CA secret version

pgBouncerSecrets _PgBouncerSecrets_

The version of the secrets used by PgBouncer

PoolerSpec

Appears in:

  • Pooler {postgresql-cnpg-io-v1-Pooler}

PoolerSpec defines the desired state of Pooler

Field

Description

cluster [Required] _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

This is the cluster reference on which the Pooler will work. Pooler name should never match with any cluster name within the same namespace.

type _PoolerType_

Type of service to forward traffic to. Default: rw.

instances _int32_

The number of replicas we want. Default: 1.

template _PodTemplateSpec_

The template of the Pod to be created

pgbouncer [Required] _PgBouncerSpec_

The PgBouncer configuration

deploymentStrategy _apps/v1.DeploymentStrategy_

The deployment strategy to use for pgbouncer to replace existing pods with new ones

monitoring _PoolerMonitoringConfiguration_

The configuration of the monitoring infrastructure of this pooler.

serviceTemplate _ServiceTemplateSpec_

Template for the Service to be created

PoolerStatus

Appears in:

  • Pooler {postgresql-cnpg-io-v1-Pooler}

PoolerStatus defines the observed state of Pooler

Field

Description

secrets _PoolerSecrets_

The resource version of the config object

instances _int32_

The number of pods trying to be scheduled

PoolerType

(Alias of string )

Appears in:

  • PoolerSpec {postgresql-cnpg-io-v1-PoolerSpec}

PoolerType is the type of the connection pool, meaning the service we are targeting. Allowed values are rw and ro .

PostgresConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

PostgresConfiguration defines the PostgreSQL configuration

Field

Description

parameters _map[string]string_

PostgreSQL configuration options (postgresql.conf)

synchronous _SynchronousReplicaConfiguration_

Configuration of the PostgreSQL synchronous replication feature

pg_hba _[]string_

PostgreSQL Host Based Authentication rules (lines to be appended to the pg_hba.conf file)

pg_ident _[]string_

PostgreSQL User Name Maps rules (lines to be appended to the pg_ident.conf file)

syncReplicaElectionConstraint _SyncReplicaElectionConstraints_

Requirements to be met by sync replicas. This will affect how the "synchronous_standby_names" parameter will be set up.

shared_preload_libraries _[]string_

Lists of shared preload libraries to add to the default ones

ldap _LDAPConfig_

Options to specify LDAP configuration

promotionTimeout _int32_

Specifies the maximum number of seconds to wait when promoting an instance to primary. Default value is 40000000, greater than one year in seconds, big enough to simulate an infinite timeout

enableAlterSystem _bool_

If this parameter is true, the user will be able to invoke ALTER SYSTEM on this CloudNativePG Cluster. This should only be used for debugging and troubleshooting. Defaults to false.

extensions [_[]ExtensionConfiguration_](ExtensionConfiguration)

The configuration of the extensions to be added

PrimaryUpdateMethod

(Alias of string )

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

PrimaryUpdateMethod contains the method to use when upgrading the primary server of the cluster as part of rolling updates

PrimaryUpdateStrategy

(Alias of string )

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

PrimaryUpdateStrategy contains the strategy to follow when upgrading the primary server of the cluster as part of rolling updates

Probe

Appears in:

  • LivenessProbe {postgresql-cnpg-io-v1-LivenessProbe}

Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.

Field

Description

initialDelaySeconds _int32_

Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

timeoutSeconds _int32_

Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

periodSeconds _int32_

How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1.

successThreshold _int32_

Minimum consecutive successes for the probe to be considered successful after having failed. Defaults to 1. Must be 1 for liveness and startup. Minimum value is 1.

failureThreshold _int32_

Minimum consecutive failures for the probe to be considered failed after having succeeded. Defaults to 3. Minimum value is 1.

terminationGracePeriodSeconds _int64_

Optional duration in seconds the pod needs to terminate gracefully upon probe failure. The grace period is the duration in seconds after the processes running in the pod are sent a termination signal and the time when the processes are forcibly halted with a kill signal. Set this value longer than the expected cleanup time for your process. If this value is nil, the pod's terminationGracePeriodSeconds will be used. Otherwise, this value overrides the value provided by the pod spec. Value must be non-negative integer. The value zero indicates stop immediately via the kill signal (no opportunity to shut down). This is a beta field and requires enabling ProbeTerminationGracePeriod feature gate. Minimum value is 1. spec.terminationGracePeriodSeconds is used if unset.

ProbeStrategyType

(Alias of string )

Appears in:

  • ProbeWithStrategy {postgresql-cnpg-io-v1-ProbeWithStrategy}

ProbeStrategyType is the type of the strategy used to declare a PostgreSQL instance ready

ProbeWithStrategy

Appears in:

  • ProbesConfiguration {postgresql-cnpg-io-v1-ProbesConfiguration}

ProbeWithStrategy is the configuration of the startup probe

Field

Description

Probe _Probe_

(Members of Probe are embedded into this type.) Probe is the standard probe configuration

type _ProbeStrategyType_

The probe strategy

maximumLag _k8s.io/apimachinery/pkg/api/resource.Quantity_

Lag limit. Used only for streaming strategy

ProbesConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

ProbesConfiguration represent the configuration for the probes to be injected in the PostgreSQL Pods

Field

Description

startup [Required] _ProbeWithStrategy_

The startup probe configuration

liveness [Required] _LivenessProbe_

The liveness probe configuration

readiness [Required] _ProbeWithStrategy_

The readiness probe configuration

PublicationReclaimPolicy

(Alias of string )

Appears in:

  • PublicationSpec {postgresql-cnpg-io-v1-PublicationSpec}

PublicationReclaimPolicy defines a policy for end-of-life maintenance of Publications.

PublicationSpec

Appears in:

  • Publication {postgresql-cnpg-io-v1-Publication}

PublicationSpec defines the desired state of Publication

Field

Description

cluster [Required] _core/v1.LocalObjectReference_

The name of the PostgreSQL cluster that identifies the "publisher"

name [Required] _string_

The name of the publication inside PostgreSQL

dbname [Required] _string_

The name of the database where the publication will be installed in the "publisher" cluster

parameters _map[string]string_

Publication parameters part of the WITH clause as expected by PostgreSQL CREATE PUBLICATION command

target [Required] _PublicationTarget_

Target of the publication as expected by PostgreSQL CREATE PUBLICATION command

publicationReclaimPolicy _PublicationReclaimPolicy_

The policy for end-of-life maintenance of this publication

PublicationStatus

Appears in:

  • Publication {postgresql-cnpg-io-v1-Publication}

PublicationStatus defines the observed state of Publication

Field

Description

observedGeneration _int64_

A sequence number representing the latest desired state that was synchronized

applied _bool_

Applied is true if the publication was reconciled correctly

message _string_

Message is the reconciliation output message

PublicationTarget

Appears in:

  • PublicationSpec {postgresql-cnpg-io-v1-PublicationSpec}

PublicationTarget is what this publication should publish

Field

Description

allTables _bool_

Marks the publication as one that replicates changes for all tables in the database, including tables created in the future. Corresponding to FOR ALL TABLES in PostgreSQL.

objects [_[]PublicationTargetObject_](PublicationTargetObject)

Just the following schema objects

PublicationTargetObject

Appears in:

  • PublicationTarget {postgresql-cnpg-io-v1-PublicationTarget}

PublicationTargetObject is an object to publish

Field

Description

tablesInSchema _string_

Marks the publication as one that replicates changes for all tables in the specified list of schemas, including tables created in the future. Corresponding to FOR TABLES IN SCHEMA in PostgreSQL.

table _PublicationTargetTable_

Specifies a list of tables to add to the publication. Corresponding to FOR TABLE in PostgreSQL.

PublicationTargetTable

Appears in:

  • PublicationTargetObject {postgresql-cnpg-io-v1-PublicationTargetObject}

PublicationTargetTable is a table to publish

Field

Description

only _bool_

Whether to limit to the table only or include all its descendants

name [Required] _string_

The table name

schema _string_

The schema name

columns _[]string_

The columns to publish

RecoveryTarget

Appears in:

  • BootstrapRecovery {postgresql-cnpg-io-v1-BootstrapRecovery}

RecoveryTarget allows to configure the moment where the recovery process will stop. All the target options except TargetTLI are mutually exclusive.

Field

Description

backupID _string_

The ID of the backup from which to start the recovery process. If empty (default) the operator will automatically detect the backup based on targetTime or targetLSN if specified. Otherwise use the latest available backup in chronological order.

targetTLI _string_

The target timeline ("latest" or a positive integer)

targetXID _string_

The target transaction ID

targetName _string_

The target name (to be previously created with pg_create_restore_point)

targetLSN _string_

The target LSN (Log Sequence Number)

targetTime _string_

The target time as a timestamp in the RFC3339 standard

targetImmediate _bool_

End recovery as soon as a consistent state is reached

exclusive _bool_

Set the target to be exclusive. If omitted, defaults to false, so that in Postgres, recovery_target_inclusive will be true

ReplicaClusterConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

ReplicaClusterConfiguration encapsulates the configuration of a replica cluster

Field

Description

self _string_

Self defines the name of this cluster. It is used to determine if this is a primary or a replica cluster, comparing it with primary

primary _string_

Primary defines which Cluster is defined to be the primary in the distributed PostgreSQL cluster, based on the topology specified in externalClusters

source [Required] _string_

The name of the external cluster which is the replication origin

enabled _bool_

If replica mode is enabled, this cluster will be a replica of an existing cluster. Replica cluster can be created from a recovery object store or via streaming through pg_basebackup. Refer to the Replica clusters page of the documentation for more information.

promotionToken _string_

A demotion token generated by an external cluster used to check if the promotion requirements are met.

minApplyDelay _meta/v1.Duration_

When replica mode is enabled, this parameter allows you to replay transactions only when the system time is at least the configured time past the commit time. This provides an opportunity to correct data loss errors. Note that when this parameter is set, a promotion token cannot be used.

ReplicationSlotsConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

ReplicationSlotsConfiguration encapsulates the configuration of replication slots

Field

Description

highAvailability _ReplicationSlotsHAConfiguration_

Replication slots for high availability configuration

updateInterval _int_

Standby will update the status of the local replication slots every updateInterval seconds (default 30).

synchronizeReplicas _SynchronizeReplicasConfiguration_

Configures the synchronization of the user defined physical replication slots

ReplicationSlotsHAConfiguration

Appears in:

  • ReplicationSlotsConfiguration {postgresql-cnpg-io-v1-ReplicationSlotsConfiguration}

ReplicationSlotsHAConfiguration encapsulates the configuration of the replication slots that are automatically managed by the operator to control the streaming replication connections with the standby instances for high availability (HA) purposes. Replication slots are a PostgreSQL feature that makes sure that PostgreSQL automatically keeps WAL files in the primary when a streaming client (in this specific case a replica that is part of the HA cluster) gets disconnected.

Field

Description

enabled _bool_

If enabled (default), the operator will automatically manage replication slots on the primary instance and use them in streaming replication connections with all the standby instances that are part of the HA cluster. If disabled, the operator will not take advantage of replication slots in streaming connections with the replicas. This feature also controls replication slots in replica cluster, from the designated primary to its cascading replicas.

slotPrefix _string_

Prefix for replication slots managed by the operator for HA. It may only contain lower case letters, numbers, and the underscore character. This can only be set at creation time. By default set to _cnpg_.

synchronizeLogicalDecoding _bool_

When enabled, the operator automatically manages synchronization of logical decoding (replication) slots across high-availability clusters. Requires one of the following conditions: PostgreSQL version 17 or later PostgreSQL version < 17 with pg_failover_slots extension enabled

RoleConfiguration

Appears in:

  • ManagedConfiguration {postgresql-cnpg-io-v1-ManagedConfiguration}

RoleConfiguration is the representation, in Kubernetes, of a PostgreSQL role with the additional field Ensure specifying whether to ensure the presence or absence of the role in the database

The defaults of the CREATE ROLE command are applied Reference: https://www.postgresql.org/docs/current/sql-createrole.html

Field

Description

name [Required] _string_

Name of the role

comment _string_

Description of the role

ensure _EnsureOption_

Ensure the role is present or absent- defaults to "present"

passwordSecret _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

Secret containing the password of the role (if present) If null, the password will be ignored unless DisablePassword is set

connectionLimit _int64_

If the role can log in, this specifies how many concurrent connections the role can make. -1 (the default) means no limit.

validUntil _meta/v1.Time_

Date and time after which the role's password is no longer valid. When omitted, the password will never expire (default).

inRoles _[]string_

List of one or more existing roles to which this role will be immediately added as a new member. Default empty.

inherit _bool_

Whether a role "inherits" the privileges of roles it is a member of. Defaults is true.

disablePassword _bool_

DisablePassword indicates that a role's password should be set to NULL in Postgres

superuser _bool_

Whether the role is a superuser who can override all access restrictions within the database- superuser status is dangerous and should be used only when really needed. You must yourself be a superuser to create a new superuser. Defaults is false.

createdb _bool_

When set to true, the role being defined will be allowed to create new databases. Specifying false (default) will deny a role the ability to create databases.

createrole _bool_

Whether the role will be permitted to create, alter, drop, comment on, change the security label for, and grant or revoke membership in other roles. Default is false.

login _bool_

Whether the role is allowed to log in. A role having the login attribute can be thought of as a user. Roles without this attribute are useful for managing database privileges, but are not users in the usual sense of the word. Default is false.

replication _bool_

Whether a role is a replication role. A role must have this attribute (or be a superuser) in order to be able to connect to the server in replication mode (physical or logical replication) and in order to be able to create or drop replication slots. A role having the replication attribute is a very highly privileged role, and should only be used on roles actually used for replication. Default is false.

bypassrls _bool_

Whether a role bypasses every row-level security (RLS) policy. Default is false.

SQLRefs

Appears in:

  • BootstrapInitDB {postgresql-cnpg-io-v1-BootstrapInitDB}

SQLRefs holds references to ConfigMaps or Secrets containing SQL files. The references are processed in a specific order: first, all Secrets are processed, followed by all ConfigMaps. Within each group, the processing order follows the sequence specified in their respective arrays.

Field

Description

secretRefs [_[]github.com/cloudnative-pg/machinery/pkg/api.SecretKeySelector_](https://pkg.go.dev/github.com/cloudnative-pg/machinery/pkg/api/#SecretKeySelector)

SecretRefs holds a list of references to Secrets

configMapRefs [_[]github.com/cloudnative-pg/machinery/pkg/api.ConfigMapKeySelector_](https://pkg.go.dev/github.com/cloudnative-pg/machinery/pkg/api/#ConfigMapKeySelector)

ConfigMapRefs holds a list of references to ConfigMaps

ScheduledBackupSpec

Appears in:

  • ScheduledBackup {postgresql-cnpg-io-v1-ScheduledBackup}

ScheduledBackupSpec defines the desired state of ScheduledBackup

Field

Description

suspend _bool_

If this backup is suspended or not

immediate _bool_

If the first backup has to be immediately start after creation or not

schedule [Required] _string_

The schedule does not follow the same format used in Kubernetes CronJobs as it includes an additional seconds specifier, see https://pkg.go.dev/github.com/robfig/cron#hdr-CRON_Expression_Format

cluster [Required] _github.com/cloudnative-pg/machinery/pkg/api.LocalObjectReference_

The cluster to backup

backupOwnerReference _string_

Indicates which ownerReference should be put inside the created backup resources. none: no owner reference for created backup objects (same behavior as before the field was introduced) self: sets the Scheduled backup object as owner of the backup * cluster: set the cluster as owner of the backup

target _BackupTarget_

The policy to decide which instance should perform this backup. If empty, it defaults to cluster.spec.backup.target. Available options are empty string, primary and prefer-standby. primary to have backups run always on primary instances, prefer-standby to have backups run preferably on the most updated standby, if available.

method _BackupMethod_

The backup method to be used, possible options are barmanObjectStore, volumeSnapshot or plugin. Defaults to: barmanObjectStore.

pluginConfiguration _BackupPluginConfiguration_

Configuration parameters passed to the plugin managing this backup

online _bool_

Whether the default type of backup with volume snapshots is online/hot (true, default) or offline/cold (false) Overrides the default setting specified in the cluster field '.spec.backup.volumeSnapshot.online'

onlineConfiguration _OnlineConfiguration_

Configuration parameters to control the online/hot backup with volume snapshots Overrides the default settings specified in the cluster '.backup.volumeSnapshot.onlineConfiguration' stanza

ScheduledBackupStatus

Appears in:

  • ScheduledBackup {postgresql-cnpg-io-v1-ScheduledBackup}

ScheduledBackupStatus defines the observed state of ScheduledBackup

Field

Description

lastCheckTime _meta/v1.Time_

The latest time the schedule

lastScheduleTime _meta/v1.Time_

Information when was the last time that backup was successfully scheduled.

nextScheduleTime _meta/v1.Time_

Next time we will run a backup

SchemaSpec

Appears in:

  • DatabaseSpec {postgresql-cnpg-io-v1-DatabaseSpec}

SchemaSpec configures a schema in a database

Field

Description

DatabaseObjectSpec _DatabaseObjectSpec_

(Members of DatabaseObjectSpec are embedded into this type.) Common fields

owner [Required] _string_

The role name of the user who owns the schema inside PostgreSQL. It maps to the AUTHORIZATION parameter of CREATE SCHEMA and the OWNER TO command of ALTER SCHEMA.

SecretVersion

Appears in:

  • PgBouncerSecrets {postgresql-cnpg-io-v1-PgBouncerSecrets}

SecretVersion contains a secret name and its ResourceVersion

Field

Description

name _string_

The name of the secret

version _string_

The ResourceVersion of the secret

SecretsResourceVersion

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

SecretsResourceVersion is the resource versions of the secrets managed by the operator

Field

Description

superuserSecretVersion _string_

The resource version of the "postgres" user secret

replicationSecretVersion _string_

The resource version of the "streaming_replica" user secret

applicationSecretVersion _string_

The resource version of the "app" user secret

managedRoleSecretVersion _map[string]string_

The resource versions of the managed roles secrets

caSecretVersion _string_

Unused. Retained for compatibility with old versions.

clientCaSecretVersion _string_

The resource version of the PostgreSQL client-side CA secret version

serverCaSecretVersion _string_

The resource version of the PostgreSQL server-side CA secret version

serverSecretVersion _string_

The resource version of the PostgreSQL server-side secret version

barmanEndpointCA _string_

The resource version of the Barman Endpoint CA if provided

externalClusterSecretVersion _map[string]string_

The resource versions of the external cluster secrets

metrics _map[string]string_

A map with the versions of all the secrets used to pass metrics. Map keys are the secret names, map values are the versions

ServiceAccountTemplate

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

ServiceAccountTemplate contains the template needed to generate the service accounts

Field

Description

metadata [Required] _Metadata_

Metadata are the metadata to be used for the generated service account

ServiceSelectorType

(Alias of string )

Appears in:

  • ManagedService {postgresql-cnpg-io-v1-ManagedService}

ServiceSelectorType describes a valid value for generating the service selectors. It indicates which type of service the selector applies to, such as read-write, read, or read-only

ServiceTemplateSpec

Appears in:

  • ManagedService {postgresql-cnpg-io-v1-ManagedService}

ServiceTemplateSpec is a structure allowing the user to set a template for Service generation.

Field

Description

metadata _Metadata_

Standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec _core/v1.ServiceSpec_

Specification of the desired behavior of the service. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

ServiceUpdateStrategy

(Alias of string )

Appears in:

  • ManagedService {postgresql-cnpg-io-v1-ManagedService}

ServiceUpdateStrategy describes how the changes to the managed service should be handled

SnapshotOwnerReference

(Alias of string )

Appears in:

  • VolumeSnapshotConfiguration {postgresql-cnpg-io-v1-VolumeSnapshotConfiguration}

SnapshotOwnerReference defines the reference type for the owner of the snapshot. This specifies which owner the processed resources should relate to.

SnapshotType

(Alias of string )

Appears in:

  • Import {postgresql-cnpg-io-v1-Import}

SnapshotType is a type of allowed import

StorageConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

StorageConfiguration is the configuration used to create and reconcile PVCs, usable for WAL volumes, PGDATA volumes, or tablespaces

Field

Description

storageClass _string_

StorageClass to use for PVCs. Applied after evaluating the PVC template, if available. If not specified, the generated PVCs will use the default storage class

size _string_

Size of the storage. Required if not already specified in the PVC template. Changes to this field are automatically reapplied to the created PVCs. Size cannot be decreased.

resizeInUseVolumes _bool_

Resize existent PVCs, defaults to true

pvcTemplate _core/v1.PersistentVolumeClaimSpec_

Template to be used to generate the Persistent Volume Claim

SubscriptionReclaimPolicy

(Alias of string )

Appears in:

  • SubscriptionSpec {postgresql-cnpg-io-v1-SubscriptionSpec}

SubscriptionReclaimPolicy describes a policy for end-of-life maintenance of Subscriptions.

SubscriptionSpec

Appears in:

  • Subscription {postgresql-cnpg-io-v1-Subscription}

SubscriptionSpec defines the desired state of Subscription

Field

Description

cluster [Required] _core/v1.LocalObjectReference_

The name of the PostgreSQL cluster that identifies the "subscriber"

name [Required] _string_

The name of the subscription inside PostgreSQL

dbname [Required] _string_

The name of the database where the publication will be installed in the "subscriber" cluster

parameters _map[string]string_

Subscription parameters included in the WITH clause of the PostgreSQL CREATE SUBSCRIPTION command. Most parameters cannot be changed after the subscription is created and will be ignored if modified later, except for a limited set documented at: https://www.postgresql.org/docs/current/sql-altersubscription.html#SQL-ALTERSUBSCRIPTION-PARAMS-SET

publicationName [Required] _string_

The name of the publication inside the PostgreSQL database in the "publisher"

publicationDBName _string_

The name of the database containing the publication on the external cluster. Defaults to the one in the external cluster definition.

externalClusterName [Required] _string_

The name of the external cluster with the publication ("publisher")

subscriptionReclaimPolicy _SubscriptionReclaimPolicy_

The policy for end-of-life maintenance of this subscription

SubscriptionStatus

Appears in:

  • Subscription {postgresql-cnpg-io-v1-Subscription}

SubscriptionStatus defines the observed state of Subscription

Field

Description

observedGeneration _int64_

A sequence number representing the latest desired state that was synchronized

applied _bool_

Applied is true if the subscription was reconciled correctly

message _string_

Message is the reconciliation output message

SwitchReplicaClusterStatus

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

SwitchReplicaClusterStatus contains all the statuses regarding the switch of a cluster to a replica cluster

Field

Description

inProgress _bool_

InProgress indicates if there is an ongoing procedure of switching a cluster to a replica cluster.

SyncReplicaElectionConstraints

Appears in:

  • PostgresConfiguration {postgresql-cnpg-io-v1-PostgresConfiguration}

SyncReplicaElectionConstraints contains the constraints for sync replicas election.

For anti-affinity parameters two instances are considered in the same location if all the labels values match.

In future synchronous replica election restriction by name will be supported.

Field

Description

nodeLabelsAntiAffinity _[]string_

A list of node labels values to extract and compare to evaluate if the pods reside in the same topology or not

enabled [Required] _bool_

This flag enables the constraints for sync replicas

SynchronizeReplicasConfiguration

Appears in:

  • ReplicationSlotsConfiguration {postgresql-cnpg-io-v1-ReplicationSlotsConfiguration}

SynchronizeReplicasConfiguration contains the configuration for the synchronization of user defined physical replication slots

Field

Description

enabled [Required] _bool_

When set to true, every replication slot that is on the primary is synchronized on each standby

excludePatterns _[]string_

List of regular expression patterns to match the names of replication slots to be excluded (by default empty)

SynchronousReplicaConfiguration

Appears in:

  • PostgresConfiguration {postgresql-cnpg-io-v1-PostgresConfiguration}

SynchronousReplicaConfiguration contains the configuration of the PostgreSQL synchronous replication feature. Important: at this moment, also .spec.minSyncReplicas and .spec.maxSyncReplicas need to be considered.

Field

Description

method [Required] archive_timeout as values.

number [Required] _int_

Specifies the number of synchronous standby servers that transactions must wait for responses from.

maxStandbyNamesFromCluster _int_

Specifies the maximum number of local cluster pods that can be automatically included in the synchronous_standby_names option in PostgreSQL.

standbyNamesPre _[]string_

A user-defined list of application names to be added to synchronous_standby_names before local cluster pods (the order is only useful for priority-based synchronous replication).

standbyNamesPost _[]string_

A user-defined list of application names to be added to synchronous_standby_names after local cluster pods (the order is only useful for priority-based synchronous replication).

dataDurability _DataDurabilityLevel_

If set to "required", data durability is strictly enforced. Write operations with synchronous commit settings (on, remote_write, or remote_apply) will block if there are insufficient healthy replicas, ensuring data persistence. If set to "preferred", data durability is maintained when healthy replicas are available, but the required number of instances will adjust dynamically if replicas become unavailable. This setting relaxes strict durability enforcement to allow for operational continuity. This setting is only applicable if both standbyNamesPre and standbyNamesPost are unset (empty).

SynchronousReplicaConfigurationMethod

(Alias of string )

Appears in:

  • SynchronousReplicaConfiguration {postgresql-cnpg-io-v1-SynchronousReplicaConfiguration}

SynchronousReplicaConfigurationMethod configures whether to use quorum based replication or a priority list

TablespaceConfiguration

Appears in:

  • ClusterSpec {postgresql-cnpg-io-v1-ClusterSpec}

TablespaceConfiguration is the configuration of a tablespace, and includes the storage specification for the tablespace

Field

Description

name [Required] _string_

The name of the tablespace

storage [Required] _StorageConfiguration_

The storage configuration for the tablespace

owner _DatabaseRoleRef_

Owner is the PostgreSQL user owning the tablespace

temporary _bool_

When set to true, the tablespace will be added as a temp_tablespaces entry in PostgreSQL, and will be available to automatically house temp database objects, or other temporary files. Please refer to PostgreSQL documentation for more information on the temp_tablespaces GUC.

TablespaceState

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

TablespaceState represents the state of a tablespace in a cluster

Field

Description

name [Required] _string_

Name is the name of the tablespace

owner _string_

Owner is the PostgreSQL user owning the tablespace

state [Required] _TablespaceStatus_

State is the latest reconciliation state

error _string_

Error is the reconciliation error, if any

TablespaceStatus

(Alias of string )

Appears in:

  • TablespaceState {postgresql-cnpg-io-v1-TablespaceState}

TablespaceStatus represents the status of a tablespace in the cluster

Topology

Appears in:

  • ClusterStatus {postgresql-cnpg-io-v1-ClusterStatus}

Topology contains the cluster topology

Field

Description

instances [_map[PodName]PodTopologyLabels_](PodTopologyLabels)

Instances contains the pod topology of the instances

nodesUsed _int32_

NodesUsed represents the count of distinct nodes accommodating the instances. A value of '1' suggests that all instances are hosted on a single node, implying the absence of High Availability (HA). Ideally, this value should be the same as the number of instances in the Postgres HA cluster, implying shared nothing architecture on the compute side.

successfullyExtracted _bool_

SuccessfullyExtracted indicates if the topology data was extract. It is useful to enact fallback behaviors in synchronous replica election in case of failures

VolumeSnapshotConfiguration

Appears in:

  • BackupConfiguration {postgresql-cnpg-io-v1-BackupConfiguration}

VolumeSnapshotConfiguration represents the configuration for the execution of snapshot backups.

Field

Description

labels _map[string]string_

Labels are key-value pairs that will be added to .metadata.labels snapshot resources.

annotations _map[string]string_

Annotations key-value pairs that will be added to .metadata.annotations snapshot resources.

className _string_

ClassName specifies the Snapshot Class to be used for PG_DATA PersistentVolumeClaim. It is the default class for the other types if no specific class is present

walClassName _string_

WalClassName specifies the Snapshot Class to be used for the PG_WAL PersistentVolumeClaim.

tablespaceClassName _map[string]string_

TablespaceClassName specifies the Snapshot Class to be used for the tablespaces. defaults to the PGDATA Snapshot Class, if set

snapshotOwnerReference _SnapshotOwnerReference_

SnapshotOwnerReference indicates the type of owner reference the snapshot should have

online _bool_

Whether the default type of backup with volume snapshots is online/hot (true, default) or offline/cold (false)

onlineConfiguration _OnlineConfiguration_

Configuration parameters to control the online/hot backup with volume snapshots