807 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			807 lines
		
	
	
		
			31 KiB
		
	
	
	
		
			YAML
		
	
	
	
| apiVersion: apiextensions.k8s.io/v1
 | |
| kind: CustomResourceDefinition
 | |
| metadata:
 | |
|   name: postgresqls.acid.zalan.do
 | |
|   labels:
 | |
|     app.kubernetes.io/name: postgres-operator
 | |
| spec:
 | |
|   group: acid.zalan.do
 | |
|   names:
 | |
|     kind: postgresql
 | |
|     listKind: postgresqlList
 | |
|     plural: postgresqls
 | |
|     singular: postgresql
 | |
|     shortNames:
 | |
|     - pg
 | |
|     categories:
 | |
|     - all
 | |
|   scope: Namespaced
 | |
|   versions:
 | |
|   - name: v1
 | |
|     served: true
 | |
|     storage: true
 | |
|     subresources:
 | |
|       status: {}
 | |
|     additionalPrinterColumns:
 | |
|     - name: Team
 | |
|       type: string
 | |
|       description: Team responsible for Postgres cluster
 | |
|       jsonPath: .spec.teamId
 | |
|     - name: Version
 | |
|       type: string
 | |
|       description: PostgreSQL version
 | |
|       jsonPath: .spec.postgresql.version
 | |
|     - name: Pods
 | |
|       type: integer
 | |
|       description: Number of Pods per Postgres cluster
 | |
|       jsonPath: .spec.numberOfInstances
 | |
|     - name: Volume
 | |
|       type: string
 | |
|       description: Size of the bound volume
 | |
|       jsonPath: .spec.volume.size
 | |
|     - name: CPU-Request
 | |
|       type: string
 | |
|       description: Requested CPU for Postgres containers
 | |
|       jsonPath: .spec.resources.requests.cpu
 | |
|     - name: Memory-Request
 | |
|       type: string
 | |
|       description: Requested memory for Postgres containers
 | |
|       jsonPath: .spec.resources.requests.memory
 | |
|     - name: Age
 | |
|       type: date
 | |
|       jsonPath: .metadata.creationTimestamp
 | |
|     - name: Status
 | |
|       type: string
 | |
|       description: Current sync status of postgresql resource
 | |
|       jsonPath: .status.PostgresClusterStatus
 | |
|     schema:
 | |
|       openAPIV3Schema:
 | |
|         type: object
 | |
|         required:
 | |
|           - kind
 | |
|           - apiVersion
 | |
|           - spec
 | |
|         properties:
 | |
|           kind:
 | |
|             type: string
 | |
|             enum:
 | |
|               - postgresql
 | |
|           apiVersion:
 | |
|             type: string
 | |
|             enum:
 | |
|               - acid.zalan.do/v1
 | |
|           spec:
 | |
|             type: object
 | |
|             required:
 | |
|               - numberOfInstances
 | |
|               - teamId
 | |
|               - postgresql
 | |
|               - volume
 | |
|             properties:
 | |
|               additionalVolumes:
 | |
|                 type: array
 | |
|                 items:
 | |
|                   type: object
 | |
|                   required:
 | |
|                     - name
 | |
|                     - mountPath
 | |
|                     - volumeSource
 | |
|                   properties:
 | |
|                     name:
 | |
|                       type: string
 | |
|                     mountPath:
 | |
|                       type: string
 | |
|                     targetContainers:
 | |
|                       type: array
 | |
|                       nullable: true
 | |
|                       items:
 | |
|                         type: string
 | |
|                     volumeSource:
 | |
|                       type: object
 | |
|                       x-kubernetes-preserve-unknown-fields: true
 | |
|                     subPath:
 | |
|                       type: string
 | |
|               allowedSourceRanges:
 | |
|                 type: array
 | |
|                 nullable: true
 | |
|                 items:
 | |
|                   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])$'
 | |
|               clone:
 | |
|                 type: object
 | |
|                 required:
 | |
|                   - cluster
 | |
|                 properties:
 | |
|                   cluster:
 | |
|                     type: string
 | |
|                   s3_endpoint:
 | |
|                     type: string
 | |
|                   s3_access_key_id:
 | |
|                     type: string
 | |
|                   s3_secret_access_key:
 | |
|                     type: string
 | |
|                   s3_force_path_style:
 | |
