apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: name: postgresqls.acid.zalan.do labels: app.kubernetes.io/name: postgres-operator annotations: "helm.sh/hook": crd-install spec: group: acid.zalan.do names: kind: postgresql listKind: postgresqlList plural: postgresqls singular: postgresql shortNames: - pg 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 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]+)?(([Zz])|([+-]([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: 2 resources: type: object required: - requests - limits properties: limits: type: object required: - cpu - memory 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 required: - cpu - memory 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 enableReplicaLoadBalancer: type: boolean enableShmVolume: type: boolean init_containers: # deprecated type: array nullable: true items: 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: string 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]+)?(([Zz])|([+-]([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 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 enableLogicalBackup: type: boolean enableMasterLoadBalancer: type: boolean enableReplicaLoadBalancer: type: boolean enableShmVolume: type: boolean init_containers: # deprecated type: array nullable: true items: type: object additionalProperties: true initContainers: type: array nullable: true items: type: object additionalProperties: 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))\ *$' numberOfInstances: type: integer minimum: 0 patroni: type: object properties: initdb: type: object additionalProperties: type: string ttl: type: integer loop_wait: type: integer retry_timeout: type: integer maximum_lag_on_failover: type: integer synchronous_mode: type: boolean synchronous_mode_strict: type: boolean podAnnotations: type: object additionalProperties: type: string pod_priority_class_name: # deprecated type: string podPriorityClassName: type: string postgresql: type: object required: - version properties: version: type: string pod_priority_class_name: # deprecated type: string podPriorityClassName: type: string postgresql: type: object required: - version properties: version: type: string enum: - "9.3" - "9.4" - "9.5" - "9.6" - "10" - "11" - "12" parameters: type: object additionalProperties: type: string replicaLoadBalancer: # deprecated type: boolean resources: type: object required: - requests - limits properties: limits: type: object required: - cpu - memory 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 lower # than the corresponding request. requests: type: object required: - cpu - memory 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 higher # than the corresponding limit. 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. sidecars: type: array nullable: true items: type: object additionalProperties: true spiloFSGroup: type: integer standby: type: object required: - s3_wal_path properties: s3_wal_path: 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 replicaLoadBalancer: # deprecated type: boolean resources: type: object required: - requests - limits properties: limits: type: object required: - key - operator - effect properties: key: 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 enum: - Equal - Exists value: 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 higher # than the corresponding limit. 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. serviceAnnotations: type: object additionalProperties: type: string sidecars: type: array nullable: true items: type: object additionalProperties: true spiloRunAsUser: type: integer spiloRunAsGroup: type: integer spiloFSGroup: type: integer standby: type: object required: - s3_wal_path properties: s3_wal_path: 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 required: - size properties: 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 enum: - NoExecute - NoSchedule - PreferNoSchedule tolerationSeconds: type: integer useLoadBalancer: # deprecated type: boolean users: type: object additionalProperties: type: array nullable: true description: "Role flags specified here must not contradict each other" 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 volume: type: object required: - size properties: 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 status: type: object additionalProperties: type: string