clusterforge/cnpg-operator/CustomResourceDefinition_clusters.postgresql.cnpg.io.yaml
2025-10-06 09:34:03 +00:00

3164 lines
130 KiB
YAML

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.2
helm.sh/resource-policy: keep
name: clusters.postgresql.cnpg.io
spec:
group: postgresql.cnpg.io
names:
kind: Cluster
listKind: ClusterList
plural: clusters
singular: cluster
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- jsonPath: .status.instances
name: Instances
type: integer
- jsonPath: .status.readyInstances
name: Ready
type: integer
- jsonPath: .status.phase
name: Status
type: string
- jsonPath: .status.currentPrimary
name: Primary
type: string
name: v1
schema:
openAPIV3Schema:
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
properties:
affinity:
properties:
additionalPodAffinity:
properties:
preferredDuringSchedulingIgnoredDuringExecution:
items:
properties:
podAffinityTerm:
properties:
labelSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
type: string
required:
- topologyKey
type: object
weight:
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
items:
properties:
labelSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
x-kubernetes-list-type: atomic
type: object
additionalPodAntiAffinity:
properties:
preferredDuringSchedulingIgnoredDuringExecution:
items:
properties:
podAffinityTerm:
properties:
labelSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
type: string
required:
- topologyKey
type: object
weight:
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
items:
properties:
labelSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
mismatchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
namespaceSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
namespaces:
items:
type: string
type: array
x-kubernetes-list-type: atomic
topologyKey:
type: string
required:
- topologyKey
type: object
type: array
x-kubernetes-list-type: atomic
type: object
enablePodAntiAffinity:
type: boolean
nodeAffinity:
properties:
preferredDuringSchedulingIgnoredDuringExecution:
items:
properties:
preference:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
x-kubernetes-map-type: atomic
weight:
format: int32
type: integer
required:
- preference
- weight
type: object
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
properties:
nodeSelectorTerms:
items:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchFields:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
type: object
x-kubernetes-map-type: atomic
type: array
x-kubernetes-list-type: atomic
required:
- nodeSelectorTerms
type: object
x-kubernetes-map-type: atomic
type: object
nodeSelector:
additionalProperties:
type: string
type: object
podAntiAffinityType:
type: string
tolerations:
items:
properties:
effect:
type: string
key:
type: string
operator:
type: string
tolerationSeconds:
format: int64
type: integer
value:
type: string
type: object
type: array
topologyKey:
type: string
type: object
backup:
properties:
barmanObjectStore:
properties:
azureCredentials:
properties:
connectionString:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
inheritFromAzureAD:
type: boolean
storageAccount:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
storageKey:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
storageSasToken:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: object
data:
properties:
additionalCommandArgs:
items:
type: string
type: array
compression:
enum:
- gzip
- bzip2
- snappy
type: string
encryption:
enum:
- AES256
- aws:kms
type: string
immediateCheckpoint:
type: boolean
jobs:
format: int32
minimum: 1
type: integer
type: object
destinationPath:
minLength: 1
type: string
endpointCA:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
endpointURL:
type: string
googleCredentials:
properties:
applicationCredentials:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
gkeEnvironment:
type: boolean
type: object
historyTags:
additionalProperties:
type: string
type: object
s3Credentials:
properties:
accessKeyId:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
inheritFromIAMRole:
type: boolean
region:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
secretAccessKey:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
sessionToken:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: object
serverName:
type: string
tags:
additionalProperties:
type: string
type: object
wal:
properties:
archiveAdditionalCommandArgs:
items:
type: string
type: array
compression:
enum:
- gzip
- bzip2
- snappy
type: string
encryption:
enum:
- AES256
- aws:kms
type: string
maxParallel:
minimum: 1
type: integer
restoreAdditionalCommandArgs:
items:
type: string
type: array
type: object
required:
- destinationPath
type: object
retentionPolicy:
pattern: ^[1-9][0-9]*[dwm]$
type: string
target:
default: prefer-standby
enum:
- primary
- prefer-standby
type: string
volumeSnapshot:
properties:
annotations:
additionalProperties:
type: string
type: object
className:
type: string
labels:
additionalProperties:
type: string
type: object
online:
default: true
type: boolean
onlineConfiguration:
default:
immediateCheckpoint: false
waitForArchive: true
properties:
immediateCheckpoint:
type: boolean
waitForArchive:
default: true
type: boolean
type: object
snapshotOwnerReference:
default: none
enum:
- none
- cluster
- backup
type: string
tablespaceClassName:
additionalProperties:
type: string
type: object
walClassName:
type: string
type: object
type: object
bootstrap:
properties:
initdb:
properties:
builtinLocale:
type: string
dataChecksums:
type: boolean
database:
type: string
encoding:
type: string
icuLocale:
type: string
icuRules:
type: string
import:
properties:
databases:
items:
type: string
type: array
pgDumpExtraOptions:
items:
type: string
type: array
pgRestoreExtraOptions:
items:
type: string
type: array
postImportApplicationSQL:
items:
type: string
type: array
roles:
items:
type: string
type: array
schemaOnly:
type: boolean
source:
properties:
externalCluster:
type: string
required:
- externalCluster
type: object
type:
enum:
- microservice
- monolith
type: string
required:
- databases
- source
- type
type: object
locale:
type: string
localeCType:
type: string
localeCollate:
type: string
localeProvider:
type: string
options:
items:
type: string
type: array
owner:
type: string
postInitApplicationSQL:
items:
type: string
type: array
postInitApplicationSQLRefs:
properties:
configMapRefs:
items:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: array
secretRefs:
items:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: array
type: object
postInitSQL:
items:
type: string
type: array
postInitSQLRefs:
properties:
configMapRefs:
items:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: array
secretRefs:
items:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: array
type: object
postInitTemplateSQL:
items:
type: string
type: array
postInitTemplateSQLRefs:
properties:
configMapRefs:
items:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: array
secretRefs:
items:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: array
type: object
secret:
properties:
name:
type: string
required:
- name
type: object
walSegmentSize:
maximum: 1024
minimum: 1
type: integer
type: object
x-kubernetes-validations:
- message: builtinLocale is only available when localeProvider is set to `builtin`
rule: '!has(self.builtinLocale) || self.localeProvider == ''builtin'''
- message: icuLocale is only available when localeProvider is set to `icu`
rule: '!has(self.icuLocale) || self.localeProvider == ''icu'''
- message: icuRules is only available when localeProvider is set to `icu`
rule: '!has(self.icuRules) || self.localeProvider == ''icu'''
pg_basebackup:
properties:
database:
type: string
owner:
type: string
secret:
properties:
name:
type: string
required:
- name
type: object
source:
minLength: 1
type: string
required:
- source
type: object
recovery:
properties:
backup:
properties:
endpointCA:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
name:
type: string
required:
- name
type: object
database:
type: string
owner:
type: string
recoveryTarget:
properties:
backupID:
type: string
exclusive:
type: boolean
targetImmediate:
type: boolean
targetLSN:
type: string
targetName:
type: string
targetTLI:
type: string
targetTime:
type: string
targetXID:
type: string
type: object
secret:
properties:
name:
type: string
required:
- name
type: object
source:
type: string
volumeSnapshots:
properties:
storage:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
tablespaceStorage:
additionalProperties:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
type: object
walStorage:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
required:
- storage
type: object
type: object
type: object
certificates:
properties:
clientCASecret:
type: string
replicationTLSSecret:
type: string
serverAltDNSNames:
items:
type: string
type: array
serverCASecret:
type: string
serverTLSSecret:
type: string
type: object
enablePDB:
default: true
type: boolean
enableSuperuserAccess:
default: false
type: boolean
env:
items:
properties:
name:
type: string
value:
type: string
valueFrom:
properties:
configMapKeyRef:
properties:
key:
type: string
name:
default: ""
type: string
optional:
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
fieldRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
resourceFieldRef:
properties:
containerName:
type: string
divisor:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
secretKeyRef:
properties:
key:
type: string
name:
default: ""
type: string
optional:
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
type: object
required:
- name
type: object
type: array
envFrom:
items:
properties:
configMapRef:
properties:
name:
default: ""
type: string
optional:
type: boolean
type: object
x-kubernetes-map-type: atomic
prefix:
type: string
secretRef:
properties:
name:
default: ""
type: string
optional:
type: boolean
type: object
x-kubernetes-map-type: atomic
type: object
type: array
ephemeralVolumeSource:
properties:
volumeClaimTemplate:
properties:
metadata:
type: object
spec:
properties:
accessModes:
items:
type: string
type: array
x-kubernetes-list-type: atomic
dataSource:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
dataSourceRef:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
required:
- kind
- name
type: object
resources:
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
type: object
selector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
storageClassName:
type: string
volumeAttributesClassName:
type: string
volumeMode:
type: string
volumeName:
type: string
type: object
required:
- spec
type: object
type: object
ephemeralVolumesSizeLimit:
properties:
shm:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
temporaryData:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
externalClusters:
items:
properties:
barmanObjectStore:
properties:
azureCredentials:
properties:
connectionString:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
inheritFromAzureAD:
type: boolean
storageAccount:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
storageKey:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
storageSasToken:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: object
data:
properties:
additionalCommandArgs:
items:
type: string
type: array
compression:
enum:
- gzip
- bzip2
- snappy
type: string
encryption:
enum:
- AES256
- aws:kms
type: string
immediateCheckpoint:
type: boolean
jobs:
format: int32
minimum: 1
type: integer
type: object
destinationPath:
minLength: 1
type: string
endpointCA:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
endpointURL:
type: string
googleCredentials:
properties:
applicationCredentials:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
gkeEnvironment:
type: boolean
type: object
historyTags:
additionalProperties:
type: string
type: object
s3Credentials:
properties:
accessKeyId:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
inheritFromIAMRole:
type: boolean
region:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
secretAccessKey:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
sessionToken:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: object
serverName:
type: string
tags:
additionalProperties:
type: string
type: object
wal:
properties:
archiveAdditionalCommandArgs:
items:
type: string
type: array
compression:
enum:
- gzip
- bzip2
- snappy
type: string
encryption:
enum:
- AES256
- aws:kms
type: string
maxParallel:
minimum: 1
type: integer
restoreAdditionalCommandArgs:
items:
type: string
type: array
type: object
required:
- destinationPath
type: object
connectionParameters:
additionalProperties:
type: string
type: object
name:
type: string
password:
properties:
key:
type: string
name:
default: ""
type: string
optional:
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
plugin:
properties:
enabled:
default: true
type: boolean
isWALArchiver:
default: false
type: boolean
name:
type: string
parameters:
additionalProperties:
type: string
type: object
required:
- name
type: object
sslCert:
properties:
key:
type: string
name:
default: ""
type: string
optional:
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
sslKey:
properties:
key:
type: string
name:
default: ""
type: string
optional:
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
sslRootCert:
properties:
key:
type: string
name:
default: ""
type: string
optional:
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
required:
- name
type: object
type: array
failoverDelay:
default: 0
format: int32
type: integer
imageCatalogRef:
properties:
apiGroup:
type: string
kind:
type: string
major:
type: integer
x-kubernetes-validations:
- message: Major is immutable
rule: self == oldSelf
name:
type: string
required:
- kind
- major
- name
type: object
x-kubernetes-map-type: atomic
x-kubernetes-validations:
- message: Only image catalogs are supported
rule: self.kind == 'ImageCatalog' || self.kind == 'ClusterImageCatalog'
- message: Only image catalogs are supported
rule: self.apiGroup == 'postgresql.cnpg.io'
imageName:
type: string
imagePullPolicy:
type: string
imagePullSecrets:
items:
properties:
name:
type: string
required:
- name
type: object
type: array
inheritedMetadata:
properties:
annotations:
additionalProperties:
type: string
type: object
labels:
additionalProperties:
type: string
type: object
type: object
instances:
default: 1
minimum: 1
type: integer
livenessProbeTimeout:
format: int32
type: integer
logLevel:
default: info
enum:
- error
- warning
- info
- debug
- trace
type: string
managed:
properties:
roles:
items:
properties:
bypassrls:
type: boolean
comment:
type: string
connectionLimit:
default: -1
format: int64
type: integer
createdb:
type: boolean
createrole:
type: boolean
disablePassword:
type: boolean
ensure:
default: present
enum:
- present
- absent
type: string
inRoles:
items:
type: string
type: array
inherit:
default: true
type: boolean
login:
type: boolean
name:
type: string
passwordSecret:
properties:
name:
type: string
required:
- name
type: object
replication:
type: boolean
superuser:
type: boolean
validUntil:
format: date-time
type: string
required:
- name
type: object
type: array
services:
properties:
additional:
items:
properties:
selectorType:
enum:
- rw
- r
- ro
type: string
serviceTemplate:
properties:
metadata:
properties:
annotations:
additionalProperties:
type: string
type: object
labels:
additionalProperties:
type: string
type: object
name:
type: string
type: object
spec:
properties:
allocateLoadBalancerNodePorts:
type: boolean
clusterIP:
type: string
clusterIPs:
items:
type: string
type: array
x-kubernetes-list-type: atomic
externalIPs:
items:
type: string
type: array
x-kubernetes-list-type: atomic
externalName:
type: string
externalTrafficPolicy:
type: string
healthCheckNodePort:
format: int32
type: integer
internalTrafficPolicy:
type: string
ipFamilies:
items:
type: string
type: array
x-kubernetes-list-type: atomic
ipFamilyPolicy:
type: string
loadBalancerClass:
type: string
loadBalancerIP:
type: string
loadBalancerSourceRanges:
items:
type: string
type: array
x-kubernetes-list-type: atomic
ports:
items:
properties:
appProtocol:
type: string
name:
type: string
nodePort:
format: int32
type: integer
port:
format: int32
type: integer
protocol:
default: TCP
type: string
targetPort:
anyOf:
- type: integer
- type: string
x-kubernetes-int-or-string: true
required:
- port
type: object
type: array
x-kubernetes-list-map-keys:
- port
- protocol
x-kubernetes-list-type: map
publishNotReadyAddresses:
type: boolean
selector:
additionalProperties:
type: string
type: object
x-kubernetes-map-type: atomic
sessionAffinity:
type: string
sessionAffinityConfig:
properties:
clientIP:
properties:
timeoutSeconds:
format: int32
type: integer
type: object
type: object
trafficDistribution:
type: string
type:
type: string
type: object
type: object
updateStrategy:
default: patch
enum:
- patch
- replace
type: string
required:
- selectorType
- serviceTemplate
type: object
type: array
disabledDefaultServices:
items:
enum:
- rw
- r
- ro
type: string
type: array
type: object
type: object
maxSyncReplicas:
default: 0
minimum: 0
type: integer
minSyncReplicas:
default: 0
minimum: 0
type: integer
monitoring:
properties:
customQueriesConfigMap:
items:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: array
customQueriesSecret:
items:
properties:
key:
type: string
name:
type: string
required:
- key
- name
type: object
type: array
disableDefaultQueries:
default: false
type: boolean
enablePodMonitor:
default: false
type: boolean
podMonitorMetricRelabelings:
items:
properties:
action:
default: replace
enum:
- replace
- Replace
- keep
- Keep
- drop
- Drop
- hashmod
- HashMod
- labelmap
- LabelMap
- labeldrop
- LabelDrop
- labelkeep
- LabelKeep
- lowercase
- Lowercase
- uppercase
- Uppercase
- keepequal
- KeepEqual
- dropequal
- DropEqual
type: string
modulus:
format: int64
type: integer
regex:
type: string
replacement:
type: string
separator:
type: string
sourceLabels:
items:
pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
type: string
type: array
targetLabel:
type: string
type: object
type: array
podMonitorRelabelings:
items:
properties:
action:
default: replace
enum:
- replace
- Replace
- keep
- Keep
- drop
- Drop
- hashmod
- HashMod
- labelmap
- LabelMap
- labeldrop
- LabelDrop
- labelkeep
- LabelKeep
- lowercase
- Lowercase
- uppercase
- Uppercase
- keepequal
- KeepEqual
- dropequal
- DropEqual
type: string
modulus:
format: int64
type: integer
regex:
type: string
replacement:
type: string
separator:
type: string
sourceLabels:
items:
pattern: ^[a-zA-Z_][a-zA-Z0-9_]*$
type: string
type: array
targetLabel:
type: string
type: object
type: array
tls:
properties:
enabled:
default: false
type: boolean
type: object
type: object
nodeMaintenanceWindow:
properties:
inProgress:
default: false
type: boolean
reusePVC:
default: true
type: boolean
type: object
plugins:
items:
properties:
enabled:
default: true
type: boolean
isWALArchiver:
default: false
type: boolean
name:
type: string
parameters:
additionalProperties:
type: string
type: object
required:
- name
type: object
type: array
postgresGID:
default: 26
format: int64
type: integer
postgresUID:
default: 26
format: int64
type: integer
postgresql:
properties:
enableAlterSystem:
type: boolean
ldap:
properties:
bindAsAuth:
properties:
prefix:
type: string
suffix:
type: string
type: object
bindSearchAuth:
properties:
baseDN:
type: string
bindDN:
type: string
bindPassword:
properties:
key:
type: string
name:
default: ""
type: string
optional:
type: boolean
required:
- key
type: object
x-kubernetes-map-type: atomic
searchAttribute:
type: string
searchFilter:
type: string
type: object
port:
type: integer
scheme:
enum:
- ldap
- ldaps
type: string
server:
type: string
tls:
type: boolean
type: object
parameters:
additionalProperties:
type: string
type: object
pg_hba:
items:
type: string
type: array
pg_ident:
items:
type: string
type: array
promotionTimeout:
format: int32
type: integer
shared_preload_libraries:
items:
type: string
type: array
syncReplicaElectionConstraint:
properties:
enabled:
type: boolean
nodeLabelsAntiAffinity:
items:
type: string
type: array
required:
- enabled
type: object
synchronous:
properties:
dataDurability:
default: required
enum:
- required
- preferred
type: string
maxStandbyNamesFromCluster:
type: integer
method:
enum:
- any
- first
type: string
number:
type: integer
x-kubernetes-validations:
- message: The number of synchronous replicas should be greater than zero
rule: self > 0
standbyNamesPost:
items:
type: string
type: array
standbyNamesPre:
items:
type: string
type: array
required:
- method
- number
type: object
x-kubernetes-validations:
- message: dataDurability set to 'preferred' requires empty 'standbyNamesPre' and empty 'standbyNamesPost'
rule: self.dataDurability!='preferred' || ((!has(self.standbyNamesPre) || self.standbyNamesPre.size()==0) && (!has(self.standbyNamesPost) || self.standbyNamesPost.size()==0))
type: object
primaryUpdateMethod:
default: restart
enum:
- switchover
- restart
type: string
primaryUpdateStrategy:
default: unsupervised
enum:
- unsupervised
- supervised
type: string
priorityClassName:
type: string
probes:
properties:
liveness:
properties:
failureThreshold:
format: int32
type: integer
initialDelaySeconds:
format: int32
type: integer
periodSeconds:
format: int32
type: integer
successThreshold:
format: int32
type: integer
terminationGracePeriodSeconds:
format: int64
type: integer
timeoutSeconds:
format: int32
type: integer
type: object
readiness:
properties:
failureThreshold:
format: int32
type: integer
initialDelaySeconds:
format: int32
type: integer
periodSeconds:
format: int32
type: integer
successThreshold:
format: int32
type: integer
terminationGracePeriodSeconds:
format: int64
type: integer
timeoutSeconds:
format: int32
type: integer
type: object
startup:
properties:
failureThreshold:
format: int32
type: integer
initialDelaySeconds:
format: int32
type: integer
periodSeconds:
format: int32
type: integer
successThreshold:
format: int32
type: integer
terminationGracePeriodSeconds:
format: int64
type: integer
timeoutSeconds:
format: int32
type: integer
type: object
type: object
projectedVolumeTemplate:
properties:
defaultMode:
format: int32
type: integer
sources:
items:
properties:
clusterTrustBundle:
properties:
labelSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
name:
type: string
optional:
type: boolean
path:
type: string
signerName:
type: string
required:
- path
type: object
configMap:
properties:
items:
items:
properties:
key:
type: string
mode:
format: int32
type: integer
path:
type: string
required:
- key
- path
type: object
type: array
x-kubernetes-list-type: atomic
name:
default: ""
type: string
optional:
type: boolean
type: object
x-kubernetes-map-type: atomic
downwardAPI:
properties:
items:
items:
properties:
fieldRef:
properties:
apiVersion:
type: string
fieldPath:
type: string
required:
- fieldPath
type: object
x-kubernetes-map-type: atomic
mode:
format: int32
type: integer
path:
type: string
resourceFieldRef:
properties:
containerName:
type: string
divisor:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
resource:
type: string
required:
- resource
type: object
x-kubernetes-map-type: atomic
required:
- path
type: object
type: array
x-kubernetes-list-type: atomic
type: object
secret:
properties:
items:
items:
properties:
key:
type: string
mode:
format: int32
type: integer
path:
type: string
required:
- key
- path
type: object
type: array
x-kubernetes-list-type: atomic
name:
default: ""
type: string
optional:
type: boolean
type: object
x-kubernetes-map-type: atomic
serviceAccountToken:
properties:
audience:
type: string
expirationSeconds:
format: int64
type: integer
path:
type: string
required:
- path
type: object
type: object
type: array
x-kubernetes-list-type: atomic
type: object
replica:
properties:
enabled:
type: boolean
minApplyDelay:
type: string
primary:
type: string
promotionToken:
type: string
self:
type: string
source:
minLength: 1
type: string
required:
- source
type: object
replicationSlots:
default:
highAvailability:
enabled: true
properties:
highAvailability:
default:
enabled: true
properties:
enabled:
default: true
type: boolean
slotPrefix:
default: _cnpg_
pattern: ^[0-9a-z_]*$
type: string
type: object
synchronizeReplicas:
properties:
enabled:
default: true
type: boolean
excludePatterns:
items:
type: string
type: array
required:
- enabled
type: object
updateInterval:
default: 30
minimum: 1
type: integer
type: object
resources:
properties:
claims:
items:
properties:
name:
type: string
request:
type: string
required:
- name
type: object
type: array
x-kubernetes-list-map-keys:
- name
x-kubernetes-list-type: map
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
type: object
schedulerName:
type: string
seccompProfile:
properties:
localhostProfile:
type: string
type:
type: string
required:
- type
type: object
serviceAccountTemplate:
properties:
metadata:
properties:
annotations:
additionalProperties:
type: string
type: object
labels:
additionalProperties:
type: string
type: object
name:
type: string
type: object
required:
- metadata
type: object
smartShutdownTimeout:
default: 180
format: int32
type: integer
startDelay:
default: 3600
format: int32
type: integer
stopDelay:
default: 1800
format: int32
type: integer
storage:
properties:
pvcTemplate:
properties:
accessModes:
items:
type: string
type: array
x-kubernetes-list-type: atomic
dataSource:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
dataSourceRef:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
required:
- kind
- name
type: object
resources:
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
type: object
selector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
storageClassName:
type: string
volumeAttributesClassName:
type: string
volumeMode:
type: string
volumeName:
type: string
type: object
resizeInUseVolumes:
default: true
type: boolean
size:
type: string
storageClass:
type: string
type: object
superuserSecret:
properties:
name:
type: string
required:
- name
type: object
switchoverDelay:
default: 3600
format: int32
type: integer
tablespaces:
items:
properties:
name:
type: string
owner:
properties:
name:
type: string
type: object
storage:
properties:
pvcTemplate:
properties:
accessModes:
items:
type: string
type: array
x-kubernetes-list-type: atomic
dataSource:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
dataSourceRef:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
required:
- kind
- name
type: object
resources:
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
type: object
selector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
storageClassName:
type: string
volumeAttributesClassName:
type: string
volumeMode:
type: string
volumeName:
type: string
type: object
resizeInUseVolumes:
default: true
type: boolean
size:
type: string
storageClass:
type: string
type: object
temporary:
default: false
type: boolean
required:
- name
- storage
type: object
type: array
topologySpreadConstraints:
items:
properties:
labelSelector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
matchLabelKeys:
items:
type: string
type: array
x-kubernetes-list-type: atomic
maxSkew:
format: int32
type: integer
minDomains:
format: int32
type: integer
nodeAffinityPolicy:
type: string
nodeTaintsPolicy:
type: string
topologyKey:
type: string
whenUnsatisfiable:
type: string
required:
- maxSkew
- topologyKey
- whenUnsatisfiable
type: object
type: array
walStorage:
properties:
pvcTemplate:
properties:
accessModes:
items:
type: string
type: array
x-kubernetes-list-type: atomic
dataSource:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
required:
- kind
- name
type: object
x-kubernetes-map-type: atomic
dataSourceRef:
properties:
apiGroup:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
required:
- kind
- name
type: object
resources:
properties:
limits:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
requests:
additionalProperties:
anyOf:
- type: integer
- type: string
pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
x-kubernetes-int-or-string: true
type: object
type: object
selector:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
x-kubernetes-list-type: atomic
required:
- key
- operator
type: object
type: array
x-kubernetes-list-type: atomic
matchLabels:
additionalProperties:
type: string
type: object
type: object
x-kubernetes-map-type: atomic
storageClassName:
type: string
volumeAttributesClassName:
type: string
volumeMode:
type: string
volumeName:
type: string
type: object
resizeInUseVolumes:
default: true
type: boolean
size:
type: string
storageClass:
type: string
type: object
required:
- instances
type: object
x-kubernetes-validations:
- message: imageName and imageCatalogRef are mutually exclusive
rule: '!(has(self.imageCatalogRef) && has(self.imageName))'
status:
properties:
availableArchitectures:
items:
properties:
goArch:
type: string
hash:
type: string
required:
- goArch
- hash
type: object
type: array
azurePVCUpdateEnabled:
type: boolean
certificates:
properties:
clientCASecret:
type: string
expirations:
additionalProperties:
type: string
type: object
replicationTLSSecret:
type: string
serverAltDNSNames:
items:
type: string
type: array
serverCASecret:
type: string
serverTLSSecret:
type: string
type: object
cloudNativePGCommitHash:
type: string
cloudNativePGOperatorHash:
type: string
conditions:
items:
properties:
lastTransitionTime:
format: date-time
type: string
message:
maxLength: 32768
type: string
observedGeneration:
format: int64
minimum: 0
type: integer
reason:
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
enum:
- "True"
- "False"
- Unknown
type: string
type:
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
type: array
configMapResourceVersion:
properties:
metrics:
additionalProperties:
type: string
type: object
type: object
currentPrimary:
type: string
currentPrimaryFailingSinceTimestamp:
type: string
currentPrimaryTimestamp:
type: string
danglingPVC:
items:
type: string
type: array
demotionToken:
type: string
firstRecoverabilityPoint:
type: string
firstRecoverabilityPointByMethod:
additionalProperties:
format: date-time
type: string
type: object
healthyPVC:
items:
type: string
type: array
image:
type: string
initializingPVC:
items:
type: string
type: array
instanceNames:
items:
type: string
type: array
instances:
type: integer
instancesReportedState:
additionalProperties:
properties:
isPrimary:
type: boolean
timeLineID:
type: integer
required:
- isPrimary
type: object
type: object
instancesStatus:
additionalProperties:
items:
type: string
type: array
type: object
jobCount:
format: int32
type: integer
lastFailedBackup:
type: string
lastPromotionToken:
type: string
lastSuccessfulBackup:
type: string
lastSuccessfulBackupByMethod:
additionalProperties:
format: date-time
type: string
type: object
latestGeneratedNode:
type: integer
managedRolesStatus:
properties:
byStatus:
additionalProperties:
items:
type: string
type: array
type: object
cannotReconcile:
additionalProperties:
items:
type: string
type: array
type: object
passwordStatus:
additionalProperties:
properties:
resourceVersion:
type: string
transactionID:
format: int64
type: integer
type: object
type: object
type: object
onlineUpdateEnabled:
type: boolean
phase:
type: string
phaseReason:
type: string
pluginStatus:
items:
properties:
backupCapabilities:
items:
type: string
type: array
capabilities:
items:
type: string
type: array
name:
type: string
operatorCapabilities:
items:
type: string
type: array
restoreJobHookCapabilities:
items:
type: string
type: array
status:
type: string
version:
type: string
walCapabilities:
items:
type: string
type: array
required:
- name
- version
type: object
type: array
poolerIntegrations:
properties:
pgBouncerIntegration:
properties:
secrets:
items:
type: string
type: array
type: object
type: object
pvcCount:
format: int32
type: integer
readService:
type: string
readyInstances:
type: integer
resizingPVC:
items:
type: string
type: array
secretsResourceVersion:
properties:
applicationSecretVersion:
type: string
barmanEndpointCA:
type: string
caSecretVersion:
type: string
clientCaSecretVersion:
type: string
externalClusterSecretVersion:
additionalProperties:
type: string
type: object
managedRoleSecretVersion:
additionalProperties:
type: string
type: object
metrics:
additionalProperties:
type: string
type: object
replicationSecretVersion:
type: string
serverCaSecretVersion:
type: string
serverSecretVersion:
type: string
superuserSecretVersion:
type: string
type: object
switchReplicaClusterStatus:
properties:
inProgress:
type: boolean
type: object
tablespacesStatus:
items:
properties:
error:
type: string
name:
type: string
owner:
type: string
state:
type: string
required:
- name
- state
type: object
type: array
targetPrimary:
type: string
targetPrimaryTimestamp:
type: string
timelineID:
type: integer
topology:
properties:
instances:
additionalProperties:
additionalProperties:
type: string
type: object
type: object
nodesUsed:
format: int32
type: integer
successfullyExtracted:
type: boolean
type: object
unusablePVC:
items:
type: string
type: array
writeService:
type: string
type: object
required:
- metadata
- spec
type: object
served: true
storage: true
subresources:
scale:
specReplicasPath: .spec.instances
statusReplicasPath: .status.instances
status: {}