|                     type: boolean
 | |
|                   s3_wal_path:
 | |
|                     type: string
 | |
|                   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]))$'
 | |
|                     # 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
 | |
|                     # Note: this field requires a timezone
 | |
|                   uid:
 | |
|                     format: uuid
 | |
|                     type: string
 | |
|               connectionPooler:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   dockerImage:
 | |
|                     type: string
 | |
|                   maxDBConnections:
 | |
|                     type: integer
 | |
|                   mode:
 | |
|                     type: string
 | |
|                     enum:
 | |
|                       - "session"
 | |
|                       - "transaction"
 | |
|                   numberOfInstances:
 | |
|                     type: integer
 | |
|                     minimum: 1
 | |
|                   resources:
 | |
|                     type: object
 | |
|                     properties:
 | |
|                       limits:
 | |
|                         type: object
 | |
|                         properties:
 | |
|                           cpu:
 | |
|                             type: string
 | |
|                             pattern: '^(\d+m|\d+(\.\d{1,3})?)$'
 | |
|                           memory:
 | |
|                             type: string
 | |
|                             pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
 | |
|                       requests:
 | |
|                         type: object
 | |
|                         properties:
 | |
|                           cpu:
 | |
|                             type: string
 | |
|                             pattern: '^(\d+m|\d+(\.\d{1,3})?)$'
 | |
|                           memory:
 | |
|                             type: string
 | |
|                             pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
 | |
|                   schema:
 | |
|                     type: string
 | |
|                   user:
 | |
|                     type: string
 | |
|               databases:
 | |
|                 type: object
 | |
|                 additionalProperties:
 | |
|                   type: string
 | |
|                 # Note: usernames specified here as database owners must be declared in the users key of the spec key.
 | |
|               dockerImage:
 | |
|                 type: string
 | |
|               enableConnectionPooler:
 | |
|                 type: boolean
 | |
|               enableReplicaConnectionPooler:
 | |
|                 type: boolean
 | |
|               enableLogicalBackup:
 | |
|                 type: boolean
 | |
|               enableMasterLoadBalancer:
 | |
|                 type: boolean
 | |
|               enableMasterPoolerLoadBalancer:
 | |
|                 type: boolean
 | |
|               enableReplicaLoadBalancer:
 | |
|                 type: boolean
 | |
|               enableReplicaPoolerLoadBalancer:
 | |
|                 type: boolean
 | |
|               enableShmVolume:
 | |
|                 type: boolean
 | |
|               env:
 | |
|                 type: array
 | |
|                 nullable: true
 | |
|                 items:
 | |
|                   type: object
 | |
|                   x-kubernetes-preserve-unknown-fields: true
 | |
|               livenessProbe:
 | |
|                 description: 'Periodic probe of container liveness. Container
 | |
|                   will be restarted if the probe fails. Cannot be updated. More
 | |
|                   info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
 | |
|                 properties:
 | |
|                   exec:
 | |
|                     description: One and only one of the following should be
 | |
|                       specified. Exec specifies the action to take.
 | |
|                     properties:
 | |
|                       command:
 | |
|                         description: Command is the command line to execute
 | |
|                           inside the container, the working directory for the
 | |
|                           command  is root ('/') in the container's filesystem.
 | |
|                           The command is simply exec'd, it is not run inside
 | |
|                           a shell, so traditional shell instructions ('|', etc)
 | |
|                           won't work. To use a shell, you need to explicitly
 | |
|                           call out to that shell. Exit status of 0 is treated
 | |
|                           as live/healthy and non-zero is unhealthy.
 | |
|                         items:
 | |
|                           type: string
 | |
|                         type: array
 | |
|                     type: object
 | |
|                   failureThreshold:
 | |
|                     description: Minimum consecutive failures for the probe
 | |
|                       to be considered failed after having succeeded. Defaults
 | |
|                       to 3. Minimum value is 1.
 | |
|                     format: int32
 | |
|                     type: integer
 | |
|                   httpGet:
 | |
|                     description: HTTPGet specifies the http request to perform.
 | |
|                     properties:
 | |
|                       host:
 | |
|                         description: Host name to connect to, defaults to the
 | |
|                           pod IP. You probably want to set "Host" in httpHeaders
 | |
|                           instead.
 | |
|                         type: string
 | |
|                       httpHeaders:
 | |
