From e78c32fe1a55701f6cf2892c053254386b31c532 Mon Sep 17 00:00:00 2001 From: Martin Montes Date: Thu, 28 Dec 2023 17:54:11 +0000 Subject: [PATCH] Bump bundle to version '0.24.0' --- Makefile | 4 +- ...ariadb-operator.clusterserviceversion.yaml | 8 +- .../manifests/mariadb.mmontes.io_backups.yaml | 159 ++- .../mariadb.mmontes.io_connections.yaml | 26 +- .../mariadb.mmontes.io_databases.yaml | 12 + .../manifests/mariadb.mmontes.io_grants.yaml | 14 + .../mariadb.mmontes.io_mariadbs.yaml | 595 +++++++--- .../mariadb.mmontes.io_restores.yaml | 148 ++- .../manifests/mariadb.mmontes.io_sqljobs.yaml | 36 +- .../manifests/mariadb.mmontes.io_users.yaml | 15 +- config/manager/kustomization.yaml | 2 +- ...ariadb-operator.clusterserviceversion.yaml | 2 +- config/manifests/crds/crds.yaml | 1005 ++++++++++++++--- 13 files changed, 1668 insertions(+), 358 deletions(-) diff --git a/Makefile b/Makefile index 88cdc0a..d33fecc 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -VERSION ?= 0.23.1 +VERSION ?= 0.24.0 CHANNELS ?= alpha BUNDLE_CHANNELS := --channels=$(CHANNELS) @@ -261,7 +261,7 @@ $(LOCALBIN): .PHONY: kind KIND = ./bin/kind -KIND_VERSION ?= 0.23.1 +KIND_VERSION ?= 0.24.0 kind: ## Download kind locally if necessary. ifeq (,$(wildcard $(KIND))) ifeq (,$(shell which kind 2>/dev/null)) diff --git a/bundle/manifests/mariadb-operator.clusterserviceversion.yaml b/bundle/manifests/mariadb-operator.clusterserviceversion.yaml index 6bc75b7..093d49a 100644 --- a/bundle/manifests/mariadb-operator.clusterserviceversion.yaml +++ b/bundle/manifests/mariadb-operator.clusterserviceversion.yaml @@ -394,12 +394,12 @@ metadata: ] capabilities: Deep Insights categories: Database - containerImage: ghcr.io/mariadb-operator/mariadb-operator-helm:0.23.1 + containerImage: ghcr.io/mariadb-operator/mariadb-operator-helm:0.24.0 description: Run and operate MariaDB in a cloud native way operators.operatorframework.io/builder: operator-sdk-v1.26.0 operators.operatorframework.io/project_layout: helm.sdk.operatorframework.io/v1 repository: https://github.com/mariadb-operator/mariadb-operator - name: mariadb-operator.v0.23.1 + name: mariadb-operator.v0.24.0 namespace: placeholder spec: apiservicedefinitions: {} @@ -637,7 +637,7 @@ spec: - args: - --leader-elect - --leader-election-id=helm-operator - image: ghcr.io/mariadb-operator/mariadb-operator-helm:0.23.1 + image: ghcr.io/mariadb-operator/mariadb-operator-helm:0.24.0 livenessProbe: httpGet: path: /healthz @@ -732,4 +732,4 @@ spec: provider: name: mariadb-operator url: https://github.com/mariadb-operator/mariadb-operator - version: 0.23.1 + version: 0.24.0 diff --git a/bundle/manifests/mariadb.mmontes.io_backups.yaml b/bundle/manifests/mariadb.mmontes.io_backups.yaml index 4344e4f..2f49b04 100644 --- a/bundle/manifests/mariadb.mmontes.io_backups.yaml +++ b/bundle/manifests/mariadb.mmontes.io_backups.yaml @@ -50,7 +50,7 @@ spec: description: BackupSpec defines the desired state of Backup properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the Backup Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the @@ -878,14 +878,22 @@ spec: type: object type: object args: + description: Args to be used in the Backup container. items: type: string type: array backoffLimit: - default: 5 + description: BackoffLimit defines the maximum number of attempts to + successfully take a Backup. format: int32 type: integer + logLevel: + default: info + description: LogLevel to be used n the Backup Job. It defaults to + 'info'. + type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -921,19 +929,23 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic - maxRetentionDays: - default: 30 - format: int32 - type: integer + maxRetention: + description: MaxRetention defines the retention policy for backups. + Old backups will be cleaned up by the Backup Job. It defaults to + 30 days. + type: string nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the Backup Pod. type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in @@ -982,27 +994,31 @@ spec: type: object restartPolicy: default: OnFailure - description: RestartPolicy describes how the container should be restarted. - Only one of the following restart policies may be specified. If - none of the following policies is specified, the default one is - RestartPolicyAlways. + description: RestartPolicy to be added to the Backup Pod. + enum: + - Always + - OnFailure + - Never type: string schedule: + description: Schedule defines when the Backup will be taken. properties: cron: + description: Cron is a cron expression that defines the schedule. type: string suspend: default: false + description: Suspend defines whether the schedule is active or + not. type: boolean required: - cron type: object storage: + description: Storage to be used in the Backup. properties: persistentVolumeClaim: - description: PersistentVolumeClaimSpec describes the common attributes - of storage devices and allows a Source for provider-specific - attributes + description: PersistentVolumeClaim is a Kubernetes PVC specification. properties: accessModes: description: 'accessModes contains the desired access modes @@ -1209,9 +1225,118 @@ spec: backing this claim. type: string type: object + s3: + description: S3 defines the configuration to store backups in + a S3 compatible storage. + properties: + accessKeyIdSecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 access key id. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bucket: + description: Bucket is the name Name of the bucket to store + backups. + type: string + endpoint: + description: Endpoint is the S3 API endpoint without scheme. + type: string + region: + description: Region is the S3 region name to use. + type: string + secretAccessKeySecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 secret key. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + sessionTokenSecretKeyRef: + description: SessionTokenSecretKeyRef is a reference to a + Secret key containing the S3 session token. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + tls: + description: TLS provides the configuration required to establish + TLS connections with S3. + properties: + caSecretKeyRef: + description: CASecretKeyRef is a reference to a Secret + key containing a CA bundle in PEM format used to establish + TLS connections with S3. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + enabled: + description: Enabled is a flag to enable TLS. + type: boolean + type: object + required: + - accessKeyIdSecretKeyRef + - bucket + - endpoint + - secretAccessKeySecretKeyRef + type: object volume: - description: Represents the source of a volume to mount. Only - one of its members may be specified. + description: Volume is a Kubernetes volume specification. properties: awsElasticBlockStore: description: 'awsElasticBlockStore represents an AWS Disk @@ -2790,6 +2915,7 @@ spec: type: object type: object tolerations: + description: Tolerations to be used in the Backup Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching @@ -2836,6 +2962,7 @@ spec: description: BackupStatus defines the observed state of Backup properties: conditions: + description: Conditions for the Backup object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct diff --git a/bundle/manifests/mariadb.mmontes.io_connections.yaml b/bundle/manifests/mariadb.mmontes.io_connections.yaml index 519fdd3..319be48 100644 --- a/bundle/manifests/mariadb.mmontes.io_connections.yaml +++ b/bundle/manifests/mariadb.mmontes.io_connections.yaml @@ -53,15 +53,21 @@ spec: description: ConnectionSpec defines the desired state of Connection properties: database: + description: Database to use for configuring the Connection. type: string healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform health + check retries. type: string type: object mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -97,15 +103,19 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic params: additionalProperties: type: string + description: Params to be used in the Connection. type: object passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: PasswordSecretKeyRef is a reference to the password to + use for configuring the Connection. properties: key: description: The key of the secret to select from. Must be a @@ -123,35 +133,48 @@ spec: type: object x-kubernetes-map-type: atomic secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string username: + description: Username to use for configuring the Connection. type: string required: - mariaDbRef @@ -162,6 +185,7 @@ spec: description: ConnectionStatus defines the observed state of Connection properties: conditions: + description: Conditions for the Connection object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct diff --git a/bundle/manifests/mariadb.mmontes.io_databases.yaml b/bundle/manifests/mariadb.mmontes.io_databases.yaml index 3c61096..628a053 100644 --- a/bundle/manifests/mariadb.mmontes.io_databases.yaml +++ b/bundle/manifests/mariadb.mmontes.io_databases.yaml @@ -60,11 +60,14 @@ spec: properties: characterSet: default: utf8 + description: CharacterSet to use in the Database. type: string collate: default: utf8_general_ci + description: CharacterSet to use in the Database. type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -100,13 +103,21 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic name: + description: Name overrides the default Database name provided by + metadata.name. maxLength: 80 type: string + requeueInterval: + description: RequeueInterval is used to perform requeue reconcilizations. + type: string retryInterval: + description: RetryInterval is the interval used to perform retries. type: string required: - mariaDbRef @@ -115,6 +126,7 @@ spec: description: DatabaseStatus defines the observed state of Database properties: conditions: + description: Conditions for the Database object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct diff --git a/bundle/manifests/mariadb.mmontes.io_grants.yaml b/bundle/manifests/mariadb.mmontes.io_grants.yaml index 671623b..f883183 100644 --- a/bundle/manifests/mariadb.mmontes.io_grants.yaml +++ b/bundle/manifests/mariadb.mmontes.io_grants.yaml @@ -63,13 +63,17 @@ spec: properties: database: default: '*' + description: Database to use in the Grant. type: string grantOption: default: false + description: GrantOption to use in the Grant. type: boolean host: + description: Host to use in the Grant. type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -105,20 +109,29 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic privileges: + description: Privileges to use in the Grant. items: type: string minItems: 1 type: array + requeueInterval: + description: RequeueInterval is used to perform requeue reconcilizations. + type: string retryInterval: + description: RetryInterval is the interval used to perform retries. type: string table: default: '*' + description: Table to use in the Grant. type: string username: + description: Username to use in the Grant. type: string required: - mariaDbRef @@ -129,6 +142,7 @@ spec: description: GrantStatus defines the observed state of Grant properties: conditions: + description: Conditions for the Grant object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct diff --git a/bundle/manifests/mariadb.mmontes.io_mariadbs.yaml b/bundle/manifests/mariadb.mmontes.io_mariadbs.yaml index b4af63b..4883cdf 100644 --- a/bundle/manifests/mariadb.mmontes.io_mariadbs.yaml +++ b/bundle/manifests/mariadb.mmontes.io_mariadbs.yaml @@ -50,7 +50,7 @@ spec: description: MariaDBSpec defines the desired state of MariaDB properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the @@ -878,14 +878,16 @@ spec: type: object type: object args: + description: Args to be used in the Container. items: type: string type: array bootstrapFrom: + description: BootstrapFrom defines a source to bootstrap from. properties: backupRef: - description: LocalObjectReference contains enough information - to let you locate the referenced object inside the same namespace. + description: BackupRef is a reference to a Backup object. It has + priority over S3 and Volume. properties: name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -893,11 +895,125 @@ spec: type: string type: object x-kubernetes-map-type: atomic - fileName: + s3: + description: S3 defines the configuration to restore backups from + a S3 compatible storage. It has priority over Volume. + properties: + accessKeyIdSecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 access key id. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bucket: + description: Bucket is the name Name of the bucket to store + backups. + type: string + endpoint: + description: Endpoint is the S3 API endpoint without scheme. + type: string + region: + description: Region is the S3 region name to use. + type: string + secretAccessKeySecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 secret key. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + sessionTokenSecretKeyRef: + description: SessionTokenSecretKeyRef is a reference to a + Secret key containing the S3 session token. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + tls: + description: TLS provides the configuration required to establish + TLS connections with S3. + properties: + caSecretKeyRef: + description: CASecretKeyRef is a reference to a Secret + key containing a CA bundle in PEM format used to establish + TLS connections with S3. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + enabled: + description: Enabled is a flag to enable TLS. + type: boolean + type: object + required: + - accessKeyIdSecretKeyRef + - bucket + - endpoint + - secretAccessKeySecretKeyRef + type: object + targetRecoveryTime: + description: TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) + date and time that defines the point in time recovery objective. + It is used to determine the closest restoration source in time. + format: date-time type: string volume: - description: Represents the source of a volume to mount. Only - one of its members may be specified. + description: Volume is a Kubernetes Volume object that contains + a backup. properties: awsElasticBlockStore: description: 'awsElasticBlockStore represents an AWS Disk @@ -2476,55 +2592,78 @@ spec: type: object type: object command: + description: Command to be used in the Container. items: type: string type: array connection: + description: Connection defines templates to configure the general + Connection object. properties: healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform + health check retries. type: string type: object params: additionalProperties: type: string + description: Params to be used in the Connection. type: object secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string type: object database: + description: Database is the database to be created on bootstrap. type: string env: + description: Env represents the environment variables to be injected + in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -2633,6 +2772,8 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap and + Secrets) to environment variables to be injected in the container. items: description: EnvFromSource represents the source of a set of ConfigMaps properties: @@ -2667,22 +2808,25 @@ spec: type: object type: array galera: - description: Galera allows you to enable multi-master HA via Galera - in your MariaDB cluster. + description: Replication configures high availability via Galera. properties: agent: description: 'GaleraAgent is a sidecar agent that co-operates with mariadb-operator. More info: https://github.com/mariadb-operator/agent.' properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -2800,6 +2944,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in + the container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -2844,11 +2991,17 @@ spec: requests. type: string image: + description: Image name to be used by the MariaDB instances. + The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to - pull a container image + description: ImagePullPolicy is the image pull policy. One + of `Always`, `Never` or `IfNotPresent`. If not defined, + it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string kubernetesAuth: description: KubernetesAuth to be used by the agent container @@ -2865,9 +3018,7 @@ spec: type: boolean type: object livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -3018,13 +3169,12 @@ spec: type: integer type: object port: - description: Port to be used by the agent container + default: 5555 + description: Port where the agent will be listening for connections. format: int32 type: integer readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -3175,8 +3325,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -3226,9 +3375,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration - that will be applied to a container. Some fields are present - in both SecurityContext and PodSecurityContext. When both - are set, the values in SecurityContext take precedence. + that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -3399,6 +3546,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -3438,8 +3586,6 @@ spec: - name type: object type: array - required: - - image type: object enabled: description: Enabled is a flag to enable Galera. @@ -3449,14 +3595,18 @@ spec: with mariadb-operator. More info: https://github.com/mariadb-operator/init.' properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -3574,6 +3724,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in + the container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -3613,16 +3766,20 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. + The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to - pull a container image + description: ImagePullPolicy is the image pull policy. One + of `Always`, `Never` or `IfNotPresent`. If not defined, + it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -3773,9 +3930,7 @@ spec: type: integer type: object readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -3926,8 +4081,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -3977,9 +4131,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration - that will be applied to a container. Some fields are present - in both SecurityContext and PodSecurityContext. When both - are set, the values in SecurityContext take precedence. + that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -4150,6 +4302,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -4247,6 +4400,10 @@ spec: sst: description: 'SST is the Snapshot State Transfer used when new Pods join the cluster. More info: https://galeracluster.com/library/documentation/sst.html.' + enum: + - rsync + - mariabackup + - mysqldump type: string volumeClaimTemplate: description: VolumeClaimTemplate is a template for the PVC that @@ -4262,6 +4419,7 @@ spec: annotations: additionalProperties: type: string + description: Annotations to be used in the PVC. type: object dataSource: description: 'dataSource field can be used to specify either: @@ -4350,6 +4508,7 @@ spec: labels: additionalProperties: type: string + description: Labels to be used in the PVC. type: object resources: description: 'resources represents the minimum resources the @@ -4468,13 +4627,20 @@ spec: type: object type: object image: + description: Image name to be used by the MariaDB instances. The supported + format is `:`. Only MariaDB official images are supported. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull a container - image + description: ImagePullPolicy is the image pull policy. One of `Always`, + `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string imagePullSecrets: + description: ImagePullSecrets is the list of pull Secrets to be used + to pull the image. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. @@ -4487,28 +4653,38 @@ spec: x-kubernetes-map-type: atomic type: array inheritMetadata: + description: InheritMetadata defines the metadata to be inherited + by children resources. properties: annotations: additionalProperties: type: string + description: Annotations to be added to children resources. type: object labels: additionalProperties: type: string + description: Labels to be added to children resources. type: object type: object initContainers: + description: InitContainers to be used in the Pod. items: + description: Container object definition. properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -4626,6 +4802,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in the + container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -4664,16 +4843,20 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. + The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull - a container image + description: ImagePullPolicy is the image pull policy. One of + `Always`, `Never` or `IfNotPresent`. If not defined, it defaults + to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or ready - to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -4822,9 +5005,7 @@ spec: type: integer type: object readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or ready - to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -4973,8 +5154,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -5024,9 +5204,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration that - will be applied to a container. Some fields are present in - both SecurityContext and PodSecurityContext. When both are - set, the values in SecurityContext take precedence. + will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -5195,6 +5373,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -5238,9 +5417,7 @@ spec: type: object type: array livenessProbe: - description: Probe describes a health check to be performed against - a container to determine whether it is alive or ready to receive - traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -5382,18 +5559,27 @@ spec: type: integer type: object metrics: + description: Metrics configures metrics and how to scrape them. properties: + enabled: + description: Enabled is a flag to enable Metrics + type: boolean exporter: + description: Exporter defines the metrics exporter container. properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -5511,6 +5697,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in + the container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -5550,16 +5739,21 @@ spec: type: object type: array image: + description: 'Image name to be used as metrics exporter. The + supported format is `:`. Only mysqld-exporter + >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter' type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to - pull a container image + description: ImagePullPolicy is the image pull policy. One + of `Always`, `Never` or `IfNotPresent`. If not defined, + it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -5711,12 +5905,12 @@ spec: type: object port: default: 9104 + description: Port where the exporter will be listening for + connections. format: int32 type: integer readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -5867,8 +6061,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -5918,9 +6111,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration - that will be applied to a container. Some fields are present - in both SecurityContext and PodSecurityContext. When both - are set, the values in SecurityContext take precedence. + that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -6091,6 +6282,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -6130,28 +6322,57 @@ spec: - name type: object type: array + type: object + passwordSecretKeyRef: + description: PasswordSecretKeyRef is a reference to the password + of the monitoring user used by the exporter. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean required: - - image + - key type: object + x-kubernetes-map-type: atomic serviceMonitor: + description: ServiceMonitor defines the ServiceMonior object. properties: interval: + description: Interval for scraping metrics. + type: string + jobLabel: + description: JobLabel to add to the ServiceMonitor object. type: string prometheusRelease: + description: PrometheusRelease is the release label to add + to the ServiceMonitor object. type: string scrapeTimeout: + description: ScrapeTimeout defines the timeout for scraping + metrics. type: string - required: - - prometheusRelease type: object - required: - - exporter - - serviceMonitor + username: + description: Username is the username of the monitoring user used + by the exporter. + type: string type: object myCnf: + description: MyCnf allows to specify the my.cnf file mounted by Mariadb. type: string myCnfConfigMapKeyRef: - description: Selects a key from a ConfigMap. + description: MyCnfConfigMapKeyRef is a reference to the my.cnf config + file provided via a ConfigMap. If not provided, it will be defaulted + with reference to a ConfigMap with the contents of the MyCnf field. properties: key: description: The key to select. @@ -6171,9 +6392,11 @@ spec: nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the Pod. type: object passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: PasswordSecretKeyRef is a reference to the password of + the initial user provided via a Secret. properties: key: description: The key of the secret to select from. Must be a @@ -6193,25 +6416,29 @@ spec: podAnnotations: additionalProperties: type: string + description: PodAnnotations to add to the Pods metadata. type: object podDisruptionBudget: + description: PodDisruptionBudget defines the budget for replica availability. properties: maxUnavailable: anyOf: - type: integer - type: string + description: MaxUnavailable defines the number of maximum unavailable + Pods. x-kubernetes-int-or-string: true minAvailable: anyOf: - type: integer - type: string + description: MinAvailable defines the number of minimum available + Pods. x-kubernetes-int-or-string: true type: object podSecurityContext: - description: PodSecurityContext holds pod-level security attributes - and common container settings. Some fields are also present in container.securityContext. Field - values of container.securityContext take precedence over field values - of PodSecurityContext. + description: SecurityContext holds pod-level security attributes and + common container settings. properties: fsGroup: description: "A special supplemental group that applies to all @@ -6378,87 +6605,114 @@ spec: type: object port: default: 3306 + description: Port where the instances will be listening for connections. format: int32 type: integer primaryConnection: + description: PrimaryConnection defines templates to configure the + primary Connection object. properties: healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform + health check retries. type: string type: object params: additionalProperties: type: string + description: Params to be used in the Connection. type: object secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string type: object primaryService: + description: PrimaryService defines templates to configure the primary + Service object. properties: allocateLoadBalancerNodePorts: + description: AllocateLoadBalancerNodePorts Service field. type: boolean annotations: additionalProperties: type: string + description: Annotations to add to the Service metadata. type: object externalTrafficPolicy: - description: ServiceExternalTrafficPolicy describes how nodes - distribute service traffic they receive on one of the Service's - "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer - IPs. + description: ExternalTrafficPolicy Service field. type: string labels: additionalProperties: type: string + description: Labels to add to the Service metadata. type: object loadBalancerIP: + description: LoadBalancerIP Service field. type: string loadBalancerSourceRanges: + description: LoadBalancerSourceRanges Service field. items: type: string type: array sessionAffinity: - description: Session Affinity Type string + description: SessionAffinity Service field. type: string type: - description: Service Type string describes ingress methods for - a service + default: ClusterIP + description: Type is the Service type. One of `ClusterIP`, `NodePort` + or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. + enum: + - ClusterIP + - NodePort + - LoadBalancer type: string type: object readinessProbe: - description: Probe describes a health check to be performed against - a container to determine whether it is alive or ready to receive - traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -6601,11 +6855,11 @@ spec: type: object replicas: default: 1 + description: Replicas indicates the number of desired instances. format: int32 type: integer replication: - description: Replication allows you to enable single-master HA via - semi-synchronours replication in your MariaDB cluster. + description: Replication configures high availability via replication. properties: enabled: description: Enabled is a flag to enable Replication. @@ -6640,6 +6894,9 @@ spec: gtid: description: 'Gtid indicates which Global Transaction ID should be used when connecting a replica to the master. See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.' + enum: + - CurrentPos + - SlavePos type: string replPasswordSecretKeyRef: description: ReplPasswordSecretKeyRef provides a reference @@ -6671,6 +6928,9 @@ spec: description: 'WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine. More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.' + enum: + - AfterSync + - AfterCommit type: string type: object syncBinlog: @@ -6680,7 +6940,7 @@ spec: type: boolean type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in @@ -6728,7 +6988,8 @@ spec: type: object type: object rootPasswordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: RootPasswordSecretKeyRef is a reference to a Secret key + containing the root password. properties: key: description: The key of the secret to select from. Must be a @@ -6746,85 +7007,111 @@ spec: type: object x-kubernetes-map-type: atomic secondaryConnection: + description: SecondaryConnection defines templates to configure the + secondary Connection object. properties: healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform + health check retries. type: string type: object params: additionalProperties: type: string + description: Params to be used in the Connection. type: object secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string type: object secondaryService: + description: SecondaryService defines templates to configure the secondary + Service object. properties: allocateLoadBalancerNodePorts: + description: AllocateLoadBalancerNodePorts Service field. type: boolean annotations: additionalProperties: type: string + description: Annotations to add to the Service metadata. type: object externalTrafficPolicy: - description: ServiceExternalTrafficPolicy describes how nodes - distribute service traffic they receive on one of the Service's - "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer - IPs. + description: ExternalTrafficPolicy Service field. type: string labels: additionalProperties: type: string + description: Labels to add to the Service metadata. type: object loadBalancerIP: + description: LoadBalancerIP Service field. type: string loadBalancerSourceRanges: + description: LoadBalancerSourceRanges Service field. items: type: string type: array sessionAffinity: - description: Session Affinity Type string + description: SessionAffinity Service field. type: string type: - description: Service Type string describes ingress methods for - a service + default: ClusterIP + description: Type is the Service type. One of `ClusterIP`, `NodePort` + or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. + enum: + - ClusterIP + - NodePort + - LoadBalancer type: string type: object securityContext: description: SecurityContext holds security configuration that will - be applied to a container. Some fields are present in both SecurityContext - and PodSecurityContext. When both are set, the values in SecurityContext - take precedence. + be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether a process @@ -6981,49 +7268,64 @@ spec: type: object type: object service: + description: Service defines templates to configure the general Service + object. properties: allocateLoadBalancerNodePorts: + description: AllocateLoadBalancerNodePorts Service field. type: boolean annotations: additionalProperties: type: string + description: Annotations to add to the Service metadata. type: object externalTrafficPolicy: - description: ServiceExternalTrafficPolicy describes how nodes - distribute service traffic they receive on one of the Service's - "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer - IPs. + description: ExternalTrafficPolicy Service field. type: string labels: additionalProperties: type: string + description: Labels to add to the Service metadata. type: object loadBalancerIP: + description: LoadBalancerIP Service field. type: string loadBalancerSourceRanges: + description: LoadBalancerSourceRanges Service field. items: type: string type: array sessionAffinity: - description: Session Affinity Type string + description: SessionAffinity Service field. type: string type: - description: Service Type string describes ingress methods for - a service + default: ClusterIP + description: Type is the Service type. One of `ClusterIP`, `NodePort` + or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. + enum: + - ClusterIP + - NodePort + - LoadBalancer type: string type: object sidecarContainers: + description: SidecarContainers to be used in the Pod. items: + description: Container object definition. properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -7141,6 +7443,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in the + container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -7179,16 +7484,20 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. + The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull - a container image + description: ImagePullPolicy is the image pull policy. One of + `Always`, `Never` or `IfNotPresent`. If not defined, it defaults + to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or ready - to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -7337,9 +7646,7 @@ spec: type: integer type: object readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or ready - to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -7488,8 +7795,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -7539,9 +7845,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration that - will be applied to a container. Some fields are present in - both SecurityContext and PodSecurityContext. When both are - set, the values in SecurityContext take precedence. + will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -7710,6 +8014,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -7753,6 +8058,7 @@ spec: type: object type: array tolerations: + description: Tolerations to be used in the Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching @@ -7792,10 +8098,8 @@ spec: type: object type: array updateStrategy: - description: StatefulSetUpdateStrategy indicates the strategy that - the StatefulSet controller will use to perform updates. It includes - any additional parameters necessary to perform the update for the - indicated strategy. + description: PodDisruptionBudget defines the update strategy for the + StatefulSet object. properties: rollingUpdate: description: RollingUpdate is used to communicate parameters when @@ -7831,8 +8135,12 @@ spec: type: string type: object username: + description: Username is the username of the user to be created on + bootstrap. type: string volumeClaimTemplate: + description: VolumeClaimTemplate provides a template to define the + Pod PVCs. properties: accessModes: description: 'accessModes contains the desired access modes the @@ -7843,6 +8151,7 @@ spec: annotations: additionalProperties: type: string + description: Annotations to be used in the PVC. type: object dataSource: description: 'dataSource field can be used to specify either: @@ -7927,6 +8236,7 @@ spec: labels: additionalProperties: type: string + description: Labels to be used in the PVC. type: object resources: description: 'resources represents the minimum resources the volume @@ -8042,6 +8352,7 @@ spec: type: string type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -8080,6 +8391,7 @@ spec: type: object type: array volumes: + description: Volumes to be used in the Pod. items: description: Volume represents a named volume in a pod that may be accessed by any container in the pod. @@ -9638,14 +9950,13 @@ spec: type: object type: array required: - - image - - rootPasswordSecretKeyRef - volumeClaimTemplate type: object status: description: MariaDBStatus defines the observed state of MariaDB properties: conditions: + description: Conditions for the Mariadb object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct @@ -9714,12 +10025,13 @@ spec: type: object type: array currentPrimary: + description: CurrentPrimary is the primary Pod. type: string currentPrimaryPodIndex: + description: CurrentPrimaryPodIndex is the primary Pod index. type: integer galeraRecovery: - description: GaleraRecoveryStatus is the current state of the Galera - recovery process. + description: GaleraRecovery is the Galera recovery current state. properties: bootstrap: description: Bootstrap indicates when and in which Pod the cluster @@ -9766,6 +10078,10 @@ spec: file (grastate.dat). type: object type: object + replicas: + description: Replicas indicates the number of current instances. + format: int32 + type: integer type: object required: - spec @@ -9773,6 +10089,9 @@ spec: served: true storage: true subresources: + scale: + specReplicasPath: .spec.replicas + statusReplicasPath: .status.replicas status: {} status: acceptedNames: diff --git a/bundle/manifests/mariadb.mmontes.io_restores.yaml b/bundle/manifests/mariadb.mmontes.io_restores.yaml index 927eb0f..e41a923 100644 --- a/bundle/manifests/mariadb.mmontes.io_restores.yaml +++ b/bundle/manifests/mariadb.mmontes.io_restores.yaml @@ -50,7 +50,7 @@ spec: description: RestoreSpec defines the desired state of restore properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the Restore Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the @@ -879,11 +879,13 @@ spec: type: object backoffLimit: default: 5 + description: BackoffLimit defines the maximum number of attempts to + successfully perform a Backup. format: int32 type: integer backupRef: - description: LocalObjectReference contains enough information to let - you locate the referenced object inside the same namespace. + description: BackupRef is a reference to a Backup object. It has priority + over S3 and Volume. properties: name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -891,9 +893,13 @@ spec: type: string type: object x-kubernetes-map-type: atomic - fileName: + logLevel: + default: info + description: LogLevel to be used n the Backup Job. It defaults to + 'info'. type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -929,15 +935,18 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the Restore Pod. type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in @@ -986,12 +995,128 @@ spec: type: object restartPolicy: default: OnFailure - description: RestartPolicy describes how the container should be restarted. - Only one of the following restart policies may be specified. If - none of the following policies is specified, the default one is - RestartPolicyAlways. + description: RestartPolicy to be added to the Backup Job. + enum: + - Always + - OnFailure + - Never + type: string + s3: + description: S3 defines the configuration to restore backups from + a S3 compatible storage. It has priority over Volume. + properties: + accessKeyIdSecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 access key id. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bucket: + description: Bucket is the name Name of the bucket to store backups. + type: string + endpoint: + description: Endpoint is the S3 API endpoint without scheme. + type: string + region: + description: Region is the S3 region name to use. + type: string + secretAccessKeySecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 secret key. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + sessionTokenSecretKeyRef: + description: SessionTokenSecretKeyRef is a reference to a Secret + key containing the S3 session token. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + tls: + description: TLS provides the configuration required to establish + TLS connections with S3. + properties: + caSecretKeyRef: + description: CASecretKeyRef is a reference to a Secret key + containing a CA bundle in PEM format used to establish TLS + connections with S3. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + enabled: + description: Enabled is a flag to enable TLS. + type: boolean + type: object + required: + - accessKeyIdSecretKeyRef + - bucket + - endpoint + - secretAccessKeySecretKeyRef + type: object + targetRecoveryTime: + description: TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) + date and time that defines the point in time recovery objective. + It is used to determine the closest restoration source in time. + format: date-time type: string tolerations: + description: Tolerations to be used in the Restore Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching @@ -1031,8 +1156,8 @@ spec: type: object type: array volume: - description: Represents the source of a volume to mount. Only one - of its members may be specified. + description: Volume is a Kubernetes Volume object that contains a + backup. properties: awsElasticBlockStore: description: 'awsElasticBlockStore represents an AWS Disk resource @@ -2562,6 +2687,7 @@ spec: description: RestoreStatus defines the observed state of restore properties: conditions: + description: Conditions for the Restore object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct diff --git a/bundle/manifests/mariadb.mmontes.io_sqljobs.yaml b/bundle/manifests/mariadb.mmontes.io_sqljobs.yaml index 6d3639e..1e0f9a0 100644 --- a/bundle/manifests/mariadb.mmontes.io_sqljobs.yaml +++ b/bundle/manifests/mariadb.mmontes.io_sqljobs.yaml @@ -50,7 +50,7 @@ spec: description: SqlJobSpec defines the desired state of SqlJob properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the SqlJob Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the @@ -879,11 +879,15 @@ spec: type: object backoffLimit: default: 5 + description: BackoffLimit defines the maximum number of attempts to + successfully execute a SqlJob. format: int32 type: integer database: + description: Username to be used when executing the SqlJob. type: string dependsOn: + description: DependsOn defines dependencies with other SqlJob objectecs. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. @@ -896,6 +900,7 @@ spec: x-kubernetes-map-type: atomic type: array mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -931,15 +936,19 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the SqlJob Pod. type: object passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: UserPasswordSecretKeyRef is a reference to the impersonated + user's password to be used when executing the SqlJob. properties: key: description: The key of the secret to select from. Must be a @@ -957,7 +966,7 @@ spec: type: object x-kubernetes-map-type: atomic resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in @@ -1006,25 +1015,33 @@ spec: type: object restartPolicy: default: OnFailure - description: RestartPolicy describes how the container should be restarted. - Only one of the following restart policies may be specified. If - none of the following policies is specified, the default one is - RestartPolicyAlways. + description: RestartPolicy to be added to the SqlJob Pod. + enum: + - Always + - OnFailure + - Never type: string schedule: + description: Schedule defines when the SqlJob will be executed. properties: cron: + description: Cron is a cron expression that defines the schedule. type: string suspend: default: false + description: Suspend defines whether the schedule is active or + not. type: boolean required: - cron type: object sql: + description: Sql is the script to be executed by the SqlJob. type: string sqlConfigMapKeyRef: - description: Selects a key from a ConfigMap. + description: SqlConfigMapKeyRef is a reference to a ConfigMap containing + the Sql script. It is defaulted to a ConfigMap with the contents + of the Sql field. properties: key: description: The key to select. @@ -1042,6 +1059,7 @@ spec: type: object x-kubernetes-map-type: atomic tolerations: + description: Tolerations to be used in the SqlJob Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching @@ -1081,6 +1099,7 @@ spec: type: object type: array username: + description: Username to be impersonated when executing the SqlJob. type: string required: - mariaDbRef @@ -1091,6 +1110,7 @@ spec: description: SqlJobStatus defines the observed state of SqlJob properties: conditions: + description: Conditions for the SqlJob object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct diff --git a/bundle/manifests/mariadb.mmontes.io_users.yaml b/bundle/manifests/mariadb.mmontes.io_users.yaml index 2303dc2..173a0b4 100644 --- a/bundle/manifests/mariadb.mmontes.io_users.yaml +++ b/bundle/manifests/mariadb.mmontes.io_users.yaml @@ -53,9 +53,11 @@ spec: description: UserSpec defines the desired state of User properties: host: + description: Host related to the User. maxLength: 255 type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -91,18 +93,24 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic maxUserConnections: default: 10 + description: MaxUserConnections defines the maximum number of connections + that the User can have. format: int32 type: integer name: + description: Name overrides the default name provided by metadata.name. maxLength: 80 type: string passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: PasswordSecretKeyRef is a reference to the password to + be used by the User. properties: key: description: The key of the secret to select from. Must be a @@ -119,7 +127,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + requeueInterval: + description: RequeueInterval is used to perform requeue reconcilizations. + type: string retryInterval: + description: RetryInterval is the interval used to perform retries. type: string required: - mariaDbRef @@ -129,6 +141,7 @@ spec: description: UserStatus defines the observed state of User properties: conditions: + description: Conditions for the User object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index b2e06c7..67b4e35 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -5,4 +5,4 @@ kind: Kustomization images: - name: controller newName: ghcr.io/mariadb-operator/mariadb-operator-helm - newTag: 0.23.1 + newTag: 0.24.0 diff --git a/config/manifests/bases/mariadb-operator.clusterserviceversion.yaml b/config/manifests/bases/mariadb-operator.clusterserviceversion.yaml index 3fad535..9381291 100644 --- a/config/manifests/bases/mariadb-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/mariadb-operator.clusterserviceversion.yaml @@ -5,7 +5,7 @@ metadata: alm-examples: '[]' capabilities: Deep Insights categories: Database - containerImage: ghcr.io/mariadb-operator/mariadb-operator-helm:0.23.1 + containerImage: ghcr.io/mariadb-operator/mariadb-operator-helm:0.24.0 description: Run and operate MariaDB in a cloud native way repository: https://github.com/mariadb-operator/mariadb-operator name: mariadb-operator.v0.0.0 diff --git a/config/manifests/crds/crds.yaml b/config/manifests/crds/crds.yaml index 1cb61e2..7052822 100644 --- a/config/manifests/crds/crds.yaml +++ b/config/manifests/crds/crds.yaml @@ -50,7 +50,7 @@ spec: description: BackupSpec defines the desired state of Backup properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the Backup Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the @@ -878,14 +878,22 @@ spec: type: object type: object args: + description: Args to be used in the Backup container. items: type: string type: array backoffLimit: - default: 5 + description: BackoffLimit defines the maximum number of attempts to + successfully take a Backup. format: int32 type: integer + logLevel: + default: info + description: LogLevel to be used n the Backup Job. It defaults to + 'info'. + type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -921,19 +929,23 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic - maxRetentionDays: - default: 30 - format: int32 - type: integer + maxRetention: + description: MaxRetention defines the retention policy for backups. + Old backups will be cleaned up by the Backup Job. It defaults to + 30 days. + type: string nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the Backup Pod. type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in @@ -982,27 +994,31 @@ spec: type: object restartPolicy: default: OnFailure - description: RestartPolicy describes how the container should be restarted. - Only one of the following restart policies may be specified. If - none of the following policies is specified, the default one is - RestartPolicyAlways. + description: RestartPolicy to be added to the Backup Pod. + enum: + - Always + - OnFailure + - Never type: string schedule: + description: Schedule defines when the Backup will be taken. properties: cron: + description: Cron is a cron expression that defines the schedule. type: string suspend: default: false + description: Suspend defines whether the schedule is active or + not. type: boolean required: - cron type: object storage: + description: Storage to be used in the Backup. properties: persistentVolumeClaim: - description: PersistentVolumeClaimSpec describes the common attributes - of storage devices and allows a Source for provider-specific - attributes + description: PersistentVolumeClaim is a Kubernetes PVC specification. properties: accessModes: description: 'accessModes contains the desired access modes @@ -1209,9 +1225,118 @@ spec: backing this claim. type: string type: object + s3: + description: S3 defines the configuration to store backups in + a S3 compatible storage. + properties: + accessKeyIdSecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 access key id. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bucket: + description: Bucket is the name Name of the bucket to store + backups. + type: string + endpoint: + description: Endpoint is the S3 API endpoint without scheme. + type: string + region: + description: Region is the S3 region name to use. + type: string + secretAccessKeySecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 secret key. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + sessionTokenSecretKeyRef: + description: SessionTokenSecretKeyRef is a reference to a + Secret key containing the S3 session token. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + tls: + description: TLS provides the configuration required to establish + TLS connections with S3. + properties: + caSecretKeyRef: + description: CASecretKeyRef is a reference to a Secret + key containing a CA bundle in PEM format used to establish + TLS connections with S3. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + enabled: + description: Enabled is a flag to enable TLS. + type: boolean + type: object + required: + - accessKeyIdSecretKeyRef + - bucket + - endpoint + - secretAccessKeySecretKeyRef + type: object volume: - description: Represents the source of a volume to mount. Only - one of its members may be specified. + description: Volume is a Kubernetes volume specification. properties: awsElasticBlockStore: description: 'awsElasticBlockStore represents an AWS Disk @@ -2790,6 +2915,7 @@ spec: type: object type: object tolerations: + description: Tolerations to be used in the Backup Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching @@ -2836,6 +2962,7 @@ spec: description: BackupStatus defines the observed state of Backup properties: conditions: + description: Conditions for the Backup object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct @@ -2965,15 +3092,21 @@ spec: description: ConnectionSpec defines the desired state of Connection properties: database: + description: Database to use for configuring the Connection. type: string healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform health + check retries. type: string type: object mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -3009,15 +3142,19 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic params: additionalProperties: type: string + description: Params to be used in the Connection. type: object passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: PasswordSecretKeyRef is a reference to the password to + use for configuring the Connection. properties: key: description: The key of the secret to select from. Must be a @@ -3035,35 +3172,48 @@ spec: type: object x-kubernetes-map-type: atomic secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string username: + description: Username to use for configuring the Connection. type: string required: - mariaDbRef @@ -3074,6 +3224,7 @@ spec: description: ConnectionStatus defines the observed state of Connection properties: conditions: + description: Conditions for the Connection object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct @@ -3210,11 +3361,14 @@ spec: properties: characterSet: default: utf8 + description: CharacterSet to use in the Database. type: string collate: default: utf8_general_ci + description: CharacterSet to use in the Database. type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -3250,13 +3404,21 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic name: + description: Name overrides the default Database name provided by + metadata.name. maxLength: 80 type: string + requeueInterval: + description: RequeueInterval is used to perform requeue reconcilizations. + type: string retryInterval: + description: RetryInterval is the interval used to perform retries. type: string required: - mariaDbRef @@ -3265,6 +3427,7 @@ spec: description: DatabaseStatus defines the observed state of Database properties: conditions: + description: Conditions for the Database object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct @@ -3404,13 +3567,17 @@ spec: properties: database: default: '*' + description: Database to use in the Grant. type: string grantOption: default: false + description: GrantOption to use in the Grant. type: boolean host: + description: Host to use in the Grant. type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -3446,20 +3613,29 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic privileges: + description: Privileges to use in the Grant. items: type: string minItems: 1 type: array + requeueInterval: + description: RequeueInterval is used to perform requeue reconcilizations. + type: string retryInterval: + description: RetryInterval is the interval used to perform retries. type: string table: default: '*' + description: Table to use in the Grant. type: string username: + description: Username to use in the Grant. type: string required: - mariaDbRef @@ -3470,6 +3646,7 @@ spec: description: GrantStatus defines the observed state of Grant properties: conditions: + description: Conditions for the Grant object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct @@ -3596,7 +3773,7 @@ spec: description: MariaDBSpec defines the desired state of MariaDB properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the @@ -4424,14 +4601,16 @@ spec: type: object type: object args: + description: Args to be used in the Container. items: type: string type: array bootstrapFrom: + description: BootstrapFrom defines a source to bootstrap from. properties: backupRef: - description: LocalObjectReference contains enough information - to let you locate the referenced object inside the same namespace. + description: BackupRef is a reference to a Backup object. It has + priority over S3 and Volume. properties: name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -4439,11 +4618,125 @@ spec: type: string type: object x-kubernetes-map-type: atomic - fileName: + s3: + description: S3 defines the configuration to restore backups from + a S3 compatible storage. It has priority over Volume. + properties: + accessKeyIdSecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 access key id. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bucket: + description: Bucket is the name Name of the bucket to store + backups. + type: string + endpoint: + description: Endpoint is the S3 API endpoint without scheme. + type: string + region: + description: Region is the S3 region name to use. + type: string + secretAccessKeySecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 secret key. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + sessionTokenSecretKeyRef: + description: SessionTokenSecretKeyRef is a reference to a + Secret key containing the S3 session token. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + tls: + description: TLS provides the configuration required to establish + TLS connections with S3. + properties: + caSecretKeyRef: + description: CASecretKeyRef is a reference to a Secret + key containing a CA bundle in PEM format used to establish + TLS connections with S3. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, + uid?' + type: string + optional: + description: Specify whether the Secret or its key + must be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + enabled: + description: Enabled is a flag to enable TLS. + type: boolean + type: object + required: + - accessKeyIdSecretKeyRef + - bucket + - endpoint + - secretAccessKeySecretKeyRef + type: object + targetRecoveryTime: + description: TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) + date and time that defines the point in time recovery objective. + It is used to determine the closest restoration source in time. + format: date-time type: string volume: - description: Represents the source of a volume to mount. Only - one of its members may be specified. + description: Volume is a Kubernetes Volume object that contains + a backup. properties: awsElasticBlockStore: description: 'awsElasticBlockStore represents an AWS Disk @@ -6022,55 +6315,78 @@ spec: type: object type: object command: + description: Command to be used in the Container. items: type: string type: array connection: + description: Connection defines templates to configure the general + Connection object. properties: healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform + health check retries. type: string type: object params: additionalProperties: type: string + description: Params to be used in the Connection. type: object secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string type: object database: + description: Database is the database to be created on bootstrap. type: string env: + description: Env represents the environment variables to be injected + in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -6179,6 +6495,8 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap and + Secrets) to environment variables to be injected in the container. items: description: EnvFromSource represents the source of a set of ConfigMaps properties: @@ -6213,22 +6531,25 @@ spec: type: object type: array galera: - description: Galera allows you to enable multi-master HA via Galera - in your MariaDB cluster. + description: Replication configures high availability via Galera. properties: agent: description: 'GaleraAgent is a sidecar agent that co-operates with mariadb-operator. More info: https://github.com/mariadb-operator/agent.' properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -6346,6 +6667,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in + the container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -6390,11 +6714,17 @@ spec: requests. type: string image: + description: Image name to be used by the MariaDB instances. + The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to - pull a container image + description: ImagePullPolicy is the image pull policy. One + of `Always`, `Never` or `IfNotPresent`. If not defined, + it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string kubernetesAuth: description: KubernetesAuth to be used by the agent container @@ -6411,9 +6741,7 @@ spec: type: boolean type: object livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -6564,13 +6892,12 @@ spec: type: integer type: object port: - description: Port to be used by the agent container + default: 5555 + description: Port where the agent will be listening for connections. format: int32 type: integer readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -6721,8 +7048,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -6772,9 +7098,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration - that will be applied to a container. Some fields are present - in both SecurityContext and PodSecurityContext. When both - are set, the values in SecurityContext take precedence. + that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -6945,6 +7269,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -6984,8 +7309,6 @@ spec: - name type: object type: array - required: - - image type: object enabled: description: Enabled is a flag to enable Galera. @@ -6995,14 +7318,18 @@ spec: with mariadb-operator. More info: https://github.com/mariadb-operator/init.' properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -7120,6 +7447,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in + the container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -7159,16 +7489,20 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. + The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to - pull a container image + description: ImagePullPolicy is the image pull policy. One + of `Always`, `Never` or `IfNotPresent`. If not defined, + it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -7319,9 +7653,7 @@ spec: type: integer type: object readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -7472,8 +7804,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -7523,9 +7854,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration - that will be applied to a container. Some fields are present - in both SecurityContext and PodSecurityContext. When both - are set, the values in SecurityContext take precedence. + that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -7696,6 +8025,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -7793,6 +8123,10 @@ spec: sst: description: 'SST is the Snapshot State Transfer used when new Pods join the cluster. More info: https://galeracluster.com/library/documentation/sst.html.' + enum: + - rsync + - mariabackup + - mysqldump type: string volumeClaimTemplate: description: VolumeClaimTemplate is a template for the PVC that @@ -7808,6 +8142,7 @@ spec: annotations: additionalProperties: type: string + description: Annotations to be used in the PVC. type: object dataSource: description: 'dataSource field can be used to specify either: @@ -7896,6 +8231,7 @@ spec: labels: additionalProperties: type: string + description: Labels to be used in the PVC. type: object resources: description: 'resources represents the minimum resources the @@ -8014,13 +8350,20 @@ spec: type: object type: object image: + description: Image name to be used by the MariaDB instances. The supported + format is `:`. Only MariaDB official images are supported. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull a container - image + description: ImagePullPolicy is the image pull policy. One of `Always`, + `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string imagePullSecrets: + description: ImagePullSecrets is the list of pull Secrets to be used + to pull the image. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. @@ -8033,28 +8376,38 @@ spec: x-kubernetes-map-type: atomic type: array inheritMetadata: + description: InheritMetadata defines the metadata to be inherited + by children resources. properties: annotations: additionalProperties: type: string + description: Annotations to be added to children resources. type: object labels: additionalProperties: type: string + description: Labels to be added to children resources. type: object type: object initContainers: + description: InitContainers to be used in the Pod. items: + description: Container object definition. properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -8172,6 +8525,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in the + container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -8210,16 +8566,20 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. + The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull - a container image + description: ImagePullPolicy is the image pull policy. One of + `Always`, `Never` or `IfNotPresent`. If not defined, it defaults + to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or ready - to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -8368,9 +8728,7 @@ spec: type: integer type: object readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or ready - to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -8519,8 +8877,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -8570,9 +8927,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration that - will be applied to a container. Some fields are present in - both SecurityContext and PodSecurityContext. When both are - set, the values in SecurityContext take precedence. + will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -8741,6 +9096,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -8784,9 +9140,7 @@ spec: type: object type: array livenessProbe: - description: Probe describes a health check to be performed against - a container to determine whether it is alive or ready to receive - traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -8928,18 +9282,27 @@ spec: type: integer type: object metrics: + description: Metrics configures metrics and how to scrape them. properties: + enabled: + description: Enabled is a flag to enable Metrics + type: boolean exporter: + description: Exporter defines the metrics exporter container. properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -9057,6 +9420,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in + the container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -9096,16 +9462,21 @@ spec: type: object type: array image: + description: 'Image name to be used as metrics exporter. The + supported format is `:`. Only mysqld-exporter + >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter' type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to - pull a container image + description: ImagePullPolicy is the image pull policy. One + of `Always`, `Never` or `IfNotPresent`. If not defined, + it defaults to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -9257,12 +9628,12 @@ spec: type: object port: default: 9104 + description: Port where the exporter will be listening for + connections. format: int32 type: integer readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or - ready to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -9413,8 +9784,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -9464,9 +9834,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration - that will be applied to a container. Some fields are present - in both SecurityContext and PodSecurityContext. When both - are set, the values in SecurityContext take precedence. + that will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -9637,6 +10005,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -9676,28 +10045,57 @@ spec: - name type: object type: array + type: object + passwordSecretKeyRef: + description: PasswordSecretKeyRef is a reference to the password + of the monitoring user used by the exporter. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean required: - - image + - key type: object + x-kubernetes-map-type: atomic serviceMonitor: + description: ServiceMonitor defines the ServiceMonior object. properties: interval: + description: Interval for scraping metrics. + type: string + jobLabel: + description: JobLabel to add to the ServiceMonitor object. type: string prometheusRelease: + description: PrometheusRelease is the release label to add + to the ServiceMonitor object. type: string scrapeTimeout: + description: ScrapeTimeout defines the timeout for scraping + metrics. type: string - required: - - prometheusRelease type: object - required: - - exporter - - serviceMonitor + username: + description: Username is the username of the monitoring user used + by the exporter. + type: string type: object myCnf: + description: MyCnf allows to specify the my.cnf file mounted by Mariadb. type: string myCnfConfigMapKeyRef: - description: Selects a key from a ConfigMap. + description: MyCnfConfigMapKeyRef is a reference to the my.cnf config + file provided via a ConfigMap. If not provided, it will be defaulted + with reference to a ConfigMap with the contents of the MyCnf field. properties: key: description: The key to select. @@ -9717,9 +10115,11 @@ spec: nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the Pod. type: object passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: PasswordSecretKeyRef is a reference to the password of + the initial user provided via a Secret. properties: key: description: The key of the secret to select from. Must be a @@ -9739,25 +10139,29 @@ spec: podAnnotations: additionalProperties: type: string + description: PodAnnotations to add to the Pods metadata. type: object podDisruptionBudget: + description: PodDisruptionBudget defines the budget for replica availability. properties: maxUnavailable: anyOf: - type: integer - type: string + description: MaxUnavailable defines the number of maximum unavailable + Pods. x-kubernetes-int-or-string: true minAvailable: anyOf: - type: integer - type: string + description: MinAvailable defines the number of minimum available + Pods. x-kubernetes-int-or-string: true type: object podSecurityContext: - description: PodSecurityContext holds pod-level security attributes - and common container settings. Some fields are also present in container.securityContext. Field - values of container.securityContext take precedence over field values - of PodSecurityContext. + description: SecurityContext holds pod-level security attributes and + common container settings. properties: fsGroup: description: "A special supplemental group that applies to all @@ -9924,87 +10328,114 @@ spec: type: object port: default: 3306 + description: Port where the instances will be listening for connections. format: int32 type: integer primaryConnection: + description: PrimaryConnection defines templates to configure the + primary Connection object. properties: healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform + health check retries. type: string type: object params: additionalProperties: type: string + description: Params to be used in the Connection. type: object secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string type: object primaryService: + description: PrimaryService defines templates to configure the primary + Service object. properties: allocateLoadBalancerNodePorts: + description: AllocateLoadBalancerNodePorts Service field. type: boolean annotations: additionalProperties: type: string + description: Annotations to add to the Service metadata. type: object externalTrafficPolicy: - description: ServiceExternalTrafficPolicy describes how nodes - distribute service traffic they receive on one of the Service's - "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer - IPs. + description: ExternalTrafficPolicy Service field. type: string labels: additionalProperties: type: string + description: Labels to add to the Service metadata. type: object loadBalancerIP: + description: LoadBalancerIP Service field. type: string loadBalancerSourceRanges: + description: LoadBalancerSourceRanges Service field. items: type: string type: array sessionAffinity: - description: Session Affinity Type string + description: SessionAffinity Service field. type: string type: - description: Service Type string describes ingress methods for - a service + default: ClusterIP + description: Type is the Service type. One of `ClusterIP`, `NodePort` + or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. + enum: + - ClusterIP + - NodePort + - LoadBalancer type: string type: object readinessProbe: - description: Probe describes a health check to be performed against - a container to determine whether it is alive or ready to receive - traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -10147,11 +10578,11 @@ spec: type: object replicas: default: 1 + description: Replicas indicates the number of desired instances. format: int32 type: integer replication: - description: Replication allows you to enable single-master HA via - semi-synchronours replication in your MariaDB cluster. + description: Replication configures high availability via replication. properties: enabled: description: Enabled is a flag to enable Replication. @@ -10186,6 +10617,9 @@ spec: gtid: description: 'Gtid indicates which Global Transaction ID should be used when connecting a replica to the master. See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.' + enum: + - CurrentPos + - SlavePos type: string replPasswordSecretKeyRef: description: ReplPasswordSecretKeyRef provides a reference @@ -10217,6 +10651,9 @@ spec: description: 'WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine. More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.' + enum: + - AfterSync + - AfterCommit type: string type: object syncBinlog: @@ -10226,7 +10663,7 @@ spec: type: boolean type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in @@ -10274,7 +10711,8 @@ spec: type: object type: object rootPasswordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: RootPasswordSecretKeyRef is a reference to a Secret key + containing the root password. properties: key: description: The key of the secret to select from. Must be a @@ -10292,85 +10730,111 @@ spec: type: object x-kubernetes-map-type: atomic secondaryConnection: + description: SecondaryConnection defines templates to configure the + secondary Connection object. properties: healthCheck: + description: HealthCheck to be used in the Connection. properties: interval: + description: Interval used to perform health checks. type: string retryInterval: + description: RetryInterval is the intervañ used to perform + health check retries. type: string type: object params: additionalProperties: type: string + description: Params to be used in the Connection. type: object secretName: + description: SecretName to be used in the Connection. type: string secretTemplate: + description: SecretTemplate to be used in the Connection. properties: annotations: additionalProperties: type: string + description: Annotations to be added to the Secret object. type: object databaseKey: + description: DatabaseKey to be used in the Secret. type: string format: + description: Format to be used in the Secret. type: string hostKey: + description: HostKey to be used in the Secret. type: string key: + description: Key to be used in the Secret. type: string labels: additionalProperties: type: string + description: Labels to be added to the Secret object. type: object passwordKey: + description: PasswordKey to be used in the Secret. type: string portKey: + description: PortKey to be used in the Secret. type: string usernameKey: + description: UsernameKey to be used in the Secret. type: string type: object serviceName: + description: ServiceName to be used in the Connection. type: string type: object secondaryService: + description: SecondaryService defines templates to configure the secondary + Service object. properties: allocateLoadBalancerNodePorts: + description: AllocateLoadBalancerNodePorts Service field. type: boolean annotations: additionalProperties: type: string + description: Annotations to add to the Service metadata. type: object externalTrafficPolicy: - description: ServiceExternalTrafficPolicy describes how nodes - distribute service traffic they receive on one of the Service's - "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer - IPs. + description: ExternalTrafficPolicy Service field. type: string labels: additionalProperties: type: string + description: Labels to add to the Service metadata. type: object loadBalancerIP: + description: LoadBalancerIP Service field. type: string loadBalancerSourceRanges: + description: LoadBalancerSourceRanges Service field. items: type: string type: array sessionAffinity: - description: Session Affinity Type string + description: SessionAffinity Service field. type: string type: - description: Service Type string describes ingress methods for - a service + default: ClusterIP + description: Type is the Service type. One of `ClusterIP`, `NodePort` + or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. + enum: + - ClusterIP + - NodePort + - LoadBalancer type: string type: object securityContext: description: SecurityContext holds security configuration that will - be applied to a container. Some fields are present in both SecurityContext - and PodSecurityContext. When both are set, the values in SecurityContext - take precedence. + be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether a process @@ -10527,49 +10991,64 @@ spec: type: object type: object service: + description: Service defines templates to configure the general Service + object. properties: allocateLoadBalancerNodePorts: + description: AllocateLoadBalancerNodePorts Service field. type: boolean annotations: additionalProperties: type: string + description: Annotations to add to the Service metadata. type: object externalTrafficPolicy: - description: ServiceExternalTrafficPolicy describes how nodes - distribute service traffic they receive on one of the Service's - "externally-facing" addresses (NodePorts, ExternalIPs, and LoadBalancer - IPs. + description: ExternalTrafficPolicy Service field. type: string labels: additionalProperties: type: string + description: Labels to add to the Service metadata. type: object loadBalancerIP: + description: LoadBalancerIP Service field. type: string loadBalancerSourceRanges: + description: LoadBalancerSourceRanges Service field. items: type: string type: array sessionAffinity: - description: Session Affinity Type string + description: SessionAffinity Service field. type: string type: - description: Service Type string describes ingress methods for - a service + default: ClusterIP + description: Type is the Service type. One of `ClusterIP`, `NodePort` + or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. + enum: + - ClusterIP + - NodePort + - LoadBalancer type: string type: object sidecarContainers: + description: SidecarContainers to be used in the Pod. items: + description: Container object definition. properties: args: + description: Args to be used in the Container. items: type: string type: array command: + description: Command to be used in the Container. items: type: string type: array env: + description: Env represents the environment variables to be + injected in a container. items: description: EnvVar represents an environment variable present in a Container. @@ -10687,6 +11166,9 @@ spec: type: object type: array envFrom: + description: EnvFrom represents the references (via ConfigMap + and Secrets) to environment variables to be injected in the + container. items: description: EnvFromSource represents the source of a set of ConfigMaps @@ -10725,16 +11207,20 @@ spec: type: object type: array image: + description: Image name to be used by the MariaDB instances. + The supported format is `:`. type: string imagePullPolicy: - default: IfNotPresent - description: PullPolicy describes a policy for if/when to pull - a container image + description: ImagePullPolicy is the image pull policy. One of + `Always`, `Never` or `IfNotPresent`. If not defined, it defaults + to `IfNotPresent`. + enum: + - Always + - Never + - IfNotPresent type: string livenessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or ready - to receive traffic. + description: LivenessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -10883,9 +11369,7 @@ spec: type: integer type: object readinessProbe: - description: Probe describes a health check to be performed - against a container to determine whether it is alive or ready - to receive traffic. + description: ReadinessProbe to be used in the Container. properties: exec: description: Exec specifies the action to take. @@ -11034,8 +11518,7 @@ spec: type: integer type: object resources: - description: ResourceRequirements describes the compute resource - requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined @@ -11085,9 +11568,7 @@ spec: type: object securityContext: description: SecurityContext holds security configuration that - will be applied to a container. Some fields are present in - both SecurityContext and PodSecurityContext. When both are - set, the values in SecurityContext take precedence. + will be applied to a container. properties: allowPrivilegeEscalation: description: 'AllowPrivilegeEscalation controls whether @@ -11256,6 +11737,7 @@ spec: type: object type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -11299,6 +11781,7 @@ spec: type: object type: array tolerations: + description: Tolerations to be used in the Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching @@ -11338,10 +11821,8 @@ spec: type: object type: array updateStrategy: - description: StatefulSetUpdateStrategy indicates the strategy that - the StatefulSet controller will use to perform updates. It includes - any additional parameters necessary to perform the update for the - indicated strategy. + description: PodDisruptionBudget defines the update strategy for the + StatefulSet object. properties: rollingUpdate: description: RollingUpdate is used to communicate parameters when @@ -11377,8 +11858,12 @@ spec: type: string type: object username: + description: Username is the username of the user to be created on + bootstrap. type: string volumeClaimTemplate: + description: VolumeClaimTemplate provides a template to define the + Pod PVCs. properties: accessModes: description: 'accessModes contains the desired access modes the @@ -11389,6 +11874,7 @@ spec: annotations: additionalProperties: type: string + description: Annotations to be used in the PVC. type: object dataSource: description: 'dataSource field can be used to specify either: @@ -11473,6 +11959,7 @@ spec: labels: additionalProperties: type: string + description: Labels to be used in the PVC. type: object resources: description: 'resources represents the minimum resources the volume @@ -11588,6 +12075,7 @@ spec: type: string type: object volumeMounts: + description: VolumeMounts to be used in the Container. items: description: VolumeMount describes a mounting of a Volume within a container. @@ -11626,6 +12114,7 @@ spec: type: object type: array volumes: + description: Volumes to be used in the Pod. items: description: Volume represents a named volume in a pod that may be accessed by any container in the pod. @@ -13184,14 +13673,13 @@ spec: type: object type: array required: - - image - - rootPasswordSecretKeyRef - volumeClaimTemplate type: object status: description: MariaDBStatus defines the observed state of MariaDB properties: conditions: + description: Conditions for the Mariadb object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct @@ -13260,12 +13748,13 @@ spec: type: object type: array currentPrimary: + description: CurrentPrimary is the primary Pod. type: string currentPrimaryPodIndex: + description: CurrentPrimaryPodIndex is the primary Pod index. type: integer galeraRecovery: - description: GaleraRecoveryStatus is the current state of the Galera - recovery process. + description: GaleraRecovery is the Galera recovery current state. properties: bootstrap: description: Bootstrap indicates when and in which Pod the cluster @@ -13312,6 +13801,10 @@ spec: file (grastate.dat). type: object type: object + replicas: + description: Replicas indicates the number of current instances. + format: int32 + type: integer type: object required: - spec @@ -13319,6 +13812,9 @@ spec: served: true storage: true subresources: + scale: + specReplicasPath: .spec.replicas + statusReplicasPath: .status.replicas status: {} --- apiVersion: apiextensions.k8s.io/v1 @@ -13373,7 +13869,7 @@ spec: description: RestoreSpec defines the desired state of restore properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the Restore Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the @@ -14202,11 +14698,13 @@ spec: type: object backoffLimit: default: 5 + description: BackoffLimit defines the maximum number of attempts to + successfully perform a Backup. format: int32 type: integer backupRef: - description: LocalObjectReference contains enough information to let - you locate the referenced object inside the same namespace. + description: BackupRef is a reference to a Backup object. It has priority + over S3 and Volume. properties: name: description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names @@ -14214,9 +14712,13 @@ spec: type: string type: object x-kubernetes-map-type: atomic - fileName: + logLevel: + default: info + description: LogLevel to be used n the Backup Job. It defaults to + 'info'. type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -14252,15 +14754,18 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the Restore Pod. type: object resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in @@ -14309,12 +14814,128 @@ spec: type: object restartPolicy: default: OnFailure - description: RestartPolicy describes how the container should be restarted. - Only one of the following restart policies may be specified. If - none of the following policies is specified, the default one is - RestartPolicyAlways. + description: RestartPolicy to be added to the Backup Job. + enum: + - Always + - OnFailure + - Never + type: string + s3: + description: S3 defines the configuration to restore backups from + a S3 compatible storage. It has priority over Volume. + properties: + accessKeyIdSecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 access key id. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + bucket: + description: Bucket is the name Name of the bucket to store backups. + type: string + endpoint: + description: Endpoint is the S3 API endpoint without scheme. + type: string + region: + description: Region is the S3 region name to use. + type: string + secretAccessKeySecretKeyRef: + description: AccessKeyIdSecretKeyRef is a reference to a Secret + key containing the S3 secret key. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + sessionTokenSecretKeyRef: + description: SessionTokenSecretKeyRef is a reference to a Secret + key containing the S3 session token. + properties: + key: + description: The key of the secret to select from. Must be + a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must be + defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + tls: + description: TLS provides the configuration required to establish + TLS connections with S3. + properties: + caSecretKeyRef: + description: CASecretKeyRef is a reference to a Secret key + containing a CA bundle in PEM format used to establish TLS + connections with S3. + properties: + key: + description: The key of the secret to select from. Must + be a valid secret key. + type: string + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names + TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + optional: + description: Specify whether the Secret or its key must + be defined + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + enabled: + description: Enabled is a flag to enable TLS. + type: boolean + type: object + required: + - accessKeyIdSecretKeyRef + - bucket + - endpoint + - secretAccessKeySecretKeyRef + type: object + targetRecoveryTime: + description: TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) + date and time that defines the point in time recovery objective. + It is used to determine the closest restoration source in time. + format: date-time type: string tolerations: + description: Tolerations to be used in the Restore Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching @@ -14354,8 +14975,8 @@ spec: type: object type: array volume: - description: Represents the source of a volume to mount. Only one - of its members may be specified. + description: Volume is a Kubernetes Volume object that contains a + backup. properties: awsElasticBlockStore: description: 'awsElasticBlockStore represents an AWS Disk resource @@ -15885,6 +16506,7 @@ spec: description: RestoreStatus defines the observed state of restore properties: conditions: + description: Conditions for the Restore object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct @@ -16011,7 +16633,7 @@ spec: description: SqlJobSpec defines the desired state of SqlJob properties: affinity: - description: Affinity is a group of affinity scheduling rules. + description: Affinity to be used in the SqlJob Pod. properties: nodeAffinity: description: Describes node affinity scheduling rules for the @@ -16840,11 +17462,15 @@ spec: type: object backoffLimit: default: 5 + description: BackoffLimit defines the maximum number of attempts to + successfully execute a SqlJob. format: int32 type: integer database: + description: Username to be used when executing the SqlJob. type: string dependsOn: + description: DependsOn defines dependencies with other SqlJob objectecs. items: description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. @@ -16857,6 +17483,7 @@ spec: x-kubernetes-map-type: atomic type: array mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -16892,15 +17519,19 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic nodeSelector: additionalProperties: type: string + description: NodeSelector to be used in the SqlJob Pod. type: object passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: UserPasswordSecretKeyRef is a reference to the impersonated + user's password to be used when executing the SqlJob. properties: key: description: The key of the secret to select from. Must be a @@ -16918,7 +17549,7 @@ spec: type: object x-kubernetes-map-type: atomic resources: - description: ResourceRequirements describes the compute resource requirements. + description: Resouces describes the compute resource requirements. properties: claims: description: "Claims lists the names of resources, defined in @@ -16967,25 +17598,33 @@ spec: type: object restartPolicy: default: OnFailure - description: RestartPolicy describes how the container should be restarted. - Only one of the following restart policies may be specified. If - none of the following policies is specified, the default one is - RestartPolicyAlways. + description: RestartPolicy to be added to the SqlJob Pod. + enum: + - Always + - OnFailure + - Never type: string schedule: + description: Schedule defines when the SqlJob will be executed. properties: cron: + description: Cron is a cron expression that defines the schedule. type: string suspend: default: false + description: Suspend defines whether the schedule is active or + not. type: boolean required: - cron type: object sql: + description: Sql is the script to be executed by the SqlJob. type: string sqlConfigMapKeyRef: - description: Selects a key from a ConfigMap. + description: SqlConfigMapKeyRef is a reference to a ConfigMap containing + the Sql script. It is defaulted to a ConfigMap with the contents + of the Sql field. properties: key: description: The key to select. @@ -17003,6 +17642,7 @@ spec: type: object x-kubernetes-map-type: atomic tolerations: + description: Tolerations to be used in the SqlJob Pod. items: description: The pod this Toleration is attached to tolerates any taint that matches the triple using the matching @@ -17042,6 +17682,7 @@ spec: type: object type: array username: + description: Username to be impersonated when executing the SqlJob. type: string required: - mariaDbRef @@ -17052,6 +17693,7 @@ spec: description: SqlJobStatus defines the observed state of SqlJob properties: conditions: + description: Conditions for the SqlJob object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct @@ -17181,9 +17823,11 @@ spec: description: UserSpec defines the desired state of User properties: host: + description: Host related to the User. maxLength: 255 type: string mariaDbRef: + description: MariaDBRef is a reference to a MariaDB object. properties: apiVersion: description: API version of the referent. @@ -17219,18 +17863,24 @@ spec: type: string waitForIt: default: true + description: WaitForIt indicates whether the controller using + this reference should wait for MariaDB to be ready. type: boolean type: object x-kubernetes-map-type: atomic maxUserConnections: default: 10 + description: MaxUserConnections defines the maximum number of connections + that the User can have. format: int32 type: integer name: + description: Name overrides the default name provided by metadata.name. maxLength: 80 type: string passwordSecretKeyRef: - description: SecretKeySelector selects a key of a Secret. + description: PasswordSecretKeyRef is a reference to the password to + be used by the User. properties: key: description: The key of the secret to select from. Must be a @@ -17247,7 +17897,11 @@ spec: - key type: object x-kubernetes-map-type: atomic + requeueInterval: + description: RequeueInterval is used to perform requeue reconcilizations. + type: string retryInterval: + description: RetryInterval is the interval used to perform retries. type: string required: - mariaDbRef @@ -17257,6 +17911,7 @@ spec: description: UserStatus defines the observed state of User properties: conditions: + description: Conditions for the User object. items: description: "Condition contains details for one aspect of the current state of this API Resource. --- This struct is intended for direct