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: {}