|                         description: Custom headers to set in the request. HTTP
 | |
|                           allows repeated headers.
 | |
|                         items:
 | |
|                           description: HTTPHeader describes a custom header
 | |
|                             to be used in HTTP probes
 | |
|                           properties:
 | |
|                             name:
 | |
|                               description: The header field name
 | |
|                               type: string
 | |
|                             value:
 | |
|                               description: The header field value
 | |
|                               type: string
 | |
|                           required:
 | |
|                           - name
 | |
|                           - value
 | |
|                           type: object
 | |
|                         type: array
 | |
|                       path:
 | |
|                         description: Path to access on the HTTP server.
 | |
|                         type: string
 | |
|                       port:
 | |
|                         anyOf:
 | |
|                         - type: integer
 | |
|                         - type: string
 | |
|                         description: Name or number of the port to access on
 | |
|                           the container. Number must be in the range 1 to 65535.
 | |
|                           Name must be an IANA_SVC_NAME.
 | |
|                         x-kubernetes-int-or-string: true
 | |
|                       scheme:
 | |
|                         description: Scheme to use for connecting to the host.
 | |
|                           Defaults to HTTP.
 | |
|                         type: string
 | |
|                     required:
 | |
|                     - port
 | |
|                     type: object
 | |
|                   initialDelaySeconds:
 | |
|                     description: 'Number of seconds after the container has
 | |
|                       started before liveness probes are initiated. More info:
 | |
|                       https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
 | |
|                     format: int32
 | |
|                     type: integer
 | |
|                   periodSeconds:
 | |
|                     description: How often (in seconds) to perform the probe.
 | |
|                       Default to 10 seconds. Minimum value is 1.
 | |
|                     format: int32
 | |
|                     type: integer
 | |
|                   successThreshold:
 | |
|                     description: Minimum consecutive successes for the probe
 | |
|                       to be considered successful after having failed. Defaults
 | |
|                       to 1. Must be 1 for liveness and startup. Minimum value
 | |
|                       is 1.
 | |
|                     format: int32
 | |
|                     type: integer
 | |
|                   tcpSocket:
 | |
|                     description: 'TCPSocket specifies an action involving a
 | |
|                       TCP port. TCP hooks not yet supported TODO: implement
 | |
|                       a realistic TCP lifecycle hook'
 | |
|                     properties:
 | |
|                       host:
 | |
|                         description: 'Optional: Host name to connect to, defaults
 | |
|                           to the pod IP.'
 | |
|                         type: string
 | |
|                       port:
 | |
|                         anyOf:
 | |
|                         - type: integer
 | |
|                         - type: string
 | |
|                         description: Number or name of the port to access on
 | |
|                           the container. Number must be in the range 1 to 65535.
 | |
|                           Name must be an IANA_SVC_NAME.
 | |
|                         x-kubernetes-int-or-string: true
 | |
|                     required:
 | |
|                     - port
 | |
|                     type: object
 | |
|                   terminationGracePeriodSeconds:
 | |
|                     description: Optional duration in seconds the pod needs
 | |
|                       to terminate gracefully upon probe failure. The grace
 | |
|                       period is the duration in seconds after the processes
 | |
|                       running in the pod are sent a termination signal and the
 | |
|                       time when the processes are forcibly halted with a kill
 | |
|                       signal. Set this value longer than the expected cleanup
 | |
|                       time for your process. If this value is nil, the pod's
 | |
|                       terminationGracePeriodSeconds will be used. Otherwise,
 | |
|                       this value overrides the value provided by the pod spec.
 | |
|                       Value must be non-negative integer. The value zero indicates
 | |
|                       stop immediately via the kill signal (no opportunity to
 | |
|                       shut down). This is a beta field and requires enabling
 | |
|                       ProbeTerminationGracePeriod feature gate. Minimum value
 | |
|                       is 1. spec.terminationGracePeriodSeconds is used if unset.
 | |
|                     format: int64
 | |
|                     type: integer
 | |
|                   timeoutSeconds:
 | |
|                     description: 'Number of seconds after which the probe times
 | |
|                       out. Defaults to 1 second. Minimum value is 1. More info:
 | |
|                       https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
 | |
|                     format: int32
 | |
|                     type: integer
 | |
|                 type: object
 | |
|               init_containers:
 | |
|                 type: array
 | |
