API Reference - v1.28.0 v1.28.0

Packages

postgresql.k8s.enterprisedb.io/v1

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

Resource Types

AffinityConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
enablePodAntiAffinity booleanActivates anti-affinity for the pods. The operator will define pods
anti-affinity unless this field is explicitly set to false
topologyKey stringTopologyKey to use for anti-affinity configuration. See k8s documentation
for more info on that
nodeSelector object (keys:string, values: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 NodeAffinityNodeAffinity describes node affinity scheduling rules for the pod.
More info: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity
tolerations Toleration arrayTolerations 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 stringPodAntiAffinityType 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 PodAntiAffinityAdditionalPodAntiAffinity 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 PodAffinityAdditionalPodAffinity allows to specify pod affinity terms to be passed to all the cluster's pods.

AvailableArchitecture

AvailableArchitecture represents the state of a cluster's architecture

Appears in:

FieldDescriptionRequiredDefaultValidation
goArch stringGoArch is the name of the executable architectureTrue
hash stringHash is the hash of the executableTrue

Backup

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

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringBackupTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
spec BackupSpecSpecification of the desired behavior of the backup.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
True
status BackupStatusMost 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

BackupConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
volumeSnapshot VolumeSnapshotConfigurationVolumeSnapshot provides the configuration for the execution of volume snapshot backups.
barmanObjectStore BarmanObjectStoreConfigurationThe configuration for the barman-cloud tool suite
retentionPolicy stringRetentionPolicy 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.
Pattern: ^[1-9][0-9]*[dwm]$
target BackupTargetThe 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.
Enum: [primary prefer-standby]

BackupMethod

Underlying type: string

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

Appears in:

FieldDescription
volumeSnapshotBackupMethodVolumeSnapshot means using the volume snapshot
Kubernetes feature
barmanObjectStoreBackupMethodBarmanObjectStore means using barman to backup the
PostgreSQL cluster
pluginBackupMethodPlugin means that this backup should be handled by
a plugin

BackupPhase

Underlying type: string

BackupPhase is the phase of the backup

Appears in:

BackupPluginConfiguration

BackupPluginConfiguration contains the backup configuration used by the backup plugin

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName is the name of the plugin managing this backupTrue
parameters object (keys:string, values:string)Parameters are the configuration parameters passed to the backup
plugin for this backup

BackupSnapshotElementStatus

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

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName is the snapshot resource nameTrue
type stringType is tho role of the snapshot in the cluster, such as PG_DATA, PG_WAL and PG_TABLESPACETrue
tablespaceName stringTablespaceName is the name of the snapshotted tablespace. Only set
when type is PG_TABLESPACE

BackupSnapshotStatus

BackupSnapshotStatus the fields exclusive to the volumeSnapshot method backup

Appears in:

FieldDescriptionRequiredDefaultValidation
elements BackupSnapshotElementStatus arrayThe elements list, populated with the gathered volume snapshots

BackupSource

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

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName of the referent.True
endpointCA SecretKeySelectorEndpointCA 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

BackupSpec defines the desired state of Backup

Appears in:

FieldDescriptionRequiredDefaultValidation
cluster LocalObjectReferenceThe cluster to backupTrue
target BackupTargetThe 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.
Enum: [primary prefer-standby]
method BackupMethodThe backup method to be used, possible options are barmanObjectStore,
volumeSnapshot or plugin. Defaults to: barmanObjectStore.
barmanObjectStoreEnum: [barmanObjectStore volumeSnapshot plugin]
pluginConfiguration BackupPluginConfigurationConfiguration parameters passed to the plugin managing this backup
online booleanWhether 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 OnlineConfigurationConfiguration parameters to control the online/hot backup with volume snapshots
Overrides the default settings specified in the cluster '.backup.volumeSnapshot.onlineConfiguration' stanza

BackupStatus

BackupStatus defines the observed state of Backup

Appears in:

FieldDescriptionRequiredDefaultValidation
googleCredentials GoogleCredentialsThe credentials to use to upload data to Google Cloud Storage
s3Credentials S3CredentialsThe credentials to use to upload data to S3
azureCredentials AzureCredentialsThe credentials to use to upload data to Azure Blob Storage
majorVersion integerThe PostgreSQL major version that was running when the
backup was taken.
True
endpointCA SecretKeySelectorEndpointCA 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 stringEndpoint to be used to upload data to the cloud,
overriding the automatic endpoint discovery
destinationPath stringThe 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 stringThe server name on S3, the cluster name is used if this
parameter is omitted
encryption stringEncryption method required to S3 API
backupId stringThe ID of the Barman backup
backupName stringThe Name of the Barman backup
phase BackupPhaseThe last backup status
startedAt TimeWhen the backup was started
stoppedAt TimeWhen the backup was terminated
beginWal stringThe starting WAL
endWal stringThe ending WAL
beginLSN stringThe starting xlog
endLSN stringThe ending xlog
error stringThe detected error
commandOutput stringUnused. Retained for compatibility with old versions.
commandError stringThe backup command output in case of error
backupLabelFile integer arrayBackup label file content as returned by Postgres in case of online (hot) backups
tablespaceMapFile integer arrayTablespace map file content as returned by Postgres in case of online (hot) backups
instanceID InstanceIDInformation to identify the instance where the backup has been taken from
snapshotBackupStatus BackupSnapshotStatusStatus of the volumeSnapshot backup
method BackupMethodThe backup method being used
online booleanWhether the backup was online/hot (true) or offline/cold (false)
pluginMetadata object (keys:string, values:string)A map containing the plugin metadata

BackupTarget

Underlying type: string

BackupTarget describes the preferred targets for a backup

Appears in:

BootstrapConfiguration

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.

Appears in:

FieldDescriptionRequiredDefaultValidation
initdb BootstrapInitDBBootstrap the cluster via initdb
recovery BootstrapRecoveryBootstrap the cluster from a backup
pg_basebackup BootstrapPgBaseBackupBootstrap the cluster taking a physical backup of another compatible
PostgreSQL instance

BootstrapInitDB

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

Appears in:

FieldDescriptionRequiredDefaultValidation
database stringName of the database used by the application. Default: app.
owner stringName of the owner of the database in the instance to be used
by applications. Defaults to the value of the database key.
secret LocalObjectReferenceName of the secret containing the initial credentials for the
owner of the user database. If empty a new secret will be
created from scratch
redwood booleanIf we need to enable/disable Redwood compatibility. Requires
EPAS and for EPAS defaults to true
options string arrayThe 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 booleanWhether the -k option should be passed to initdb,
enabling checksums on data pages (default: false)
encoding stringThe value to be passed as option --encoding for initdb (default:UTF8)
localeCollate stringThe value to be passed as option --lc-collate for initdb (default:C)
localeCType stringThe value to be passed as option --lc-ctype for initdb (default:C)
locale stringSets the default collation order and character classification in the new database.
localeProvider stringThis option sets the locale provider for databases created in the new cluster.
Available from PostgreSQL 16.
icuLocale stringSpecifies the ICU locale when the ICU provider is used.
This option requires localeProvider to be set to icu.
Available from PostgreSQL 15.
icuRules stringSpecifies 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 stringSpecifies the locale name when the builtin provider is used.
This option requires localeProvider to be set to builtin.
Available from PostgreSQL 17.
walSegmentSize integerThe value in megabytes (1 to 1024) to be passed to the --wal-segsize
option for initdb (default: empty, resulting in PostgreSQL default: 16MB)
Maximum: 1024
Minimum: 1
postInitSQL string arrayList 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 arrayList 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 arrayList 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 ImportBootstraps the new cluster by importing data from an existing PostgreSQL
instance using logical backup (pg_dump and pg_restore)
postInitApplicationSQLRefs SQLRefsList 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 SQLRefsList 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 SQLRefsList 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

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

Appears in:

FieldDescriptionRequiredDefaultValidation
source stringThe name of the server of which we need to take a physical backupTrueMinLength: 1
database stringName of the database used by the application. Default: app.
owner stringName of the owner of the database in the instance to be used
by applications. Defaults to the value of the database key.
secret LocalObjectReferenceName 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

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.

Appears in:

FieldDescriptionRequiredDefaultValidation
backup BackupSourceThe backup object containing the physical base backup from which to
initiate the recovery procedure.
Mutually exclusive with source and volumeSnapshots.
source stringThe 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 DataSourceThe 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 EDB Postgres® AI for CloudNativePG™ Cluster, 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 RecoveryTargetBy default, the recovery process applies all the available
WAL files in the archive (full recovery). However, you can also
end the recovery as soon as a consistent state is reached or
recover to a point-in-time (PITR) 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 stringName of the database used by the application. Default: app.
owner stringName of the owner of the database in the instance to be used
by applications. Defaults to the value of the database key.
secret LocalObjectReferenceName 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

CatalogImage defines the image and major version

Appears in:

FieldDescriptionRequiredDefaultValidation
image stringThe image referenceTrue
major integerThe PostgreSQL major version of the image. Must be unique within the catalog.TrueMinimum: 10

CertificatesConfiguration

CertificatesConfiguration contains the needed configurations to handle server certificates.

Appears in:

FieldDescriptionRequiredDefaultValidation
serverCASecret stringThe 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 stringThe 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 stringThe 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 stringThe 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 arrayThe list of the server alternative DNS names to be added to the generated server TLS certificates, when required.

CertificatesStatus

CertificatesStatus contains configuration certificates and related expiration dates.

Appears in:

FieldDescriptionRequiredDefaultValidation
serverCASecret stringThe 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 stringThe 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 stringThe 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 stringThe 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 arrayThe list of the server alternative DNS names to be added to the generated server TLS certificates, when required.
expirations object (keys:string, values:string)Expiration dates for all certificates.

Cluster

Cluster defines the API schema for a highly available PostgreSQL database cluster managed by EDB Postgres® AI for CloudNativePG™ Cluster.

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringClusterTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
spec ClusterSpecSpecification of the desired behavior of the cluster.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
True
status ClusterStatusMost 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

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringClusterImageCatalogTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
spec ImageCatalogSpecSpecification of the desired behavior of the ClusterImageCatalog.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
True

ClusterMonitoringTLSConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
enabled booleanEnable TLS for the monitoring endpoint.
Changing this option will force a rollout of all instances.
false

ClusterSpec

ClusterSpec defines the desired state of a PostgreSQL cluster managed by EDB Postgres® AI for CloudNativePG™ Cluster.

Appears in:

FieldDescriptionRequiredDefaultValidation
description stringDescription of this PostgreSQL cluster
inheritedMetadata EmbeddedObjectMetadataMetadata that will be inherited by all objects related to the Cluster
imageName stringName of the container image, supporting both tags (<image>:<tag>)
and digests for deterministic and repeatable deployments
(<image>:<tag>@sha256:<digestValue>)
imageCatalogRef ImageCatalogRefDefines the major PostgreSQL version we want to use within an ImageCatalog
imagePullPolicy PullPolicyImage 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/containers/images#updating-images
schedulerName stringIf 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 integerThe UID of the postgres user inside the image, defaults to 2626
postgresGID integerThe GID of the postgres user inside the image, defaults to 2626
instances integerNumber of instances required in the clusterTrue1Minimum: 1
minSyncReplicas integerMinimum number of instances required in synchronous replication with the
primary. Undefined or 0 allow writes to complete when no standby is
available.
0Minimum: 0
maxSyncReplicas integerThe 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.
0Minimum: 0
postgresql PostgresConfigurationConfiguration of the PostgreSQL server
replicationSlots ReplicationSlotsConfigurationReplication slots management configuration
bootstrap BootstrapConfigurationInstructions to bootstrap this cluster
replica ReplicaClusterConfigurationReplica cluster configuration
superuserSecret LocalObjectReferenceThe secret containing the superuser password. If not defined a new
secret will be created with a randomly generated password
enableSuperuserAccess booleanWhen 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 CertificatesConfigurationThe configuration for the CA and related certificates
imagePullSecrets LocalObjectReference arrayThe list of pull secrets to be used to pull the images. If the license key
contains a pull secret that secret will be automatically included.
storage StorageConfigurationConfiguration of the storage of the instances
serviceAccountTemplate ServiceAccountTemplateConfigure the generation of the service account
walStorage StorageConfigurationConfiguration of the storage for PostgreSQL WAL (Write-Ahead Log)
ephemeralVolumeSource EphemeralVolumeSourceEphemeralVolumeSource allows the user to configure the source of ephemeral volumes.
startDelay integerThe 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).
3600
stopDelay integerThe time in seconds that is allowed for a PostgreSQL instance to
gracefully shutdown (default 1800)
1800
smartStopDelay integerDeprecated: please use SmartShutdownTimeout instead
smartShutdownTimeout integerThe 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). Default is 180 seconds.
180
switchoverDelay integerThe time in seconds that is allowed for a primary PostgreSQL instance
to gracefully shutdown during a switchover.
Default value is 3600 seconds (1 hour).
3600
failoverDelay integerThe amount of time (in seconds) to wait before triggering a failover
after the primary PostgreSQL instance in the cluster was detected
to be unhealthy
0
livenessProbeTimeout integerLivenessProbeTimeout 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 AffinityConfigurationAffinity/Anti-affinity rules for Pods
topologySpreadConstraints TopologySpreadConstraint arrayTopologySpreadConstraints specifies how to spread matching pods among the given topology.
More info:
https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/
resources ResourceRequirementsResources requirements of every generated Pod. Please refer to
https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
for more information.
ephemeralVolumesSizeLimit EphemeralVolumesSizeLimitConfigurationEphemeralVolumesSizeLimit allows the user to set the limits for the ephemeral
volumes
priorityClassName stringName 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 PrimaryUpdateStrategyDeployment strategy to follow to upgrade the primary server during a rolling
update procedure, after all replicas have been successfully updated:
it can be automated (unsupervised - default) or manual (supervised)
unsupervisedEnum: [unsupervised supervised]
primaryUpdateMethod PrimaryUpdateMethodMethod to follow to upgrade the primary server during a rolling
update procedure, after all replicas have been successfully updated:
it can be with a switchover (switchover) or in-place (restart - default).
Note: when using switchover, the operator will reject updates that change both
the image name and PostgreSQL configuration parameters simultaneously to avoid
configuration mismatches during the switchover process.
Enum: [switchover restart]
backup BackupConfigurationThe configuration to be used for backups
nodeMaintenanceWindow NodeMaintenanceWindowDefine a maintenance window for the Kubernetes nodes
licenseKey stringThe license key of the cluster. When empty, the cluster operates in
trial mode and after the expiry date (default 30 days) the operator
will cease any reconciliation attempt. For details, please refer to
the license agreement that comes with the operator.
licenseKeySecret SecretKeySelectorThe reference to the license key. When this is set it take precedence over LicenseKey.
monitoring MonitoringConfigurationThe configuration of the monitoring infrastructure of this cluster
externalClusters ExternalCluster arrayThe list of external clusters which are used in the configuration
logLevel stringThe instances' log level, one of the following values: error, warning, info (default), debug, traceinfoEnum: [error warning info debug trace]
projectedVolumeTemplate ProjectedVolumeSourceTemplate to be used to define projected volumes, projected volumes will be mounted
under /projected base folder
env EnvVar arrayEnv follows the Env format to pass environment variables
to the pods created in the cluster
envFrom EnvFromSource arrayEnvFrom follows the EnvFrom format to pass environment variables
sources to the pods to be used by Env
managed ManagedConfigurationThe configuration that is used by the portions of PostgreSQL that are managed by the instance manager
seccompProfile SeccompProfileThe SeccompProfile applied to every Pod and Container.
Defaults to: RuntimeDefault
podSecurityContext PodSecurityContextOverride the PodSecurityContext applied to every Pod of the cluster.
When set, this overrides the operator's default PodSecurityContext for the cluster.
If omitted, the operator defaults are used.
This field doesn't have any effect if SecurityContextConstraints are present.
securityContext SecurityContextOverride the SecurityContext applied to every Container in the Pod of the cluster.
When set, this overrides the operator's default Container SecurityContext.
If omitted, the operator defaults are used.
tablespaces TablespaceConfiguration arrayThe tablespaces configuration
enablePDB booleanManage 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.
true
plugins PluginConfiguration arrayThe plugins configuration, containing
any plugin to be loaded with the corresponding configuration
probes ProbesConfigurationThe configuration of the probes to be injected
in the PostgreSQL Pods.

