Sort postgresql.crd.yaml

Signed-off-by: Mikkel Oscar Lyderik Larsen <mikkel.larsen@zalando.de>
This commit is contained in:
Mikkel Oscar Lyderik Larsen 2025-12-02 19:57:50 +01:00
parent 0a44252534
commit 06ac340fe0
1 changed files with 298 additions and 294 deletions

View File

@ -5,191 +5,177 @@ metadata:
spec: spec:
group: acid.zalan.do group: acid.zalan.do
names: names:
categories:
- all
kind: postgresql kind: postgresql
listKind: postgresqlList listKind: postgresqlList
plural: postgresqls plural: postgresqls
singular: postgresql
shortNames: shortNames:
- pg - pg
categories: singular: postgresql
- all
scope: Namespaced scope: Namespaced
versions: versions:
- name: v1 - additionalPrinterColumns:
served: true - description: Team responsible for Postgres cluster
storage: true
subresources:
status: {}
additionalPrinterColumns:
- name: Team
type: string
description: Team responsible for Postgres cluster
jsonPath: .spec.teamId jsonPath: .spec.teamId
- name: Version name: Team
type: string type: string
description: PostgreSQL version - description: PostgreSQL version
jsonPath: .spec.postgresql.version jsonPath: .spec.postgresql.version
- name: Pods name: Version
type: integer type: string
description: Number of Pods per Postgres cluster - description: Number of Pods per Postgres cluster
jsonPath: .spec.numberOfInstances jsonPath: .spec.numberOfInstances
- name: Volume name: Pods
type: string type: integer
description: Size of the bound volume - description: Size of the bound volume
jsonPath: .spec.volume.size jsonPath: .spec.volume.size
- name: CPU-Request name: Volume
type: string type: string
description: Requested CPU for Postgres containers - description: Requested CPU for Postgres containers
jsonPath: .spec.resources.requests.cpu jsonPath: .spec.resources.requests.cpu
- name: Memory-Request name: CPU-Request
type: string type: string
description: Requested memory for Postgres containers - description: Requested memory for Postgres containers
jsonPath: .spec.resources.requests.memory jsonPath: .spec.resources.requests.memory
- name: Age name: Memory-Request
type: date
jsonPath: .metadata.creationTimestamp
- name: Status
type: string type: string
description: Current sync status of postgresql resource - jsonPath: .metadata.creationTimestamp
name: Age
type: date
- description: Current sync status of postgresql resource
jsonPath: .status.PostgresClusterStatus jsonPath: .status.PostgresClusterStatus
name: Status
type: string
name: v1
schema: schema:
openAPIV3Schema: openAPIV3Schema:
type: object
required:
- kind
- apiVersion
- spec
properties: properties:
kind:
type: string
enum:
- postgresql
apiVersion: apiVersion:
type: string
enum: enum:
- acid.zalan.do/v1 - acid.zalan.do/v1
type: string
kind:
enum:
- postgresql
type: string
spec: spec:
type: object
required:
- numberOfInstances
- teamId
- postgresql
- volume
properties: properties:
additionalVolumes: additionalVolumes:
type: array
items: items:
type: object
required:
- name
- mountPath
- volumeSource
properties: properties:
isSubPathExpr: isSubPathExpr:
type: boolean type: boolean
name:
type: string
mountPath: mountPath:
type: string type: string
name:
type: string
subPath: subPath:
type: string type: string
targetContainers: targetContainers:
type: array
nullable: true
items: items:
type: string type: string
nullable: true
type: array
volumeSource: volumeSource:
type: object type: object
x-kubernetes-preserve-unknown-fields: true x-kubernetes-preserve-unknown-fields: true
allowedSourceRanges: required:
- mountPath
- name
- volumeSource
type: object
type: array type: array
nullable: true allowedSourceRanges:
items: items:
pattern: ^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\/(\d|[1-2]\d|3[0-2])$
type: string type: string
pattern: '^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\/(\d|[1-2]\d|3[0-2])$' nullable: true
type: array
clone: clone:
type: object
required:
- cluster
properties: properties:
cluster: cluster:
type: string type: string
s3_endpoint:
type: string
s3_access_key_id: s3_access_key_id:
type: string type: string
s3_secret_access_key: s3_endpoint:
type: string type: string
s3_force_path_style: s3_force_path_style:
type: boolean type: boolean
s3_secret_access_key:
type: string
s3_wal_path: s3_wal_path:
type: string type: string
timestamp: timestamp:
type: string
pattern: '^([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[Tt]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(([+-]([01][0-9]|2[0-3]):[0-5][0-9]))$' pattern: '^([0-9]+)-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])[Tt]([01][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]|60)(\.[0-9]+)?(([+-]([01][0-9]|2[0-3]):[0-5][0-9]))$'
# The regexp matches the date-time format (RFC 3339 Section 5.6) that specifies a timezone as an offset relative to UTC # The regexp matches the date-time format (RFC 3339 Section 5.6) that specifies a timezone as an offset relative to UTC
# Example: 1996-12-19T16:39:57-08:00 # Example: 1996-12-19T16:39:57-08:00
# Note: this field requires a timezone # Note: this field requires a timezone
type: string
uid: uid:
format: uuid format: uuid
type: string type: string
connectionPooler: required:
- cluster
type: object type: object
connectionPooler:
properties: properties:
dockerImage: dockerImage:
type: string type: string
maxDBConnections: maxDBConnections:
type: integer type: integer
mode: mode:
type: string
enum: enum:
- "session" - "session"
- "transaction" - "transaction"
type: string
numberOfInstances: numberOfInstances:
type: integer
minimum: 1 minimum: 1
type: integer
resources: resources:
type: object
properties: properties:
limits: limits:
type: object
properties: properties:
cpu: cpu:
type: string
pattern: '^(\d+m|\d+(\.\d{1,3})?)$' pattern: '^(\d+m|\d+(\.\d{1,3})?)$'
memory:
type: string type: string
memory:
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
type: string
type: object
requests: requests:
type: object
properties: properties:
cpu: cpu:
type: string
pattern: '^(\d+m|\d+(\.\d{1,3})?)$' pattern: '^(\d+m|\d+(\.\d{1,3})?)$'
memory:
type: string type: string
memory:
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
type: string
type: object
type: object
schema: schema:
type: string type: string
user: user:
type: string type: string
databases:
type: object type: object
databases:
additionalProperties: additionalProperties:
type: string type: string
# Note: usernames specified here as database owners must be declared in the users key of the spec key. # Note: usernames specified here as database owners must be declared in the users key of the spec key.
type: object
dockerImage: dockerImage:
type: string type: string
enableConnectionPooler: enableConnectionPooler:
type: boolean type: boolean
enableReplicaConnectionPooler:
type: boolean
enableLogicalBackup: enableLogicalBackup:
type: boolean type: boolean
enableMasterLoadBalancer: enableMasterLoadBalancer:
type: boolean type: boolean
enableMasterPoolerLoadBalancer: enableMasterPoolerLoadBalancer:
type: boolean type: boolean
enableReplicaConnectionPooler:
type: boolean
enableReplicaLoadBalancer: enableReplicaLoadBalancer:
type: boolean type: boolean
enableReplicaPoolerLoadBalancer: enableReplicaPoolerLoadBalancer:
@ -197,156 +183,155 @@ spec:
enableShmVolume: enableShmVolume:
type: boolean type: boolean
env: env:
type: array
nullable: true
items: items:
type: object type: object
x-kubernetes-preserve-unknown-fields: true x-kubernetes-preserve-unknown-fields: true
init_containers:
type: array
description: deprecated
nullable: true nullable: true
items: type: array
type: object
x-kubernetes-preserve-unknown-fields: true
initContainers: initContainers:
type: array
nullable: true
items: items:
type: object type: object
x-kubernetes-preserve-unknown-fields: true x-kubernetes-preserve-unknown-fields: true
nullable: true
type: array
init_containers:
description: deprecated
items:
type: object
x-kubernetes-preserve-unknown-fields: true
nullable: true
type: array
logicalBackupRetention: logicalBackupRetention:
type: string type: string
logicalBackupSchedule: logicalBackupSchedule:
type: string
pattern: '^(\d+|\*)(/\d+)?(\s+(\d+|\*)(/\d+)?){4}$' pattern: '^(\d+|\*)(/\d+)?(\s+(\d+|\*)(/\d+)?){4}$'
type: string
maintenanceWindows: maintenanceWindows:
type: array
items: items:
type: string
pattern: '^\ *((Mon|Tue|Wed|Thu|Fri|Sat|Sun):(2[0-3]|[01]?\d):([0-5]?\d)|(2[0-3]|[01]?\d):([0-5]?\d))-((2[0-3]|[01]?\d):([0-5]?\d)|(2[0-3]|[01]?\d):([0-5]?\d))\ *$' pattern: '^\ *((Mon|Tue|Wed|Thu|Fri|Sat|Sun):(2[0-3]|[01]?\d):([0-5]?\d)|(2[0-3]|[01]?\d):([0-5]?\d))-((2[0-3]|[01]?\d):([0-5]?\d)|(2[0-3]|[01]?\d):([0-5]?\d))\ *$'
type: string
type: array
masterServiceAnnotations: masterServiceAnnotations:
type: object
additionalProperties: additionalProperties:
type: string type: string
nodeAffinity:
type: object type: object
nodeAffinity:
properties: properties:
preferredDuringSchedulingIgnoredDuringExecution: preferredDuringSchedulingIgnoredDuringExecution:
type: array
items: items:
type: object properties:
preference:
properties:
matchExpressions:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchFields:
items:
properties:
key:
type: string
operator:
type: string
values:
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
type: object
weight:
type: integer
required: required:
- preference - preference
- weight - weight
properties: type: object
preference: type: array
type: object
properties:
matchExpressions:
type: array
items:
type: object
required:
- key
- operator
properties:
key:
type: string
operator:
type: string
values:
type: array
items:
type: string
matchFields:
type: array
items:
type: object
required:
- key
- operator
properties:
key:
type: string
operator:
type: string
values:
type: array
items:
type: string
weight:
type: integer
requiredDuringSchedulingIgnoredDuringExecution: requiredDuringSchedulingIgnoredDuringExecution:
type: object
required:
- nodeSelectorTerms
properties: properties:
nodeSelectorTerms: nodeSelectorTerms:
type: array
items: items:
type: object
properties: properties:
matchExpressions: matchExpressions:
type: array
items: items:
type: object
required:
- key
- operator
properties: properties:
key: key:
type: string type: string
operator: operator:
type: string type: string
values: values:
type: array
items: items:
type: string type: string
type: array
required:
- key
- operator
type: object
type: array
matchFields: matchFields:
type: array
items: items:
type: object
required:
- key
- operator
properties: properties:
key: key:
type: string type: string
operator: operator:
type: string type: string
values: values:
type: array
items: items:
type: string type: string
numberOfInstances: type: array
type: integer required:
minimum: 0 - key
patroni: - operator
type: object
type: array
type: object
type: array
required:
- nodeSelectorTerms
type: object
type: object type: object
numberOfInstances:
minimum: 0
type: integer
patroni:
properties: properties:
failsafe_mode: failsafe_mode:
type: boolean type: boolean
initdb: initdb:
type: object
additionalProperties: additionalProperties:
type: string type: string
type: object
loop_wait: loop_wait:
type: integer type: integer
maximum_lag_on_failover: maximum_lag_on_failover:
type: integer type: integer
pg_hba: pg_hba:
type: array
items: items:
type: string type: string
type: array
retry_timeout: retry_timeout:
type: integer type: integer
slots: slots:
type: object
additionalProperties: additionalProperties:
type: object
additionalProperties: additionalProperties:
type: string type: string
type: object
type: object
synchronous_mode: synchronous_mode:
type: boolean type: boolean
synchronous_mode_strict: synchronous_mode_strict:
@ -355,69 +340,67 @@ spec:
type: integer type: integer
ttl: ttl:
type: integer type: integer
podAnnotations:
type: object type: object
podAnnotations:
additionalProperties: additionalProperties:
type: string type: string
pod_priority_class_name: type: object
type: string
description: deprecated
podPriorityClassName: podPriorityClassName:
type: string type: string
pod_priority_class_name:
description: deprecated
type: string
postgresql: postgresql:
type: object
required:
- version
properties: properties:
version:
type: string
enum:
- "13"
- "14"
- "15"
- "16"
- "17"
parameters: parameters:
type: object
additionalProperties: additionalProperties:
type: string type: string
preparedDatabases: type: object
version:
enum:
- "13"
- "14"
- "15"
- "16"
- "17"
type: string
required:
- version
type: object type: object
preparedDatabases:
additionalProperties: additionalProperties:
type: object
properties: properties:
defaultUsers: defaultUsers:
type: boolean type: boolean
extensions: extensions:
type: object
additionalProperties: additionalProperties:
type: string type: string
schemas:
type: object type: object
schemas:
additionalProperties: additionalProperties:
type: object
properties: properties:
defaultUsers:
type: boolean
defaultRoles: defaultRoles:
type: boolean type: boolean
defaultUsers:
type: boolean
type: object
type: object
secretNamespace: secretNamespace:
type: string type: string
replicaLoadBalancer: type: object
type: boolean
description: deprecated
replicaServiceAnnotations:
type: object type: object
replicaLoadBalancer:
description: deprecated
type: boolean
replicaServiceAnnotations:
additionalProperties: additionalProperties:
type: string type: string
resources:
type: object type: object
resources:
properties: properties:
limits: limits:
type: object
properties: properties:
cpu: cpu:
type: string
# Decimal natural followed by m, or decimal natural followed by # Decimal natural followed by m, or decimal natural followed by
# dot followed by up to three decimal digits. # dot followed by up to three decimal digits.
# #
@ -431,8 +414,15 @@ spec:
pattern: '^(\d+m|\d+(\.\d{1,3})?)$' pattern: '^(\d+m|\d+(\.\d{1,3})?)$'
# Note: the value specified here must not be zero or be lower # Note: the value specified here must not be zero or be lower
# than the corresponding request. # than the corresponding request.
memory:
type: string type: string
hugepages-1Gi:
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
type: string
hugepages-2Mi:
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
type: string
memory:
# You can express memory as a plain integer or as a fixed-point # You can express memory as a plain integer or as a fixed-point
# integer using one of these suffixes: E, P, T, G, M, k. You can # integer using one of these suffixes: E, P, T, G, M, k. You can
# also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki # also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki
@ -441,56 +431,44 @@ spec:
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
# Note: the value specified here must not be zero or be higher # Note: the value specified here must not be zero or be higher
# than the corresponding limit. # than the corresponding limit.
hugepages-2Mi:
type: string type: string
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
hugepages-1Gi:
type: string
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
requests:
type: object type: object
requests:
properties: properties:
cpu: cpu:
type: string
pattern: '^(\d+m|\d+(\.\d{1,3})?)$' pattern: '^(\d+m|\d+(\.\d{1,3})?)$'
memory:
type: string type: string
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
hugepages-2Mi:
type: string
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
hugepages-1Gi: hugepages-1Gi:
type: string
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
type: string
hugepages-2Mi:
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
type: string
memory:
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
type: string
type: object
type: object
schedulerName: schedulerName:
type: string type: string
serviceAnnotations: serviceAnnotations:
type: object
additionalProperties: additionalProperties:
type: string type: string
type: object
sidecars: sidecars:
type: array
nullable: true
items: items:
type: object type: object
x-kubernetes-preserve-unknown-fields: true x-kubernetes-preserve-unknown-fields: true
spiloRunAsUser: nullable: true
type: array
spiloFSGroup:
type: integer type: integer
spiloRunAsGroup: spiloRunAsGroup:
type: integer type: integer
spiloFSGroup: spiloRunAsUser:
type: integer type: integer
standby: standby:
type: object
properties:
s3_wal_path:
type: string
gs_wal_path:
type: string
standby_host:
type: string
standby_port:
type: string
oneOf: oneOf:
- required: - required:
- s3_wal_path - s3_wal_path
@ -498,39 +476,39 @@ spec:
- gs_wal_path - gs_wal_path
- required: - required:
- standby_host - standby_host
properties:
gs_wal_path:
type: string
s3_wal_path:
type: string
standby_host:
type: string
standby_port:
type: string
type: object
streams: streams:
type: array
items: items:
type: object
required:
- applicationId
- database
- tables
properties: properties:
applicationId: applicationId:
type: string type: string
batchSize: batchSize:
type: integer type: integer
cpu: cpu:
type: string
pattern: '^(\d+m|\d+(\.\d{1,3})?)$' pattern: '^(\d+m|\d+(\.\d{1,3})?)$'
type: string
database: database:
type: string type: string
enableRecovery: enableRecovery:
type: boolean type: boolean
filter: filter:
type: object
additionalProperties: additionalProperties:
type: string type: string
memory:
type: string
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
tables:
type: object type: object
memory:
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
type: string
tables:
additionalProperties: additionalProperties:
type: object
required:
- eventType
properties: properties:
eventType: eventType:
type: string type: string
@ -542,55 +520,61 @@ spec:
type: string type: string
recoveryEventType: recoveryEventType:
type: string type: string
required:
- eventType
type: object
type: object
required:
- applicationId
- database
- tables
type: object
type: array
teamId: teamId:
type: string type: string
tls: tls:
type: object
required:
- secretName
properties: properties:
secretName: caFile:
type: string
caSecretName:
type: string type: string
certificateFile: certificateFile:
type: string type: string
privateKeyFile: privateKeyFile:
type: string type: string
caFile: secretName:
type: string
caSecretName:
type: string type: string
required:
- secretName
type: object
tolerations: tolerations:
type: array
items: items:
type: object
properties: properties:
effect:
enum:
- NoExecute
- NoSchedule
- PreferNoSchedule
type: string
key: key:
type: string type: string
operator: operator:
type: string
enum: enum:
- Equal - Equal
- Exists - Exists
value:
type: string type: string
effect:
type: string
enum:
- NoExecute
- NoSchedule
- PreferNoSchedule
tolerationSeconds: tolerationSeconds:
type: integer type: integer
value:
type: string
type: object
type: array
useLoadBalancer: useLoadBalancer:
type: boolean
description: deprecated description: deprecated
type: boolean
users: users:
type: object
additionalProperties: additionalProperties:
type: array
nullable: true
items: items:
type: string
enum: enum:
- bypassrls - bypassrls
- BYPASSRLS - BYPASSRLS
@ -620,68 +604,88 @@ spec:
- SUPERUSER - SUPERUSER
- nosuperuser - nosuperuser
- NOSUPERUSER - NOSUPERUSER
usersIgnoringSecretRotation: type: string
type: array nullable: true
nullable: true type: array
items:
type: string
usersWithInPlaceSecretRotation:
type: array
nullable: true
items:
type: string
usersWithSecretRotation:
type: array
nullable: true
items:
type: string
volume:
type: object type: object
required: usersIgnoringSecretRotation:
- size items:
type: string
nullable: true
type: array
usersWithInPlaceSecretRotation:
items:
type: string
nullable: true
type: array
usersWithSecretRotation:
items:
type: string
nullable: true
type: array
volume:
properties: properties:
isSubPathExpr:
type: boolean
iops: iops:
type: integer type: integer
isSubPathExpr:
type: boolean
selector: selector:
type: object
properties: properties:
matchExpressions: matchExpressions:
type: array
items: items:
type: object
required:
- key
- operator
properties: properties:
key: key:
type: string type: string
operator: operator:
type: string
enum: enum:
- DoesNotExist - DoesNotExist
- Exists - Exists
- In - In
- NotIn - NotIn
type: string
values: values:
type: array
items: items:
type: string type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels: matchLabels:
type: object type: object
x-kubernetes-preserve-unknown-fields: true x-kubernetes-preserve-unknown-fields: true
type: object
size: size:
type: string
pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$' pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
# Note: the value specified here must not be zero. # Note: the value specified here must not be zero.
type: string
storageClass: storageClass:
type: string type: string
subPath: subPath:
type: string type: string
throughput: throughput:
type: integer type: integer
status: required:
- size
type: object
required:
- numberOfInstances
- teamId
- postgresql
- volume
type: object type: object
status:
additionalProperties: additionalProperties:
type: string type: string
type: object
required:
- kind
- apiVersion
- spec
type: object
served: true
storage: true
subresources:
status: {}