|                 description: deprecated
 | |
|                 nullable: true
 | |
|                 items:
 | |
|                   type: object
 | |
|                   x-kubernetes-preserve-unknown-fields: true
 | |
|               initContainers:
 | |
|                 type: array
 | |
|                 nullable: true
 | |
|                 items:
 | |
|                   type: object
 | |
|                   x-kubernetes-preserve-unknown-fields: true
 | |
|               logicalBackupSchedule:
 | |
|                 type: string
 | |
|                 pattern: '^(\d+|\*)(/\d+)?(\s+(\d+|\*)(/\d+)?){4}$'
 | |
|               maintenanceWindows:
 | |
|                 type: array
 | |
|                 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))-((Mon|Tue|Wed|Thu|Fri|Sat|Sun):(2[0-3]|[01]?\d):([0-5]?\d)|(2[0-3]|[01]?\d):([0-5]?\d))\ *$'
 | |
|               masterServiceAnnotations:
 | |
|                 type: object
 | |
|                 additionalProperties:
 | |
|                   type: string
 | |
|               nodeAffinity:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   preferredDuringSchedulingIgnoredDuringExecution:
 | |
|                     type: array
 | |
|                     items:
 | |
|                       type: object
 | |
|                       required:
 | |
|                       - preference
 | |
|                       - weight
 | |
|                       properties:
 | |
|                         preference:
 | |
|                           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:
 | |
|                           format: int32
 | |
|                           type: integer
 | |
|                   requiredDuringSchedulingIgnoredDuringExecution:
 | |
|                     type: object
 | |
|                     required:
 | |
|                     - nodeSelectorTerms
 | |
|                     properties:
 | |
|                       nodeSelectorTerms:
 | |
|                         type: array
 | |
|                         items:
 | |
|                           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
 | |
|               numberOfInstances:
 | |
|                 type: integer
 | |
|                 minimum: 0
 | |
|               patroni:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   failsafe_mode:
 | |
|                     type: boolean
 | |
|                   initdb:
 | |
|                     type: object
 | |
|                     additionalProperties:
 | |
|                       type: string
 | |
|                   loop_wait:
 | |
|                     type: integer
 | |
|                   maximum_lag_on_failover:
 | |
|                     type: integer
 | |
|                   pg_hba:
 | |
|                     type: array
 | |
|                     items:
 | |
|                       type: string
 | |
|                   retry_timeout:
 | |
|                     type: integer
 | |
|                   slots:
 | |
|                     type: object
 | |
|                     additionalProperties:
 | |
|                       type: object
 | |
|                       additionalProperties:
 | |
|                         type: string
 | |
|                   synchronous_mode:
 | |
|                     type: boolean
 | |
|                   synchronous_mode_strict:
 | |
|                     type: boolean
 | |
|                   synchronous_node_count:
 | |
|                     type: integer
 | |
|                   ttl:
 | |
|                     type: integer
 | |
|               podAnnotations:
 | |
|                 type: object
 | |
|                 additionalProperties:
 | |
|                   type: string
 | |
|               pod_priority_class_name:
 | |
|                 type: string
 | |
|                 description: deprecated
 | |
|               podPriorityClassName:
 | |
|                 type: string
 | |
|               postgresql:
 | |
|                 type: object
 | |
|                 required:
 | |
|                   - version
 | |
|                 properties:
 | |
|                   version:
 | |
|                     type: string
 | |
|                     enum:
 | |
|                       - "10"
 | |
|                       - "11"
 | |
|                       - "12"
 | |
|                       - "13"
 | |
|                       - "14"
 | |
|                       - "15"
 | |
|                   parameters:
 | |
|                     type: object
 | |
|                     additionalProperties:
 | |
|                       type: string
 | |
|               preparedDatabases:
 | |
|                 type: object
 | |
|                 additionalProperties:
 | |
|                   type: object
 | |
|                   properties:
 | |
|                     defaultUsers:
 | |
|                       type: boolean
 | |
|                     extensions:
 | |
|                       type: object
 | |
|                       additionalProperties:
 | |
|                         type: string
 | |
|                     schemas:
 | |
|                       type: object
 | |
|                       additionalProperties:
 | |
|                         type: object
 | |
|                         properties:
 | |
|                           defaultUsers:
 | |
|                             type: boolean
 | |
|                           defaultRoles:
 | |