ClusterStatus

ClusterStatus defines the observed state of a PostgreSQL cluster managed by EDB Postgres® AI for CloudNativePG™ Cluster.

Appears in:

FieldDescriptionRequiredDefaultValidation
instances integerThe total number of PVC Groups detected in the cluster. It may differ from the number of existing instance pods.
readyInstances integerThe total number of ready instances in the cluster. It is equal to the number of ready instance pods.
instancesStatus object (keys:PodStatus, values:string array)InstancesStatus indicates in which status the instances are
instancesReportedState object (keys:PodName, values:InstanceReportedState)The reported state of the instances during the last reconciliation loop
managedRolesStatus ManagedRolesManagedRolesStatus reports the state of the managed roles in the cluster
tablespacesStatus TablespaceState arrayTablespacesStatus reports the state of the declarative tablespaces in the cluster
timelineID integerThe timeline of the Postgres cluster
topology TopologyInstances topology.
latestGeneratedNode integerID of the latest generated node (used to avoid node name clashing)
currentPrimary stringCurrent primary instance
targetPrimary stringTarget primary instance, this is different from the previous one
during a switchover or a failover
lastPromotionToken stringLastPromotionToken is the last verified promotion token that
was used to promote a replica cluster
pvcCount integerHow many PVCs have been created by this cluster
jobCount integerHow many Jobs have been created by this cluster
danglingPVC string arrayList of all the PVCs created by this cluster and still available
which are not attached to a Pod
resizingPVC string arrayList of all the PVCs that have ResizingPVC condition.
initializingPVC string arrayList of all the PVCs that are being initialized by this cluster
healthyPVC string arrayList of all the PVCs not dangling nor initializing
unusablePVC string arrayList of all the PVCs that are unusable because another PVC is missing
licenseStatus StatusStatus of the license
writeService stringCurrent write pod
readService stringCurrent list of read pods
phase stringCurrent phase of the cluster
phaseReason stringReason for the current phase
secretsResourceVersion SecretsResourceVersionThe 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 ConfigMapResourceVersionThe 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 CertificatesStatusThe configuration for the CA and related certificates, initialized with defaults.
firstRecoverabilityPoint stringThe 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 object (keys:BackupMethod, values:Time)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 stringLast 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 object (keys:BackupMethod, values:Time)Last successful backup, stored as a date in RFC3339 format, per backup method type.
Deprecated: the field is not set for backup plugins.
lastFailedBackup stringLast failed backup, stored as a date in RFC3339 format.
Deprecated: the field is not set for backup plugins.
cloudNativePostgresqlCommitHash stringThe commit hash number of which this operator running
currentPrimaryTimestamp stringThe timestamp when the last actual promotion to primary has occurred
currentPrimaryFailingSinceTimestamp stringThe timestamp when the primary was detected to be unhealthy
This field is reported when .spec.failoverDelay is populated or during online upgrades
targetPrimaryTimestamp stringThe timestamp when the last request for a new primary has occurred
poolerIntegrations PoolerIntegrationsThe integration needed by poolers referencing the cluster
cloudNativePostgresqlOperatorHash stringThe hash of the binary of the operator
availableArchitectures AvailableArchitecture arrayAvailableArchitectures reports the available architectures of a cluster
conditions Condition arrayConditions for cluster object
instanceNames string arrayList of instance names in the cluster
onlineUpdateEnabled booleanOnlineUpdateEnabled shows if the online upgrade is enabled inside the cluster
image stringImage contains the image name used by the pods
pgDataImageInfo ImageInfoPGDataImageInfo contains the details of the latest image that has run on the current data directory.
pluginStatus PluginStatus arrayPluginStatus is the status of the loaded plugins
switchReplicaClusterStatus SwitchReplicaClusterStatusSwitchReplicaClusterStatus is the status of the switch to replica cluster
demotionToken stringDemotionToken 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 stringSystemID is the latest detected PostgreSQL SystemID

