580 lines
27 KiB
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: {}
|