|                             type: boolean
 | |
|                     secretNamespace:
 | |
|                       type: string
 | |
|               replicaLoadBalancer:
 | |
|                 type: boolean
 | |
|                 description: deprecated
 | |
|               replicaServiceAnnotations:
 | |
|                 type: object
 | |
|                 additionalProperties:
 | |
|                   type: string
 | |
|               resources:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   limits:
 | |
|                     type: object
 | |
|                     properties:
 | |
|                       cpu:
 | |
|                         type: string
 | |
|                         # Decimal natural followed by m, or decimal natural followed by
 | |
|                         # dot followed by up to three decimal digits.
 | |
|                         #
 | |
|                         # This is because the Kubernetes CPU resource has millis as the
 | |
|                         # maximum precision.  The actual values are checked in code
 | |
|                         # because the regular expression would be huge and horrible and
 | |
|                         # not very helpful in validation error messages; this one checks
 | |
|                         # only the format of the given number.
 | |
|                         #
 | |
|                         # https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-cpu
 | |
|                         pattern: '^(\d+m|\d+(\.\d{1,3})?)$'
 | |
|                         # Note: the value specified here must not be zero or be lower
 | |
|                         # than the corresponding request.
 | |
|                       memory:
 | |
|                         type: string
 | |
|                         # 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
 | |
|                         # also use the power-of-two equivalents: Ei, Pi, Ti, Gi, Mi, Ki
 | |
|                         #
 | |
|                         # https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#meaning-of-memory
 | |
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
 | |
|                         # Note: the value specified here must not be zero or be higher
 | |
|                         # than the corresponding limit.
 | |
|                       hugepages-2Mi:
 | |
|                         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
 | |
|                     properties:
 | |
|                       cpu:
 | |
|                         type: string
 | |
|                         pattern: '^(\d+m|\d+(\.\d{1,3})?)$'
 | |
|                       memory:
 | |
|                         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:
 | |
|                         type: string
 | |
|                         pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
 | |
|               schedulerName:
 | |
|                 type: string
 | |
|               serviceAnnotations:
 | |
|                 type: object
 | |
|                 additionalProperties:
 | |
|                   type: string
 | |
|               sidecars:
 | |
|                 type: array
 | |
|                 nullable: true
 | |
|                 items:
 | |
|                   type: object
 | |
|                   x-kubernetes-preserve-unknown-fields: true
 | |
|               spiloRunAsUser:
 | |
|                 type: integer
 | |
|               spiloRunAsGroup:
 | |
|                 type: integer
 | |
|               spiloFSGroup:
 | |
|                 type: integer
 | |
|               standby:
 | |
|                 type: object
 | |
|                 properties:
 | |
|                   s3_wal_path:
 | |
|                     type: string
 | |
|                   gs_wal_path:
 | |
|                     type: string
 | |
|                   standby_host:
 | |
|                     type: string
 | |
|                   standby_port:
 | |
|                     type: string
 | |
|                 oneOf:
 | |
|                 - required:
 | |
|                   - s3_wal_path
 | |
|                 - required:
 | |
|                   - gs_wal_path
 | |
|                 - required:
 | |
|                   - standby_host
 | |
|               streams:
 | |
|                 type: array
 | |
|                 items:
 | |
|                   type: object
 | |
|                   required:
 | |
|                     - applicationId
 | |
|                     - database
 | |
|                     - tables
 | |
|                   properties:
 | |
|                     applicationId:
 | |
|                       type: string
 | |
|                     batchSize:
 | |
|                       type: integer
 | |
|                     database:
 | |
|                       type: string
 | |
|                     enableRecovery:
 | |
|                       type: boolean
 | |
|                     filter:
 | |
|                       type: object
 | |
|                       additionalProperties:
 | |
|                         type: string
 | |
|                     tables:
 | |
|                       type: object
 | |
|                       additionalProperties:
 | |
|                         type: object
 | |
|                         required:
 | |
|                           - eventType
 | |
|                         properties:
 | |
|                           eventType:
 | |
|                             type: string
 | |
|                           idColumn:
 | |
|                             type: string
 | |
|                           payloadColumn:
 | |
|                             type: string
 | |
|                           recoveryEventType:
 | |
|                             type: string
 | |
|               teamId:
 | |
|                 type: string
 | |
|               tls:
 | |