ConfigMapResourceVersion

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

Appears in:

FieldDescriptionRequiredDefaultValidation
metrics object (keys:string, values: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

Underlying type: string

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

Appears in:

FieldDescription
requiredDataDurabilityLevelRequired means that data durability is strictly enforced
preferredDataDurabilityLevelPreferred means that data durability is enforced
only when healthy replicas are available

DataSource

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

Appears in:

FieldDescriptionRequiredDefaultValidation
storage TypedLocalObjectReferenceConfiguration of the storage of the instancesTrue
walStorage TypedLocalObjectReferenceConfiguration of the storage for PostgreSQL WAL (Write-Ahead Log)
tablespaceStorage object (keys:string, values:TypedLocalObjectReference)Configuration of the storage for PostgreSQL tablespaces

Database

Database is the Schema for the databases API

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringDatabaseTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
spec DatabaseSpecSpecification of the desired Database.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
True
status DatabaseStatusMost 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

DatabaseObjectSpec

DatabaseObjectSpec contains the fields which are common to every database object

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName of the object (extension, schema, FDW, server)True
ensure EnsureOptionSpecifies whether an object (e.g schema) should be present or absent
in the database. If set to present, the object will be created if
it does not exist. If set to absent, the extension/schema will be
removed if it exists.
presentEnum: [present absent]

DatabaseObjectStatus

DatabaseObjectStatus is the status of the managed database objects

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringThe name of the objectTrue
applied booleanTrue of the object has been installed successfully in
the database
True
message stringMessage is the object reconciliation message

DatabaseReclaimPolicy

Underlying type: string

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

Appears in:

FieldDescription
deleteDatabaseReclaimDelete means the database will be deleted from its PostgreSQL Cluster on release
from its claim.
retainDatabaseReclaimRetain means the database will be left in its current phase for manual
reclamation by the administrator. The default policy is Retain.

DatabaseRoleRef

DatabaseRoleRef is a reference an a role available inside PostgreSQL

Appears in:

FieldDescriptionRequiredDefaultValidation
name string

DatabaseSpec

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

Appears in:

FieldDescriptionRequiredDefaultValidation
cluster LocalObjectReferenceThe name of the PostgreSQL cluster hosting the database.True
ensure EnsureOptionEnsure the PostgreSQL database is present or absent - defaults to "present".presentEnum: [present absent]
name stringThe name of the database to create inside PostgreSQL. This setting cannot be changed.True
owner stringMaps 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.
True
template stringMaps to the TEMPLATE parameter of CREATE DATABASE. This setting
cannot be changed. The name of the template from which to create
this database.
encoding stringMaps to the ENCODING parameter of CREATE DATABASE. This setting
cannot be changed. Character set encoding to use in the database.
locale stringMaps 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 stringMaps 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 stringMaps to the LC_COLLATE parameter of CREATE DATABASE. This
setting cannot be changed.
localeCType stringMaps to the LC_CTYPE parameter of CREATE DATABASE. This setting
cannot be changed.
icuLocale stringMaps 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 stringMaps 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 stringMaps 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 stringMaps to the COLLATION_VERSION parameter of CREATE DATABASE. This
setting cannot be changed.
isTemplate booleanMaps to the IS_TEMPLATE parameter of CREATE DATABASE and ALTER<br />DATABASE. If true, this database is considered a template and can
be cloned by any user with CREATEDB privileges.
allowConnections booleanMaps to the ALLOW_CONNECTIONS parameter of CREATE DATABASE and
ALTER DATABASE. If false then no one can connect to this database.
connectionLimit integerMaps 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 stringMaps 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 DatabaseReclaimPolicyThe policy for end-of-life maintenance of this database.retainEnum: [delete retain]
schemas SchemaSpec arrayThe list of schemas to be managed in the database
extensions ExtensionSpec arrayThe list of extensions to be managed in the database
fdws FDWSpec arrayThe list of foreign data wrappers to be managed in the database
servers ServerSpec arrayThe list of foreign servers to be managed in the database

DatabaseStatus

DatabaseStatus defines the observed state of Database

Appears in:

FieldDescriptionRequiredDefaultValidation
observedGeneration integerA sequence number representing the latest
desired state that was synchronized
applied booleanApplied is true if the database was reconciled correctly
message stringMessage is the reconciliation output message
schemas DatabaseObjectStatus arraySchemas is the status of the managed schemas
extensions DatabaseObjectStatus arrayExtensions is the status of the managed extensions
fdws DatabaseObjectStatus arrayFDWs is the status of the managed FDWs
servers DatabaseObjectStatus arrayServers is the status of the managed servers

EPASConfiguration

EPASConfiguration contains EDB Postgres Advanced Server specific configurations

Appears in:

FieldDescriptionRequiredDefaultValidation
audit booleanIf true enables edb_audit logging
tde TDEConfigurationTDE configuration

EmbeddedObjectMetadata

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

Appears in:

FieldDescriptionRequiredDefaultValidation
labels object (keys:string, values:string)
annotations object (keys:string, values:string)

EnsureOption

Underlying type: string

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

Appears in:

FieldDescription
present
absent

EphemeralVolumesSizeLimitConfiguration

EphemeralVolumesSizeLimitConfiguration contains the configuration of the ephemeral storage

Appears in:

FieldDescriptionRequiredDefaultValidation
shm QuantityShm is the size limit of the shared memory volume
temporaryData QuantityTemporaryData is the size limit of the temporary data volume

ExtensionConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringThe name of the extension, requiredTrueMinLength: 1
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$
image ImageVolumeSourceThe image containing the extension, requiredTrue
extension_control_path string arrayThe list of directories inside the image which should be added to extension_control_path.
If not defined, defaults to "/share".
dynamic_library_path string arrayThe list of directories inside the image which should be added to dynamic_library_path.
If not defined, defaults to "/lib".
ld_library_path string arrayThe list of directories inside the image which should be added to ld_library_path.

ExtensionSpec

ExtensionSpec configures an extension in a database

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName of the object (extension, schema, FDW, server)True
ensure EnsureOptionSpecifies whether an object (e.g schema) should be present or absent
in the database. If set to present, the object will be created if
it does not exist. If set to absent, the extension/schema will be
removed if it exists.
presentEnum: [present absent]
version stringThe version of the extension to install. If empty, the operator will
install the default version (whatever is specified in the
extension's control file)
True
schema stringThe 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.
True

ExternalCluster

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

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringThe server name, requiredTrue
connectionParameters object (keys:string, values:string)The list of connection parameters, such as dbname, host, username, etc
sslCert SecretKeySelectorThe reference to an SSL certificate to be used to connect to this
instance
sslKey SecretKeySelectorThe reference to an SSL private key to be used to connect to this
instance
sslRootCert SecretKeySelectorThe reference to an SSL CA public key to be used to connect to this
instance
password SecretKeySelectorThe reference to the password to be used to connect to the server.
If a password is provided, EDB Postgres® AI for CloudNativePG™ Cluster 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 BarmanObjectStoreConfigurationThe configuration for the barman-cloud tool suite
plugin PluginConfigurationThe configuration of the plugin that is taking care
of WAL archiving and backups for this external cluster
True

FDWSpec

FDWSpec configures an Foreign Data Wrapper in a database

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName of the object (extension, schema, FDW, server)True
ensure EnsureOptionSpecifies whether an object (e.g schema) should be present or absent
in the database. If set to present, the object will be created if
it does not exist. If set to absent, the extension/schema will be
removed if it exists.
presentEnum: [present absent]
handler stringName of the handler function (e.g., "postgres_fdw_handler").
This will be empty if no handler is specified. In that case,
the default handler is registered when the FDW extension is created.
validator stringName of the validator function (e.g., "postgres_fdw_validator").
This will be empty if no validator is specified. In that case,
the default validator is registered when the FDW extension is created.
owner stringOwner specifies the database role that will own the Foreign Data Wrapper.
The role must have superuser privileges in the target database.
options OptionSpec arrayOptions specifies the configuration options for the FDW.
usage UsageSpec arrayList of roles for which USAGE privileges on the FDW are granted or revoked.

FailoverQuorum

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.

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringFailoverQuorumTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
status FailoverQuorumStatusMost recently observed status of the failover quorum.

FailoverQuorumStatus

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

Appears in:

FieldDescriptionRequiredDefaultValidation
method stringContains the latest reported Method value.
standbyNames string arrayStandbyNames is the list of potentially synchronous
instance names.
standbyNumber integerStandbyNumber is the number of synchronous standbys that transactions
need to wait for replies from.
primary stringPrimary is the name of the primary instance that updated
this object the latest time.

ImageCatalog

ImageCatalog is the Schema for the imagecatalogs API

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringImageCatalogTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
spec ImageCatalogSpecSpecification of the desired behavior of the ImageCatalog.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
True

ImageCatalogRef

ImageCatalogRef defines the reference to a major version in an ImageCatalog

Appears in:

FieldDescriptionRequiredDefaultValidation
apiGroup stringAPIGroup is the group for the resource being referenced.
If APIGroup is not specified, the specified Kind must be in the core API group.
For any other third-party types, APIGroup is required.
kind stringKind is the type of resource being referencedTrue
name stringName is the name of resource being referencedTrue
major integerThe major version of PostgreSQL we want to use from the ImageCatalogTrue

ImageCatalogSpec

ImageCatalogSpec defines the desired ImageCatalog

Appears in:

FieldDescriptionRequiredDefaultValidation
images CatalogImage arrayList of CatalogImages available in the catalogTrueMaxItems: 8
MinItems: 1

ImageInfo

ImageInfo contains the information about a PostgreSQL image

Appears in:

FieldDescriptionRequiredDefaultValidation
image stringImage is the image nameTrue
majorVersion integerMajorVersion is the major version of the imageTrue

Import

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

Appears in:

FieldDescriptionRequiredDefaultValidation
source ImportSourceThe source of the importTrue
type SnapshotTypeThe import type. Can be microservice or monolith.TrueEnum: [microservice monolith]
databases string arrayThe databases to importTrue
roles string arrayThe roles to import
postImportApplicationSQL string arrayList 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 booleanWhen set to true, only the pre-data and post-data sections of
pg_restore are invoked, avoiding data import. Default: false.
pgDumpExtraOptions string arrayList of custom options to pass to the pg_dump command.
IMPORTANT: Use with caution. The operator does not validate these options,
and certain flags may interfere with its intended functionality or design.
You are responsible for ensuring that the provided options are compatible
with your environment and desired behavior.
pgRestoreExtraOptions string arrayList of custom options to pass to the pg_restore command.
IMPORTANT: Use with caution. The operator does not validate these options,
and certain flags may interfere with its intended functionality or design.
You are responsible for ensuring that the provided options are compatible
with your environment and desired behavior.
pgRestorePredataOptions string arrayCustom options to pass to the pg_restore command during the pre-data
section. This setting overrides the generic pgRestoreExtraOptions value.
IMPORTANT: Use with caution. The operator does not validate these options,
and certain flags may interfere with its intended functionality or design.
You are responsible for ensuring that the provided options are compatible
with your environment and desired behavior.
pgRestoreDataOptions string arrayCustom options to pass to the pg_restore command during the data
section. This setting overrides the generic pgRestoreExtraOptions value.
IMPORTANT: Use with caution. The operator does not validate these options,
and certain flags may interfere with its intended functionality or design.
You are responsible for ensuring that the provided options are compatible
with your environment and desired behavior.
pgRestorePostdataOptions string arrayCustom options to pass to the pg_restore command during the post-data
section. This setting overrides the generic pgRestoreExtraOptions value.
IMPORTANT: Use with caution. The operator does not validate these options,
and certain flags may interfere with its intended functionality or design.
You are responsible for ensuring that the provided options are compatible
with your environment and desired behavior.

ImportSource

ImportSource describes the source for the logical snapshot

Appears in:

FieldDescriptionRequiredDefaultValidation
externalCluster stringThe name of the externalCluster used for importTrue

InstanceID

InstanceID contains the information to identify an instance

Appears in:

FieldDescriptionRequiredDefaultValidation
podName stringThe pod name
ContainerID stringThe container ID

InstanceReportedState

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

Appears in:

FieldDescriptionRequiredDefaultValidation
isPrimary booleanindicates if an instance is the primary oneTrue
timeLineID integerindicates on which TimelineId the instance is
ip stringIP address of the instanceTrue

IsolationCheckConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
enabled booleanWhether primary isolation checking is enabled for the liveness probetrue
requestTimeout integerTimeout in milliseconds for requests during the primary isolation check1000
connectionTimeout integerTimeout in milliseconds for connections during the primary isolation check1000

LDAPBindAsAuth

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

Appears in:

FieldDescriptionRequiredDefaultValidation
prefix stringPrefix for the bind authentication option
suffix stringSuffix for the bind authentication option

LDAPBindSearchAuth

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

Appears in:

FieldDescriptionRequiredDefaultValidation
baseDN stringRoot DN to begin the user search
bindDN stringDN of the user to bind to the directory
bindPassword SecretKeySelectorSecret with the password for the user to bind to the directory
searchAttribute stringAttribute to match against the username
searchFilter stringSearch filter to use when doing the search+bind authentication

LDAPConfig

LDAPConfig contains the parameters needed for LDAP authentication

Appears in:

FieldDescriptionRequiredDefaultValidation
server stringLDAP hostname or IP address
port integerLDAP server port
scheme LDAPSchemeLDAP schema to be used, possible options are ldap and ldapsEnum: [ldap ldaps]
bindAsAuth LDAPBindAsAuthBind as authentication configuration
bindSearchAuth LDAPBindSearchAuthBind+Search authentication configuration
tls booleanSet to 'true' to enable LDAP over TLS. 'false' is default

LDAPScheme

Underlying type: string

LDAPScheme defines the possible schemes for LDAP

Appears in:

FieldDescription
ldap
ldaps

LivenessProbe

LivenessProbe is the configuration of the liveness probe

Appears in:

FieldDescriptionRequiredDefaultValidation
initialDelaySeconds integerNumber 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 integerNumber 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 integerHow often (in seconds) to perform the probe.
Default to 10 seconds. Minimum value is 1.
successThreshold integerMinimum 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 integerMinimum consecutive failures for the probe to be considered failed after having succeeded.
Defaults to 3. Minimum value is 1.
terminationGracePeriodSeconds integerOptional 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.
isolationCheck IsolationCheckConfigurationConfigure 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

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

Appears in:

FieldDescriptionRequiredDefaultValidation
roles RoleConfiguration arrayDatabase roles managed by the Cluster
services ManagedServicesServices roles managed by the Cluster

ManagedRoles

ManagedRoles tracks the status of a cluster's managed roles

Appears in:

FieldDescriptionRequiredDefaultValidation
byStatus object (keys:RoleStatus, values:string array)ByStatus gives the list of roles in each state
cannotReconcile object (keys:string, values:string array)CannotReconcile lists roles that cannot be reconciled in PostgreSQL,
with an explanation of the cause
passwordStatus object (keys:string, values:PasswordState)PasswordStatus gives the last transaction id and password secret version for each managed role

ManagedService

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

Appears in:

FieldDescriptionRequiredDefaultValidation
selectorType ServiceSelectorTypeSelectorType 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.
TrueEnum: [rw r ro]
updateStrategy ServiceUpdateStrategyUpdateStrategy describes how the service differences should be reconciledpatchEnum: [patch replace]
serviceTemplate ServiceTemplateSpecServiceTemplate is the template specification for the service.True

ManagedServices

ManagedServices represents the services managed by the cluster.

Appears in:

FieldDescriptionRequiredDefaultValidation
disabledDefaultServices ServiceSelectorType arrayDisabledDefaultServices is a list of service types that are disabled by default.
Valid values are "r", and "ro", representing read, and read-only services.
Enum: [rw r ro]
additional ManagedService arrayAdditional is a list of additional managed services specified by the user.

Metadata

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.

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringThe name of the resource. Only supported for certain types
labels object (keys:string, values: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 object (keys:string, values: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

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

Appears in:

FieldDescriptionRequiredDefaultValidation
disableDefaultQueries booleanWhether the default queries should be injected.
Set it to true if you don't want to inject default queries into the cluster.
Default: false.
false
customQueriesConfigMap ConfigMapKeySelector arrayThe list of config maps containing the custom queries
customQueriesSecret SecretKeySelector arrayThe list of secrets containing the custom queries
enablePodMonitor booleanEnable or disable the PodMonitor
Deprecated: This feature will be removed in an upcoming release. If
you need this functionality, you can create a PodMonitor manually.
false
tls ClusterMonitoringTLSConfigurationConfigure TLS communication for the metrics endpoint.
Changing tls.enabled option will force a rollout of all instances.
podMonitorMetricRelabelings RelabelConfig arrayThe list of metric relabelings for the PodMonitor. Applied to samples before ingestion.
Deprecated: This feature will be removed in an upcoming release. If
you need this functionality, you can create a PodMonitor manually.
podMonitorRelabelings RelabelConfig arrayThe list of relabelings for the PodMonitor. Applied to samples before scraping.
Deprecated: This feature will be removed in an upcoming release. If
you need this functionality, you can create a PodMonitor manually.
metricsQueriesTTL DurationThe interval during which metrics computed from queries are considered current.
Once it is exceeded, a new scrape will trigger a rerun
of the queries.
If not set, defaults to 30 seconds, in line with Prometheus scraping defaults.
Setting this to zero disables the caching mechanism and can cause heavy load on the PostgreSQL server.

NodeMaintenanceWindow

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.

Appears in:

FieldDescriptionRequiredDefaultValidation
reusePVC booleanReuse the existing PVC (wait for the node to come
up again) or not (recreate it elsewhere - when instances >1)
true
inProgress booleanIs there a node maintenance activity in progress?false

OnlineConfiguration

OnlineConfiguration contains the configuration parameters for the online volume snapshot

Appears in:

FieldDescriptionRequiredDefaultValidation
waitForArchive booleanIf 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.
true
immediateCheckpoint booleanControl 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.

OptionSpec

OptionSpec holds the name, value and the ensure field for an option

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName of the optionTrue
value stringValue of the optionTrue
ensure EnsureOptionSpecifies whether an option should be present or absent in
the database. If set to present, the option will be
created if it does not exist. If set to absent, the
option will be removed if it exists.
presentEnum: [present absent]

PasswordState

PasswordState represents the state of the password of a managed RoleConfiguration

Appears in:

FieldDescriptionRequiredDefaultValidation
transactionID integerthe last transaction ID to affect the role definition in PostgreSQL
resourceVersion stringthe resource version of the password secret

PgBouncerIntegrationStatus

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

Appears in:

FieldDescriptionRequiredDefaultValidation
secrets string array

PgBouncerPoolMode

Underlying type: string

PgBouncerPoolMode is the mode of PgBouncer

Validation:

  • Enum: [session transaction]

Appears in:

PgBouncerSecrets

PgBouncerSecrets contains the versions of the secrets used by pgbouncer

Appears in:

FieldDescriptionRequiredDefaultValidation
authQuery SecretVersionThe auth query secret version

PgBouncerSpec

PgBouncerSpec defines how to configure PgBouncer

Appears in:

FieldDescriptionRequiredDefaultValidation
poolMode PgBouncerPoolModeThe pool mode. Default: session.sessionEnum: [session transaction]
serverTLSSecret LocalObjectReferenceServerTLSSecret, when pointing to a TLS secret, provides pgbouncer's
server_tls_key_file and server_tls_cert_file, used when
authenticating against PostgreSQL.
serverCASecret LocalObjectReferenceServerCASecret provides PgBouncer’s server_tls_ca_file, the root
CA for validating PostgreSQL certificates
clientCASecret LocalObjectReferenceClientCASecret provides PgBouncer’s client_tls_ca_file, the root
CA for validating client certificates
clientTLSSecret LocalObjectReferenceClientTLSSecret provides PgBouncer’s client_tls_key_file (private key)
and client_tls_cert_file (certificate) used to accept client connections
authQuerySecret LocalObjectReferenceThe 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 CNP Cluster integration will be triggered.
Deprecated.
authQuery stringThe 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 CNP Cluster integration will be triggered.
parameters object (keys:string, values:string)Additional parameters to be passed to PgBouncer - please check
the CNP documentation for a list of options you can configure
pg_hba string arrayPostgreSQL Host Based Authentication rules (lines to be appended
to the pg_hba.conf file)
paused booleanWhen 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.
false

PluginConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName is the plugin nameTrue
enabled booleanEnabled is true if this plugin will be usedtrue
isWALArchiver booleanMarks the plugin as the WAL archiver. At most one plugin can be
designated as a WAL archiver. This cannot be enabled if the
.spec.backup.barmanObjectStore configuration is present.
false
parameters object (keys:string, values:string)Parameters is the configuration of the plugin

PluginStatus

PluginStatus is the status of a loaded plugin

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName is the name of the pluginTrue
version stringVersion is the version of the plugin loaded by the
latest reconciliation loop
True
capabilities string arrayCapabilities are the list of capabilities of the
plugin
operatorCapabilities string arrayOperatorCapabilities are the list of capabilities of the
plugin regarding the reconciler
walCapabilities string arrayWALCapabilities are the list of capabilities of the
plugin regarding the WAL management
backupCapabilities string arrayBackupCapabilities are the list of capabilities of the
plugin regarding the Backup management
restoreJobHookCapabilities string arrayRestoreJobHookCapabilities are the list of capabilities of the
plugin regarding the RestoreJobHook management
status stringStatus contain the status reported by the plugin through the SetStatusInCluster interface

PodName

Underlying type: string

PodName is the name of a Pod

Appears in:

PodStatus

Underlying type: string

PodStatus represent the possible status of pods

Appears in:

PodTemplateSpec

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

Appears in:

FieldDescriptionRequiredDefaultValidation
metadata MetadataRefer to Kubernetes API documentation for fields of metadata.
spec PodSpecSpecification 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

Underlying type: object

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

Appears in:

Pooler

Pooler is the Schema for the poolers API

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringPoolerTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
spec PoolerSpecSpecification of the desired behavior of the Pooler.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
True
status PoolerStatusMost 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

PoolerIntegrations

PoolerIntegrations encapsulates the needed integration for the poolers referencing the cluster

Appears in:

FieldDescriptionRequiredDefaultValidation
pgBouncerIntegration PgBouncerIntegrationStatus

PoolerMonitoringConfiguration

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.

Appears in:

FieldDescriptionRequiredDefaultValidation
enablePodMonitor booleanEnable or disable the PodMonitorfalse
podMonitorMetricRelabelings RelabelConfig arrayThe list of metric relabelings for the PodMonitor. Applied to samples before ingestion.
podMonitorRelabelings RelabelConfig arrayThe list of relabelings for the PodMonitor. Applied to samples before scraping.

PoolerSecrets

PoolerSecrets contains the versions of all the secrets used

Appears in:

FieldDescriptionRequiredDefaultValidation
clientTLS SecretVersionThe client TLS secret version
serverTLS SecretVersionThe server TLS secret version
serverCA SecretVersionThe server CA secret version
clientCA SecretVersionThe client CA secret version
pgBouncerSecrets PgBouncerSecretsThe version of the secrets used by PgBouncer

PoolerSpec

PoolerSpec defines the desired state of Pooler

Appears in:

FieldDescriptionRequiredDefaultValidation
cluster LocalObjectReferenceThis is the cluster reference on which the Pooler will work.
Pooler name should never match with any cluster name within the same namespace.
True
type PoolerTypeType of service to forward traffic to. Default: rw.rwEnum: [rw ro r]
instances integerThe number of replicas we want. Default: 1.1
template PodTemplateSpecThe template of the Pod to be created
pgbouncer PgBouncerSpecThe PgBouncer configurationTrue
deploymentStrategy DeploymentStrategyThe deployment strategy to use for pgbouncer to replace existing pods with new ones
monitoring PoolerMonitoringConfigurationThe configuration of the monitoring infrastructure of this pooler.
Deprecated: This feature will be removed in an upcoming release. If
you need this functionality, you can create a PodMonitor manually.
serviceTemplate ServiceTemplateSpecTemplate for the Service to be created

PoolerStatus

PoolerStatus defines the observed state of Pooler

Appears in:

FieldDescriptionRequiredDefaultValidation
secrets PoolerSecretsThe resource version of the config object
instances integerThe number of pods trying to be scheduled

PoolerType

Underlying type: string

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

Validation:

  • Enum: [rw ro r]

Appears in:

PostgresConfiguration

PostgresConfiguration defines the PostgreSQL configuration

Appears in:

FieldDescriptionRequiredDefaultValidation
parameters object (keys:string, values:string)PostgreSQL configuration options (postgresql.conf)
synchronous SynchronousReplicaConfigurationConfiguration of the PostgreSQL synchronous replication feature
pg_hba string arrayPostgreSQL Host Based Authentication rules (lines to be appended
to the pg_hba.conf file)
pg_ident string arrayPostgreSQL User Name Maps rules (lines to be appended
to the pg_ident.conf file)
epas EPASConfigurationEDB Postgres Advanced Server specific configurations
syncReplicaElectionConstraint SyncReplicaElectionConstraintsRequirements to be met by sync replicas. This will affect how the "synchronous_standby_names" parameter will be
set up.
shared_preload_libraries string arrayLists of shared preload libraries to add to the default ones
ldap LDAPConfigOptions to specify LDAP configuration
promotionTimeout integerSpecifies 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 booleanIf this parameter is true, the user will be able to invoke ALTER SYSTEM
on this EDB Postgres® AI for CloudNativePG™ Cluster Cluster.
This should only be used for debugging and troubleshooting.
Defaults to false.
extensions ExtensionConfiguration arrayThe configuration of the extensions to be added

PrimaryUpdateMethod

Underlying type: string

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

Appears in:

FieldDescription
switchoverPrimaryUpdateMethodSwitchover means that the operator will switchover to another updated
replica when it needs to upgrade the primary instance.
Note: when using this method, the operator will reject updates that change both
the image name and PostgreSQL configuration parameters simultaneously to avoid
configuration mismatches during the switchover process.
restartPrimaryUpdateMethodRestart means that the operator will restart the primary instance in-place
when it needs to upgrade it

PrimaryUpdateStrategy

Underlying type: string

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

Appears in:

FieldDescription
supervisedPrimaryUpdateStrategySupervised means that the operator need to wait for the
user to manually issue a switchover request before updating the primary
server (supervised)
unsupervisedPrimaryUpdateStrategyUnsupervised means that the operator will proceed with the
selected PrimaryUpdateMethod to another updated replica and then automatically update
the primary server (unsupervised, default)

Probe

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

Appears in:

FieldDescriptionRequiredDefaultValidation
initialDelaySeconds integerNumber 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 integerNumber 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 integerHow often (in seconds) to perform the probe.
Default to 10 seconds. Minimum value is 1.
successThreshold integerMinimum 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 integerMinimum consecutive failures for the probe to be considered failed after having succeeded.
Defaults to 3. Minimum value is 1.
terminationGracePeriodSeconds integerOptional 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

Underlying type: string

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

Appears in:

FieldDescription
pg_isreadyProbeStrategyPgIsReady means that the pg_isready tool is used to determine
whether PostgreSQL is started up
streamingProbeStrategyStreaming means that pg_isready is positive and the replica is
connected via streaming replication to the current primary and the lag is, if specified,
within the limit.
queryProbeStrategyQuery means that the server is able to connect to the superuser database
and able to execute a simple query like "-- ping"

ProbeWithStrategy

ProbeWithStrategy is the configuration of the startup probe

Appears in:

FieldDescriptionRequiredDefaultValidation
initialDelaySeconds integerNumber 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 integerNumber 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 integerHow often (in seconds) to perform the probe.
Default to 10 seconds. Minimum value is 1.
successThreshold integerMinimum 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 integerMinimum consecutive failures for the probe to be considered failed after having succeeded.
Defaults to 3. Minimum value is 1.
terminationGracePeriodSeconds integerOptional 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.
type ProbeStrategyTypeThe probe strategyEnum: [pg_isready streaming query]
maximumLag QuantityLag limit. Used only for streaming strategy

ProbesConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
startup ProbeWithStrategyThe startup probe configurationTrue
liveness LivenessProbeThe liveness probe configurationTrue
readiness ProbeWithStrategyThe readiness probe configurationTrue

Publication

Publication is the Schema for the publications API

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringPublicationTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
spec PublicationSpecTrue
status PublicationStatusTrue

PublicationReclaimPolicy

Underlying type: string

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

Appears in:

FieldDescription
deletePublicationReclaimDelete means the publication will be deleted from Kubernetes on release
from its claim.
retainPublicationReclaimRetain means the publication will be left in its current phase for manual
reclamation by the administrator. The default policy is Retain.

PublicationSpec

PublicationSpec defines the desired state of Publication

Appears in:

FieldDescriptionRequiredDefaultValidation
cluster LocalObjectReferenceThe name of the PostgreSQL cluster that identifies the "publisher"True
name stringThe name of the publication inside PostgreSQLTrue
dbname stringThe name of the database where the publication will be installed in
the "publisher" cluster
True
parameters object (keys:string, values:string)Publication parameters part of the WITH clause as expected by
PostgreSQL CREATE PUBLICATION command
target PublicationTargetTarget of the publication as expected by PostgreSQL CREATE PUBLICATION commandTrue
publicationReclaimPolicy PublicationReclaimPolicyThe policy for end-of-life maintenance of this publicationretainEnum: [delete retain]

PublicationStatus

PublicationStatus defines the observed state of Publication

Appears in:

FieldDescriptionRequiredDefaultValidation
observedGeneration integerA sequence number representing the latest
desired state that was synchronized
applied booleanApplied is true if the publication was reconciled correctly
message stringMessage is the reconciliation output message

PublicationTarget

PublicationTarget is what this publication should publish

Appears in:

FieldDescriptionRequiredDefaultValidation
allTables booleanMarks 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 arrayJust the following schema objectsMaxItems: 100000

PublicationTargetObject

PublicationTargetObject is an object to publish

Appears in:

FieldDescriptionRequiredDefaultValidation
tablesInSchema stringMarks 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 PublicationTargetTableSpecifies a list of tables to add to the publication. Corresponding
to FOR TABLE in PostgreSQL.

PublicationTargetTable

PublicationTargetTable is a table to publish

Appears in:

FieldDescriptionRequiredDefaultValidation
only booleanWhether to limit to the table only or include all its descendants
name stringThe table nameTrue
schema stringThe schema name
columns string arrayThe columns to publish

RecoveryTarget

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

Appears in:

FieldDescriptionRequiredDefaultValidation
backupID stringThe 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 stringThe target timeline ("latest" or a positive integer)
targetXID stringThe target transaction ID
targetName stringThe target name (to be previously created
with pg_create_restore_point)
targetLSN stringThe target LSN (Log Sequence Number)
targetTime stringThe target time as a timestamp in the RFC3339 standard
targetImmediate booleanEnd recovery as soon as a consistent state is reached
exclusive booleanSet the target to be exclusive. If omitted, defaults to false, so that
in Postgres, recovery_target_inclusive will be true

ReplicaClusterConfiguration

ReplicaClusterConfiguration encapsulates the configuration of a replica cluster

Appears in:

FieldDescriptionRequiredDefaultValidation
self stringSelf 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 stringPrimary defines which Cluster is defined to be the primary in the distributed PostgreSQL cluster, based on the
topology specified in externalClusters
source stringThe name of the external cluster which is the replication originTrueMinLength: 1
enabled booleanIf 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 stringA demotion token generated by an external cluster used to
check if the promotion requirements are met.
minApplyDelay DurationWhen 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

ReplicationSlotsConfiguration encapsulates the configuration of replication slots

Appears in:

FieldDescriptionRequiredDefaultValidation
highAvailability ReplicationSlotsHAConfigurationReplication slots for high availability configuration
updateInterval integerStandby will update the status of the local replication slots
every updateInterval seconds (default 30).
Minimum: 1
synchronizeReplicas SynchronizeReplicasConfigurationConfigures the synchronization of the user defined physical replication slots

ReplicationSlotsHAConfiguration

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.

Appears in:

FieldDescriptionRequiredDefaultValidation
enabled booleanIf 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 stringPrefix 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 _cnp_.
Pattern: ^[0-9a-z_]*$
synchronizeLogicalDecoding booleanWhen 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

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

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName of the roleTrue
comment stringDescription of the role
ensure EnsureOptionEnsure the role is present or absent - defaults to "present"presentEnum: [present absent]
passwordSecret LocalObjectReferenceSecret containing the password of the role (if present)
If null, the password will be ignored unless DisablePassword is set
connectionLimit integerIf the role can log in, this specifies how many concurrent
connections the role can make. -1 (the default) means no limit.
-1
validUntil TimeDate and time after which the role's password is no longer valid.
When omitted, the password will never expire (default).
inRoles string arrayList of one or more existing roles to which this role will be
immediately added as a new member. Default empty.
inherit booleanWhether a role "inherits" the privileges of roles it is a member of.
Defaults is true.
true
disablePassword booleanDisablePassword indicates that a role's password should be set to NULL in Postgres
superuser booleanWhether 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 booleanWhen 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 booleanWhether 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 booleanWhether 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 booleanWhether 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 booleanWhether a role bypasses every row-level security (RLS) policy.
Default is false.

RoleStatus

Underlying type: string

RoleStatus represents the status of a managed role in the cluster

Appears in:

FieldDescription
reconciledRoleStatusReconciled indicates the role in DB matches the Spec
not-managedRoleStatusNotManaged indicates the role is not in the Spec, therefore not managed
pending-reconciliationRoleStatusPendingReconciliation indicates the role in Spec requires updated/creation in DB
reservedRoleStatusReserved indicates this is one of the roles reserved by the operator. E.g. postgres

SQLRefs

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.

Appears in:

FieldDescriptionRequiredDefaultValidation
secretRefs SecretKeySelector arraySecretRefs holds a list of references to Secrets
configMapRefs ConfigMapKeySelector arrayConfigMapRefs holds a list of references to ConfigMaps

ScheduledBackup

ScheduledBackup is the Schema for the scheduledbackups API

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringScheduledBackupTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
spec ScheduledBackupSpecSpecification of the desired behavior of the ScheduledBackup.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
True
status ScheduledBackupStatusMost 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

ScheduledBackupSpec

ScheduledBackupSpec defines the desired state of ScheduledBackup

Appears in:

FieldDescriptionRequiredDefaultValidation
suspend booleanIf this backup is suspended or not
immediate booleanIf the first backup has to be immediately start after creation or not
schedule stringThe 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
True
cluster LocalObjectReferenceThe cluster to backupTrue
backupOwnerReference stringIndicates 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
noneEnum: [none self cluster]
target BackupTargetThe 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.
Enum: [primary prefer-standby]
method BackupMethodThe backup method to be used, possible options are barmanObjectStore,
volumeSnapshot or plugin. Defaults to: barmanObjectStore.
barmanObjectStoreEnum: [barmanObjectStore volumeSnapshot plugin]
pluginConfiguration BackupPluginConfigurationConfiguration parameters passed to the plugin managing this backup
online booleanWhether 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 OnlineConfigurationConfiguration parameters to control the online/hot backup with volume snapshots
Overrides the default settings specified in the cluster '.backup.volumeSnapshot.onlineConfiguration' stanza

ScheduledBackupStatus

ScheduledBackupStatus defines the observed state of ScheduledBackup

Appears in:

FieldDescriptionRequiredDefaultValidation
lastCheckTime TimeThe latest time the schedule
lastScheduleTime TimeInformation when was the last time that backup was successfully scheduled.
nextScheduleTime TimeNext time we will run a backup

SchemaSpec

SchemaSpec configures a schema in a database

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName of the object (extension, schema, FDW, server)True
ensure EnsureOptionSpecifies whether an object (e.g schema) should be present or absent
in the database. If set to present, the object will be created if
it does not exist. If set to absent, the extension/schema will be
removed if it exists.
presentEnum: [present absent]
owner stringThe 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.
True

SecretVersion

SecretVersion contains a secret name and its ResourceVersion

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringThe name of the secret
version stringThe ResourceVersion of the secret

SecretsResourceVersion

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

Appears in:

FieldDescriptionRequiredDefaultValidation
superuserSecretVersion stringThe resource version of the "postgres" user secret
replicationSecretVersion stringThe resource version of the "streaming_replica" user secret
applicationSecretVersion stringThe resource version of the "app" user secret
managedRoleSecretVersion object (keys:string, values:string)The resource versions of the managed roles secrets
caSecretVersion stringUnused. Retained for compatibility with old versions.
clientCaSecretVersion stringThe resource version of the PostgreSQL client-side CA secret version
serverCaSecretVersion stringThe resource version of the PostgreSQL server-side CA secret version
serverSecretVersion stringThe resource version of the PostgreSQL server-side secret version
barmanEndpointCA stringThe resource version of the Barman Endpoint CA if provided
externalClusterSecretVersion object (keys:string, values:string)The resource versions of the external cluster secrets
metrics object (keys:string, values: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

ServerSpec

ServerSpec configures a server of a foreign data wrapper

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName of the object (extension, schema, FDW, server)True
ensure EnsureOptionSpecifies whether an object (e.g schema) should be present or absent
in the database. If set to present, the object will be created if
it does not exist. If set to absent, the extension/schema will be
removed if it exists.
presentEnum: [present absent]
fdw stringThe name of the Foreign Data Wrapper (FDW)True
options OptionSpec arrayOptions specifies the configuration options for the server
(key is the option name, value is the option value).
usage UsageSpec arrayList of roles for which USAGE privileges on the server are granted or revoked.

ServiceAccountTemplate

ServiceAccountTemplate contains the template needed to generate the service accounts

Appears in:

FieldDescriptionRequiredDefaultValidation
metadata MetadataRefer to Kubernetes API documentation for fields of metadata.True

ServiceSelectorType

Underlying type: string

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

Validation:

  • Enum: [rw r ro]

Appears in:

FieldDescription
rwServiceSelectorTypeRW selects the read-write service.
rServiceSelectorTypeR selects the read service.
roServiceSelectorTypeRO selects the read-only service.

ServiceTemplateSpec

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

Appears in:

FieldDescriptionRequiredDefaultValidation
metadata MetadataRefer to Kubernetes API documentation for fields of metadata.
spec ServiceSpecSpecification 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

Underlying type: string

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

Validation:

  • Enum: [patch replace]

Appears in:

SnapshotOwnerReference

Underlying type: string

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

Appears in:

FieldDescription
noneSnapshotOwnerReferenceNone indicates that the snapshot does not have any owner reference.
backupSnapshotOwnerReferenceBackup indicates that the snapshot is owned by the backup resource.
clusterSnapshotOwnerReferenceCluster indicates that the snapshot is owned by the cluster resource.

SnapshotType

Underlying type: string

SnapshotType is a type of allowed import

Appears in:

FieldDescription
monolithMonolithSnapshotType indicates to execute the monolith clone typology
microserviceMicroserviceSnapshotType indicates to execute the microservice clone typology

StorageConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
storageClass stringStorageClass 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 stringSize 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 booleanResize existent PVCs, defaults to truetrue
pvcTemplate PersistentVolumeClaimSpecTemplate to be used to generate the Persistent Volume Claim

Subscription

Subscription is the Schema for the subscriptions API

FieldDescriptionRequiredDefaultValidation
apiVersion stringpostgresql.k8s.enterprisedb.io/v1True
kind stringSubscriptionTrue
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.True
spec SubscriptionSpecTrue
status SubscriptionStatusTrue

SubscriptionReclaimPolicy

Underlying type: string

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

Appears in:

FieldDescription
deleteSubscriptionReclaimDelete means the subscription will be deleted from Kubernetes on release
from its claim.
retainSubscriptionReclaimRetain means the subscription will be left in its current phase for manual
reclamation by the administrator. The default policy is Retain.

SubscriptionSpec

SubscriptionSpec defines the desired state of Subscription

Appears in:

FieldDescriptionRequiredDefaultValidation
cluster LocalObjectReferenceThe name of the PostgreSQL cluster that identifies the "subscriber"True
name stringThe name of the subscription inside PostgreSQLTrue
dbname stringThe name of the database where the publication will be installed in
the "subscriber" cluster
True
parameters object (keys:string, values: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 stringThe name of the publication inside the PostgreSQL database in the
"publisher"
True
publicationDBName stringThe name of the database containing the publication on the external
cluster. Defaults to the one in the external cluster definition.
externalClusterName stringThe name of the external cluster with the publication ("publisher")True
subscriptionReclaimPolicy SubscriptionReclaimPolicyThe policy for end-of-life maintenance of this subscriptionretainEnum: [delete retain]

SubscriptionStatus

SubscriptionStatus defines the observed state of Subscription

Appears in:

FieldDescriptionRequiredDefaultValidation
observedGeneration integerA sequence number representing the latest
desired state that was synchronized
applied booleanApplied is true if the subscription was reconciled correctly
message stringMessage is the reconciliation output message

SwitchReplicaClusterStatus

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

Appears in:

FieldDescriptionRequiredDefaultValidation
inProgress booleanInProgress indicates if there is an ongoing procedure of switching a cluster to a replica cluster.

SyncReplicaElectionConstraints

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.

Appears in:

FieldDescriptionRequiredDefaultValidation
nodeLabelsAntiAffinity string arrayA list of node labels values to extract and compare to evaluate if the pods reside in the same topology or not
enabled booleanThis flag enables the constraints for sync replicasTrue

SynchronizeReplicasConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
enabled booleanWhen set to true, every replication slot that is on the primary is synchronized on each standbyTrue
excludePatterns string arrayList of regular expression patterns to match the names of replication slots to be excluded (by default empty)

SynchronousReplicaConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
method SynchronousReplicaConfigurationMethodMethod to select synchronous replication standbys from the listed
servers, accepting 'any' (quorum-based synchronous replication) or
'first' (priority-based synchronous replication) as values.
TrueEnum: [any first]
number integerSpecifies the number of synchronous standby servers that
transactions must wait for responses from.
True
maxStandbyNamesFromCluster integerSpecifies the maximum number of local cluster pods that can be
automatically included in the synchronous_standby_names option in
PostgreSQL.
standbyNamesPre string arrayA 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 arrayA 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 DataDurabilityLevelIf 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).
Enum: [required preferred]
failoverQuorum booleanFailoverQuorum enables a quorum-based check before failover, improving
data durability and safety during failover events in EDB Postgres® AI for CloudNativePG™ Cluster-managed
PostgreSQL clusters.

SynchronousReplicaConfigurationMethod

Underlying type: string

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

Appears in:

TDEConfiguration

TDEConfiguration contains the Transparent Data Encryption configuration

Appears in:

FieldDescriptionRequiredDefaultValidation
enabled booleanTrue if we want to have TDE enabled
secretKeyRef SecretKeySelectorReference to the secret that contains the encryption key
wrapCommand SecretKeySelectorWrapCommand is the encrypt command provided by the user
unwrapCommand SecretKeySelectorUnwrapCommand is the decryption command provided by the user
passphraseCommand SecretKeySelectorPassphraseCommand is the command executed to get the passphrase that will be
passed to the OpenSSL command to encrypt and decrypt

TablespaceConfiguration

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

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringThe name of the tablespaceTrue
storage StorageConfigurationThe storage configuration for the tablespaceTrue
owner DatabaseRoleRefOwner is the PostgreSQL user owning the tablespace
temporary booleanWhen 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.
false

TablespaceState

TablespaceState represents the state of a tablespace in a cluster

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName is the name of the tablespaceTrue
owner stringOwner is the PostgreSQL user owning the tablespace
state TablespaceStatusState is the latest reconciliation stateTrue
error stringError is the reconciliation error, if any

TablespaceStatus

Underlying type: string

TablespaceStatus represents the status of a tablespace in the cluster

Appears in:

FieldDescription
reconciledTablespaceStatusReconciled indicates the tablespace in DB matches the Spec
pendingTablespaceStatusPendingReconciliation indicates the tablespace in Spec requires creation in the DB

Topology

Topology contains the cluster topology

Appears in:

FieldDescriptionRequiredDefaultValidation
instances object (keys:PodName, values:PodTopologyLabels)Instances contains the pod topology of the instances
nodesUsed integerNodesUsed 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 booleanSuccessfullyExtracted indicates if the topology data was extract. It is useful to enact fallback behaviors
in synchronous replica election in case of failures

UsageSpec

UsageSpec configures a usage for a foreign data wrapper

Appears in:

FieldDescriptionRequiredDefaultValidation
name stringName of the usageTrue
type UsageSpecTypeThe type of usagegrantEnum: [grant revoke]

UsageSpecType

Underlying type: string

UsageSpecType describes the type of usage specified in the usage field of the Database object.

Appears in:

FieldDescription
grantGrantUsageSpecType indicates a grant usage permission.
The default usage permission is grant.
revokeRevokeUsageSpecType indicates a revoke usage permission.

VolumeSnapshotConfiguration

VolumeSnapshotConfiguration represents the configuration for the execution of snapshot backups.

Appears in:

FieldDescriptionRequiredDefaultValidation
labels object (keys:string, values:string)Labels are key-value pairs that will be added to .metadata.labels snapshot resources.
annotations object (keys:string, values:string)Annotations key-value pairs that will be added to .metadata.annotations snapshot resources.
className stringClassName 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 stringWalClassName specifies the Snapshot Class to be used for the PG_WAL PersistentVolumeClaim.
tablespaceClassName object (keys:string, values:string)TablespaceClassName specifies the Snapshot Class to be used for the tablespaces.
defaults to the PGDATA Snapshot Class, if set
snapshotOwnerReference SnapshotOwnerReferenceSnapshotOwnerReference indicates the type of owner reference the snapshot should havenoneEnum: [none cluster backup]
online booleanWhether the default type of backup with volume snapshots is
online/hot (true, default) or offline/cold (false)
true
onlineConfiguration OnlineConfigurationConfiguration parameters to control the online/hot backup with volume snapshots{ immediateCheckpoint:false waitForArchive:true }