Files
infrastructure/clusters/cl01tl/manifests/cloudnative-pg/CustomResourceDefinition-databases.postgresql.cnpg.io.yaml

580 lines
27 KiB
YAML

apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.19.0
helm.sh/resource-policy: keep
name: databases.postgresql.cnpg.io
spec:
group: postgresql.cnpg.io
names:
kind: Database
listKind: DatabaseList
plural: databases
singular: database
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
- jsonPath: .spec.cluster.name
name: Cluster
type: string
- jsonPath: .spec.name
name: PG Name
type: string
- jsonPath: .status.applied
name: Applied
type: boolean
- description: Latest reconciliation message
jsonPath: .status.message
name: Message
type: string
name: v1
schema:
openAPIV3Schema:
description: Database is the Schema for the databases API
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: |-
Specification of the desired Database.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
properties:
allowConnections:
description: |-
Maps to the `ALLOW_CONNECTIONS` parameter of `CREATE DATABASE` and
`ALTER DATABASE`. If false then no one can connect to this database.
type: boolean
builtinLocale:
description: |-
Maps to the `BUILTIN_LOCALE` parameter of `CREATE DATABASE`. This
setting cannot be changed. Specifies the locale name when the
builtin provider is used. This option requires `localeProvider` to
be set to `builtin`. Available from PostgreSQL 17.
type: string
x-kubernetes-validations:
- message: builtinLocale is immutable
rule: self == oldSelf
cluster:
description: The name of the PostgreSQL cluster hosting the database.
properties:
name:
default: ""
description: |-
Name of the referent.
This field is effectively required, but due to backwards compatibility is
allowed to be empty. Instances of this type with an empty value here are
almost certainly wrong.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
type: string
type: object
x-kubernetes-map-type: atomic
collationVersion:
description: |-
Maps to the `COLLATION_VERSION` parameter of `CREATE DATABASE`. This
setting cannot be changed.
type: string
x-kubernetes-validations:
- message: collationVersion is immutable
rule: self == oldSelf
connectionLimit:
description: |-
Maps to the `CONNECTION LIMIT` clause of `CREATE DATABASE` and
`ALTER DATABASE`. How many concurrent connections can be made to
this database. -1 (the default) means no limit.
type: integer
databaseReclaimPolicy:
default: retain
description: The policy for end-of-life maintenance of this database.
enum:
- delete
- retain
type: string
encoding:
description: |-
Maps to the `ENCODING` parameter of `CREATE DATABASE`. This setting
cannot be changed. Character set encoding to use in the database.
type: string
x-kubernetes-validations:
- message: encoding is immutable
rule: self == oldSelf
ensure:
default: present
description: Ensure the PostgreSQL database is `present` or `absent` - defaults to "present".
enum:
- present
- absent
type: string
extensions:
description: The list of extensions to be managed in the database
items:
description: ExtensionSpec configures an extension in a database
properties:
ensure:
default: present
description: |-
Specifies whether an object (e.g schema) should be present or absent
in the database. If set to `present`, the object will be created if
it does not exist. If set to `absent`, the extension/schema will be
removed if it exists.
enum:
- present
- absent
type: string
name:
description: Name of the object (extension, schema, FDW, server)
type: string
schema:
description: |-
The name of the schema in which to install the extension's objects,
in case the extension allows its contents to be relocated. If not
specified (default), and the extension's control file does not
specify a schema either, the current default object creation schema
is used.
type: string
version:
description: |-
The version of the extension to install. If empty, the operator will
install the default version (whatever is specified in the
extension's control file)
type: string
required:
- name
type: object
type: array
fdws:
description: The list of foreign data wrappers to be managed in the database
items:
description: FDWSpec configures an Foreign Data Wrapper in a database
properties:
ensure:
default: present
description: |-
Specifies whether an object (e.g schema) should be present or absent
in the database. If set to `present`, the object will be created if
it does not exist. If set to `absent`, the extension/schema will be
removed if it exists.
enum:
- present
- absent
type: string
handler:
description: |-
Name of the handler function (e.g., "postgres_fdw_handler").
This will be empty if no handler is specified. In that case,
the default handler is registered when the FDW extension is created.
type: string
name:
description: Name of the object (extension, schema, FDW, server)
type: string
options:
description: Options specifies the configuration options for the FDW.
items:
description: OptionSpec holds the name, value and the ensure field for an option
properties:
ensure:
default: present
description: |-
Specifies whether an option should be present or absent in
the database. If set to `present`, the option will be
created if it does not exist. If set to `absent`, the
option will be removed if it exists.
enum:
- present
- absent
type: string
name:
description: Name of the option
type: string
value:
description: Value of the option
type: string
required:
- name
- value
type: object
type: array
owner:
description: |-
Owner specifies the database role that will own the Foreign Data Wrapper.
The role must have superuser privileges in the target database.
type: string
usage:
description: List of roles for which `USAGE` privileges on the FDW are granted or revoked.
items:
description: UsageSpec configures a usage for a foreign data wrapper
properties:
name:
description: Name of the usage
type: string
x-kubernetes-validations:
- message: name is required
rule: self != ''
type:
default: grant
description: The type of usage
enum:
- grant
- revoke
type: string
required:
- name
type: object
type: array
validator:
description: |-
Name of the validator function (e.g., "postgres_fdw_validator").
This will be empty if no validator is specified. In that case,
the default validator is registered when the FDW extension is created.
type: string
required:
- name
type: object
type: array
icuLocale:
description: |-
Maps to the `ICU_LOCALE` parameter of `CREATE DATABASE`. This
setting cannot be changed. Specifies the ICU locale when the ICU
provider is used. This option requires `localeProvider` to be set to
`icu`. Available from PostgreSQL 15.
type: string
x-kubernetes-validations:
- message: icuLocale is immutable
rule: self == oldSelf
icuRules:
description: |-
Maps to the `ICU_RULES` parameter of `CREATE DATABASE`. This setting
cannot be changed. Specifies additional collation rules to customize
the behavior of the default collation. This option requires
`localeProvider` to be set to `icu`. Available from PostgreSQL 16.
type: string
x-kubernetes-validations:
- message: icuRules is immutable
rule: self == oldSelf
isTemplate:
description: |-
Maps to the `IS_TEMPLATE` parameter of `CREATE DATABASE` and `ALTER
DATABASE`. If true, this database is considered a template and can
be cloned by any user with `CREATEDB` privileges.
type: boolean
locale:
description: |-
Maps to the `LOCALE` parameter of `CREATE DATABASE`. This setting
cannot be changed. Sets the default collation order and character
classification in the new database.
type: string
x-kubernetes-validations:
- message: locale is immutable
rule: self == oldSelf
localeCType:
description: |-
Maps to the `LC_CTYPE` parameter of `CREATE DATABASE`. This setting
cannot be changed.
type: string
x-kubernetes-validations:
- message: localeCType is immutable
rule: self == oldSelf
localeCollate:
description: |-
Maps to the `LC_COLLATE` parameter of `CREATE DATABASE`. This
setting cannot be changed.
type: string
x-kubernetes-validations:
- message: localeCollate is immutable
rule: self == oldSelf
localeProvider:
description: |-
Maps to the `LOCALE_PROVIDER` parameter of `CREATE DATABASE`. This
setting cannot be changed. This option sets the locale provider for
databases created in the new cluster. Available from PostgreSQL 16.
type: string
x-kubernetes-validations:
- message: localeProvider is immutable
rule: self == oldSelf
name:
description: The name of the database to create inside PostgreSQL. This setting cannot be changed.
type: string
x-kubernetes-validations:
- message: name is immutable
rule: self == oldSelf
- message: the name postgres is reserved
rule: self != 'postgres'
- message: the name template0 is reserved
rule: self != 'template0'
- message: the name template1 is reserved
rule: self != 'template1'
owner:
description: |-
Maps to the `OWNER` parameter of `CREATE DATABASE`.
Maps to the `OWNER TO` command of `ALTER DATABASE`.
The role name of the user who owns the database inside PostgreSQL.
type: string
schemas:
description: The list of schemas to be managed in the database
items:
description: SchemaSpec configures a schema in a database
properties:
ensure:
default: present
description: |-
Specifies whether an object (e.g schema) should be present or absent
in the database. If set to `present`, the object will be created if
it does not exist. If set to `absent`, the extension/schema will be
removed if it exists.
enum:
- present
- absent
type: string
name:
description: Name of the object (extension, schema, FDW, server)
type: string
owner:
description: |-
The role name of the user who owns the schema inside PostgreSQL.
It maps to the `AUTHORIZATION` parameter of `CREATE SCHEMA` and the
`OWNER TO` command of `ALTER SCHEMA`.
type: string
required:
- name
type: object
type: array
servers:
description: The list of foreign servers to be managed in the database
items:
description: ServerSpec configures a server of a foreign data wrapper
properties:
ensure:
default: present
description: |-
Specifies whether an object (e.g schema) should be present or absent
in the database. If set to `present`, the object will be created if
it does not exist. If set to `absent`, the extension/schema will be
removed if it exists.
enum:
- present
- absent
type: string
fdw:
description: The name of the Foreign Data Wrapper (FDW)
type: string
x-kubernetes-validations:
- message: fdw is required
rule: self != ''
name:
description: Name of the object (extension, schema, FDW, server)
type: string
options:
description: |-
Options specifies the configuration options for the server
(key is the option name, value is the option value).
items:
description: OptionSpec holds the name, value and the ensure field for an option
properties:
ensure:
default: present
description: |-
Specifies whether an option should be present or absent in
the database. If set to `present`, the option will be
created if it does not exist. If set to `absent`, the
option will be removed if it exists.
enum:
- present
- absent
type: string
name:
description: Name of the option
type: string
value:
description: Value of the option
type: string
required:
- name
- value
type: object
type: array
usage:
description: List of roles for which `USAGE` privileges on the server are granted or revoked.
items:
description: UsageSpec configures a usage for a foreign data wrapper
properties:
name:
description: Name of the usage
type: string
x-kubernetes-validations:
- message: name is required
rule: self != ''
type:
default: grant
description: The type of usage
enum:
- grant
- revoke
type: string
required:
- name
type: object
type: array
required:
- fdw
- name
type: object
type: array
tablespace:
description: |-
Maps to the `TABLESPACE` parameter of `CREATE DATABASE`.
Maps to the `SET TABLESPACE` command of `ALTER DATABASE`.
The name of the tablespace (in PostgreSQL) that will be associated
with the new database. This tablespace will be the default
tablespace used for objects created in this database.
type: string
template:
description: |-
Maps to the `TEMPLATE` parameter of `CREATE DATABASE`. This setting
cannot be changed. The name of the template from which to create
this database.
type: string
x-kubernetes-validations:
- message: template is immutable
rule: self == oldSelf
required:
- cluster
- name
- owner
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'''
status:
description: |-
Most recently observed status of the Database. This data may not be up to
date. Populated by the system. Read-only.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
properties:
applied:
description: Applied is true if the database was reconciled correctly
type: boolean
extensions:
description: Extensions is the status of the managed extensions
items:
description: DatabaseObjectStatus is the status of the managed database objects
properties:
applied:
description: |-
True of the object has been installed successfully in
the database
type: boolean
message:
description: Message is the object reconciliation message
type: string
name:
description: The name of the object
type: string
required:
- applied
- name
type: object
type: array
fdws:
description: FDWs is the status of the managed FDWs
items:
description: DatabaseObjectStatus is the status of the managed database objects
properties:
applied:
description: |-
True of the object has been installed successfully in
the database
type: boolean
message:
description: Message is the object reconciliation message
type: string
name:
description: The name of the object
type: string
required:
- applied
- name
type: object
type: array
message:
description: Message is the reconciliation output message
type: string
observedGeneration:
description: |-
A sequence number representing the latest
desired state that was synchronized
format: int64
type: integer
schemas:
description: Schemas is the status of the managed schemas
items:
description: DatabaseObjectStatus is the status of the managed database objects
properties:
applied:
description: |-
True of the object has been installed successfully in
the database
type: boolean
message:
description: Message is the object reconciliation message
type: string
name:
description: The name of the object
type: string
required:
- applied
- name
type: object
type: array
servers:
description: Servers is the status of the managed servers
items:
description: DatabaseObjectStatus is the status of the managed database objects
properties:
applied:
description: |-
True of the object has been installed successfully in
the database
type: boolean
message:
description: Message is the object reconciliation message
type: string
name:
description: The name of the object
type: string
required:
- applied
- name
type: object
type: array
type: object
required:
- metadata
- spec
type: object
served: true
storage: true
subresources:
status: {}