|                 type: object
 | |
|                 required:
 | |
|                   - secretName
 | |
|                 properties:
 | |
|                   secretName:
 | |
|                     type: string
 | |
|                   certificateFile:
 | |
|                     type: string
 | |
|                   privateKeyFile:
 | |
|                     type: string
 | |
|                   caFile:
 | |
|                     type: string
 | |
|                   caSecretName:
 | |
|                     type: string
 | |
|               tolerations:
 | |
|                 type: array
 | |
|                 items:
 | |
|                   type: object
 | |
|                   properties:
 | |
|                     key:
 | |
|                       type: string
 | |
|                     operator:
 | |
|                       type: string
 | |
|                       enum:
 | |
|                         - Equal
 | |
|                         - Exists
 | |
|                     value:
 | |
|                       type: string
 | |
|                     effect:
 | |
|                       type: string
 | |
|                       enum:
 | |
|                         - NoExecute
 | |
|                         - NoSchedule
 | |
|                         - PreferNoSchedule
 | |
|                     tolerationSeconds:
 | |
|                       type: integer
 | |
|               useLoadBalancer:
 | |
|                 type: boolean
 | |
|                 description: deprecated
 | |
|               users:
 | |
|                 type: object
 | |
|                 additionalProperties:
 | |
|                   type: array
 | |
|                   nullable: true
 | |
|                   items:
 | |
|                     type: string
 | |
|                     enum:
 | |
|                     - bypassrls
 | |
|                     - BYPASSRLS
 | |
|                     - nobypassrls
 | |
|                     - NOBYPASSRLS
 | |
|                     - createdb
 | |
|                     - CREATEDB
 | |
|                     - nocreatedb
 | |
|                     - NOCREATEDB
 | |
|                     - createrole
 | |
|                     - CREATEROLE
 | |
|                     - nocreaterole
 | |
|                     - NOCREATEROLE
 | |
|                     - inherit
 | |
|                     - INHERIT
 | |
|                     - noinherit
 | |
|                     - NOINHERIT
 | |
|                     - login
 | |
|                     - LOGIN
 | |
|                     - nologin
 | |
|                     - NOLOGIN
 | |
|                     - replication
 | |
|                     - REPLICATION
 | |
|                     - noreplication
 | |
|                     - NOREPLICATION
 | |
|                     - superuser
 | |
|                     - SUPERUSER
 | |
|                     - nosuperuser
 | |
|                     - NOSUPERUSER
 | |
|               usersWithInPlaceSecretRotation:
 | |
|                 type: array
 | |
|                 nullable: true
 | |
|                 items:
 | |
|                   type: string
 | |
|               usersWithSecretRotation:
 | |
|                 type: array
 | |
|                 nullable: true
 | |
|                 items:
 | |
|                   type: string
 | |
|               volume:
 | |
|                 type: object
 | |
|                 required:
 | |
|                   - size
 | |
|                 properties:
 | |
|                   iops:
 | |
|                     type: integer
 | |
|                   selector:
 | |
|                     type: object
 | |
|                     properties:
 | |
|                       matchExpressions:
 | |
|                         type: array
 | |
|                         items:
 | |
|                           type: object
 | |
|                           required:
 | |
|                             - key
 | |
|                             - operator
 | |
|                           properties:
 | |
|                             key:
 | |
|                               type: string
 | |
|                             operator:
 | |
|                               type: string
 | |
|                               enum:
 | |
|                                 - DoesNotExist
 | |
|                                 - Exists
 | |
|                                 - In
 | |
|                                 - NotIn
 | |
|                             values:
 | |
|                               type: array
 | |
|                               items:
 | |
|                                 type: string
 | |
|                       matchLabels:
 | |
|                         type: object
 | |
|                         x-kubernetes-preserve-unknown-fields: true
 | |
|                   size:
 | |
|                     type: string
 | |
|                     pattern: '^(\d+(e\d+)?|\d+(\.\d+)?(e\d+)?[EPTGMK]i?)$'
 | |
|                     # Note: the value specified here must not be zero.
 | |
|                   storageClass:
 | |
|                     type: string
 | |
|                   subPath:
 | |
|                     type: string
 | |
|                   throughput:
 | |
|                     type: integer
 | |
|           status:
 | |
|             type: object
 | |
|             additionalProperties:
 | |
|               type: string
 |