# API Reference

## Packages

* [enterprise.mariadb.com/v1alpha1](#enterprisemariadbcomv1alpha1)

## enterprise.mariadb.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the v1alpha1 API group

### Resource Types

* [Backup](#backup)
* [Connection](#connection)
* [Database](#database)
* [ExternalMariaDB](#externalmariadb)
* [Grant](#grant)
* [MariaDB](#mariadb)
* [MaxScale](#maxscale)
* [PhysicalBackup](#physicalbackup)
* [PointInTimeRecovery](#pointintimerecovery)
* [Restore](#restore)
* [SqlJob](#sqljob)
* [User](#user)

#### Affinity

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#affinity-v1-core>.

*Appears in:*

* [AffinityConfig](#affinityconfig)

| Field                                                   | Description | Default | Validation |
| ------------------------------------------------------- | ----------- | ------- | ---------- |
| `podAntiAffinity` [*PodAntiAffinity*](#podantiaffinity) |             |         |            |
| `nodeAffinity` [*NodeAffinity*](#nodeaffinity)          |             |         |            |

#### AffinityConfig

AffinityConfig defines policies to schedule Pods in Nodes.

*Appears in:*

* [BackupSpec](#backupspec)
* [Exporter](#exporter)
* [Job](#job)
* [JobPodTemplate](#jobpodtemplate)
* [MariaDBPodTemplate](#mariadbpodtemplate)
* [MariaDBSpec](#mariadbspec)
* [MaxScalePodTemplate](#maxscalepodtemplate)
* [MaxScaleSpec](#maxscalespec)
* [RestoreSpec](#restorespec)
* [SqlJobSpec](#sqljobspec)

| Field                                                   | Description                                                                                                                                                                                                                  | Default | Validation |
| ------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `podAntiAffinity` [*PodAntiAffinity*](#podantiaffinity) |                                                                                                                                                                                                                              |         |            |
| `nodeAffinity` [*NodeAffinity*](#nodeaffinity)          |                                                                                                                                                                                                                              |         |            |
| `antiAffinityEnabled` *boolean*                         | <p>AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA.<br>Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.</p> |         |            |

#### Agent

Agent is a sidecar agent that co-operates with mariadb-enterprise-operator.

*Appears in:*

* [Galera](#galera)
* [GaleraSpec](#galeraspec)
* [Replication](#replication)
* [ReplicationSpec](#replicationspec)

| Field                                                                                                                         | Description                                                                                                                          | Default | Validation                                    |
| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------- | --------------------------------------------- |
| `command` *string array*                                                                                                      | Command to be used in the Container.                                                                                                 |         |                                               |
| `args` *string array*                                                                                                         | Args to be used in the Container.                                                                                                    |         |                                               |
| `env` [*EnvVar*](#envvar) *array*                                                                                             | Env represents the environment variables to be injected in a container.                                                              |         |                                               |
| `envFrom` [*EnvFromSource*](#envfromsource) *array*                                                                           | EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.              |         |                                               |
| `volumeMounts` [*VolumeMount*](#volumemount) *array*                                                                          | VolumeMounts to be used in the Container.                                                                                            |         |                                               |
| `livenessProbe` [*Probe*](#probe)                                                                                             | LivenessProbe to be used in the Container.                                                                                           |         |                                               |
| `readinessProbe` [*Probe*](#probe)                                                                                            | ReadinessProbe to be used in the Container.                                                                                          |         |                                               |
| `startupProbe` [*Probe*](#probe)                                                                                              | StartupProbe to be used in the Container.                                                                                            |         |                                               |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                                   | Resources describes the compute resource requirements.                                                                               |         |                                               |
| `securityContext` [*SecurityContext*](#securitycontext)                                                                       | SecurityContext holds security configuration that will be applied to a container.                                                    |         |                                               |
| `lifecycle` [*Lifecycle*](#lifecycle)                                                                                         | Lifecycle are actions that the management system should take in response to container lifecycle events.                              |         |                                               |
| `image` *string*                                                                                                              | Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.                                             |         |                                               |
| `imagePullPolicy` [*PullPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#pullpolicy-v1-core)     | ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. |         | <p>Enum: \[Always Never IfNotPresent]<br></p> |
| `port` *integer*                                                                                                              | Port where the agent will be listening for API connections.                                                                          |         |                                               |
| `probePort` *integer*                                                                                                         | Port where the agent will be listening for probe connections.                                                                        |         |                                               |
| `kubernetesAuth` [*KubernetesAuth*](#kubernetesauth)                                                                          | KubernetesAuth to be used by the agent container                                                                                     |         |                                               |
| `basicAuth` [*BasicAuth*](#basicauth)                                                                                         | BasicAuth to be used by the agent container                                                                                          |         |                                               |
| `gracefulShutdownTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests.              |         |                                               |

#### AzureBlob

*Appears in:*

* [BootstrapFrom](#bootstrapfrom)
* [PhysicalBackupStorage](#physicalbackupstorage)
* [PointInTimeRecoveryStorage](#pointintimerecoverystorage)

| Field                                                         | Description                                                                                                                                                               | Default | Validation              |
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------- |
| `containerName` *string*                                      | ContainerName is the name of the storage container.                                                                                                                       |         | <p>Required: {}<br></p> |
| `serviceURL` *string*                                         | ServiceURL is the full URL for connecting to Azure, usually in the form: http(s)://.blob.core.windows.net/.                                                               |         | <p>Required: {}<br></p> |
| `prefix` *string*                                             | Prefix indicates a folder/subfolder in the container. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.                            |         |                         |
| `storageAccountName` *string*                                 | StorageAccountName is the name of the storage account. Pairs with StorageAccountKey for static credential authentication                                                  |         |                         |
| `storageAccountKey` [*SecretKeySelector*](#secretkeyselector) | StorageAccountKey is a reference to a Secret key containing the Azure Blob Storage Storage account Key. Pairs with StorageAccountKey for static credential authentication |         |                         |
| `tls` [*TLSConfig*](#tlsconfig)                               | TLS provides the configuration required to establish TLS connections with Azure Blob Storage.                                                                             |         |                         |

#### Backup

Backup is the Schema for the backups API. It is used to define backup jobs and its storage.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `Backup`                                                        |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*BackupSpec*](#backupspec)                                                                                 |                                                                 |         |            |

#### BackupContentType

*Underlying type:* *string*

BackupContentType defines the backup content type.

*Appears in:*

* [BootstrapFrom](#bootstrapfrom)

| Field      | Description                                                                                                         |
| ---------- | ------------------------------------------------------------------------------------------------------------------- |
| `Logical`  | <p>BackupContentTypeLogical represents a logical backup created using mariadb-dump.<br></p>                         |
| `Physical` | <p>BackupContentTypePhysical represents a physical backup created using mariadb-backup or a VolumeSnapshot.<br></p> |

#### BackupSpec

BackupSpec defines the desired state of Backup

*Appears in:*

* [Backup](#backup)

| Field                                                                                                                         | Description                                                                                                                                                                                                                                                                                                                                                                         | Default   | Validation                                                   |
| ----------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------ |
| `args` *string array*                                                                                                         | Args to be used in the Container.                                                                                                                                                                                                                                                                                                                                                   |           |                                                              |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                                   | Resources describes the compute resource requirements.                                                                                                                                                                                                                                                                                                                              |           |                                                              |
| `securityContext` [*SecurityContext*](#securitycontext)                                                                       | SecurityContext holds security configuration that will be applied to a container.                                                                                                                                                                                                                                                                                                   |           |                                                              |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                                                                                                                                                                                                                                                                                                                     |           |                                                              |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.                                                                                                                                                                                                                                                                                                          |           |                                                              |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings.                                                                                                                                                                                                                                                                                                  |           |                                                              |
| `serviceAccountName` *string*                                                                                                 | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.                                                                                                                                                                                                                                                                                                        |           |                                                              |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                | Affinity to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                     |           |                                                              |
| `nodeSelector` *object (keys:string, values:string)*                                                                          | NodeSelector to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                 |           |                                                              |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                  |           |                                                              |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                                                                                                                                                                                                                                                                                                                            |           |                                                              |
| `successfulJobsHistoryLimit` *integer*                                                                                        | SuccessfulJobsHistoryLimit defines the maximum number of successful Jobs to be displayed.                                                                                                                                                                                                                                                                                           |           | <p>Minimum: 0<br></p>                                        |
| `failedJobsHistoryLimit` *integer*                                                                                            | FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed.                                                                                                                                                                                                                                                                                                   |           | <p>Minimum: 0<br></p>                                        |
| `timeZone` *string*                                                                                                           | TimeZone defines the timezone associated with the cron expression.                                                                                                                                                                                                                                                                                                                  |           |                                                              |
| `mariaDbRef` [*MariaDBRef*](#mariadbref)                                                                                      | MariaDBRef is a reference to a MariaDB object.                                                                                                                                                                                                                                                                                                                                      |           | <p>Required: {}<br></p>                                      |
| `compression` [*CompressAlgorithm*](#compressalgorithm)                                                                       | Compression algorithm to be used in the Backup.                                                                                                                                                                                                                                                                                                                                     |           | <p>Enum: \[none bzip2 gzip]<br></p>                          |
| `stagingStorage` [*StagingStorage*](#stagingstorage)                                                                          | <p>StagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.<br>It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the Backup Job is scheduled.<br>The staging area gets cleaned up after each backup is completed, consider this for sizing it appropriately.</p> |           |                                                              |
| `storage` [*BackupStorage*](#backupstorage)                                                                                   | Storage defines the final storage for backups.                                                                                                                                                                                                                                                                                                                                      |           | <p>Required: {}<br></p>                                      |
| `schedule` [*Schedule*](#schedule)                                                                                            | Schedule defines when the Backup will be taken.                                                                                                                                                                                                                                                                                                                                     |           |                                                              |
| `maxRetention` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)            | <p>MaxRetention defines the retention policy for backups. Old backups will be cleaned up by the Backup Job.<br>It defaults to 30 days.</p>                                                                                                                                                                                                                                          |           |                                                              |
| `databases` *string array*                                                                                                    | Databases defines the logical databases to be backed up. If not provided, all databases are backed up.                                                                                                                                                                                                                                                                              |           |                                                              |
| `ignoreGlobalPriv` *boolean*                                                                                                  | <p>IgnoreGlobalPriv indicates to ignore the mysql.global\_priv in backups.<br>If not provided, it will default to true when the referred MariaDB instance has Galera enabled and otherwise to false.</p>                                                                                                                                                                            |           |                                                              |
| `logLevel` *string*                                                                                                           | LogLevel to be used in the Backup Job. It defaults to 'info'.                                                                                                                                                                                                                                                                                                                       | info      | <p>Enum: \[debug info warn error dpanic panic fatal]<br></p> |
| `backoffLimit` *integer*                                                                                                      | BackoffLimit defines the maximum number of attempts to successfully take a Backup.                                                                                                                                                                                                                                                                                                  |           |                                                              |
| `restartPolicy` [*RestartPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#restartpolicy-v1-core) | RestartPolicy to be added to the Backup Pod.                                                                                                                                                                                                                                                                                                                                        | OnFailure | <p>Enum: \[Always OnFailure Never]<br></p>                   |
| `inheritMetadata` [*Metadata*](#metadata)                                                                                     | InheritMetadata defines the metadata to be inherited by children resources.                                                                                                                                                                                                                                                                                                         |           |                                                              |

#### BackupStorage

BackupStorage defines the final storage for backups.

*Appears in:*

* [BackupSpec](#backupspec)

| Field                                                                             | Description                                                               | Default | Validation |
| --------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------- | ---------- |
| `s3` [*S3*](#s3)                                                                  | S3 defines the configuration to store backups in a S3 compatible storage. |         |            |
| `persistentVolumeClaim` [*PersistentVolumeClaimSpec*](#persistentvolumeclaimspec) | PersistentVolumeClaim is a Kubernetes PVC specification.                  |         |            |
| `volume` [*StorageVolumeSource*](#storagevolumesource)                            | Volume is a Kubernetes volume specification.                              |         |            |

#### BasicAuth

BasicAuth refers to the basic authentication mechanism utilized for establishing a connection from the operator to the agent.

*Appears in:*

* [Agent](#agent)

| Field                                                                    | Description                                              | Default | Validation |
| ------------------------------------------------------------------------ | -------------------------------------------------------- | ------- | ---------- |
| `enabled` *boolean*                                                      | Enabled is a flag to enable BasicAuth                    |         |            |
| `username` *string*                                                      | Username to be used for basic authentication             |         |            |
| `passwordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref) | PasswordSecretKeyRef to be used for basic authentication |         |            |

#### BootstrapFrom

BootstrapFrom defines a source to bootstrap MariaDB from.

*Appears in:*

* [MariaDBSpec](#mariadbspec)

| Field                                                                                                            | Description                                                                                                                                                                                                                                                                                                            | Default | Validation                                                   |
| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------------------------------------ |
| `backupRef` [*TypedLocalObjectReference*](#typedlocalobjectreference)                                            | <p>BackupRef is reference to a backup object. If the Kind is not specified, a logical Backup is assumed.<br>This field takes precedence over S3 and Volume sources.</p>                                                                                                                                                |         |                                                              |
| `volumeSnapshotRef` [*LocalObjectReference*](#localobjectreference)                                              | <p>VolumeSnapshotRef is a reference to a VolumeSnapshot object.<br>This field takes precedence over S3 and Volume sources.</p>                                                                                                                                                                                         |         |                                                              |
| `pointInTimeRecoveryRef` [*LocalObjectReference*](#localobjectreference)                                         | <p>PointInTimeRecoveryRef is a reference to a PointInTimeRecovery object.<br>Providing this field implies restoring the PhysicalBackup referenced in the PointInTimeRecovery object and replaying the<br>archived binary logs up to the point-in-time restoration target, defined by the targetRecoveryTime field.</p> |         |                                                              |
| `backupContentType` [*BackupContentType*](#backupcontenttype)                                                    | <p>BackupContentType is the backup content type available in the source to bootstrap from.<br>It is inferred based on the BackupRef and VolumeSnapshotRef fields. If inference is not possible, it defaults to Logical.<br>Set this field explicitly when using physical backups from S3 or Volume sources.</p>        |         | <p>Enum: \[Logical Physical]<br></p>                         |
| `s3` [*S3*](#s3)                                                                                                 | <p>S3 defines the configuration to restore backups from a S3 compatible storage.<br>This field takes precedence over the Volume source.</p>                                                                                                                                                                            |         |                                                              |
| `azureBlob` [*AzureBlob*](#azureblob)                                                                            | <p>AzureBlob defines the configuration to restore from Azure Blob compatible storage.<br>This field takes precedence over the Volume source.</p>                                                                                                                                                                       |         |                                                              |
| `volume` [*StorageVolumeSource*](#storagevolumesource)                                                           | Volume is a Kubernetes Volume object that contains a backup.                                                                                                                                                                                                                                                           |         |                                                              |
| `targetRecoveryTime` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#time-v1-meta) | <p>TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective.<br>It is used to determine the closest restoration source in time.</p>                                                                                                                      |         |                                                              |
| `stagingStorage` [*StagingStorage*](#stagingstorage)                                                             | <p>StagingStorage defines the temporary storage used to keep external backups and binary logs (i.e. S3) while they are being processed.<br>It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the Job is scheduled.</p>                                          |         |                                                              |
| `restoreJob` [*Job*](#job)                                                                                       | RestoreJob defines additional properties for the restoration Job.                                                                                                                                                                                                                                                      |         |                                                              |
| `logLevel` *string*                                                                                              | LogLevel to be used in the mariadb-enterprise-operator container of the restoration Job. It defaults to 'info'.                                                                                                                                                                                                        | info    | <p>Enum: \[debug info warn error dpanic panic fatal]<br></p> |

#### CSIVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#csivolumesource-v1-core>.

*Appears in:*

* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)
* [StorageVolumeSource](#storagevolumesource)
* [Volume](#volume)
* [VolumeSource](#volumesource)

| Field                                                                  | Description | Default | Validation |
| ---------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `driver` *string*                                                      |             |         |            |
| `readOnly` *boolean*                                                   |             |         |            |
| `fsType` *string*                                                      |             |         |            |
| `volumeAttributes` *object (keys:string, values:string)*               |             |         |            |
| `nodePublishSecretRef` [*LocalObjectReference*](#localobjectreference) |             |         |            |

#### CertConfig

CertConfig defines parameters to configure a certificate.

*Appears in:*

* [ExternalTLS](#externaltls)
* [MaxScaleTLS](#maxscaletls)
* [TLS](#tls)

| Field                                                                                                              | Description                                                                                                                                                          | Default | Validation                    |
| ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------- |
| `caLifetime` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)   | CALifetime defines the CA certificate validity.                                                                                                                      |         |                               |
| `certLifetime` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | CertLifetime defines the certificate validity.                                                                                                                       |         |                               |
| `privateKeyAlgorithm` *string*                                                                                     | <p>PrivateKeyAlgorithm is the algorithm to be used for the CA and leaf certificate private keys.<br>One of: ECDSA or RSA</p>                                         |         | <p>Enum: \[ECDSA RSA]<br></p> |
| `privateKeySize` *integer*                                                                                         | <p>PrivateKeyAlgorithm is the key size to be used for the CA and leaf certificate private keys.<br>Supported values: ECDSA(256, 384, 521), RSA(2048, 3072, 4096)</p> |         |                               |

#### CleanupPolicy

*Underlying type:* *string*

CleanupPolicy defines the behavior for cleaning up a resource.

*Appears in:*

* [DatabaseSpec](#databasespec)
* [GrantSpec](#grantspec)
* [MariaDBSpec](#mariadbspec)
* [SQLTemplate](#sqltemplate)
* [UserSpec](#userspec)

| Field    | Description                                                                                                             |
| -------- | ----------------------------------------------------------------------------------------------------------------------- |
| `Skip`   | <p>CleanupPolicySkip indicates that the resource will NOT be deleted from the database after the CR is deleted.<br></p> |
| `Delete` | <p>CleanupPolicyDelete indicates that the resource will be deleted from the database after the CR is deleted.<br></p>   |

#### CompressAlgorithm

*Underlying type:* *string*

CompressAlgorithm defines the compression algorithm for a Backup resource.

*Appears in:*

* [BackupSpec](#backupspec)
* [PhysicalBackupSpec](#physicalbackupspec)
* [PointInTimeRecoverySpec](#pointintimerecoveryspec)

| Field   | Description                                                                                                        |
| ------- | ------------------------------------------------------------------------------------------------------------------ |
| `none`  | <p>No compression<br></p>                                                                                          |
| `bzip2` | <p>Bzip2 compression. Good compression ratio, but slower compression/decompression speed compared to gzip.<br></p> |
| `gzip`  | <p>Gzip compression. Good compression/decompression speed, but worse compression ratio compared to bzip2.<br></p>  |

#### ConfigMapKeySelector

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#configmapkeyselector-v1-core>.

*Appears in:*

* [EnvVarSource](#envvarsource)
* [MariaDBSpec](#mariadbspec)
* [SqlJobSpec](#sqljobspec)

| Field           | Description | Default | Validation |
| --------------- | ----------- | ------- | ---------- |
| `name` *string* |             |         |            |
| `key` *string*  |             |         |            |

#### ConfigMapVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#configmapvolumesource-v1-core>.

*Appears in:*

* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)
* [Volume](#volume)
* [VolumeSource](#volumesource)

| Field                   | Description | Default | Validation |
| ----------------------- | ----------- | ------- | ---------- |
| `name` *string*         |             |         |            |
| `defaultMode` *integer* |             |         |            |

#### Connection

Connection is the Schema for the connections API. It is used to configure connection strings for the applications connecting to MariaDB.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `Connection`                                                    |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*ConnectionSpec*](#connectionspec)                                                                         |                                                                 |         |            |

#### ConnectionSpec

ConnectionSpec defines the desired state of Connection

*Appears in:*

* [Connection](#connection)

| Field                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Default | Validation              |
| ------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------- |
| `secretName` *string*                                                    | SecretName to be used in the Connection.                                                                                                                                                                                                                                                                                                                                                                                                                                                                |         |                         |
| `secretTemplate` [*SecretTemplate*](#secrettemplate)                     | SecretTemplate to be used in the Connection.                                                                                                                                                                                                                                                                                                                                                                                                                                                            |         |                         |
| `healthCheck` [*HealthCheck*](#healthcheck)                              | HealthCheck to be used in the Connection.                                                                                                                                                                                                                                                                                                                                                                                                                                                               |         |                         |
| `params` *object (keys:string, values:string)*                           | Params to be used in the Connection.                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |         |                         |
| `serviceName` *string*                                                   | ServiceName to be used in the Connection.                                                                                                                                                                                                                                                                                                                                                                                                                                                               |         |                         |
| `port` *integer*                                                         | Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener.                                                                                                                                                                                                                                                                                                                                                                                                 |         |                         |
| `mariaDbRef` [*MariaDBRef*](#mariadbref)                                 | MariaDBRef is a reference to the MariaDB to connect to. Either MariaDBRef or MaxScaleRef must be provided.                                                                                                                                                                                                                                                                                                                                                                                              |         |                         |
| `maxScaleRef` [*ObjectReference*](#objectreference)                      | MaxScaleRef is a reference to the MaxScale to connect to. Either MariaDBRef or MaxScaleRef must be provided.                                                                                                                                                                                                                                                                                                                                                                                            |         |                         |
| `username` *string*                                                      | Username to use for configuring the Connection.                                                                                                                                                                                                                                                                                                                                                                                                                                                         |         | <p>Required: {}<br></p> |
| `passwordSecretKeyRef` [*SecretKeySelector*](#secretkeyselector)         | <p>PasswordSecretKeyRef is a reference to the password to use for configuring the Connection.<br>Either passwordSecretKeyRef or tlsClientCertSecretRef must be provided as client credentials.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password.</p>                                                                                                                                                    |         |                         |
| `tlsClientCertSecretRef` [*LocalObjectReference*](#localobjectreference) | <p>TLSClientCertSecretRef is a reference to a Kubernetes TLS Secret used as authentication when checking the connection health.<br>Either passwordSecretKeyRef or tlsClientCertSecretRef must be provided as client credentials.<br>If not provided, the client certificate provided by the referred MariaDB is used if TLS is enabled.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the client certificate.</p> |         |                         |
| `host` *string*                                                          | Host to connect to. If not provided, it defaults to the MariaDB host or to the MaxScale host.                                                                                                                                                                                                                                                                                                                                                                                                           |         |                         |
| `database` *string*                                                      | Database to use when configuring the Connection.                                                                                                                                                                                                                                                                                                                                                                                                                                                        |         |                         |

#### ConnectionTemplate

ConnectionTemplate defines a template to customize Connection objects.

*Appears in:*

* [ConnectionSpec](#connectionspec)
* [ExternalMariaDBSpec](#externalmariadbspec)
* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)

| Field                                                | Description                                                                                             | Default | Validation |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `secretName` *string*                                | SecretName to be used in the Connection.                                                                |         |            |
| `secretTemplate` [*SecretTemplate*](#secrettemplate) | SecretTemplate to be used in the Connection.                                                            |         |            |
| `healthCheck` [*HealthCheck*](#healthcheck)          | HealthCheck to be used in the Connection.                                                               |         |            |
| `params` *object (keys:string, values:string)*       | Params to be used in the Connection.                                                                    |         |            |
| `serviceName` *string*                               | ServiceName to be used in the Connection.                                                               |         |            |
| `port` *integer*                                     | Port to connect to. If not provided, it defaults to the MariaDB port or to the first MaxScale listener. |         |            |

#### Container

Container object definition.

*Appears in:*

* [MariaDBPodTemplate](#mariadbpodtemplate)
* [MariaDBSpec](#mariadbspec)

| Field                                                                                                                     | Description                                                                                                                          | Default | Validation                                    |
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------- | --------------------------------------------- |
| `name` *string*                                                                                                           | Name to be given to the container.                                                                                                   |         |                                               |
| `image` *string*                                                                                                          | Image name to be used by the container. The supported format is `<image>:<tag>`.                                                     |         | <p>Required: {}<br></p>                       |
| `imagePullPolicy` [*PullPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#pullpolicy-v1-core) | ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. |         | <p>Enum: \[Always Never IfNotPresent]<br></p> |
| `command` *string array*                                                                                                  | Command to be used in the Container.                                                                                                 |         |                                               |
| `args` *string array*                                                                                                     | Args to be used in the Container.                                                                                                    |         |                                               |
| `env` [*EnvVar*](#envvar) *array*                                                                                         | Env represents the environment variables to be injected in a container.                                                              |         |                                               |
| `volumeMounts` [*VolumeMount*](#volumemount) *array*                                                                      | VolumeMounts to be used in the Container.                                                                                            |         |                                               |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                               | Resources describes the compute resource requirements.                                                                               |         |                                               |

#### ContainerTemplate

ContainerTemplate defines a template to configure Container objects.

*Appears in:*

* [Agent](#agent)
* [InitContainer](#initcontainer)
* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)

| Field                                                       | Description                                                                                                             | Default | Validation |
| ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `command` *string array*                                    | Command to be used in the Container.                                                                                    |         |            |
| `args` *string array*                                       | Args to be used in the Container.                                                                                       |         |            |
| `env` [*EnvVar*](#envvar) *array*                           | Env represents the environment variables to be injected in a container.                                                 |         |            |
| `envFrom` [*EnvFromSource*](#envfromsource) *array*         | EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container. |         |            |
| `volumeMounts` [*VolumeMount*](#volumemount) *array*        | VolumeMounts to be used in the Container.                                                                               |         |            |
| `livenessProbe` [*Probe*](#probe)                           | LivenessProbe to be used in the Container.                                                                              |         |            |
| `readinessProbe` [*Probe*](#probe)                          | ReadinessProbe to be used in the Container.                                                                             |         |            |
| `startupProbe` [*Probe*](#probe)                            | StartupProbe to be used in the Container.                                                                               |         |            |
| `resources` [*ResourceRequirements*](#resourcerequirements) | Resources describes the compute resource requirements.                                                                  |         |            |
| `securityContext` [*SecurityContext*](#securitycontext)     | SecurityContext holds security configuration that will be applied to a container.                                       |         |            |
| `lifecycle` [*Lifecycle*](#lifecycle)                       | Lifecycle are actions that the management system should take in response to container lifecycle events.                 |         |            |

#### CooperativeMonitoring

*Underlying type:* *string*

CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. See: <https://mariadb.com/docs/server/architecture/components/maxscale/monitors/mariadbmon/use-cooperative-locking-ha-maxscale-mariadb-monitor/>

*Appears in:*

* [MaxScaleMonitor](#maxscalemonitor)

| Field                 | Description                                                                                                                          |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| `majority_of_all`     | <p>CooperativeMonitoringMajorityOfAll requires a lock from the majority of the MariaDB servers, even the ones that are down.<br></p> |
| `majority_of_running` | <p>CooperativeMonitoringMajorityOfRunning requires a lock from the majority of the MariaDB servers.<br></p>                          |

#### CronJobTemplate

CronJobTemplate defines parameters for configuring CronJob objects.

*Appears in:*

* [BackupSpec](#backupspec)
* [SqlJobSpec](#sqljobspec)

| Field                                  | Description                                                                               | Default | Validation            |
| -------------------------------------- | ----------------------------------------------------------------------------------------- | ------- | --------------------- |
| `successfulJobsHistoryLimit` *integer* | SuccessfulJobsHistoryLimit defines the maximum number of successful Jobs to be displayed. |         | <p>Minimum: 0<br></p> |
| `failedJobsHistoryLimit` *integer*     | FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed.         |         | <p>Minimum: 0<br></p> |
| `timeZone` *string*                    | TimeZone defines the timezone associated with the cron expression.                        |         |                       |

#### Database

Database is the Schema for the databases API. It is used to define a logical database as if you were running a 'CREATE DATABASE' statement.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `Database`                                                      |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*DatabaseSpec*](#databasespec)                                                                             |                                                                 |         |            |

#### DatabaseSpec

DatabaseSpec defines the desired state of Database

*Appears in:*

* [Database](#database)

| Field                                                                                                                 | Description                                                         | Default           | Validation                      |
| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ----------------- | ------------------------------- |
| `requeueInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | RequeueInterval is used to perform requeue reconciliations.         |                   |                                 |
| `retryInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)   | RetryInterval is the interval used to perform retries.              |                   |                                 |
| `cleanupPolicy` [*CleanupPolicy*](#cleanuppolicy)                                                                     | CleanupPolicy defines the behavior for cleaning up a SQL resource.  |                   | <p>Enum: \[Skip Delete]<br></p> |
| `mariaDbRef` [*MariaDBRef*](#mariadbref)                                                                              | MariaDBRef is a reference to a MariaDB object.                      |                   | <p>Required: {}<br></p>         |
| `characterSet` *string*                                                                                               | CharacterSet to use in the Database.                                | utf8              |                                 |
| `collate` *string*                                                                                                    | Collate to use in the Database.                                     | utf8\_general\_ci |                                 |
| `name` *string*                                                                                                       | Name overrides the default Database name provided by metadata.name. |                   | <p>MaxLength: 80<br></p>        |

#### EmptyDirVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#emptydirvolumesource-v1-core>.

*Appears in:*

* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)
* [StorageVolumeSource](#storagevolumesource)
* [Volume](#volume)
* [VolumeSource](#volumesource)

| Field                                                                                                                  | Description | Default | Validation |
| ---------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `medium` [*StorageMedium*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#storagemedium-v1-core) |             |         |            |
| `sizeLimit` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#quantity-resource-api)   |             |         |            |

#### EnvFromSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#envfromsource-v1-core>.

*Appears in:*

* [Agent](#agent)
* [ContainerTemplate](#containertemplate)
* [InitContainer](#initcontainer)
* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)

| Field                                                          | Description | Default | Validation |
| -------------------------------------------------------------- | ----------- | ------- | ---------- |
| `prefix` *string*                                              |             |         |            |
| `configMapRef` [*LocalObjectReference*](#localobjectreference) |             |         |            |
| `secretRef` [*LocalObjectReference*](#localobjectreference)    |             |         |            |

#### EnvVar

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#envvarsource-v1-core>.

*Appears in:*

* [Agent](#agent)
* [Container](#container)
* [ContainerTemplate](#containertemplate)
* [InitContainer](#initcontainer)
* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)

| Field                                       | Description                                                | Default | Validation |
| ------------------------------------------- | ---------------------------------------------------------- | ------- | ---------- |
| `name` *string*                             | Name of the environment variable. Must be a C\_IDENTIFIER. |         |            |
| `value` *string*                            |                                                            |         |            |
| `valueFrom` [*EnvVarSource*](#envvarsource) |                                                            |         |            |

#### EnvVarSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#envvarsource-v1-core>.

*Appears in:*

* [EnvVar](#envvar)

| Field                                                             | Description | Default | Validation |
| ----------------------------------------------------------------- | ----------- | ------- | ---------- |
| `fieldRef` [*ObjectFieldSelector*](#objectfieldselector)          |             |         |            |
| `configMapKeyRef` [*ConfigMapKeySelector*](#configmapkeyselector) |             |         |            |
| `secretKeyRef` [*SecretKeySelector*](#secretkeyselector)          |             |         |            |

#### EphemeralVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#ephemeralvolumesource-v1-core>.

*Appears in:*

* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)

| Field                                                               | Description | Default | Validation |
| ------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `volumeClaimTemplate` [*VolumeClaimTemplate*](#volumeclaimtemplate) |             |         |            |

#### ExecAction

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#execaction-v1-core>.

*Appears in:*

* [LifecycleHandler](#lifecyclehandler)
* [Probe](#probe)
* [ProbeHandler](#probehandler)

| Field                    | Description | Default | Validation |
| ------------------------ | ----------- | ------- | ---------- |
| `command` *string array* |             |         |            |

#### Exporter

Exporter defines a metrics exporter container.

*Appears in:*

* [MariadbMetrics](#mariadbmetrics)
* [MaxScaleMetrics](#maxscalemetrics)

| Field                                                                                                                         | Description                                                                                                                          | Default | Validation                                    |
| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------- | --------------------------------------------- |
| `image` *string*                                                                                                              | Image name to be used as metrics exporter. The supported format is `<image>:<tag>`.                                                  |         |                                               |
| `imagePullPolicy` [*PullPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#pullpolicy-v1-core)     | ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. |         | <p>Enum: \[Always Never IfNotPresent]<br></p> |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.                                                           |         |                                               |
| `args` *string array*                                                                                                         | Args to be used in the Container.                                                                                                    |         |                                               |
| `port` *integer*                                                                                                              | Port where the exporter will be listening for connections.                                                                           |         |                                               |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                                   | Resources describes the compute resource requirements.                                                                               |         |                                               |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                                                                      |         |                                               |
| `securityContext` [*SecurityContext*](#securitycontext)                                                                       | SecurityContext holds container-level security attributes.                                                                           |         |                                               |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings.                                                   |         |                                               |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                | Affinity to be used in the Pod.                                                                                                      |         |                                               |
| `nodeSelector` *object (keys:string, values:string)*                                                                          | NodeSelector to be used in the Pod.                                                                                                  |         |                                               |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                                                                   |         |                                               |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                                                                             |         |                                               |

#### ExternalMariaDB

ExternalMariaDB is the Schema for the external MariaDBs API. It is used to define external MariaDB server.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `ExternalMariaDB`                                               |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*ExternalMariaDBSpec*](#externalmariadbspec)                                                               |                                                                 |         |            |

#### ExternalMariaDBSpec

ExternalMariaDBSpec defines the desired state of an External MariaDB

*Appears in:*

* [ExternalMariaDB](#externalmariadb)

| Field                                                                                                                     | Description                                                                                                                                                                                                                                                                                                                                                  | Default | Validation                                    |
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | --------------------------------------------- |
| `image` *string*                                                                                                          | <p>Image name to be used to perform operations on the external MariaDB, for example, for taking backups.<br>The supported format is <code>\<image>:\<tag></code>. Only MariaDB official images are supported.<br>If not provided, the MariaDB image version be inferred by the operator in runtime. The default MariaDB image will be used in this case,</p> |         |                                               |
| `imagePullPolicy` [*PullPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#pullpolicy-v1-core) | ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.                                                                                                                                                                                                                         |         | <p>Enum: \[Always Never IfNotPresent]<br></p> |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                | ImagePullSecrets is the list of pull Secrets to be used to pull the image.                                                                                                                                                                                                                                                                                   |         |                                               |
| `inheritMetadata` [*Metadata*](#metadata)                                                                                 | InheritMetadata defines the metadata to be inherited by children resources.                                                                                                                                                                                                                                                                                  |         |                                               |
| `host` *string*                                                                                                           | Hostname of the external MariaDB.                                                                                                                                                                                                                                                                                                                            |         | <p>Required: {}<br></p>                       |
| `port` *integer*                                                                                                          | Port of the external MariaDB.                                                                                                                                                                                                                                                                                                                                | 3306    |                                               |
| `username` *string*                                                                                                       | Username is the username to connect to the external MariaDB.                                                                                                                                                                                                                                                                                                 |         | <p>Required: {}<br></p>                       |
| `passwordSecretKeyRef` [*SecretKeySelector*](#secretkeyselector)                                                          | PasswordSecretKeyRef is a reference to the password to connect to the external MariaDB.                                                                                                                                                                                                                                                                      |         |                                               |
| `tls` [*ExternalTLS*](#externaltls)                                                                                       | TLS defines the PKI to be used with the external MariaDB.                                                                                                                                                                                                                                                                                                    |         |                                               |
| `connection` [*ConnectionTemplate*](#connectiontemplate)                                                                  | Connection defines a template to configure a Connection for the external MariaDB.                                                                                                                                                                                                                                                                            |         |                                               |

#### ExternalTLS

ExternalTLS defines the TLS configuration for external MariaDB instances.

*Appears in:*

* [ExternalMariaDBSpec](#externalmariadbspec)

| Field                                                                 | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Default | Validation                                                        |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------- |
| `enabled` *boolean*                                                   | <p>Enabled indicates whether TLS is enabled, determining if certificates should be issued and mounted to the MariaDB instance.<br>It is enabled by default.</p>                                                                                                                                                                                                                                                                                                                                                                                                                 |         |                                                                   |
| `required` *boolean*                                                  | <p>Required specifies whether TLS must be enforced for all connections.<br>User TLS requirements take precedence over this.<br>It disabled by default.</p>                                                                                                                                                                                                                                                                                                                                                                                                                      |         |                                                                   |
| `versions` *string array*                                             | <p>Versions specifies the supported TLS versions for this MariaDB instance.<br>By default, the MariaDB's default supported versions are used. See: <https://mariadb.com/kb/en/ssltls-system-variables/#tls_version>.</p>                                                                                                                                                                                                                                                                                                                                                        |         | <p>items:Enum: \[TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3]<br></p>         |
| `serverCASecretRef` [*LocalObjectReference*](#localobjectreference)   | <p>ServerCASecretRef is a reference to a Secret containing the server certificate authority keypair. It is used to establish trust and issue server certificates.<br>One of:<br>- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.<br>- Secret containing only the 'ca.crt' in order to establish trust. In this case, either serverCertSecretRef or serverCertIssuerRef must be provided.<br>If not provided, a self-signed CA will be provisioned to issue the server certificate.</p>        |         |                                                                   |
| `serverCertSecretRef` [*LocalObjectReference*](#localobjectreference) | <p>ServerCertSecretRef is a reference to a TLS Secret containing the server certificate.<br>It is mutually exclusive with serverCertIssuerRef.</p>                                                                                                                                                                                                                                                                                                                                                                                                                              |         |                                                                   |
| `serverCertIssuerRef` [*ObjectReference*](#objectreference)           | <p>ServerCertIssuerRef is a reference to a cert-manager issuer object used to issue the server certificate. cert-manager must be installed previously in the cluster.<br>It is mutually exclusive with serverCertSecretRef.<br>By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via serverCASecretRef.</p>                                                                                                                                                                            |         |                                                                   |
| `serverCertConfig` [*CertConfig*](#certconfig)                        | <p>ServerCertConfig allows configuring the server certificates, either issued by the operator or cert-manager.<br>If not set, the default settings will be used.</p>                                                                                                                                                                                                                                                                                                                                                                                                            |         |                                                                   |
| `clientCASecretRef` [*LocalObjectReference*](#localobjectreference)   | <p>ClientCASecretRef is a reference to a Secret containing the client certificate authority keypair. It is used to establish trust and issue client certificates.<br>One of:<br>- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.<br>- Secret containing only the 'ca.crt' in order to establish trust. In this case, either clientCertSecretRef or clientCertIssuerRef fields must be provided.<br>If not provided, a self-signed CA will be provisioned to issue the client certificate.</p> |         |                                                                   |
| `clientCertSecretRef` [*LocalObjectReference*](#localobjectreference) | <p>ClientCertSecretRef is a reference to a TLS Secret containing the client certificate.<br>It is mutually exclusive with clientCertIssuerRef.</p>                                                                                                                                                                                                                                                                                                                                                                                                                              |         |                                                                   |
| `clientCertIssuerRef` [*ObjectReference*](#objectreference)           | <p>ClientCertIssuerRef is a reference to a cert-manager issuer object used to issue the client certificate. cert-manager must be installed previously in the cluster.<br>It is mutually exclusive with clientCertSecretRef.<br>By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via clientCASecretRef.</p>                                                                                                                                                                            |         |                                                                   |
| `clientCertConfig` [*CertConfig*](#certconfig)                        | <p>ClientCertConfig allows configuring the client certificates, either issued by the operator or cert-manager.<br>If not set, the default settings will be used.</p>                                                                                                                                                                                                                                                                                                                                                                                                            |         |                                                                   |
| `galeraSSTEnabled` *boolean*                                          | <p>GaleraSSTEnabled determines whether Galera SST connections should use TLS.<br>It disabled by default.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |         |                                                                   |
| `galeraServerSSLMode` *string*                                        | <p>GaleraServerSSLMode defines the server SSL mode for a Galera Enterprise cluster.<br>This field is only supported and applicable for Galera Enterprise >= 10.6 instances.<br>Refer to the MariaDB Enterprise docs for more detail: <https://mariadb.com/docs/galera-cluster/galera-security/mariadb-enterprise-cluster-security#wsrep-tls-modes></p>                                                                                                                                                                                                                          |         | <p>Enum: \[PROVIDER SERVER SERVER\_X509]<br></p>                  |
| `galeraClientSSLMode` *string*                                        | <p>GaleraClientSSLMode defines the client SSL mode for a Galera Enterprise cluster.<br>This field is only supported and applicable for Galera Enterprise >= 10.6 instances.<br>Refer to the MariaDB Enterprise docs for more detail: <https://mariadb.com/docs/galera-cluster/galera-security/mariadb-enterprise-cluster-security#sst-tls-modes></p>                                                                                                                                                                                                                            |         | <p>Enum: \[DISABLED REQUIRED VERIFY\_CA VERIFY\_IDENTITY]<br></p> |
| `mutual` *boolean*                                                    | <p>Mutual specifies whether TLS must be mutual between server and client for external connections.<br>When set to false, the client certificate will not be sent during the TLS handshake.<br>It is enabled by default.</p>                                                                                                                                                                                                                                                                                                                                                     |         |                                                                   |

#### Galera

Galera allows you to enable multi-master HA via Galera in your MariaDB cluster.

*Appears in:*

* [MariaDBSpec](#mariadbspec)

| Field                                                   | Description                                                                                                                                                                                                                     | Default | Validation                                      |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `primary` [*PrimaryGalera*](#primarygalera)             | Primary is the Galera configuration for the primary node.                                                                                                                                                                       |         |                                                 |
| `sst` [*SST*](#sst)                                     | <p>SST is the Snapshot State Transfer used when new Pods join the cluster.<br>More info: <https://galeracluster.com/library/documentation/sst.html>.</p>                                                                        |         | <p>Enum: \[rsync mariabackup mysqldump]<br></p> |
| `availableWhenDonor` *boolean*                          | AvailableWhenDonor indicates whether a donor node should be responding to queries. It defaults to false.                                                                                                                        |         |                                                 |
| `galeraLibPath` *string*                                | <p>GaleraLibPath is a path inside the MariaDB image to the wsrep provider plugin. It is defaulted if not provided.<br>More info: <https://galeracluster.com/library/documentation/mysql-wsrep-options.html#wsrep-provider>.</p> |         |                                                 |
| `replicaThreads` *integer*                              | <p>ReplicaThreads is the number of replica threads used to apply Galera write sets in parallel.<br>More info: <https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_slave_threads>.</p>                             |         |                                                 |
| `providerOptions` *object (keys:string, values:string)* | <p>ProviderOptions is map of Galera configuration parameters.<br>More info: <https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_provider_options>.</p>                                                            |         |                                                 |
| `agent` [*Agent*](#agent)                               | Agent is a sidecar agent that co-operates with mariadb-enterprise-operator.                                                                                                                                                     |         |                                                 |
| `recovery` [*GaleraRecovery*](#galerarecovery)          | <p>GaleraRecovery is the recovery process performed by the operator whenever the Galera cluster is not healthy.<br>More info: <https://galeracluster.com/library/documentation/crash-recovery.html>.</p>                        |         |                                                 |
| `initContainer` [*InitContainer*](#initcontainer)       | InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-enterprise-operator.                                                                                                               |         |                                                 |
| `initJob` [*GaleraInitJob*](#galerainitjob)             | InitJob defines a Job that co-operates with mariadb-enterprise-operator by performing initialization tasks.                                                                                                                     |         |                                                 |
| `config` [*GaleraConfig*](#galeraconfig)                | GaleraConfig defines storage options for the Galera configuration files.                                                                                                                                                        |         |                                                 |
| `clusterName` *string*                                  | ClusterName is the name of the cluster to be used in the Galera config file.                                                                                                                                                    |         |                                                 |
| `enabled` *boolean*                                     | Enabled is a flag to enable Galera.                                                                                                                                                                                             |         |                                                 |

#### GaleraConfig

GaleraConfig defines storage options for the Galera configuration files.

*Appears in:*

* [Galera](#galera)
* [GaleraSpec](#galeraspec)

| Field                                                               | Description                                                                                                                                                                                                                                         | Default | Validation |
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `reuseStorageVolume` *boolean*                                      | <p>ReuseStorageVolume indicates that storage volume used by MariaDB should be reused to store the Galera configuration files.<br>It defaults to false, which implies that a dedicated volume for the Galera configuration files is provisioned.</p> |         |            |
| `volumeClaimTemplate` [*VolumeClaimTemplate*](#volumeclaimtemplate) | VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB.                                                                                                 |         |            |

#### GaleraInitJob

GaleraInitJob defines a Job used to be used to initialize the Galera cluster.

*Appears in:*

* [Galera](#galera)
* [GaleraSpec](#galeraspec)

| Field                                                       | Description                                                     | Default | Validation |
| ----------------------------------------------------------- | --------------------------------------------------------------- | ------- | ---------- |
| `metadata` [*Metadata*](#metadata)                          | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `resources` [*ResourceRequirements*](#resourcerequirements) | Resources describes the compute resource requirements.          |         |            |

#### GaleraRecovery

GaleraRecovery is the recovery process performed by the operator whenever the Galera cluster is not healthy. More info: <https://galeracluster.com/library/documentation/crash-recovery.html>.

*Appears in:*

* [Galera](#galera)
* [GaleraSpec](#galeraspec)

| Field                                                                                                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `enabled` *boolean*                                                                                                            | Enabled is a flag to enable GaleraRecovery.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |         |            |
| `minClusterSize` [*IntOrString*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#intorstring-intstr-util) | <p>MinClusterSize is the minimum number of replicas to consider the cluster healthy. It can be either a number of replicas (1) or a percentage (50%).<br>If Galera consistently reports less replicas than this value for the given 'ClusterHealthyTimeout' interval, a cluster recovery is initiated.<br>It defaults to '1' replica, and it is highly recommendeded to keep this value at '1' in most cases.<br>If set to more than one replica, the cluster recovery process may restart the healthy replicas as well.</p> |         |            |
| `clusterMonitorInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)   | ClusterMonitorInterval represents the interval used to monitor the Galera cluster health.                                                                                                                                                                                                                                                                                                                                                                                                                                    |         |            |
| `clusterHealthyTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)    | <p>ClusterHealthyTimeout represents the duration at which a Galera cluster, that consistently failed health checks,<br>is considered unhealthy, and consequently the Galera recovery process will be initiated by the operator.</p>                                                                                                                                                                                                                                                                                          |         |            |
| `clusterBootstrapTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)  | <p>ClusterBootstrapTimeout is the time limit for bootstrapping a cluster.<br>Once this timeout is reached, the Galera recovery state is reset and a new cluster bootstrap will be attempted.</p>                                                                                                                                                                                                                                                                                                                             |         |            |
| `clusterUpscaleTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)    | ClusterUpscaleTimeout represents the maximum duration for upscaling the cluster's StatefulSet during the recovery process.                                                                                                                                                                                                                                                                                                                                                                                                   |         |            |
| `clusterDownscaleTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)  | ClusterDownscaleTimeout represents the maximum duration for downscaling the cluster's StatefulSet during the recovery process.                                                                                                                                                                                                                                                                                                                                                                                               |         |            |
| `podRecoveryTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)       | PodRecoveryTimeout is the time limit for recevorying the sequence of a Pod during the cluster recovery.                                                                                                                                                                                                                                                                                                                                                                                                                      |         |            |
| `podSyncTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)           | PodSyncTimeout is the time limit for a Pod to join the cluster after having performed a cluster bootstrap during the cluster recovery.                                                                                                                                                                                                                                                                                                                                                                                       |         |            |
| `forceClusterBootstrapInPod` *string*                                                                                          | <p>ForceClusterBootstrapInPod allows you to manually initiate the bootstrap process in a specific Pod.<br>IMPORTANT: Use this option only in exceptional circumstances. Not selecting the Pod with the highest sequence number may result in data loss.<br>IMPORTANT: Ensure you unset this field after completing the bootstrap to allow the operator to choose the appropriate Pod to bootstrap from in an event of cluster recovery.</p>                                                                                  |         |            |
| `job` [*GaleraRecoveryJob*](#galerarecoveryjob)                                                                                | Job defines a Job that co-operates with mariadb-enterprise-operator by performing the Galera cluster recovery .                                                                                                                                                                                                                                                                                                                                                                                                              |         |            |

#### GaleraRecoveryJob

GaleraRecoveryJob defines a Job used to be used to recover the Galera cluster.

*Appears in:*

* [GaleraRecovery](#galerarecovery)

| Field                                                       | Description                                                                                                           | Default | Validation |
| ----------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `metadata` [*Metadata*](#metadata)                          | Refer to Kubernetes API documentation for fields of `metadata`.                                                       |         |            |
| `resources` [*ResourceRequirements*](#resourcerequirements) | Resources describes the compute resource requirements.                                                                |         |            |
| `podAffinity` *boolean*                                     | PodAffinity indicates whether the recovery Jobs should run in the same Node as the MariaDB Pods. It defaults to true. |         |            |

#### GaleraSpec

GaleraSpec is the Galera desired state specification.

*Appears in:*

* [Galera](#galera)

| Field                                                   | Description                                                                                                                                                                                                                     | Default | Validation                                      |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------- |
| `primary` [*PrimaryGalera*](#primarygalera)             | Primary is the Galera configuration for the primary node.                                                                                                                                                                       |         |                                                 |
| `sst` [*SST*](#sst)                                     | <p>SST is the Snapshot State Transfer used when new Pods join the cluster.<br>More info: <https://galeracluster.com/library/documentation/sst.html>.</p>                                                                        |         | <p>Enum: \[rsync mariabackup mysqldump]<br></p> |
| `availableWhenDonor` *boolean*                          | AvailableWhenDonor indicates whether a donor node should be responding to queries. It defaults to false.                                                                                                                        |         |                                                 |
| `galeraLibPath` *string*                                | <p>GaleraLibPath is a path inside the MariaDB image to the wsrep provider plugin. It is defaulted if not provided.<br>More info: <https://galeracluster.com/library/documentation/mysql-wsrep-options.html#wsrep-provider>.</p> |         |                                                 |
| `replicaThreads` *integer*                              | <p>ReplicaThreads is the number of replica threads used to apply Galera write sets in parallel.<br>More info: <https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_slave_threads>.</p>                             |         |                                                 |
| `providerOptions` *object (keys:string, values:string)* | <p>ProviderOptions is map of Galera configuration parameters.<br>More info: <https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_provider_options>.</p>                                                            |         |                                                 |
| `agent` [*Agent*](#agent)                               | Agent is a sidecar agent that co-operates with mariadb-enterprise-operator.                                                                                                                                                     |         |                                                 |
| `recovery` [*GaleraRecovery*](#galerarecovery)          | <p>GaleraRecovery is the recovery process performed by the operator whenever the Galera cluster is not healthy.<br>More info: <https://galeracluster.com/library/documentation/crash-recovery.html>.</p>                        |         |                                                 |
| `initContainer` [*InitContainer*](#initcontainer)       | InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-enterprise-operator.                                                                                                               |         |                                                 |
| `initJob` [*GaleraInitJob*](#galerainitjob)             | InitJob defines a Job that co-operates with mariadb-enterprise-operator by performing initialization tasks.                                                                                                                     |         |                                                 |
| `config` [*GaleraConfig*](#galeraconfig)                | GaleraConfig defines storage options for the Galera configuration files.                                                                                                                                                        |         |                                                 |
| `clusterName` *string*                                  | ClusterName is the name of the cluster to be used in the Galera config file.                                                                                                                                                    |         |                                                 |

#### GeneratedSecretKeyRef

GeneratedSecretKeyRef defines a reference to a Secret that can be automatically generated by mariadb-enterprise-operator if needed.

*Appears in:*

* [BasicAuth](#basicauth)
* [MariaDBSpec](#mariadbspec)
* [MariadbMetrics](#mariadbmetrics)
* [MaxScaleAuth](#maxscaleauth)
* [ReplicaReplication](#replicareplication)

| Field                | Description                                                                                        | Default | Validation |
| -------------------- | -------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `name` *string*      |                                                                                                    |         |            |
| `key` *string*       |                                                                                                    |         |            |
| `generate` *boolean* | Generate indicates whether the Secret should be generated if the Secret referenced is not present. | false   |            |

#### Grant

Grant is the Schema for the grants API. It is used to define grants as if you were running a 'GRANT' statement.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `Grant`                                                         |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*GrantSpec*](#grantspec)                                                                                   |                                                                 |         |            |

#### GrantSpec

GrantSpec defines the desired state of Grant

*Appears in:*

* [Grant](#grant)

| Field                                                                                                                 | Description                                                        | Default | Validation                             |
| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------- | -------------------------------------- |
| `requeueInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | RequeueInterval is used to perform requeue reconciliations.        |         |                                        |
| `retryInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)   | RetryInterval is the interval used to perform retries.             |         |                                        |
| `cleanupPolicy` [*CleanupPolicy*](#cleanuppolicy)                                                                     | CleanupPolicy defines the behavior for cleaning up a SQL resource. |         | <p>Enum: \[Skip Delete]<br></p>        |
| `mariaDbRef` [*MariaDBRef*](#mariadbref)                                                                              | MariaDBRef is a reference to a MariaDB object.                     |         | <p>Required: {}<br></p>                |
| `privileges` *string array*                                                                                           | Privileges to use in the Grant.                                    |         | <p>MinItems: 1<br>Required: {}<br></p> |
| `database` *string*                                                                                                   | Database to use in the Grant.                                      | \*      |                                        |
| `table` *string*                                                                                                      | Table to use in the Grant.                                         | \*      |                                        |
| `username` *string*                                                                                                   | Username to use in the Grant.                                      |         | <p>Required: {}<br></p>                |
| `host` *string*                                                                                                       | Host to use in the Grant. It can be localhost, an IP or '%'.       |         |                                        |
| `grantOption` *boolean*                                                                                               | GrantOption to use in the Grant.                                   | false   |                                        |

#### Gtid

*Underlying type:* *string*

Gtid indicates which Global Transaction ID (GTID) position mode should be used when connecting a replica to the master. See: <https://mariadb.com/kb/en/gtid/#using-current\\_pos-vs-slave\\_pos>.

*Appears in:*

* [ReplicaReplication](#replicareplication)

| Field        | Description                                                                                                                        |
| ------------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `CurrentPos` | <p>GtidCurrentPos indicates the union of gtid\_binlog\_pos and gtid\_slave\_pos will be used when replicating from master.<br></p> |
| `SlavePos`   | <p>GtidSlavePos indicates that gtid\_slave\_pos will be used when replicating from master.<br></p>                                 |

#### HTTPGetAction

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#httpgetaction-v1-core>.

*Appears in:*

* [LifecycleHandler](#lifecyclehandler)
* [Probe](#probe)
* [ProbeHandler](#probehandler)

| Field                                                                                                                | Description | Default | Validation |
| -------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `path` *string*                                                                                                      |             |         |            |
| `port` [*IntOrString*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#intorstring-intstr-util) |             |         |            |
| `host` *string*                                                                                                      |             |         |            |
| `scheme` [*URIScheme*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#urischeme-v1-core)       |             |         |            |

#### HealthCheck

HealthCheck defines intervals for performing health checks.

*Appears in:*

* [ConnectionSpec](#connectionspec)
* [ConnectionTemplate](#connectiontemplate)

| Field                                                                                                               | Description                                                         | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ------- | ---------- |
| `interval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)      | Interval used to perform health checks.                             |         |            |
| `retryInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | RetryInterval is the interval used to perform health check retries. |         |            |

#### HostPathVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#hostpathvolumesource-v1-core>

*Appears in:*

* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)
* [StorageVolumeSource](#storagevolumesource)
* [Volume](#volume)
* [VolumeSource](#volumesource)

| Field           | Description | Default | Validation |
| --------------- | ----------- | ------- | ---------- |
| `path` *string* |             |         |            |
| `type` *string* |             |         |            |

#### InitContainer

InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-enterprise-operator.

*Appears in:*

* [Galera](#galera)
* [GaleraSpec](#galeraspec)
* [Replication](#replication)
* [ReplicationSpec](#replicationspec)

| Field                                                                                                                     | Description                                                                                                                          | Default | Validation                                    |
| ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ------- | --------------------------------------------- |
| `command` *string array*                                                                                                  | Command to be used in the Container.                                                                                                 |         |                                               |
| `args` *string array*                                                                                                     | Args to be used in the Container.                                                                                                    |         |                                               |
| `env` [*EnvVar*](#envvar) *array*                                                                                         | Env represents the environment variables to be injected in a container.                                                              |         |                                               |
| `envFrom` [*EnvFromSource*](#envfromsource) *array*                                                                       | EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.              |         |                                               |
| `volumeMounts` [*VolumeMount*](#volumemount) *array*                                                                      | VolumeMounts to be used in the Container.                                                                                            |         |                                               |
| `livenessProbe` [*Probe*](#probe)                                                                                         | LivenessProbe to be used in the Container.                                                                                           |         |                                               |
| `readinessProbe` [*Probe*](#probe)                                                                                        | ReadinessProbe to be used in the Container.                                                                                          |         |                                               |
| `startupProbe` [*Probe*](#probe)                                                                                          | StartupProbe to be used in the Container.                                                                                            |         |                                               |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                               | Resources describes the compute resource requirements.                                                                               |         |                                               |
| `securityContext` [*SecurityContext*](#securitycontext)                                                                   | SecurityContext holds security configuration that will be applied to a container.                                                    |         |                                               |
| `lifecycle` [*Lifecycle*](#lifecycle)                                                                                     | Lifecycle are actions that the management system should take in response to container lifecycle events.                              |         |                                               |
| `image` *string*                                                                                                          | Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.                                             |         | <p>Required: {}<br></p>                       |
| `imagePullPolicy` [*PullPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#pullpolicy-v1-core) | ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`. |         | <p>Enum: \[Always Never IfNotPresent]<br></p> |

#### Job

Job defines a Job used to be used with MariaDB.

*Appears in:*

* [BootstrapFrom](#bootstrapfrom)
* [ReplicaBootstrapFrom](#replicabootstrapfrom)

| Field                                                                                                                         | Description                                                     | Default | Validation |
| ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ------- | ---------- |
| `metadata` [*Metadata*](#metadata)                                                                                            | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                | Affinity to be used in the Pod.                                 |         |            |
| `nodeSelector` *object (keys:string, values:string)*                                                                          | NodeSelector to be used in the Pod.                             |         |            |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                              |         |            |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                                   | Resources describes the compute resource requirements.          |         |            |
| `args` *string array*                                                                                                         | Args to be used in the Container.                               |         |            |

#### JobContainerTemplate

JobContainerTemplate defines a template to configure Container objects that run in a Job.

*Appears in:*

* [BackupSpec](#backupspec)
* [PhysicalBackupSpec](#physicalbackupspec)
* [RestoreSpec](#restorespec)
* [SqlJobSpec](#sqljobspec)

| Field                                                       | Description                                                                       | Default | Validation |
| ----------------------------------------------------------- | --------------------------------------------------------------------------------- | ------- | ---------- |
| `args` *string array*                                       | Args to be used in the Container.                                                 |         |            |
| `resources` [*ResourceRequirements*](#resourcerequirements) | Resources describes the compute resource requirements.                            |         |            |
| `securityContext` [*SecurityContext*](#securitycontext)     | SecurityContext holds security configuration that will be applied to a container. |         |            |

#### JobPodTemplate

JobPodTemplate defines a template to configure Container objects that run in a Job.

*Appears in:*

* [BackupSpec](#backupspec)
* [RestoreSpec](#restorespec)
* [SqlJobSpec](#sqljobspec)

| Field                                                                                                                         | Description                                                                        | Default | Validation |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------- | ---------- |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                    |         |            |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.         |         |            |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings. |         |            |
| `serviceAccountName` *string*                                                                                                 | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.       |         |            |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                | Affinity to be used in the Pod.                                                    |         |            |
| `nodeSelector` *object (keys:string, values:string)*                                                                          | NodeSelector to be used in the Pod.                                                |         |            |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                 |         |            |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                           |         |            |

#### KubernetesAuth

KubernetesAuth refers to the Kubernetes authentication mechanism utilized for establishing a connection from the operator to the agent. The agent validates the legitimacy of the service account token provided as an Authorization header by creating a TokenReview resource.

*Appears in:*

* [Agent](#agent)

| Field                            | Description                                                                                                                                                                                                                                           | Default | Validation |
| -------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `enabled` *boolean*              | Enabled is a flag to enable KubernetesAuth                                                                                                                                                                                                            |         |            |
| `authDelegatorRoleName` *string* | <p>AuthDelegatorRoleName is the name of the ClusterRoleBinding that is associated with the "system:auth-delegator" ClusterRole.<br>It is necessary for creating TokenReview objects in order for the agent to validate the service account token.</p> |         |            |

#### LabelSelector

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#labelselector-v1-meta>

*Appears in:*

* [PodAffinityTerm](#podaffinityterm)

| Field                                                                              | Description | Default | Validation |
| ---------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `matchLabels` *object (keys:string, values:string)*                                |             |         |            |
| `matchExpressions` [*LabelSelectorRequirement*](#labelselectorrequirement) *array* |             |         |            |

#### LabelSelectorRequirement

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#labelselectorrequirement-v1-meta>

*Appears in:*

* [LabelSelector](#labelselector)

| Field                                                                                                                                    | Description | Default | Validation |
| ---------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `key` *string*                                                                                                                           |             |         |            |
| `operator` [*LabelSelectorOperator*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#labelselectoroperator-v1-meta) |             |         |            |
| `values` *string array*                                                                                                                  |             |         |            |

#### Lifecycle

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#lifecycle-v1-core>.

*Appears in:*

* [Agent](#agent)
* [ContainerTemplate](#containertemplate)
* [InitContainer](#initcontainer)
* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)

| Field                                               | Description | Default | Validation |
| --------------------------------------------------- | ----------- | ------- | ---------- |
| `postStart` [*LifecycleHandler*](#lifecyclehandler) |             |         |            |
| `preStop` [*LifecycleHandler*](#lifecyclehandler)   |             |         |            |

#### LifecycleHandler

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#lifecyclehandler-v1-core>.

*Appears in:*

* [Lifecycle](#lifecycle)

| Field                                       | Description | Default | Validation |
| ------------------------------------------- | ----------- | ------- | ---------- |
| `exec` [*ExecAction*](#execaction)          |             |         |            |
| `httpGet` [*HTTPGetAction*](#httpgetaction) |             |         |            |
| `sleep` [*SleepAction*](#sleepaction)       |             |         |            |

#### LocalObjectReference

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#localobjectreference-v1-core>.

*Appears in:*

* [BackupSpec](#backupspec)
* [BootstrapFrom](#bootstrapfrom)
* [CSIVolumeSource](#csivolumesource)
* [ConfigMapKeySelector](#configmapkeyselector)
* [ConfigMapVolumeSource](#configmapvolumesource)
* [ConnectionSpec](#connectionspec)
* [EnvFromSource](#envfromsource)
* [Exporter](#exporter)
* [ExternalMariaDBSpec](#externalmariadbspec)
* [ExternalTLS](#externaltls)
* [GeneratedSecretKeyRef](#generatedsecretkeyref)
* [JobPodTemplate](#jobpodtemplate)
* [MariaDBPodTemplate](#mariadbpodtemplate)
* [MariaDBSpec](#mariadbspec)
* [MaxScalePodTemplate](#maxscalepodtemplate)
* [MaxScaleSpec](#maxscalespec)
* [MaxScaleTLS](#maxscaletls)
* [PhysicalBackupPodTemplate](#physicalbackuppodtemplate)
* [PhysicalBackupSpec](#physicalbackupspec)
* [PointInTimeRecoverySpec](#pointintimerecoveryspec)
* [ReplicaBootstrapFrom](#replicabootstrapfrom)
* [RestoreSource](#restoresource)
* [RestoreSpec](#restorespec)
* [SecretKeySelector](#secretkeyselector)
* [SqlJobSpec](#sqljobspec)
* [TLS](#tls)

| Field           | Description | Default | Validation |
| --------------- | ----------- | ------- | ---------- |
| `name` *string* |             |         |            |

#### MariaDB

MariaDB is the Schema for the mariadbs API. It is used to define MariaDB clusters.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `MariaDB`                                                       |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*MariaDBSpec*](#mariadbspec)                                                                               |                                                                 |         |            |

#### MariaDBPodTemplate

MariaDBPodTemplate defines a template for MariaDB Pods. Refer to the Kubernetes dos: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#pod-v1-core>.

*Appears in:*

* [MariaDBSpec](#mariadbspec)

| Field                                                                                                                         | Description                                                                        | Default | Validation |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------- | ---------- |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                    |         |            |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.         |         |            |
| `initContainers` [*Container*](#container) *array*                                                                            | InitContainers to be used in the Pod.                                              |         |            |
| `sidecarContainers` [*Container*](#container) *array*                                                                         | SidecarContainers to be used in the Pod.                                           |         |            |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings. |         |            |
| `serviceAccountName` *string*                                                                                                 | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.       |         |            |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                | Affinity to be used in the Pod.                                                    |         |            |
| `nodeSelector` *object (keys:string, values:string)*                                                                          | NodeSelector to be used in the Pod.                                                |         |            |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                 |         |            |
| `volumes` [*MariaDBVolume*](#mariadbvolume) *array*                                                                           | Volumes to be used in the Pod.                                                     |         |            |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                           |         |            |
| `topologySpreadConstraints` [*TopologySpreadConstraint*](#topologyspreadconstraint) *array*                                   | TopologySpreadConstraints to be used in the Pod.                                   |         |            |
| `enableServiceLinks` *boolean*                                                                                                | EnableServiceLinks to be used in the Pod.                                          |         |            |
| `terminationGracePeriodSeconds` *integer*                                                                                     | TerminationGracePeriodSeconds to be used in the Pod.                               |         |            |

#### MariaDBRef

MariaDBRef is a reference to a MariaDB object.

*Appears in:*

* [BackupSpec](#backupspec)
* [ConnectionSpec](#connectionspec)
* [DatabaseSpec](#databasespec)
* [GrantSpec](#grantspec)
* [MaxScaleSpec](#maxscalespec)
* [PhysicalBackupSpec](#physicalbackupspec)
* [RestoreSpec](#restorespec)
* [SqlJobSpec](#sqljobspec)
* [UserSpec](#userspec)

| Field                 | Description                                                                                          | Default | Validation |
| --------------------- | ---------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `name` *string*       |                                                                                                      |         |            |
| `namespace` *string*  |                                                                                                      |         |            |
| `kind` *string*       | Kind of the referent.                                                                                |         |            |
| `waitForIt` *boolean* | WaitForIt indicates whether the controller using this reference should wait for MariaDB to be ready. | true    |            |

#### MariaDBSpec

MariaDBSpec defines the desired state of MariaDB

*Appears in:*

* [MariaDB](#mariadb)

| Field                                                                                                                         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                         | Default | Validation                                    |
| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------- |
| `command` *string array*                                                                                                      | Command to be used in the Container.                                                                                                                                                                                                                                                                                                                                                                                                                                |         |                                               |
| `args` *string array*                                                                                                         | Args to be used in the Container.                                                                                                                                                                                                                                                                                                                                                                                                                                   |         |                                               |
| `env` [*EnvVar*](#envvar) *array*                                                                                             | Env represents the environment variables to be injected in a container.                                                                                                                                                                                                                                                                                                                                                                                             |         |                                               |
| `envFrom` [*EnvFromSource*](#envfromsource) *array*                                                                           | EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.                                                                                                                                                                                                                                                                                                                                             |         |                                               |
| `volumeMounts` [*VolumeMount*](#volumemount) *array*                                                                          | VolumeMounts to be used in the Container.                                                                                                                                                                                                                                                                                                                                                                                                                           |         |                                               |
| `livenessProbe` [*Probe*](#probe)                                                                                             | LivenessProbe to be used in the Container.                                                                                                                                                                                                                                                                                                                                                                                                                          |         |                                               |
| `readinessProbe` [*Probe*](#probe)                                                                                            | ReadinessProbe to be used in the Container.                                                                                                                                                                                                                                                                                                                                                                                                                         |         |                                               |
| `startupProbe` [*Probe*](#probe)                                                                                              | StartupProbe to be used in the Container.                                                                                                                                                                                                                                                                                                                                                                                                                           |         |                                               |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                                   | Resources describes the compute resource requirements.                                                                                                                                                                                                                                                                                                                                                                                                              |         |                                               |
| `securityContext` [*SecurityContext*](#securitycontext)                                                                       | SecurityContext holds security configuration that will be applied to a container.                                                                                                                                                                                                                                                                                                                                                                                   |         |                                               |
| `lifecycle` [*Lifecycle*](#lifecycle)                                                                                         | Lifecycle are actions that the management system should take in response to container lifecycle events.                                                                                                                                                                                                                                                                                                                                                             |         |                                               |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                     |         |                                               |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.                                                                                                                                                                                                                                                                                                                                                                                          |         |                                               |
| `initContainers` [*Container*](#container) *array*                                                                            | InitContainers to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                               |         |                                               |
| `sidecarContainers` [*Container*](#container) *array*                                                                         | SidecarContainers to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                            |         |                                               |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings.                                                                                                                                                                                                                                                                                                                                                                                  |         |                                               |
| `serviceAccountName` *string*                                                                                                 | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.                                                                                                                                                                                                                                                                                                                                                                                        |         |                                               |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                | Affinity to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                                     |         |                                               |
| `nodeSelector` *object (keys:string, values:string)*                                                                          | NodeSelector to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                                 |         |                                               |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                                  |         |                                               |
| `volumes` [*MariaDBVolume*](#mariadbvolume) *array*                                                                           | Volumes to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                                      |         |                                               |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                            |         |                                               |
| `topologySpreadConstraints` [*TopologySpreadConstraint*](#topologyspreadconstraint) *array*                                   | TopologySpreadConstraints to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                    |         |                                               |
| `enableServiceLinks` *boolean*                                                                                                | EnableServiceLinks to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                           |         |                                               |
| `terminationGracePeriodSeconds` *integer*                                                                                     | TerminationGracePeriodSeconds to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                                                                                |         |                                               |
| `suspend` *boolean*                                                                                                           | <p>Suspend indicates whether the current resource should be suspended or not.<br>This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.</p>                                                                                                                                                                                                                 | false   |                                               |
| `image` *string*                                                                                                              | <p>Image name to be used by the MariaDB instances. The supported format is <code>\<image>:\<tag></code>.<br>Only MariaDB official images are supported.</p>                                                                                                                                                                                                                                                                                                         |         |                                               |
| `imagePullPolicy` [*PullPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#pullpolicy-v1-core)     | ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.                                                                                                                                                                                                                                                                                                                                |         | <p>Enum: \[Always Never IfNotPresent]<br></p> |
| `inheritMetadata` [*Metadata*](#metadata)                                                                                     | InheritMetadata defines the metadata to be inherited by children resources.                                                                                                                                                                                                                                                                                                                                                                                         |         |                                               |
| `rootPasswordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref)                                                  | RootPasswordSecretKeyRef is a reference to a Secret key containing the root password.                                                                                                                                                                                                                                                                                                                                                                               |         |                                               |
| `rootEmptyPassword` *boolean*                                                                                                 | RootEmptyPassword indicates if the root password should be empty. Don't use this feature in production, it is only intended for development and test environments.                                                                                                                                                                                                                                                                                                  |         |                                               |
| `database` *string*                                                                                                           | Database is the name of the initial Database.                                                                                                                                                                                                                                                                                                                                                                                                                       |         |                                               |
| `username` *string*                                                                                                           | <p>Username is the initial username to be created by the operator once MariaDB is ready.<br>The initial User will have ALL PRIVILEGES in the initial Database.</p>                                                                                                                                                                                                                                                                                                  |         |                                               |
| `passwordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref)                                                      | <p>PasswordSecretKeyRef is a reference to a Secret that contains the password to be used by the initial User.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password.</p>                                                                                                                                                                                                 |         |                                               |
| `passwordHashSecretKeyRef` [*SecretKeySelector*](#secretkeyselector)                                                          | <p>PasswordHashSecretKeyRef is a reference to the password hash to be used by the initial User.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password hash.<br>It requires the 'strict-password-validation=false' option to be set. See: <https://mariadb.com/docs/server/server-management/variables-and-modes/server-system-variables#strict_password_validation>.</p> |         |                                               |
| `passwordPlugin` [*PasswordPlugin*](#passwordplugin)                                                                          | <p>PasswordPlugin is a reference to the password plugin and arguments to be used by the initial User.<br>It requires the 'strict-password-validation=false' option to be set. See: <https://mariadb.com/docs/server/server-management/variables-and-modes/server-system-variables#strict_password_validation>.</p>                                                                                                                                                  |         |                                               |
| `cleanupPolicy` [*CleanupPolicy*](#cleanuppolicy)                                                                             | CleanupPolicy defines the behavior for cleaning up the initial User, Database, and Grant created by the operator.                                                                                                                                                                                                                                                                                                                                                   |         | <p>Enum: \[Skip Delete]<br></p>               |
| `myCnf` *string*                                                                                                              | <p>MyCnf allows to specify the my.cnf file mounted by Mariadb.<br>Updating this field will trigger an update to the Mariadb resource.</p>                                                                                                                                                                                                                                                                                                                           |         |                                               |
| `myCnfConfigMapKeyRef` [*ConfigMapKeySelector*](#configmapkeyselector)                                                        | <p>MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap.<br>If not provided, it will be defaulted with a reference to a ConfigMap containing the MyCnf field.<br>If the referred ConfigMap is labeled with "enterprise.mariadb.com/watch", an update to the Mariadb resource will be triggered when the ConfigMap is updated.</p>                                                                                                 |         |                                               |
| `timeZone` *string*                                                                                                           | TimeZone sets the default timezone. If not provided, it defaults to SYSTEM and the timezone data is not loaded.                                                                                                                                                                                                                                                                                                                                                     |         |                                               |
| `bootstrapFrom` [*BootstrapFrom*](#bootstrapfrom)                                                                             | BootstrapFrom defines a source to bootstrap from.                                                                                                                                                                                                                                                                                                                                                                                                                   |         |                                               |
| `storage` [*Storage*](#storage)                                                                                               | Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.                                                                                                                                                                                                                                                                                                                                                                        |         |                                               |
| `metrics` [*MariadbMetrics*](#mariadbmetrics)                                                                                 | Metrics configures metrics and how to scrape them.                                                                                                                                                                                                                                                                                                                                                                                                                  |         |                                               |
| `tls` [*TLS*](#tls)                                                                                                           | TLS defines the PKI to be used with MariaDB.                                                                                                                                                                                                                                                                                                                                                                                                                        |         |                                               |
| `replication` [*Replication*](#replication)                                                                                   | Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA.                                                                                                                                                                                                                                                                                                             |         |                                               |
| `galera` [*Galera*](#galera)                                                                                                  | Galera configures high availability via Galera.                                                                                                                                                                                                                                                                                                                                                                                                                     |         |                                               |
| `maxScaleRef` [*ObjectReference*](#objectreference)                                                                           | <p>MaxScaleRef is a reference to a MaxScale resource to be used with the current MariaDB.<br>Providing this reference implies delegating high availability tasks such as primary failover to MaxScale.</p>                                                                                                                                                                                                                                                          |         |                                               |
| `pointInTimeRecoveryRef` [*LocalObjectReference*](#localobjectreference)                                                      | <p>PointInTimeRecoveryRef is a reference to a PointInTimeRecovery resource to be used with the current MariaDB.<br>Providing this reference implies configuring binary logs in the MariaDB instance and binary log archival in the sidecar agent.</p>                                                                                                                                                                                                               |         |                                               |
| `replicas` *integer*                                                                                                          | Replicas indicates the number of desired instances.                                                                                                                                                                                                                                                                                                                                                                                                                 | 1       |                                               |
| `replicasAllowEvenNumber` *boolean*                                                                                           | disables the validation check for an odd number of replicas.                                                                                                                                                                                                                                                                                                                                                                                                        | false   |                                               |
| `port` *integer*                                                                                                              | Port where the instances will be listening for connections.                                                                                                                                                                                                                                                                                                                                                                                                         | 3306    |                                               |
| `servicePorts` [*ServicePort*](#serviceport) *array*                                                                          | ServicePorts is the list of additional named ports to be added to the Services created by the operator.                                                                                                                                                                                                                                                                                                                                                             |         |                                               |
| `podDisruptionBudget` [*PodDisruptionBudget*](#poddisruptionbudget)                                                           | PodDisruptionBudget defines the budget for replica availability.                                                                                                                                                                                                                                                                                                                                                                                                    |         |                                               |
| `updateStrategy` [*UpdateStrategy*](#updatestrategy)                                                                          | UpdateStrategy defines how a MariaDB resource is updated.                                                                                                                                                                                                                                                                                                                                                                                                           |         |                                               |
| `service` [*ServiceTemplate*](#servicetemplate)                                                                               | <p>Service defines a template to configure the general Service object.<br>The network traffic of this Service will be routed to all Pods.</p>                                                                                                                                                                                                                                                                                                                       |         |                                               |
| `connection` [*ConnectionTemplate*](#connectiontemplate)                                                                      | <p>Connection defines a template to configure the general Connection object.<br>This Connection provides the initial User access to the initial Database.<br>It will make use of the Service to route network traffic to all Pods.</p>                                                                                                                                                                                                                              |         |                                               |
| `primaryService` [*ServiceTemplate*](#servicetemplate)                                                                        | <p>PrimaryService defines a template to configure the primary Service object.<br>The network traffic of this Service will be routed to the primary Pod.</p>                                                                                                                                                                                                                                                                                                         |         |                                               |
| `primaryConnection` [*ConnectionTemplate*](#connectiontemplate)                                                               | <p>PrimaryConnection defines a template to configure the primary Connection object.<br>This Connection provides the initial User access to the initial Database.<br>It will make use of the PrimaryService to route network traffic to the primary Pod.</p>                                                                                                                                                                                                         |         |                                               |
| `secondaryService` [*ServiceTemplate*](#servicetemplate)                                                                      | <p>SecondaryService defines a template to configure the secondary Service object.<br>The network traffic of this Service will be routed to the secondary Pods.</p>                                                                                                                                                                                                                                                                                                  |         |                                               |
| `secondaryConnection` [*ConnectionTemplate*](#connectiontemplate)                                                             | <p>SecondaryConnection defines a template to configure the secondary Connection object.<br>This Connection provides the initial User access to the initial Database.<br>It will make use of the SecondaryService to route network traffic to the secondary Pods.</p>                                                                                                                                                                                                |         |                                               |

#### MariaDBVolume

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volume-v1-core>.

*Appears in:*

* [MariaDBPodTemplate](#mariadbpodtemplate)
* [MariaDBSpec](#mariadbspec)

| Field                                                                                             | Description | Default | Validation |
| ------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `emptyDir` [*EmptyDirVolumeSource*](#emptydirvolumesource)                                        |             |         |            |
| `nfs` [*NFSVolumeSource*](#nfsvolumesource)                                                       |             |         |            |
| `csi` [*CSIVolumeSource*](#csivolumesource)                                                       |             |         |            |
| `hostPath` [*HostPathVolumeSource*](#hostpathvolumesource)                                        |             |         |            |
| `persistentVolumeClaim` [*PersistentVolumeClaimVolumeSource*](#persistentvolumeclaimvolumesource) |             |         |            |
| `secret` [*SecretVolumeSource*](#secretvolumesource)                                              |             |         |            |
| `configMap` [*ConfigMapVolumeSource*](#configmapvolumesource)                                     |             |         |            |
| `ephemeral` [*EphemeralVolumeSource*](#ephemeralvolumesource)                                     |             |         |            |
| `name` *string*                                                                                   |             |         |            |

#### MariaDBVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volume-v1-core>.

*Appears in:*

* [MariaDBVolume](#mariadbvolume)

| Field                                                                                             | Description | Default | Validation |
| ------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `emptyDir` [*EmptyDirVolumeSource*](#emptydirvolumesource)                                        |             |         |            |
| `nfs` [*NFSVolumeSource*](#nfsvolumesource)                                                       |             |         |            |
| `csi` [*CSIVolumeSource*](#csivolumesource)                                                       |             |         |            |
| `hostPath` [*HostPathVolumeSource*](#hostpathvolumesource)                                        |             |         |            |
| `persistentVolumeClaim` [*PersistentVolumeClaimVolumeSource*](#persistentvolumeclaimvolumesource) |             |         |            |
| `secret` [*SecretVolumeSource*](#secretvolumesource)                                              |             |         |            |
| `configMap` [*ConfigMapVolumeSource*](#configmapvolumesource)                                     |             |         |            |
| `ephemeral` [*EphemeralVolumeSource*](#ephemeralvolumesource)                                     |             |         |            |

#### MariadbMetrics

MariadbMetrics defines the metrics for a MariaDB.

*Appears in:*

* [MariaDBSpec](#mariadbspec)

| Field                                                                    | Description                                                                                                                                                                                                                                               | Default | Validation |
| ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `enabled` *boolean*                                                      | Enabled is a flag to enable Metrics                                                                                                                                                                                                                       |         |            |
| `exporter` [*Exporter*](#exporter)                                       | Exporter defines the metrics exporter container.                                                                                                                                                                                                          |         |            |
| `serviceMonitor` [*ServiceMonitor*](#servicemonitor)                     | ServiceMonitor defines the ServiceMonior object.                                                                                                                                                                                                          |         |            |
| `username` *string*                                                      | Username is the username of the monitoring user used by the exporter.                                                                                                                                                                                     |         |            |
| `passwordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref) | <p>PasswordSecretKeyRef is a reference to the password of the monitoring user used by the exporter.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password.</p> |         |            |

#### MaxScale

MaxScale is the Schema for the maxscales API. It is used to define MaxScale clusters.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `MaxScale`                                                      |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*MaxScaleSpec*](#maxscalespec)                                                                             |                                                                 |         |            |

#### MaxScaleAdmin

MaxScaleAdmin configures the admin REST API and GUI.

*Appears in:*

* [MaxScaleSpec](#maxscalespec)

| Field                  | Description                                                   | Default | Validation |
| ---------------------- | ------------------------------------------------------------- | ------- | ---------- |
| `port` *integer*       | Port where the admin REST API and GUI will be exposed.        |         |            |
| `guiEnabled` *boolean* | GuiEnabled indicates whether the admin GUI should be enabled. |         |            |

#### MaxScaleAuth

MaxScaleAuth defines the credentials required for MaxScale to connect to MariaDB.

*Appears in:*

* [MaxScaleSpec](#maxscalespec)

| Field                                                                           | Description                                                                                                                                                                                                                                                                                                          | Default | Validation |
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `generate` *boolean*                                                            | <p>Generate defies whether the operator should generate users and grants for MaxScale to work.<br>It only supports MariaDBs specified via spec.mariaDbRef.</p>                                                                                                                                                       |         |            |
| `adminUsername` *string*                                                        | AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.                                                                                                                                                                                                                      |         |            |
| `adminPasswordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref)   | AdminPasswordSecretKeyRef is Secret key reference to the admin password to call the admin REST API. It is defaulted if not provided.                                                                                                                                                                                 |         |            |
| `deleteDefaultAdmin` *boolean*                                                  | DeleteDefaultAdmin determines whether the default admin user should be deleted after the initial configuration. If not provided, it defaults to true.                                                                                                                                                                |         |            |
| `metricsUsername` *string*                                                      | MetricsUsername is an metrics username to call the REST API. It is defaulted if metrics are enabled.                                                                                                                                                                                                                 |         |            |
| `metricsPasswordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref) | MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled.                                                                                                                                                                      |         |            |
| `clientUsername` *string*                                                       | ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.                                                                                                                                                                                                                                  |         |            |
| `clientPasswordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref)  | <p>ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password.</p>                                 |         |            |
| `clientMaxConnections` *integer*                                                | <p>ClientMaxConnections defines the maximum number of connections that the client can establish.<br>If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.<br>It defaults to 30 times the number of MaxScale replicas.</p>                                          |         |            |
| `serverUsername` *string*                                                       | ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.                                                                                                                                                                                                           |         |            |
| `serverPasswordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref)  | <p>ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password.</p>          |         |            |
| `serverMaxConnections` *integer*                                                | <p>ServerMaxConnections defines the maximum number of connections that the server can establish.<br>If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.<br>It defaults to 30 times the number of MaxScale replicas.</p>                                          |         |            |
| `monitorUsername` *string*                                                      | MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.                                                                                                                                                                                                  |         |            |
| `monitorPasswordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref) | <p>MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password.</p> |         |            |
| `monitorMaxConnections` *integer*                                               | <p>MonitorMaxConnections defines the maximum number of connections that the monitor can establish.<br>If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.<br>It defaults to 30 times the number of MaxScale replicas.</p>                                        |         |            |
| `syncUsername` *string*                                                         | MonitoSyncUsernamerUsername is the user used by MaxScale config sync to connect to MariaDB server. It is defaulted when HA is enabled.                                                                                                                                                                               |         |            |
| `syncPasswordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref)    | <p>SyncPasswordSecretKeyRef is Secret key reference to the password used by MaxScale config to connect to MariaDB server. It is defaulted when HA is enabled.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password.</p>  |         |            |
| `syncMaxConnections` *integer*                                                  | <p>SyncMaxConnections defines the maximum number of connections that the sync can establish.<br>If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.<br>It defaults to 30 times the number of MaxScale replicas.</p>                                              |         |            |

#### MaxScaleConfig

MaxScaleConfig defines the MaxScale configuration.

*Appears in:*

* [MaxScaleSpec](#maxscalespec)

| Field                                                               | Description                                                                                                                                                                                                                                                                                    | Default | Validation |
| ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `params` *object (keys:string, values:string)*                      | <p>Params is a key value pair of parameters to be used in the MaxScale static configuration file.<br>Any parameter supported by MaxScale may be specified here. See reference:<br><https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#global-settings>.</p> |         |            |
| `volumeClaimTemplate` [*VolumeClaimTemplate*](#volumeclaimtemplate) | VolumeClaimTemplate provides a template to define the PVCs for storing MaxScale runtime configuration files. It is defaulted if not provided.                                                                                                                                                  |         |            |
| `sync` [*MaxScaleConfigSync*](#maxscaleconfigsync)                  | Sync defines how to replicate configuration across MaxScale replicas. It is defaulted when HA is enabled.                                                                                                                                                                                      |         |            |

#### MaxScaleConfigSync

MaxScaleConfigSync defines how the config changes are replicated across replicas.

*Appears in:*

* [MaxScaleConfig](#maxscaleconfig)

| Field                                                                                                          | Description                                                                                                                                                                              | Default | Validation |
| -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `database` *string*                                                                                            | Database is the MariaDB logical database where the 'maxscale\_config' table will be created in order to persist and synchronize config changes. If not provided, it defaults to 'mysql'. |         |            |
| `interval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | Interval defines the config synchronization interval. It is defaulted if not provided.                                                                                                   |         |            |
| `timeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)  | Interval defines the config synchronization timeout. It is defaulted if not provided.                                                                                                    |         |            |

#### MaxScaleListener

MaxScaleListener defines how the MaxScale server will listen for connections.

*Appears in:*

* [MaxScaleService](#maxscaleservice)

| Field                                          | Description                                                                                                                                                                                                                                         | Default | Validation              |
| ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------- |
| `suspend` *boolean*                            | <p>Suspend indicates whether the current resource should be suspended or not.<br>This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.</p> | false   |                         |
| `name` *string*                                | Name is the identifier of the listener. It is defaulted if not provided                                                                                                                                                                             |         |                         |
| `port` *integer*                               | Port is the network port where the MaxScale server will listen.                                                                                                                                                                                     |         | <p>Required: {}<br></p> |
| `protocol` *string*                            | Protocol is the MaxScale protocol to use when communicating with the client. If not provided, it defaults to MariaDBProtocol.                                                                                                                       |         |                         |
| `params` *object (keys:string, values:string)* | <p>Params defines extra parameters to pass to the listener.<br>Any parameter supported by MaxScale may be specified here. See reference:<br><https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1>.</p> |         |                         |

#### MaxScaleMetrics

MaxScaleMetrics defines the metrics for a Maxscale.

*Appears in:*

* [MaxScaleSpec](#maxscalespec)

| Field                                                | Description                                      | Default | Validation |
| ---------------------------------------------------- | ------------------------------------------------ | ------- | ---------- |
| `enabled` *boolean*                                  | Enabled is a flag to enable Metrics              |         |            |
| `exporter` [*Exporter*](#exporter)                   | Exporter defines the metrics exporter container. |         |            |
| `serviceMonitor` [*ServiceMonitor*](#servicemonitor) | ServiceMonitor defines the ServiceMonior object. |         |            |

#### MaxScaleMonitor

MaxScaleMonitor monitors MariaDB server instances

*Appears in:*

* [MaxScaleSpec](#maxscalespec)

| Field                                                                                                          | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | Default | Validation                                                  |
| -------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------- |
| `suspend` *boolean*                                                                                            | <p>Suspend indicates whether the current resource should be suspended or not.<br>This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.</p>                                                                                                                                                                                                                          | false   |                                                             |
| `name` *string*                                                                                                | Name is the identifier of the monitor. It is defaulted if not provided.                                                                                                                                                                                                                                                                                                                                                                                                      |         |                                                             |
| `module` [*MonitorModule*](#monitormodule)                                                                     | Module is the module to use to monitor MariaDB servers. It is mandatory when no MariaDB reference is provided.                                                                                                                                                                                                                                                                                                                                                               |         |                                                             |
| `interval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | Interval used to monitor MariaDB servers. It is defaulted if not provided.                                                                                                                                                                                                                                                                                                                                                                                                   |         |                                                             |
| `cooperativeMonitoring` [*CooperativeMonitoring*](#cooperativemonitoring)                                      | CooperativeMonitoring enables coordination between multiple MaxScale instances running monitors. It is defaulted when HA is enabled.                                                                                                                                                                                                                                                                                                                                         |         | <p>Enum: \[majority\_of\_all majority\_of\_running]<br></p> |
| `params` *object (keys:string, values:string)*                                                                 | <p>Params defines extra parameters to pass to the monitor.<br>Any parameter supported by MaxScale may be specified here. See reference:<br><https://mariadb.com/kb/en/mariadb-maxscale-2308-common-monitor-parameters/>.<br>Monitor specific parameter are also supported:<br><https://mariadb.com/kb/en/mariadb-maxscale-2308-galera-monitor/#galera-monitor-optional-parameters>.<br><https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-monitor/#configuration>.</p> |         |                                                             |

#### MaxScalePodTemplate

MaxScalePodTemplate defines a template for MaxScale Pods.

*Appears in:*

* [MaxScaleSpec](#maxscalespec)

| Field                                                                                                                         | Description                                                                        | Default | Validation |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------- | ---------- |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                    |         |            |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.         |         |            |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings. |         |            |
| `serviceAccountName` *string*                                                                                                 | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.       |         |            |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                | Affinity to be used in the Pod.                                                    |         |            |
| `nodeSelector` *object (keys:string, values:string)*                                                                          | NodeSelector to be used in the Pod.                                                |         |            |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                 |         |            |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                           |         |            |
| `topologySpreadConstraints` [*TopologySpreadConstraint*](#topologyspreadconstraint) *array*                                   | TopologySpreadConstraints to be used in the Pod.                                   |         |            |

#### MaxScaleServer

MaxScaleServer defines a MariaDB server to forward traffic to.

*Appears in:*

* [MaxScaleSpec](#maxscalespec)

| Field                                          | Description                                                                                                                                                                                                                                     | Default | Validation              |
| ---------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------- |
| `name` *string*                                | Name is the identifier of the MariaDB server.                                                                                                                                                                                                   |         | <p>Required: {}<br></p> |
| `address` *string*                             | Address is the network address of the MariaDB server.                                                                                                                                                                                           |         | <p>Required: {}<br></p> |
| `port` *integer*                               | Port is the network port of the MariaDB server. If not provided, it defaults to 3306.                                                                                                                                                           |         |                         |
| `protocol` *string*                            | Protocol is the MaxScale protocol to use when communicating with this MariaDB server. If not provided, it defaults to MariaDBBackend.                                                                                                           |         |                         |
| `maintenance` *boolean*                        | Maintenance indicates whether the server is in maintenance mode.                                                                                                                                                                                |         |                         |
| `params` *object (keys:string, values:string)* | <p>Params defines extra parameters to pass to the server.<br>Any parameter supported by MaxScale may be specified here. See reference:<br><https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#server_1>.</p> |         |                         |

#### MaxScaleService

Services define how the traffic is forwarded to the MariaDB servers.

*Appears in:*

* [MaxScaleSpec](#maxscalespec)

| Field                                              | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                               | Default | Validation                                                       |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------- |
| `suspend` *boolean*                                | <p>Suspend indicates whether the current resource should be suspended or not.<br>This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.</p>                                                                                                                                                                                                                       | false   |                                                                  |
| `name` *string*                                    | Name is the identifier of the MaxScale service.                                                                                                                                                                                                                                                                                                                                                                                                                           |         | <p>Required: {}<br></p>                                          |
| `router` [*ServiceRouter*](#servicerouter)         | Router is the type of router to use.                                                                                                                                                                                                                                                                                                                                                                                                                                      |         | <p>Enum: \[readwritesplit readconnroute]<br>Required: {}<br></p> |
| `listener` [*MaxScaleListener*](#maxscalelistener) | MaxScaleListener defines how the MaxScale server will listen for connections.                                                                                                                                                                                                                                                                                                                                                                                             |         | <p>Required: {}<br></p>                                          |
| `params` *object (keys:string, values:string)*     | <p>Params defines extra parameters to pass to the service.<br>Any parameter supported by MaxScale may be specified here. See reference:<br><https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#service_1>.<br>Router specific parameter are also supported:<br><https://mariadb.com/kb/en/mariadb-maxscale-2308-readwritesplit/#configuration>.<br><https://mariadb.com/kb/en/mariadb-maxscale-2308-readconnroute/#configuration>.</p> |         |                                                                  |

#### MaxScaleSpec

MaxScaleSpec defines the desired state of MaxScale.

*Appears in:*

* [MaxScale](#maxscale)

| Field                                                                                                                                                  | Description                                                                                                                                                                                                                                                          | Default | Validation                                    |
| ------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------- |
| `command` *string array*                                                                                                                               | Command to be used in the Container.                                                                                                                                                                                                                                 |         |                                               |
| `args` *string array*                                                                                                                                  | Args to be used in the Container.                                                                                                                                                                                                                                    |         |                                               |
| `env` [*EnvVar*](#envvar) *array*                                                                                                                      | Env represents the environment variables to be injected in a container.                                                                                                                                                                                              |         |                                               |
| `envFrom` [*EnvFromSource*](#envfromsource) *array*                                                                                                    | EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.                                                                                                                                              |         |                                               |
| `volumeMounts` [*VolumeMount*](#volumemount) *array*                                                                                                   | VolumeMounts to be used in the Container.                                                                                                                                                                                                                            |         |                                               |
| `livenessProbe` [*Probe*](#probe)                                                                                                                      | LivenessProbe to be used in the Container.                                                                                                                                                                                                                           |         |                                               |
| `readinessProbe` [*Probe*](#probe)                                                                                                                     | ReadinessProbe to be used in the Container.                                                                                                                                                                                                                          |         |                                               |
| `startupProbe` [*Probe*](#probe)                                                                                                                       | StartupProbe to be used in the Container.                                                                                                                                                                                                                            |         |                                               |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                                                            | Resources describes the compute resource requirements.                                                                                                                                                                                                               |         |                                               |
| `securityContext` [*SecurityContext*](#securitycontext)                                                                                                | SecurityContext holds security configuration that will be applied to a container.                                                                                                                                                                                    |         |                                               |
| `lifecycle` [*Lifecycle*](#lifecycle)                                                                                                                  | Lifecycle are actions that the management system should take in response to container lifecycle events.                                                                                                                                                              |         |                                               |
| `podMetadata` [*Metadata*](#metadata)                                                                                                                  | PodMetadata defines extra metadata for the Pod.                                                                                                                                                                                                                      |         |                                               |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                                             | ImagePullSecrets is the list of pull Secrets to be used to pull the image.                                                                                                                                                                                           |         |                                               |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                                                       | SecurityContext holds pod-level security attributes and common container settings.                                                                                                                                                                                   |         |                                               |
| `serviceAccountName` *string*                                                                                                                          | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.                                                                                                                                                                                         |         |                                               |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                                         | Affinity to be used in the Pod.                                                                                                                                                                                                                                      |         |                                               |
| `nodeSelector` *object (keys:string, values:string)*                                                                                                   | NodeSelector to be used in the Pod.                                                                                                                                                                                                                                  |         |                                               |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array*                          | Tolerations to be used in the Pod.                                                                                                                                                                                                                                   |         |                                               |
| `priorityClassName` *string*                                                                                                                           | PriorityClassName to be used in the Pod.                                                                                                                                                                                                                             |         |                                               |
| `topologySpreadConstraints` [*TopologySpreadConstraint*](#topologyspreadconstraint) *array*                                                            | TopologySpreadConstraints to be used in the Pod.                                                                                                                                                                                                                     |         |                                               |
| `suspend` *boolean*                                                                                                                                    | <p>Suspend indicates whether the current resource should be suspended or not.<br>This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.</p>                  | false   |                                               |
| `mariaDbRef` [*MariaDBRef*](#mariadbref)                                                                                                               | MariaDBRef is a reference to the MariaDB that MaxScale points to. It is used to initialize the servers field.                                                                                                                                                        |         |                                               |
| `primaryServer` *string*                                                                                                                               | <p>PrimaryServer specifies the desired primary server. Setting this field triggers a switchover operation in MaxScale to the desired server.<br>This option is only valid when using monitors that support switchover, currently limited to the MariaDB monitor.</p> |         |                                               |
| `servers` [*MaxScaleServer*](#maxscaleserver) *array*                                                                                                  | Servers are the MariaDB servers to forward traffic to. It is required if 'spec.mariaDbRef' is not provided.                                                                                                                                                          |         |                                               |
| `image` *string*                                                                                                                                       | <p>Image name to be used by the MaxScale instances. The supported format is <code>\<image>:\<tag></code>.<br>Only MaxScale official images are supported.</p>                                                                                                        |         |                                               |
| `imagePullPolicy` [*PullPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#pullpolicy-v1-core)                              | ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.                                                                                                                                 |         | <p>Enum: \[Always Never IfNotPresent]<br></p> |
| `inheritMetadata` [*Metadata*](#metadata)                                                                                                              | InheritMetadata defines the metadata to be inherited by children resources.                                                                                                                                                                                          |         |                                               |
| `services` [*MaxScaleService*](#maxscaleservice) *array*                                                                                               | Services define how the traffic is forwarded to the MariaDB servers. It is defaulted if not provided.                                                                                                                                                                |         |                                               |
| `monitor` [*MaxScaleMonitor*](#maxscalemonitor)                                                                                                        | Monitor monitors MariaDB server instances. It is required if 'spec.mariaDbRef' is not provided.                                                                                                                                                                      |         |                                               |
| `admin` [*MaxScaleAdmin*](#maxscaleadmin)                                                                                                              | Admin configures the admin REST API and GUI.                                                                                                                                                                                                                         |         |                                               |
| `config` [*MaxScaleConfig*](#maxscaleconfig)                                                                                                           | Config defines the MaxScale configuration.                                                                                                                                                                                                                           |         |                                               |
| `auth` [*MaxScaleAuth*](#maxscaleauth)                                                                                                                 | Auth defines the credentials required for MaxScale to connect to MariaDB.                                                                                                                                                                                            |         |                                               |
| `metrics` [*MaxScaleMetrics*](#maxscalemetrics)                                                                                                        | Metrics configures metrics and how to scrape them.                                                                                                                                                                                                                   |         |                                               |
| `tls` [*MaxScaleTLS*](#maxscaletls)                                                                                                                    | TLS defines the PKI to be used with MaxScale.                                                                                                                                                                                                                        |         |                                               |
| `connection` [*ConnectionTemplate*](#connectiontemplate)                                                                                               | Connection provides a template to define the Connection for MaxScale.                                                                                                                                                                                                |         |                                               |
| `replicas` *integer*                                                                                                                                   | Replicas indicates the number of desired instances.                                                                                                                                                                                                                  | 1       |                                               |
| `podDisruptionBudget` [*PodDisruptionBudget*](#poddisruptionbudget)                                                                                    | PodDisruptionBudget defines the budget for replica availability.                                                                                                                                                                                                     |         |                                               |
| `updateStrategy` [*StatefulSetUpdateStrategy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#statefulsetupdatestrategy-v1-apps) | UpdateStrategy defines the update strategy for the StatefulSet object.                                                                                                                                                                                               |         |                                               |
| `kubernetesService` [*ServiceTemplate*](#servicetemplate)                                                                                              | KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.                                                                                                                                                                         |         |                                               |
| `guiKubernetesService` [*ServiceTemplate*](#servicetemplate)                                                                                           | GuiKubernetesService defines a template for a Kubernetes Service object to connect to MaxScale's GUI.                                                                                                                                                                |         |                                               |
| `requeueInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)                                  | RequeueInterval is used to perform requeue reconciliations. If not defined, it defaults to 10s.                                                                                                                                                                      |         |                                               |

#### MaxScaleTLS

TLS defines the PKI to be used with MaxScale.

*Appears in:*

* [MaxScaleSpec](#maxscalespec)

| Field                                                                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | Default | Validation                                                |
| ----------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------------------------- |
| `enabled` *boolean*                                                     | <p>Enabled indicates whether TLS is enabled, determining if certificates should be issued and mounted to the MaxScale instance.<br>It is enabled by default when the referred MariaDB instance (via mariaDbRef) has TLS enabled and enforced.</p>                                                                                                                                                                                                                                                                                                                                                                       |         |                                                           |
| `adminVersions` *string array*                                          | <p>Versions specifies the supported TLS versions in the MaxScale REST API.<br>By default, the MaxScale's default supported versions are used. See: <https://mariadb.com/kb/en/mariadb-maxscale-25-mariadb-maxscale-configuration-guide/#admin_ssl_version></p>                                                                                                                                                                                                                                                                                                                                                          |         | <p>items:Enum: \[TLSv10 TLSv11 TLSv12 TLSv13 MAX]<br></p> |
| `serverVersions` *string array*                                         | <p>ServerVersions specifies the supported TLS versions in both the servers and listeners managed by this MaxScale instance.<br>By default, the MaxScale's default supported versions are used. See: <https://mariadb.com/kb/en/mariadb-maxscale-25-mariadb-maxscale-configuration-guide/#ssl_version>.</p>                                                                                                                                                                                                                                                                                                              |         | <p>items:Enum: \[TLSv10 TLSv11 TLSv12 TLSv13 MAX]<br></p> |
| `adminCASecretRef` [*LocalObjectReference*](#localobjectreference)      | <p>AdminCASecretRef is a reference to a Secret containing the admin certificate authority keypair. It is used to establish trust and issue certificates for the MaxScale's administrative REST API and GUI.<br>One of:<br>- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.<br>- Secret containing only the 'ca.crt' in order to establish trust. In this case, either adminCertSecretRef or adminCertIssuerRef fields must be provided.<br>If not provided, a self-signed CA will be provisioned to issue the server certificate.</p> |         |                                                           |
| `adminCertSecretRef` [*LocalObjectReference*](#localobjectreference)    | AdminCertSecretRef is a reference to a TLS Secret used by the MaxScale's administrative REST API and GUI.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |         |                                                           |
| `adminCertIssuerRef` [*ObjectReference*](#objectreference)              | <p>AdminCertIssuerRef is a reference to a cert-manager issuer object used to issue the MaxScale's administrative REST API and GUI certificate. cert-manager must be installed previously in the cluster.<br>It is mutually exclusive with adminCertSecretRef.<br>By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via adminCASecretRef.</p>                                                                                                                                                                                   |         |                                                           |
| `adminCertConfig` [*CertConfig*](#certconfig)                           | <p>AdminCertConfig allows configuring the admin certificates, either issued by the operator or cert-manager.<br>If not set, the default settings will be used.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                      |         |                                                           |
| `listenerCASecretRef` [*LocalObjectReference*](#localobjectreference)   | <p>ListenerCASecretRef is a reference to a Secret containing the listener certificate authority keypair. It is used to establish trust and issue certificates for the MaxScale's listeners.<br>One of:<br>- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.<br>- Secret containing only the 'ca.crt' in order to establish trust. In this case, either listenerCertSecretRef or listenerCertIssuerRef fields must be provided.<br>If not provided, a self-signed CA will be provisioned to issue the listener certificate.</p>         |         |                                                           |
| `listenerCertSecretRef` [*LocalObjectReference*](#localobjectreference) | ListenerCertSecretRef is a reference to a TLS Secret used by the MaxScale's listeners.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |         |                                                           |
| `listenerCertIssuerRef` [*ObjectReference*](#objectreference)           | <p>ListenerCertIssuerRef is a reference to a cert-manager issuer object used to issue the MaxScale's listeners certificate. cert-manager must be installed previously in the cluster.<br>It is mutually exclusive with listenerCertSecretRef.<br>By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via listenerCASecretRef.</p>                                                                                                                                                                                                |         |                                                           |
| `listenerCertConfig` [*CertConfig*](#certconfig)                        | <p>ListenerCertConfig allows configuring the listener certificates, either issued by the operator or cert-manager.<br>If not set, the default settings will be used.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                |         |                                                           |
| `serverCASecretRef` [*LocalObjectReference*](#localobjectreference)     | <p>ServerCASecretRef is a reference to a Secret containing the MariaDB server CA certificates. It is used to establish trust with MariaDB servers.<br>The Secret should contain a 'ca.crt' key in order to establish trust.<br>If not provided, and the reference to a MariaDB resource is set (mariaDbRef), it will be defaulted to the referred MariaDB CA bundle.</p>                                                                                                                                                                                                                                                |         |                                                           |
| `serverCertSecretRef` [*LocalObjectReference*](#localobjectreference)   | <p>ServerCertSecretRef is a reference to a TLS Secret used by MaxScale to connect to the MariaDB servers.<br>If not provided, and the reference to a MariaDB resource is set (mariaDbRef), it will be defaulted to the referred MariaDB client certificate (clientCertSecretRef).</p>                                                                                                                                                                                                                                                                                                                                   |         |                                                           |
| `verifyPeerCertificate` *boolean*                                       | <p>VerifyPeerCertificate specifies whether the peer certificate's signature should be validated against the CA.<br>It is disabled by default.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |         |                                                           |
| `verifyPeerHost` *boolean*                                              | <p>VerifyPeerHost specifies whether the peer certificate's SANs should match the peer host.<br>It is disabled by default.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |         |                                                           |
| `replicationSSLEnabled` *boolean*                                       | <p>ReplicationSSLEnabled specifies whether the replication SSL is enabled. If enabled, the SSL options will be added to the server configuration.<br>It is enabled by default when the referred MariaDB instance (via mariaDbRef) has replication enabled.<br>If the MariaDB servers are manually provided by the user via the 'servers' field, this must be set by the user as well.</p>                                                                                                                                                                                                                               |         |                                                           |

#### Metadata

Metadata defines the metadata to added to resources.

*Appears in:*

* [BackupSpec](#backupspec)
* [Exporter](#exporter)
* [ExternalMariaDBSpec](#externalmariadbspec)
* [GaleraInitJob](#galerainitjob)
* [GaleraRecoveryJob](#galerarecoveryjob)
* [Job](#job)
* [JobPodTemplate](#jobpodtemplate)
* [MariaDBPodTemplate](#mariadbpodtemplate)
* [MariaDBSpec](#mariadbspec)
* [MaxScalePodTemplate](#maxscalepodtemplate)
* [MaxScaleSpec](#maxscalespec)
* [PhysicalBackupPodTemplate](#physicalbackuppodtemplate)
* [PhysicalBackupSpec](#physicalbackupspec)
* [PhysicalBackupVolumeSnapshot](#physicalbackupvolumesnapshot)
* [RestoreSpec](#restorespec)
* [SecretTemplate](#secrettemplate)
* [ServiceTemplate](#servicetemplate)
* [SqlJobSpec](#sqljobspec)
* [VolumeClaimTemplate](#volumeclaimtemplate)

| Field                                               | Description                                    | Default | Validation |
| --------------------------------------------------- | ---------------------------------------------- | ------- | ---------- |
| `labels` *object (keys:string, values:string)*      | Labels to be added to children resources.      |         |            |
| `annotations` *object (keys:string, values:string)* | Annotations to be added to children resources. |         |            |

#### MonitorModule

*Underlying type:* *string*

MonitorModule defines the type of monitor module

*Appears in:*

* [MaxScaleMonitor](#maxscalemonitor)

| Field        | Description                                                                   |
| ------------ | ----------------------------------------------------------------------------- |
| `mariadbmon` | <p>MonitorModuleMariadb is a monitor to be used with MariaDB servers.<br></p> |
| `galeramon`  | <p>MonitorModuleGalera is a monitor to be used with Galera servers.<br></p>   |

#### NFSVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nfsvolumesource-v1-core>.

*Appears in:*

* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)
* [StorageVolumeSource](#storagevolumesource)
* [Volume](#volume)
* [VolumeSource](#volumesource)

| Field                | Description | Default | Validation |
| -------------------- | ----------- | ------- | ---------- |
| `server` *string*    |             |         |            |
| `path` *string*      |             |         |            |
| `readOnly` *boolean* |             |         |            |

#### NodeAffinity

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeaffinity-v1-core>

*Appears in:*

* [Affinity](#affinity)
* [AffinityConfig](#affinityconfig)

| Field                                                                                                           | Description | Default | Validation |
| --------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `requiredDuringSchedulingIgnoredDuringExecution` [*NodeSelector*](#nodeselector)                                |             |         |            |
| `preferredDuringSchedulingIgnoredDuringExecution` [*PreferredSchedulingTerm*](#preferredschedulingterm) *array* |             |         |            |

#### NodeSelector

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeselector-v1-core>

*Appears in:*

* [NodeAffinity](#nodeaffinity)

| Field                                                               | Description | Default | Validation |
| ------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `nodeSelectorTerms` [*NodeSelectorTerm*](#nodeselectorterm) *array* |             |         |            |

#### NodeSelectorRequirement

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeselectorrequirement-v1-core>

*Appears in:*

* [NodeSelectorTerm](#nodeselectorterm)

| Field                                                                                                                                  | Description | Default | Validation |
| -------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `key` *string*                                                                                                                         |             |         |            |
| `operator` [*NodeSelectorOperator*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeselectoroperator-v1-core) |             |         |            |
| `values` *string array*                                                                                                                |             |         |            |

#### NodeSelectorTerm

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeselectorterm-v1-core>

*Appears in:*

* [NodeSelector](#nodeselector)
* [PreferredSchedulingTerm](#preferredschedulingterm)

| Field                                                                            | Description | Default | Validation |
| -------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `matchExpressions` [*NodeSelectorRequirement*](#nodeselectorrequirement) *array* |             |         |            |
| `matchFields` [*NodeSelectorRequirement*](#nodeselectorrequirement) *array*      |             |         |            |

#### ObjectFieldSelector

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectfieldselector-v1-core>.

*Appears in:*

* [EnvVarSource](#envvarsource)

| Field                 | Description | Default | Validation |
| --------------------- | ----------- | ------- | ---------- |
| `apiVersion` *string* |             |         |            |
| `fieldPath` *string*  |             |         |            |

#### ObjectReference

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectreference-v1-core>.

*Appears in:*

* [ConnectionSpec](#connectionspec)
* [MariaDBRef](#mariadbref)
* [MariaDBSpec](#mariadbspec)

| Field                | Description | Default | Validation |
| -------------------- | ----------- | ------- | ---------- |
| `name` *string*      |             |         |            |
| `namespace` *string* |             |         |            |

#### PasswordPlugin

PasswordPlugin defines the password plugin and its arguments.

*Appears in:*

* [MariaDBSpec](#mariadbspec)
* [UserSpec](#userspec)

| Field                                                              | Description                                                                                                                                                                                                                                                                                     | Default | Validation |
| ------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `pluginNameSecretKeyRef` [*SecretKeySelector*](#secretkeyselector) | <p>PluginNameSecretKeyRef is a reference to the authentication plugin to be used by the User.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the authentication plugin.</p>                                |         |            |
| `pluginArgSecretKeyRef` [*SecretKeySelector*](#secretkeyselector)  | <p>PluginArgSecretKeyRef is a reference to the arguments to be provided to the authentication plugin for the User.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the authentication plugin arguments.</p> |         |            |

#### PersistentVolumeClaimRetentionPolicyType

*Underlying type:* *string*

PersistentVolumeClaimRetentionPolicyType describes the lifecycle of persistent volume claims. Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#statefulsetpersistentvolumeclaimretentionpolicy-v1-apps>.

*Appears in:*

* [StatefulSetPersistentVolumeClaimRetentionPolicy](#statefulsetpersistentvolumeclaimretentionpolicy)

| Field    | Description                                                                                                           |
| -------- | --------------------------------------------------------------------------------------------------------------------- |
| `Delete` | <p>PersistentVolumeClaimRetentionPolicyDelete deletes PVCs when their owning pods or StatefulSet are deleted.<br></p> |
| `Retain` | <p>PersistentVolumeClaimRetentionPolicyRetain retains PVCs when their owning pods or StatefulSet are deleted.<br></p> |

#### PersistentVolumeClaimSpec

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#persistentvolumeclaimspec-v1-core>.

*Appears in:*

* [BackupStorage](#backupstorage)
* [PhysicalBackupStorage](#physicalbackupstorage)
* [StagingStorage](#stagingstorage)
* [VolumeClaimTemplate](#volumeclaimtemplate)

| Field                                                                                                                                                         | Description | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `accessModes` [*PersistentVolumeAccessMode*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#persistentvolumeaccessmode-v1-core) *array* |             |         |            |
| `selector` [*LabelSelector*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#labelselector-v1-meta)                                      |             |         |            |
| `resources` [*VolumeResourceRequirements*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volumeresourcerequirements-v1-core)           |             |         |            |
| `storageClassName` *string*                                                                                                                                   |             |         |            |

#### PersistentVolumeClaimVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#persistentvolumeclaimvolumesource-v1-core>.

*Appears in:*

* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)
* [StorageVolumeSource](#storagevolumesource)
* [Volume](#volume)
* [VolumeSource](#volumesource)

| Field                | Description | Default | Validation |
| -------------------- | ----------- | ------- | ---------- |
| `claimName` *string* |             |         |            |
| `readOnly` *boolean* |             |         |            |

#### PhysicalBackup

PhysicalBackup is the Schema for the physicalbackups API. It is used to define physical backup jobs and its storage.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `PhysicalBackup`                                                |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*PhysicalBackupSpec*](#physicalbackupspec)                                                                 |                                                                 |         |            |

#### PhysicalBackupPodTemplate

PhysicalBackupPodTemplate defines a template to configure Container objects that run in a PhysicalBackup.

*Appears in:*

* [PhysicalBackupSpec](#physicalbackupspec)

| Field                                                                                                                         | Description                                                                        | Default | Validation |
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------- | ---------- |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                    |         |            |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.         |         |            |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings. |         |            |
| `serviceAccountName` *string*                                                                                                 | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.       |         |            |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                 |         |            |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                           |         |            |

#### PhysicalBackupSchedule

PhysicalBackupSchedule defines when the PhysicalBackup will be taken.

*Appears in:*

* [PhysicalBackupSpec](#physicalbackupspec)

| Field                       | Description                                                                                                                                                                                              | Default | Validation |
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `cron` *string*             | Cron is a cron expression that defines the schedule.                                                                                                                                                     |         |            |
| `suspend` *boolean*         | Suspend defines whether the schedule is active or not.                                                                                                                                                   | false   |            |
| `immediate` *boolean*       | Immediate indicates whether the first backup should be taken immediately after creating the PhysicalBackup.                                                                                              |         |            |
| `onDemand` *string*         | <p>OnDemand is an identifier used to trigger an on-demand backup.<br>If the identifier is different than the one tracked under status.lastScheduleOnDemand, a new physical backup will be triggered.</p> |         |            |
| `onPrimaryChange` *boolean* | OnPrimaryChange indicates whether a PhysicalBackup should be scheduled when the referred MariaDB has changed primary Pod.                                                                                |         |            |

#### PhysicalBackupSpec

PhysicalBackupSpec defines the desired state of PhysicalBackup.

*Appears in:*

* [PhysicalBackup](#physicalbackup)

| Field                                                                                                                         | Description                                                                                                                                                                                                                                                                                                                                                                                 | Default   | Validation                                                   |
| ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------ |
| `args` *string array*                                                                                                         | Args to be used in the Container.                                                                                                                                                                                                                                                                                                                                                           |           |                                                              |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                                   | Resources describes the compute resource requirements.                                                                                                                                                                                                                                                                                                                                      |           |                                                              |
| `securityContext` [*SecurityContext*](#securitycontext)                                                                       | SecurityContext holds security configuration that will be applied to a container.                                                                                                                                                                                                                                                                                                           |           |                                                              |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                                                                                                                                                                                                                                                                                                                             |           |                                                              |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.                                                                                                                                                                                                                                                                                                                  |           |                                                              |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings.                                                                                                                                                                                                                                                                                                          |           |                                                              |
| `serviceAccountName` *string*                                                                                                 | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.                                                                                                                                                                                                                                                                                                                |           |                                                              |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                          |           |                                                              |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                                                                                                                                                                                                                                                                                                                                    |           |                                                              |
| `mariaDbRef` [*MariaDBRef*](#mariadbref)                                                                                      | MariaDBRef is a reference to a MariaDB object.                                                                                                                                                                                                                                                                                                                                              |           | <p>Required: {}<br></p>                                      |
| `target` [*PhysicalBackupTarget*](#physicalbackuptarget)                                                                      | Target defines in which Pod the physical backups will be taken. It defaults to "Replica", meaning that the physical backups will only be taken in ready replicas.                                                                                                                                                                                                                           |           | <p>Enum: \[Replica PreferReplica]<br></p>                    |
| `compression` [*CompressAlgorithm*](#compressalgorithm)                                                                       | Compression algorithm to be used in the Backup.                                                                                                                                                                                                                                                                                                                                             |           | <p>Enum: \[none bzip2 gzip]<br></p>                          |
| `stagingStorage` [*StagingStorage*](#stagingstorage)                                                                          | <p>StagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.<br>It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the PhysicalBackup Job is scheduled.<br>The staging area gets cleaned up after each backup is completed, consider this for sizing it appropriately.</p> |           |                                                              |
| `storage` [*PhysicalBackupStorage*](#physicalbackupstorage)                                                                   | Storage defines the final storage for backups.                                                                                                                                                                                                                                                                                                                                              |           | <p>Required: {}<br></p>                                      |
| `schedule` [*PhysicalBackupSchedule*](#physicalbackupschedule)                                                                | Schedule defines when the PhysicalBackup will be taken.                                                                                                                                                                                                                                                                                                                                     |           |                                                              |
| `maxRetention` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)            | <p>MaxRetention defines the retention policy for backups. Old backups will be cleaned up by the Backup Job.<br>It defaults to 30 days.</p>                                                                                                                                                                                                                                                  |           |                                                              |
| `timeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)                 | <p>Timeout defines the maximum duration of a PhysicalBackup job or snapshot.<br>If this duration is exceeded, the job or snapshot is considered expired and is deleted by the operator.<br>A new job or snapshot will then be created according to the schedule.<br>It defaults to 1 hour.</p>                                                                                              |           |                                                              |
| `podAffinity` *boolean*                                                                                                       | <p>PodAffinity indicates whether the Jobs should run in the same Node as the MariaDB Pods to be able to attach the PVC.<br>It defaults to true.</p>                                                                                                                                                                                                                                         |           |                                                              |
| `backoffLimit` *integer*                                                                                                      | BackoffLimit defines the maximum number of attempts to successfully take a PhysicalBackup.                                                                                                                                                                                                                                                                                                  |           |                                                              |
| `restartPolicy` [*RestartPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#restartpolicy-v1-core) | RestartPolicy to be added to the PhysicalBackup Pod.                                                                                                                                                                                                                                                                                                                                        | OnFailure | <p>Enum: \[Always OnFailure Never]<br></p>                   |
| `inheritMetadata` [*Metadata*](#metadata)                                                                                     | InheritMetadata defines the metadata to be inherited by children resources.                                                                                                                                                                                                                                                                                                                 |           |                                                              |
| `successfulJobsHistoryLimit` *integer*                                                                                        | SuccessfulJobsHistoryLimit defines the maximum number of successful Jobs to be displayed. It defaults to 5.                                                                                                                                                                                                                                                                                 |           | <p>Minimum: 0<br></p>                                        |
| `logLevel` *string*                                                                                                           | LogLevel to be used in the PhysicalBackup Job. It defaults to 'info'.                                                                                                                                                                                                                                                                                                                       | info      | <p>Enum: \[debug info warn error dpanic panic fatal]<br></p> |

#### PhysicalBackupStorage

PhysicalBackupStorage defines the storage for physical backups.

*Appears in:*

* [PhysicalBackupSpec](#physicalbackupspec)

| Field                                                                             | Description                                                                             | Default | Validation |
| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------- | ---------- |
| `s3` [*S3*](#s3)                                                                  | S3 defines the configuration to store backups in a S3 compatible storage.               |         |            |
| `azureBlob` [*AzureBlob*](#azureblob)                                             | AzureBlob defines the configuration to store backups in a AzureBlob compatible storage. |         |            |
| `persistentVolumeClaim` [*PersistentVolumeClaimSpec*](#persistentvolumeclaimspec) | PersistentVolumeClaim is a Kubernetes PVC specification.                                |         |            |
| `volume` [*StorageVolumeSource*](#storagevolumesource)                            | Volume is a Kubernetes volume specification.                                            |         |            |
| `volumeSnapshot` [*PhysicalBackupVolumeSnapshot*](#physicalbackupvolumesnapshot)  | VolumeSnapshot is a Kubernetes VolumeSnapshot specification.                            |         |            |

#### PhysicalBackupTarget

*Underlying type:* *string*

PhysicalBackupTarget defines in which Pod the physical backups will be taken.

*Appears in:*

* [PhysicalBackupSpec](#physicalbackupspec)

| Field           | Description                                                                                                                                                                                                  |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `Replica`       | <p>PhysicalBackupTargetReplica indicates that the physical backup will be taken in a ready replica.<br></p>                                                                                                  |
| `PreferReplica` | <p>PhysicalBackupTargetReplica indicates that the physical backup will preferably be taken in a ready replica.<br>If no ready replicas are available, physical backups will be taken in the primary.<br></p> |

#### PhysicalBackupVolumeSnapshot

PhysicalBackupVolumeSnapshot defines parameters for the VolumeSnapshots used as physical backups.

*Appears in:*

* [PhysicalBackupStorage](#physicalbackupstorage)

| Field                              | Description                                                                       | Default | Validation              |
| ---------------------------------- | --------------------------------------------------------------------------------- | ------- | ----------------------- |
| `metadata` [*Metadata*](#metadata) | Refer to Kubernetes API documentation for fields of `metadata`.                   |         |                         |
| `volumeSnapshotClassName` *string* | VolumeSnapshotClassName is the VolumeSnapshot class to be used to take snapshots. |         | <p>Required: {}<br></p> |

#### PodAffinityTerm

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podaffinityterm-v1-core>.

*Appears in:*

* [PodAntiAffinity](#podantiaffinity)
* [WeightedPodAffinityTerm](#weightedpodaffinityterm)

| Field                                             | Description | Default | Validation |
| ------------------------------------------------- | ----------- | ------- | ---------- |
| `labelSelector` [*LabelSelector*](#labelselector) |             |         |            |
| `topologyKey` *string*                            |             |         |            |

#### PodAntiAffinity

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podantiaffinity-v1-core>.

*Appears in:*

* [Affinity](#affinity)
* [AffinityConfig](#affinityconfig)

| Field                                                                                                           | Description | Default | Validation |
| --------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `requiredDuringSchedulingIgnoredDuringExecution` [*PodAffinityTerm*](#podaffinityterm) *array*                  |             |         |            |
| `preferredDuringSchedulingIgnoredDuringExecution` [*WeightedPodAffinityTerm*](#weightedpodaffinityterm) *array* |             |         |            |

#### PodDisruptionBudget

PodDisruptionBudget is the Pod availability bundget for a MariaDB

*Appears in:*

* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)

| Field                                                                                                                          | Description                                                    | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------- | ------- | ---------- |
| `minAvailable` [*IntOrString*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#intorstring-intstr-util)   | MinAvailable defines the number of minimum available Pods.     |         |            |
| `maxUnavailable` [*IntOrString*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#intorstring-intstr-util) | MaxUnavailable defines the number of maximum unavailable Pods. |         |            |

#### PodSecurityContext

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podsecuritycontext-v1-core>

*Appears in:*

* [BackupSpec](#backupspec)
* [Exporter](#exporter)
* [JobPodTemplate](#jobpodtemplate)
* [MariaDBPodTemplate](#mariadbpodtemplate)
* [MariaDBSpec](#mariadbspec)
* [MaxScalePodTemplate](#maxscalepodtemplate)
* [MaxScaleSpec](#maxscalespec)
* [PhysicalBackupPodTemplate](#physicalbackuppodtemplate)
* [PhysicalBackupSpec](#physicalbackupspec)
* [RestoreSpec](#restorespec)
* [SqlJobSpec](#sqljobspec)

| Field                                                                                                                                                 | Description | Default | Validation |
| ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `seLinuxOptions` [*SELinuxOptions*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#selinuxoptions-v1-core)                      |             |         |            |
| `runAsUser` *integer*                                                                                                                                 |             |         |            |
| `runAsGroup` *integer*                                                                                                                                |             |         |            |
| `runAsNonRoot` *boolean*                                                                                                                              |             |         |            |
| `supplementalGroups` *integer array*                                                                                                                  |             |         |            |
| `fsGroup` *integer*                                                                                                                                   |             |         |            |
| `fsGroupChangePolicy` [*PodFSGroupChangePolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#podfsgroupchangepolicy-v1-core) |             |         |            |
| `seccompProfile` [*SeccompProfile*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#seccompprofile-v1-core)                      |             |         |            |
| `appArmorProfile` [*AppArmorProfile*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#apparmorprofile-v1-core)                   |             |         |            |

#### PointInTimeRecovery

PointInTimeRecovery is the Schema for the pointintimerecoveries API. It contains binlog archival and point-in-time restoration settings.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `PointInTimeRecovery`                                           |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*PointInTimeRecoverySpec*](#pointintimerecoveryspec)                                                       |                                                                 |         |            |

#### PointInTimeRecoverySpec

PointInTimeRecoverySpec defines the desired state of PointInTimeRecovery. It contains binlog archive and point-in-time restoration settings.

*Appears in:*

* [PointInTimeRecovery](#pointintimerecovery)

| Field                                                                                                                 | Description                                                                                                                                                                                                                                                                                                                                                    | Default | Validation                          |
| --------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------- |
| `physicalBackupRef` [*LocalObjectReference*](#localobjectreference)                                                   | PhysicalBackupRef is a reference to a PhysicalBackup object that will be used as base backup.                                                                                                                                                                                                                                                                  |         | <p>Required: {}<br></p>             |
| `storage` [*PointInTimeRecoveryStorage*](#pointintimerecoverystorage)                                                 | PointInTimeRecoveryStorage is the storage where the point in time recovery data will be stored                                                                                                                                                                                                                                                                 |         | <p>Required: {}<br></p>             |
| `compression` [*CompressAlgorithm*](#compressalgorithm)                                                               | <p>Compression algorithm to be used for compressing the binary logs.<br>This field is immutable, it cannot be updated after creation.</p>                                                                                                                                                                                                                      |         | <p>Enum: \[none bzip2 gzip]<br></p> |
| `archiveTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)  | <p>ArchiveTimeout defines the maximum duration for the binary log archival.<br>If this duration is exceeded, the sidecar agent will log an error and it will be retried in the next archive cycle.<br>It defaults to 1 hour.</p>                                                                                                                               | 1h      |                                     |
| `strictMode` *boolean*                                                                                                | <p>StrictMode controls the behavior when a point-in-time restoration cannot reach the exact target time:<br>When enabled: Returns an error and avoids replaying binary logs if target time is not reached.<br>When disabled (default): Replays available binary logs until the last recoverable time. It logs logs an error if target time is not reached.</p> |         |                                     |
| `archiveInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | <p>ArchiveInterval defines the time interval at which the binary logs will be archived.<br>It defaults to 10 minutes.</p>                                                                                                                                                                                                                                      | 10m     |                                     |
| `maxParallel` *integer*                                                                                               | <p>MaxParallel defines the maximum number of parallel workers, both for archiving and restoring the binary logs.<br>It defaults to 1.</p>                                                                                                                                                                                                                      | 1       | <p>Minimum: 1<br></p>               |
| `maxRetention` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)    | <p>MaxRetention defines the retention policy for binary logs. Binary logs older than this duration will be cleaned up when the archival is completed.<br>It is not set by default, meaning that old binary logs will not be cleaned up.<br>This field is immutable, it cannot be updated after creation.</p>                                                   |         |                                     |

#### PointInTimeRecoveryStorage

PointInTimeRecoveryStorage stores the different storage options for PITR

*Appears in:*

* [PointInTimeRecoverySpec](#pointintimerecoveryspec)

| Field                                 | Description                                                             | Default | Validation |
| ------------------------------------- | ----------------------------------------------------------------------- | ------- | ---------- |
| `s3` [*S3*](#s3)                      | S3 is the S3-compatible storage where the binary logs will be kept.     |         |            |
| `azureBlob` [*AzureBlob*](#azureblob) | AzureBlob is the Azure Blob Storage where the binary logs will be kept. |         |            |

#### PreferredSchedulingTerm

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#preferredschedulingterm-v1-core>

*Appears in:*

* [NodeAffinity](#nodeaffinity)

| Field                                                | Description | Default | Validation |
| ---------------------------------------------------- | ----------- | ------- | ---------- |
| `weight` *integer*                                   |             |         |            |
| `preference` [*NodeSelectorTerm*](#nodeselectorterm) |             |         |            |

#### PrimaryGalera

PrimaryGalera is the Galera configuration for the primary node.

*Appears in:*

* [Galera](#galera)
* [GaleraSpec](#galeraspec)

| Field                    | Description                                                                                                                | Default | Validation |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `podIndex` *integer*     | PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.      |         |            |
| `autoFailover` *boolean* | AutoFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover. |         |            |

#### PrimaryReplication

PrimaryReplication is the replication configuration and operation parameters for the primary.

*Appears in:*

* [Replication](#replication)
* [ReplicationSpec](#replicationspec)

| Field                                                                                                                   | Description                                                                                                                                                    | Default | Validation |
| ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `podIndex` *integer*                                                                                                    | PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.                                          |         |            |
| `autoFailover` *boolean*                                                                                                | <p>AutoFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.<br>It is enabled by default.</p> |         |            |
| `autoFailoverDelay` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | <p>AutoFailoverDelay indicates the duration before performing an automatic primary failover.<br>By default, no extra delay is added.</p>                       |         |            |

#### Probe

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#probe-v1-core>.

*Appears in:*

* [Agent](#agent)
* [ContainerTemplate](#containertemplate)
* [InitContainer](#initcontainer)
* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)

| Field                                             | Description | Default | Validation |
| ------------------------------------------------- | ----------- | ------- | ---------- |
| `exec` [*ExecAction*](#execaction)                |             |         |            |
| `httpGet` [*HTTPGetAction*](#httpgetaction)       |             |         |            |
| `tcpSocket` [*TCPSocketAction*](#tcpsocketaction) |             |         |            |
| `initialDelaySeconds` *integer*                   |             |         |            |
| `timeoutSeconds` *integer*                        |             |         |            |
| `periodSeconds` *integer*                         |             |         |            |
| `successThreshold` *integer*                      |             |         |            |
| `failureThreshold` *integer*                      |             |         |            |

#### ProbeHandler

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#probe-v1-core>.

*Appears in:*

* [Probe](#probe)

| Field                                             | Description | Default | Validation |
| ------------------------------------------------- | ----------- | ------- | ---------- |
| `exec` [*ExecAction*](#execaction)                |             |         |            |
| `httpGet` [*HTTPGetAction*](#httpgetaction)       |             |         |            |
| `tcpSocket` [*TCPSocketAction*](#tcpsocketaction) |             |         |            |

#### ReplicaBootstrapFrom

ReplicaBootstrapFrom defines the sources for bootstrapping new relicas.

*Appears in:*

* [ReplicaReplication](#replicareplication)

| Field                                                                       | Description                                                                                                                                                                                                                                   | Default | Validation              |
| --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------- |
| `physicalBackupTemplateRef` [*LocalObjectReference*](#localobjectreference) | <p>PhysicalBackupTemplateRef is a reference to a PhysicalBackup object that will be used as template to create a new PhysicalBackup object<br>used synchronize the data from an up to date replica to the new replica to be bootstrapped.</p> |         | <p>Required: {}<br></p> |
| `restoreJob` [*Job*](#job)                                                  | RestoreJob defines additional properties for the Job used to perform the restoration.                                                                                                                                                         |         |                         |

#### ReplicaRecovery

ReplicaRecovery defines how the replicas should be recovered after they enter an error state.

*Appears in:*

* [ReplicaReplication](#replicareplication)

| Field                                                                                                                        | Description                                                                                                                                                                                                                                                                                                                                                                                     | Default | Validation              |
| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------- |
| `enabled` *boolean*                                                                                                          | Enabled is a flag to enable replica recovery.                                                                                                                                                                                                                                                                                                                                                   |         | <p>Required: {}<br></p> |
| `errorDurationThreshold` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | <p>ErrorDurationThreshold defines the time duration after which, if a replica continues to report errors,<br>the operator will initiate the recovery process for that replica.<br>This threshold applies only to error codes not identified as recoverable by the operator.<br>Errors identified as recoverable will trigger the recovery process immediately.<br>It defaults to 5 minutes.</p> |         |                         |

#### ReplicaReplication

ReplicaReplication is the replication configuration and operation parameters for the replicas.

*Appears in:*

* [Replication](#replication)
* [ReplicationSpec](#replicationspec)

| Field                                                                                                             | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | Default | Validation                              |
| ----------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | --------------------------------------- |
| `replPasswordSecretKeyRef` [*GeneratedSecretKeyRef*](#generatedsecretkeyref)                                      | <p>ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user.<br>By default, a random password will be generated.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |         |                                         |
| `gtid` [*Gtid*](#gtid)                                                                                            | <p>Gtid indicates which Global Transaction ID (GTID) position mode should be used when connecting a replica to the master.<br>By default, CurrentPos is used.<br>See: <https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/replication-statements/change-master-to#master_use_gtid>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                           |         | <p>Enum: \[CurrentPos SlavePos]<br></p> |
| `connectionRetrySeconds` *integer*                                                                                | <p>ConnectionRetrySeconds is the number of seconds that the replica will wait between connection retries.<br>See: <https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/replication-statements/change-master-to#master_connect_retry>.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |         |                                         |
| `maxLagSeconds` *integer*                                                                                         | <p>MaxLagSeconds is the maximum number of seconds that replicas are allowed to lag behind the primary.<br>If a replica exceeds this threshold, it is marked as not ready and read queries will no longer be forwarded to it.<br>If not provided, it defaults to 0, which means that replicas are not allowed to lag behind the primary (recommended).<br>Lagged replicas will not be taken into account as candidates for the new primary during failover,<br>and they will block other operations, such as switchover and upgrade.<br>This field is not taken into account by MaxScale, you can define the maximum lag as router parameters.<br>See: <https://mariadb.com/docs/maxscale/reference/maxscale-routers/maxscale-readwritesplit#max_replication_lag>.</p> |         |                                         |
| `syncTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | <p>SyncTimeout defines the timeout for the synchronization phase during switchover and failover operations.<br>During switchover, all replicas must be synced with the current primary before promoting the new primary.<br>During failover, the new primary must be synced before being promoted as primary. This implies processing all the events in the relay log.<br>When the timeout is reached, the operator restarts the operation from the beginning.<br>It defaults to 10s.<br>See: <https://mariadb.com/docs/server/reference/sql-functions/secondary-functions/miscellaneous-functions/master_gtid_wait></p>                                                                                                                                              |         |                                         |
| `bootstrapFrom` [*ReplicaBootstrapFrom*](#replicabootstrapfrom)                                                   | <p>ReplicaBootstrapFrom defines the data sources used to bootstrap new replicas.<br>This will be used as part of the scaling out and recovery operations, when new replicas are created.<br>If not provided, scale out and recovery operations will return an error.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |         |                                         |
| `recovery` [*ReplicaRecovery*](#replicarecovery)                                                                  | <p>ReplicaRecovery defines how the replicas should be recovered after they enter an error state.<br>This process deletes data from faulty replicas and recreates them using the source defined in the bootstrapFrom field.<br>It is disabled by default, and it requires the bootstrapFrom field to be set.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                       |         |                                         |

#### Replication

Replication defines replication configuration for a MariaDB cluster.

*Appears in:*

* [MariaDBSpec](#mariadbspec)

| Field                                                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                          | Default | Validation                                |
| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------- |
| `primary` [*PrimaryReplication*](#primaryreplication)                                                                    | Primary is the replication configuration for the primary node.                                                                                                                                                                                                                                                                                                                                       |         |                                           |
| `replica` [*ReplicaReplication*](#replicareplication)                                                                    | ReplicaReplication is the replication configuration for the replica nodes.                                                                                                                                                                                                                                                                                                                           |         |                                           |
| `gtidStrictMode` *boolean*                                                                                               | <p>GtidStrictMode determines whether the GTID strict mode is enabled.<br>See: <https://mariadb.com/docs/server/ha-and-performance/standard-replication/gtid#gtid_strict_mode>.<br>It is enabled by default.</p>                                                                                                                                                                                      |         |                                           |
| `semiSyncEnabled` *boolean*                                                                                              | <p>SemiSyncEnabled determines whether semi-synchronous replication is enabled.<br>Semi-synchronous replication requires that at least one replica should have sent an ACK to the primary node<br>before committing the transaction back to the client.<br>See: <https://mariadb.com/docs/server/ha-and-performance/standard-replication/semisynchronous-replication><br>It is enabled by default</p> |         |                                           |
| `semiSyncAckTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | <p>SemiSyncAckTimeout for the replica to acknowledge transactions to the primary.<br>It requires semi-synchronous replication to be enabled.<br>See: <https://mariadb.com/docs/server/ha-and-performance/standard-replication/semisynchronous-replication#rpl_semi_sync_master_timeout></p>                                                                                                          |         |                                           |
| `semiSyncWaitPoint` [*WaitPoint*](#waitpoint)                                                                            | <p>SemiSyncWaitPoint determines whether the transaction should wait for an ACK after having synced the binlog (AfterSync)<br>or after having committed to the storage engine (AfterCommit, the default).<br>It requires semi-synchronous replication to be enabled.<br>See: <https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point>.</p>                            |         | <p>Enum: \[AfterSync AfterCommit]<br></p> |
| `syncBinlog` *integer*                                                                                                   | <p>SyncBinlog indicates after how many events the binary log is synchronized to the disk.<br>See: <https://mariadb.com/docs/server/ha-and-performance/standard-replication/replication-and-binary-log-system-variables#sync_binlog></p>                                                                                                                                                              |         |                                           |
| `initContainer` [*InitContainer*](#initcontainer)                                                                        | InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-enterprise-operator.                                                                                                                                                                                                                                                                                    |         |                                           |
| `agent` [*Agent*](#agent)                                                                                                | Agent is a sidecar agent that runs in the MariaDB Pod and co-operates with mariadb-enterprise-operator.                                                                                                                                                                                                                                                                                              |         |                                           |
| `standaloneProbes` *boolean*                                                                                             | <p>StandaloneProbes indicates whether to use the default non-HA startup and liveness probes.<br>It is disabled by default</p>                                                                                                                                                                                                                                                                        |         |                                           |
| `enabled` *boolean*                                                                                                      | Enabled is a flag to enable replication.                                                                                                                                                                                                                                                                                                                                                             |         |                                           |

#### ReplicationSpec

ReplicationSpec is the replication desired state.

*Appears in:*

* [Replication](#replication)

| Field                                                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                          | Default | Validation                                |
| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------- |
| `primary` [*PrimaryReplication*](#primaryreplication)                                                                    | Primary is the replication configuration for the primary node.                                                                                                                                                                                                                                                                                                                                       |         |                                           |
| `replica` [*ReplicaReplication*](#replicareplication)                                                                    | ReplicaReplication is the replication configuration for the replica nodes.                                                                                                                                                                                                                                                                                                                           |         |                                           |
| `gtidStrictMode` *boolean*                                                                                               | <p>GtidStrictMode determines whether the GTID strict mode is enabled.<br>See: <https://mariadb.com/docs/server/ha-and-performance/standard-replication/gtid#gtid_strict_mode>.<br>It is enabled by default.</p>                                                                                                                                                                                      |         |                                           |
| `semiSyncEnabled` *boolean*                                                                                              | <p>SemiSyncEnabled determines whether semi-synchronous replication is enabled.<br>Semi-synchronous replication requires that at least one replica should have sent an ACK to the primary node<br>before committing the transaction back to the client.<br>See: <https://mariadb.com/docs/server/ha-and-performance/standard-replication/semisynchronous-replication><br>It is enabled by default</p> |         |                                           |
| `semiSyncAckTimeout` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | <p>SemiSyncAckTimeout for the replica to acknowledge transactions to the primary.<br>It requires semi-synchronous replication to be enabled.<br>See: <https://mariadb.com/docs/server/ha-and-performance/standard-replication/semisynchronous-replication#rpl_semi_sync_master_timeout></p>                                                                                                          |         |                                           |
| `semiSyncWaitPoint` [*WaitPoint*](#waitpoint)                                                                            | <p>SemiSyncWaitPoint determines whether the transaction should wait for an ACK after having synced the binlog (AfterSync)<br>or after having committed to the storage engine (AfterCommit, the default).<br>It requires semi-synchronous replication to be enabled.<br>See: <https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point>.</p>                            |         | <p>Enum: \[AfterSync AfterCommit]<br></p> |
| `syncBinlog` *integer*                                                                                                   | <p>SyncBinlog indicates after how many events the binary log is synchronized to the disk.<br>See: <https://mariadb.com/docs/server/ha-and-performance/standard-replication/replication-and-binary-log-system-variables#sync_binlog></p>                                                                                                                                                              |         |                                           |
| `initContainer` [*InitContainer*](#initcontainer)                                                                        | InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-enterprise-operator.                                                                                                                                                                                                                                                                                    |         |                                           |
| `agent` [*Agent*](#agent)                                                                                                | Agent is a sidecar agent that runs in the MariaDB Pod and co-operates with mariadb-enterprise-operator.                                                                                                                                                                                                                                                                                              |         |                                           |
| `standaloneProbes` *boolean*                                                                                             | <p>StandaloneProbes indicates whether to use the default non-HA startup and liveness probes.<br>It is disabled by default</p>                                                                                                                                                                                                                                                                        |         |                                           |

#### ResourceRequirements

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#resourcerequirements-v1-core>.

*Appears in:*

* [Agent](#agent)
* [BackupSpec](#backupspec)
* [Container](#container)
* [ContainerTemplate](#containertemplate)
* [Exporter](#exporter)
* [GaleraInitJob](#galerainitjob)
* [GaleraRecoveryJob](#galerarecoveryjob)
* [InitContainer](#initcontainer)
* [Job](#job)
* [JobContainerTemplate](#jobcontainertemplate)
* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)
* [PhysicalBackupSpec](#physicalbackupspec)
* [RestoreSpec](#restorespec)
* [SqlJobSpec](#sqljobspec)

#### Restore

Restore is the Schema for the restores API. It is used to define restore jobs and its restoration source.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `Restore`                                                       |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*RestoreSpec*](#restorespec)                                                                               |                                                                 |         |            |

#### RestoreSource

RestoreSource defines a source for restoring a logical backup.

*Appears in:*

* [RestoreSpec](#restorespec)

| Field                                                                                                            | Description                                                                                                                                                                                                                                                           | Default | Validation |
| ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `backupRef` [*LocalObjectReference*](#localobjectreference)                                                      | BackupRef is a reference to a Backup object. It has priority over S3 and Volume.                                                                                                                                                                                      |         |            |
| `s3` [*S3*](#s3)                                                                                                 | S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.                                                                                                                                                            |         |            |
| `volume` [*StorageVolumeSource*](#storagevolumesource)                                                           | Volume is a Kubernetes Volume object that contains a backup.                                                                                                                                                                                                          |         |            |
| `targetRecoveryTime` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#time-v1-meta) | <p>TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective.<br>It is used to determine the closest restoration source in time.</p>                                                                     |         |            |
| `stagingStorage` [*StagingStorage*](#stagingstorage)                                                             | <p>StagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.<br>It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the Restore Job is scheduled.</p> |         |            |

#### RestoreSpec

RestoreSpec defines the desired state of restore

*Appears in:*

* [Restore](#restore)

| Field                                                                                                                         | Description                                                                                                                                                                                                                                                           | Default   | Validation                                                   |
| ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------------------------ |
| `args` *string array*                                                                                                         | Args to be used in the Container.                                                                                                                                                                                                                                     |           |                                                              |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                                   | Resources describes the compute resource requirements.                                                                                                                                                                                                                |           |                                                              |
| `securityContext` [*SecurityContext*](#securitycontext)                                                                       | SecurityContext holds security configuration that will be applied to a container.                                                                                                                                                                                     |           |                                                              |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                                                                                                                                                                                                       |           |                                                              |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.                                                                                                                                                                                            |           |                                                              |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings.                                                                                                                                                                                    |           |                                                              |
| `serviceAccountName` *string*                                                                                                 | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.                                                                                                                                                                                          |           |                                                              |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                | Affinity to be used in the Pod.                                                                                                                                                                                                                                       |           |                                                              |
| `nodeSelector` *object (keys:string, values:string)*                                                                          | NodeSelector to be used in the Pod.                                                                                                                                                                                                                                   |           |                                                              |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                                                                                                                                                                                                    |           |                                                              |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                                                                                                                                                                                                              |           |                                                              |
| `backupRef` [*LocalObjectReference*](#localobjectreference)                                                                   | BackupRef is a reference to a Backup object. It has priority over S3 and Volume.                                                                                                                                                                                      |           |                                                              |
| `s3` [*S3*](#s3)                                                                                                              | S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.                                                                                                                                                            |           |                                                              |
| `volume` [*StorageVolumeSource*](#storagevolumesource)                                                                        | Volume is a Kubernetes Volume object that contains a backup.                                                                                                                                                                                                          |           |                                                              |
| `targetRecoveryTime` [*Time*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#time-v1-meta)              | <p>TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective.<br>It is used to determine the closest restoration source in time.</p>                                                                     |           |                                                              |
| `stagingStorage` [*StagingStorage*](#stagingstorage)                                                                          | <p>StagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.<br>It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the Restore Job is scheduled.</p> |           |                                                              |
| `mariaDbRef` [*MariaDBRef*](#mariadbref)                                                                                      | MariaDBRef is a reference to a MariaDB object.                                                                                                                                                                                                                        |           | <p>Required: {}<br></p>                                      |
| `database` *string*                                                                                                           | <p>Database defines the logical database to be restored. If not provided, all databases available in the backup are restored.<br>IMPORTANT: The database must previously exist.</p>                                                                                   |           |                                                              |
| `logLevel` *string*                                                                                                           | LogLevel to be used n the Backup Job. It defaults to 'info'.                                                                                                                                                                                                          | info      | <p>Enum: \[debug info warn error dpanic panic fatal]<br></p> |
| `backoffLimit` *integer*                                                                                                      | BackoffLimit defines the maximum number of attempts to successfully perform a Backup.                                                                                                                                                                                 | 5         |                                                              |
| `restartPolicy` [*RestartPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#restartpolicy-v1-core) | RestartPolicy to be added to the Backup Job.                                                                                                                                                                                                                          | OnFailure | <p>Enum: \[Always OnFailure Never]<br></p>                   |
| `inheritMetadata` [*Metadata*](#metadata)                                                                                     | InheritMetadata defines the metadata to be inherited by children resources.                                                                                                                                                                                           |           |                                                              |

#### S3

*Appears in:*

* [BackupStorage](#backupstorage)
* [BootstrapFrom](#bootstrapfrom)
* [PhysicalBackupStorage](#physicalbackupstorage)
* [PointInTimeRecoveryStorage](#pointintimerecoverystorage)
* [RestoreSource](#restoresource)
* [RestoreSpec](#restorespec)

| Field                                                                   | Description                                                                                                                                                                                                                                                                             | Default | Validation              |
| ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------- |
| `bucket` *string*                                                       | Bucket is the name Name of the bucket to store backups.                                                                                                                                                                                                                                 |         | <p>Required: {}<br></p> |
| `endpoint` *string*                                                     | Endpoint is the S3 API endpoint without scheme.                                                                                                                                                                                                                                         |         | <p>Required: {}<br></p> |
| `region` *string*                                                       | Region is the S3 region name to use.                                                                                                                                                                                                                                                    |         |                         |
| `prefix` *string*                                                       | Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.                                                                                                                                             |         |                         |
| `accessKeyIdSecretKeyRef` [*SecretKeySelector*](#secretkeyselector)     | AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.                                                                                                                                                                                                 |         |                         |
| `secretAccessKeySecretKeyRef` [*SecretKeySelector*](#secretkeyselector) | AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.                                                                                                                                                                                                    |         |                         |
| `sessionTokenSecretKeyRef` [*SecretKeySelector*](#secretkeyselector)    | SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.                                                                                                                                                                                                |         |                         |
| `tls` [*TLSConfig*](#tlsconfig)                                         | TLS provides the configuration required to establish TLS connections with S3.                                                                                                                                                                                                           |         |                         |
| `ssec` [*SSECConfig*](#ssecconfig)                                      | <p>SSEC is a reference to a Secret containing the SSE-C (Server-Side Encryption with Customer-Provided Keys) key.<br>The secret must contain a 32-byte key (256 bits) in the specified key.<br>This enables server-side encryption where you provide and manage the encryption key.</p> |         |                         |

#### SQLTemplate

SQLTemplate defines a template to customize SQL objects.

*Appears in:*

* [DatabaseSpec](#databasespec)
* [GrantSpec](#grantspec)
* [UserSpec](#userspec)

| Field                                                                                                                 | Description                                                        | Default | Validation                      |
| --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------- | ------------------------------- |
| `requeueInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | RequeueInterval is used to perform requeue reconciliations.        |         |                                 |
| `retryInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)   | RetryInterval is the interval used to perform retries.             |         |                                 |
| `cleanupPolicy` [*CleanupPolicy*](#cleanuppolicy)                                                                     | CleanupPolicy defines the behavior for cleaning up a SQL resource. |         | <p>Enum: \[Skip Delete]<br></p> |

#### SSECConfig

SSECConfig defines the configuration for SSE-C (Server-Side Encryption with Customer-Provided Keys).

*Appears in:*

* [S3](#s3)

| Field                                                               | Description                                                                                                                                                                        | Default | Validation              |
| ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------- |
| `customerKeySecretKeyRef` [*SecretKeySelector*](#secretkeyselector) | <p>CustomerKeySecretKeyRef is a reference to a Secret key containing the SSE-C customer-provided encryption key.<br>The key must be a 32-byte (256-bit) key encoded in base64.</p> |         | <p>Required: {}<br></p> |

#### SST

*Underlying type:* *string*

SST is the Snapshot State Transfer used when new Pods join the cluster. More info: <https://galeracluster.com/library/documentation/sst.html>.

*Appears in:*

* [Galera](#galera)
* [GaleraSpec](#galeraspec)

| Field         | Description                                                                          |
| ------------- | ------------------------------------------------------------------------------------ |
| `rsync`       | <p>SSTRsync is an SST based on rsync.<br></p>                                        |
| `mariabackup` | <p>SSTMariaBackup is an SST based on mariabackup. It is the recommended SST.<br></p> |
| `mysqldump`   | <p>SSTMysqldump is an SST based on mysqldump.<br></p>                                |

#### Schedule

Schedule contains parameters to define a schedule

*Appears in:*

* [BackupSpec](#backupspec)
* [SqlJobSpec](#sqljobspec)

| Field               | Description                                            | Default | Validation              |
| ------------------- | ------------------------------------------------------ | ------- | ----------------------- |
| `cron` *string*     | Cron is a cron expression that defines the schedule.   |         | <p>Required: {}<br></p> |
| `suspend` *boolean* | Suspend defines whether the schedule is active or not. | false   |                         |

#### SecretKeySelector

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#secretkeyselector-v1-core>.

*Appears in:*

* [AzureBlob](#azureblob)
* [ConnectionSpec](#connectionspec)
* [EnvVarSource](#envvarsource)
* [ExternalMariaDBSpec](#externalmariadbspec)
* [GeneratedSecretKeyRef](#generatedsecretkeyref)
* [MariaDBSpec](#mariadbspec)
* [PasswordPlugin](#passwordplugin)
* [S3](#s3)
* [SSECConfig](#ssecconfig)
* [SqlJobSpec](#sqljobspec)
* [TLSConfig](#tlsconfig)
* [UserSpec](#userspec)

| Field           | Description | Default | Validation |
| --------------- | ----------- | ------- | ---------- |
| `name` *string* |             |         |            |
| `key` *string*  |             |         |            |

#### SecretTemplate

SecretTemplate defines a template to customize Secret objects.

*Appears in:*

* [ConnectionSpec](#connectionspec)
* [ConnectionTemplate](#connectiontemplate)

| Field                              | Description                                                     | Default | Validation |
| ---------------------------------- | --------------------------------------------------------------- | ------- | ---------- |
| `metadata` [*Metadata*](#metadata) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `key` *string*                     | Key to be used in the Secret.                                   |         |            |
| `format` *string*                  | Format to be used in the Secret.                                |         |            |
| `usernameKey` *string*             | UsernameKey to be used in the Secret.                           |         |            |
| `passwordKey` *string*             | PasswordKey to be used in the Secret.                           |         |            |
| `hostKey` *string*                 | HostKey to be used in the Secret.                               |         |            |
| `portKey` *string*                 | PortKey to be used in the Secret.                               |         |            |
| `databaseKey` *string*             | DatabaseKey to be used in the Secret.                           |         |            |

#### SecretVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#secretvolumesource-v1-core>.

*Appears in:*

* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)
* [Volume](#volume)
* [VolumeSource](#volumesource)

| Field                   | Description | Default | Validation |
| ----------------------- | ----------- | ------- | ---------- |
| `secretName` *string*   |             |         |            |
| `defaultMode` *integer* |             |         |            |

#### SecurityContext

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#securitycontext-v1-core>.

*Appears in:*

* [Agent](#agent)
* [BackupSpec](#backupspec)
* [ContainerTemplate](#containertemplate)
* [Exporter](#exporter)
* [InitContainer](#initcontainer)
* [JobContainerTemplate](#jobcontainertemplate)
* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)
* [PhysicalBackupSpec](#physicalbackupspec)
* [RestoreSpec](#restorespec)
* [SqlJobSpec](#sqljobspec)

| Field                                                                                                                      | Description | Default | Validation |
| -------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `capabilities` [*Capabilities*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#capabilities-v1-core) |             |         |            |
| `privileged` *boolean*                                                                                                     |             |         |            |
| `runAsUser` *integer*                                                                                                      |             |         |            |
| `runAsGroup` *integer*                                                                                                     |             |         |            |
| `runAsNonRoot` *boolean*                                                                                                   |             |         |            |
| `readOnlyRootFilesystem` *boolean*                                                                                         |             |         |            |
| `allowPrivilegeEscalation` *boolean*                                                                                       |             |         |            |

#### ServiceMonitor

ServiceMonitor defines a prometheus ServiceMonitor object.

*Appears in:*

* [MariadbMetrics](#mariadbmetrics)
* [MaxScaleMetrics](#maxscalemetrics)

| Field                        | Description                                                                 | Default | Validation |
| ---------------------------- | --------------------------------------------------------------------------- | ------- | ---------- |
| `prometheusRelease` *string* | PrometheusRelease is the release label to add to the ServiceMonitor object. |         |            |
| `jobLabel` *string*          | JobLabel to add to the ServiceMonitor object.                               |         |            |
| `interval` *string*          | Interval for scraping metrics.                                              |         |            |
| `scrapeTimeout` *string*     | ScrapeTimeout defines the timeout for scraping metrics.                     |         |            |

#### ServicePort

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#serviceport-v1-core>

*Appears in:*

* [MariaDBSpec](#mariadbspec)

| Field            | Description | Default | Validation |
| ---------------- | ----------- | ------- | ---------- |
| `name` *string*  |             |         |            |
| `port` *integer* |             |         |            |

#### ServiceRouter

*Underlying type:* *string*

ServiceRouter defines the type of service router.

*Appears in:*

* [MaxScaleService](#maxscaleservice)

| Field            | Description                                                                                                                                          |
| ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| `readwritesplit` | <p>ServiceRouterReadWriteSplit splits the load based on the queries. Write queries are performed on master and read queries on the replicas.<br></p> |
| `readconnroute`  | <p>ServiceRouterReadConnRoute splits the load based on the connections. Each connection is assigned to a server.<br></p>                             |

#### ServiceTemplate

ServiceTemplate defines a template to customize Service objects.

*Appears in:*

* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)

| Field                                                                                                                                                               | Description                                                                                                             | Default   | Validation                                          |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | --------- | --------------------------------------------------- |
| `type` [*ServiceType*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#servicetype-v1-core)                                                    | Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`. | ClusterIP | <p>Enum: \[ClusterIP NodePort LoadBalancer]<br></p> |
| `metadata` [*Metadata*](#metadata)                                                                                                                                  | Refer to Kubernetes API documentation for fields of `metadata`.                                                         |           |                                                     |
| `loadBalancerIP` *string*                                                                                                                                           | LoadBalancerIP Service field.                                                                                           |           |                                                     |
| `loadBalancerSourceRanges` *string array*                                                                                                                           | LoadBalancerSourceRanges Service field.                                                                                 |           |                                                     |
| `externalTrafficPolicy` [*ServiceExternalTrafficPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#serviceexternaltrafficpolicy-v1-core) | ExternalTrafficPolicy Service field.                                                                                    |           |                                                     |
| `sessionAffinity` [*ServiceAffinity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#serviceaffinity-v1-core)                                 | SessionAffinity Service field.                                                                                          |           |                                                     |
| `allocateLoadBalancerNodePorts` *boolean*                                                                                                                           | AllocateLoadBalancerNodePorts Service field.                                                                            |           |                                                     |
| `loadBalancerClass` *string*                                                                                                                                        | LoadBalancerClass Service field.                                                                                        |           |                                                     |

#### SleepAction

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#sleepaction-v1-core>

*Appears in:*

* [LifecycleHandler](#lifecyclehandler)

| Field               | Description | Default | Validation |
| ------------------- | ----------- | ------- | ---------- |
| `seconds` *integer* |             |         |            |

#### SqlJob

SqlJob is the Schema for the sqljobs API. It is used to run sql scripts as jobs.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `SqlJob`                                                        |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*SqlJobSpec*](#sqljobspec)                                                                                 |                                                                 |         |            |

#### SqlJobSpec

SqlJobSpec defines the desired state of SqlJob

*Appears in:*

* [SqlJob](#sqljob)

| Field                                                                                                                         | Description                                                                                                                                                                                                    | Default   | Validation                                 |
| ----------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | ------------------------------------------ |
| `args` *string array*                                                                                                         | Args to be used in the Container.                                                                                                                                                                              |           |                                            |
| `resources` [*ResourceRequirements*](#resourcerequirements)                                                                   | Resources describes the compute resource requirements.                                                                                                                                                         |           |                                            |
| `securityContext` [*SecurityContext*](#securitycontext)                                                                       | SecurityContext holds security configuration that will be applied to a container.                                                                                                                              |           |                                            |
| `podMetadata` [*Metadata*](#metadata)                                                                                         | PodMetadata defines extra metadata for the Pod.                                                                                                                                                                |           |                                            |
| `imagePullSecrets` [*LocalObjectReference*](#localobjectreference) *array*                                                    | ImagePullSecrets is the list of pull Secrets to be used to pull the image.                                                                                                                                     |           |                                            |
| `podSecurityContext` [*PodSecurityContext*](#podsecuritycontext)                                                              | SecurityContext holds pod-level security attributes and common container settings.                                                                                                                             |           |                                            |
| `serviceAccountName` *string*                                                                                                 | ServiceAccountName is the name of the ServiceAccount to be used by the Pods.                                                                                                                                   |           |                                            |
| `affinity` [*AffinityConfig*](#affinityconfig)                                                                                | Affinity to be used in the Pod.                                                                                                                                                                                |           |                                            |
| `nodeSelector` *object (keys:string, values:string)*                                                                          | NodeSelector to be used in the Pod.                                                                                                                                                                            |           |                                            |
| `tolerations` [*Toleration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#toleration-v1-core) *array* | Tolerations to be used in the Pod.                                                                                                                                                                             |           |                                            |
| `priorityClassName` *string*                                                                                                  | PriorityClassName to be used in the Pod.                                                                                                                                                                       |           |                                            |
| `successfulJobsHistoryLimit` *integer*                                                                                        | SuccessfulJobsHistoryLimit defines the maximum number of successful Jobs to be displayed.                                                                                                                      |           | <p>Minimum: 0<br></p>                      |
| `failedJobsHistoryLimit` *integer*                                                                                            | FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed.                                                                                                                              |           | <p>Minimum: 0<br></p>                      |
| `timeZone` *string*                                                                                                           | TimeZone defines the timezone associated with the cron expression.                                                                                                                                             |           |                                            |
| `mariaDbRef` [*MariaDBRef*](#mariadbref)                                                                                      | MariaDBRef is a reference to a MariaDB object.                                                                                                                                                                 |           | <p>Required: {}<br></p>                    |
| `schedule` [*Schedule*](#schedule)                                                                                            | Schedule defines when the SqlJob will be executed.                                                                                                                                                             |           |                                            |
| `username` *string*                                                                                                           | Username to be impersonated when executing the SqlJob.                                                                                                                                                         |           | <p>Required: {}<br></p>                    |
| `passwordSecretKeyRef` [*SecretKeySelector*](#secretkeyselector)                                                              | UserPasswordSecretKeyRef is a reference to the impersonated user's password to be used when executing the SqlJob.                                                                                              |           | <p>Required: {}<br></p>                    |
| `tlsCASecretRef` [*LocalObjectReference*](#localobjectreference)                                                              | <p>TLSCACertSecretRef is a reference toa CA Secret used to establish trust when executing the SqlJob.<br>If not provided, the CA bundle provided by the referred MariaDB is used.</p>                          |           |                                            |
| `tlsClientCertSecretRef` [*LocalObjectReference*](#localobjectreference)                                                      | <p>TLSClientCertSecretRef is a reference to a Kubernetes TLS Secret used as authentication when executing the SqlJob.<br>If not provided, the client certificate provided by the referred MariaDB is used.</p> |           |                                            |
| `database` *string*                                                                                                           | Username to be used when executing the SqlJob.                                                                                                                                                                 |           |                                            |
| `dependsOn` [*LocalObjectReference*](#localobjectreference) *array*                                                           | DependsOn defines dependencies with other SqlJob objectecs.                                                                                                                                                    |           |                                            |
| `sql` *string*                                                                                                                | Sql is the script to be executed by the SqlJob.                                                                                                                                                                |           |                                            |
| `sqlConfigMapKeyRef` [*ConfigMapKeySelector*](#configmapkeyselector)                                                          | <p>SqlConfigMapKeyRef is a reference to a ConfigMap containing the Sql script.<br>It is defaulted to a ConfigMap with the contents of the Sql field.</p>                                                       |           |                                            |
| `backoffLimit` *integer*                                                                                                      | BackoffLimit defines the maximum number of attempts to successfully execute a SqlJob.                                                                                                                          | 5         |                                            |
| `restartPolicy` [*RestartPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#restartpolicy-v1-core) | RestartPolicy to be added to the SqlJob Pod.                                                                                                                                                                   | OnFailure | <p>Enum: \[Always OnFailure Never]<br></p> |
| `inheritMetadata` [*Metadata*](#metadata)                                                                                     | InheritMetadata defines the metadata to be inherited by children resources.                                                                                                                                    |           |                                            |

#### StagingStorage

StagingStorage defines the temporary storage used to keep external backups (i.e. S3) while they are being processed.

*Appears in:*

* [BackupSpec](#backupspec)
* [BootstrapFrom](#bootstrapfrom)
* [PhysicalBackupSpec](#physicalbackupspec)
* [RestoreSource](#restoresource)
* [RestoreSpec](#restorespec)

| Field                                                                             | Description                                              | Default | Validation |
| --------------------------------------------------------------------------------- | -------------------------------------------------------- | ------- | ---------- |
| `persistentVolumeClaim` [*PersistentVolumeClaimSpec*](#persistentvolumeclaimspec) | PersistentVolumeClaim is a Kubernetes PVC specification. |         |            |
| `volume` [*StorageVolumeSource*](#storagevolumesource)                            | Volume is a Kubernetes volume specification.             |         |            |

#### StatefulSetPersistentVolumeClaimRetentionPolicy

StatefulSetPersistentVolumeClaimRetentionPolicy describes the lifecycle of PVCs created from volumeClaimTemplates. Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#statefulsetpersistentvolumeclaimretentionpolicy-v1-apps>.

*Appears in:*

* [Storage](#storage)

| Field                                                                                                 | Description | Default | Validation |
| ----------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `whenDeleted` [*PersistentVolumeClaimRetentionPolicyType*](#persistentvolumeclaimretentionpolicytype) |             |         |            |
| `whenScaled` [*PersistentVolumeClaimRetentionPolicyType*](#persistentvolumeclaimretentionpolicytype)  |             |         |            |

#### Storage

Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.

*Appears in:*

* [MariaDBSpec](#mariadbspec)

| Field                                                                                                                      | Description                                                                                                                                                                                                                                                                                                                                                                   | Default | Validation |
| -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `ephemeral` *boolean*                                                                                                      | Ephemeral indicates whether to use ephemeral storage in the PVCs. It is only compatible with non HA MariaDBs.                                                                                                                                                                                                                                                                 |         |            |
| `size` [*Quantity*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#quantity-resource-api)            | Size of the PVCs to be mounted by MariaDB. Required if not provided in 'VolumeClaimTemplate'. It supersedes the storage size specified in 'VolumeClaimTemplate'.                                                                                                                                                                                                              |         |            |
| `storageClassName` *string*                                                                                                | <p>StorageClassName to be used to provision the PVCS. It supersedes the 'StorageClassName' specified in 'VolumeClaimTemplate'.<br>If not provided, the default 'StorageClass' configured in the cluster is used.</p>                                                                                                                                                          |         |            |
| `resizeInUseVolumes` *boolean*                                                                                             | <p>ResizeInUseVolumes indicates whether the PVCs can be resized. The 'StorageClassName' used should have 'allowVolumeExpansion' set to 'true' to allow resizing.<br>It defaults to true.</p>                                                                                                                                                                                  |         |            |
| `waitForVolumeResize` *boolean*                                                                                            | <p>WaitForVolumeResize indicates whether to wait for the PVCs to be resized before marking the MariaDB object as ready. This will block other operations such as cluster recovery while the resize is in progress.<br>It defaults to true.</p>                                                                                                                                |         |            |
| `volumeClaimTemplate` [*VolumeClaimTemplate*](#volumeclaimtemplate)                                                        | VolumeClaimTemplate provides a template to define the PVCs.                                                                                                                                                                                                                                                                                                                   |         |            |
| `pvcRetentionPolicy` [*StatefulSetPersistentVolumeClaimRetentionPolicy*](#statefulsetpersistentvolumeclaimretentionpolicy) | <p>PersistentVolumeClaimRetentionPolicy describes the lifecycle of PVCs created from volumeClaimTemplates.<br>By default, all persistent volume claims are created as needed and retained until manually deleted.<br>This policy allows the lifecycle to be altered, for example by deleting PVCs when their statefulset is deleted,<br>or when their pod is scaled down.</p> |         |            |

#### StorageVolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volume-v1-core>.

*Appears in:*

* [BackupStorage](#backupstorage)
* [BootstrapFrom](#bootstrapfrom)
* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)
* [PhysicalBackupStorage](#physicalbackupstorage)
* [RestoreSource](#restoresource)
* [RestoreSpec](#restorespec)
* [StagingStorage](#stagingstorage)
* [Volume](#volume)
* [VolumeSource](#volumesource)

| Field                                                                                             | Description | Default | Validation |
| ------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `emptyDir` [*EmptyDirVolumeSource*](#emptydirvolumesource)                                        |             |         |            |
| `nfs` [*NFSVolumeSource*](#nfsvolumesource)                                                       |             |         |            |
| `csi` [*CSIVolumeSource*](#csivolumesource)                                                       |             |         |            |
| `hostPath` [*HostPathVolumeSource*](#hostpathvolumesource)                                        |             |         |            |
| `persistentVolumeClaim` [*PersistentVolumeClaimVolumeSource*](#persistentvolumeclaimvolumesource) |             |         |            |

#### SuspendTemplate

SuspendTemplate indicates whether the current resource should be suspended or not.

*Appears in:*

* [MariaDBSpec](#mariadbspec)
* [MaxScaleListener](#maxscalelistener)
* [MaxScaleMonitor](#maxscalemonitor)
* [MaxScaleService](#maxscaleservice)
* [MaxScaleSpec](#maxscalespec)

| Field               | Description                                                                                                                                                                                                                                         | Default | Validation |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `suspend` *boolean* | <p>Suspend indicates whether the current resource should be suspended or not.<br>This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.</p> | false   |            |

#### TCPSocketAction

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#tcpsocketaction-v1-core>.

*Appears in:*

* [Probe](#probe)
* [ProbeHandler](#probehandler)

| Field                                                                                                                | Description | Default | Validation |
| -------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `port` [*IntOrString*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#intorstring-intstr-util) |             |         |            |
| `host` *string*                                                                                                      |             |         |            |

#### TLS

TLS defines the PKI to be used with MariaDB.

*Appears in:*

* [ExternalTLS](#externaltls)
* [MariaDBSpec](#mariadbspec)

| Field                                                                 | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | Default | Validation                                                        |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------- |
| `enabled` *boolean*                                                   | <p>Enabled indicates whether TLS is enabled, determining if certificates should be issued and mounted to the MariaDB instance.<br>It is enabled by default.</p>                                                                                                                                                                                                                                                                                                                                                                                                                 |         |                                                                   |
| `required` *boolean*                                                  | <p>Required specifies whether TLS must be enforced for all connections.<br>User TLS requirements take precedence over this.<br>It disabled by default.</p>                                                                                                                                                                                                                                                                                                                                                                                                                      |         |                                                                   |
| `versions` *string array*                                             | <p>Versions specifies the supported TLS versions for this MariaDB instance.<br>By default, the MariaDB's default supported versions are used. See: <https://mariadb.com/kb/en/ssltls-system-variables/#tls_version>.</p>                                                                                                                                                                                                                                                                                                                                                        |         | <p>items:Enum: \[TLSv1.0 TLSv1.1 TLSv1.2 TLSv1.3]<br></p>         |
| `serverCASecretRef` [*LocalObjectReference*](#localobjectreference)   | <p>ServerCASecretRef is a reference to a Secret containing the server certificate authority keypair. It is used to establish trust and issue server certificates.<br>One of:<br>- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.<br>- Secret containing only the 'ca.crt' in order to establish trust. In this case, either serverCertSecretRef or serverCertIssuerRef must be provided.<br>If not provided, a self-signed CA will be provisioned to issue the server certificate.</p>        |         |                                                                   |
| `serverCertSecretRef` [*LocalObjectReference*](#localobjectreference) | <p>ServerCertSecretRef is a reference to a TLS Secret containing the server certificate.<br>It is mutually exclusive with serverCertIssuerRef.</p>                                                                                                                                                                                                                                                                                                                                                                                                                              |         |                                                                   |
| `serverCertIssuerRef` [*ObjectReference*](#objectreference)           | <p>ServerCertIssuerRef is a reference to a cert-manager issuer object used to issue the server certificate. cert-manager must be installed previously in the cluster.<br>It is mutually exclusive with serverCertSecretRef.<br>By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via serverCASecretRef.</p>                                                                                                                                                                            |         |                                                                   |
| `serverCertConfig` [*CertConfig*](#certconfig)                        | <p>ServerCertConfig allows configuring the server certificates, either issued by the operator or cert-manager.<br>If not set, the default settings will be used.</p>                                                                                                                                                                                                                                                                                                                                                                                                            |         |                                                                   |
| `clientCASecretRef` [*LocalObjectReference*](#localobjectreference)   | <p>ClientCASecretRef is a reference to a Secret containing the client certificate authority keypair. It is used to establish trust and issue client certificates.<br>One of:<br>- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.<br>- Secret containing only the 'ca.crt' in order to establish trust. In this case, either clientCertSecretRef or clientCertIssuerRef fields must be provided.<br>If not provided, a self-signed CA will be provisioned to issue the client certificate.</p> |         |                                                                   |
| `clientCertSecretRef` [*LocalObjectReference*](#localobjectreference) | <p>ClientCertSecretRef is a reference to a TLS Secret containing the client certificate.<br>It is mutually exclusive with clientCertIssuerRef.</p>                                                                                                                                                                                                                                                                                                                                                                                                                              |         |                                                                   |
| `clientCertIssuerRef` [*ObjectReference*](#objectreference)           | <p>ClientCertIssuerRef is a reference to a cert-manager issuer object used to issue the client certificate. cert-manager must be installed previously in the cluster.<br>It is mutually exclusive with clientCertSecretRef.<br>By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via clientCASecretRef.</p>                                                                                                                                                                            |         |                                                                   |
| `clientCertConfig` [*CertConfig*](#certconfig)                        | <p>ClientCertConfig allows configuring the client certificates, either issued by the operator or cert-manager.<br>If not set, the default settings will be used.</p>                                                                                                                                                                                                                                                                                                                                                                                                            |         |                                                                   |
| `galeraSSTEnabled` *boolean*                                          | <p>GaleraSSTEnabled determines whether Galera SST connections should use TLS.<br>It disabled by default.</p>                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |         |                                                                   |
| `galeraServerSSLMode` *string*                                        | <p>GaleraServerSSLMode defines the server SSL mode for a Galera Enterprise cluster.<br>This field is only supported and applicable for Galera Enterprise >= 10.6 instances.<br>Refer to the MariaDB Enterprise docs for more detail: <https://mariadb.com/docs/galera-cluster/galera-security/mariadb-enterprise-cluster-security#wsrep-tls-modes></p>                                                                                                                                                                                                                          |         | <p>Enum: \[PROVIDER SERVER SERVER\_X509]<br></p>                  |
| `galeraClientSSLMode` *string*                                        | <p>GaleraClientSSLMode defines the client SSL mode for a Galera Enterprise cluster.<br>This field is only supported and applicable for Galera Enterprise >= 10.6 instances.<br>Refer to the MariaDB Enterprise docs for more detail: <https://mariadb.com/docs/galera-cluster/galera-security/mariadb-enterprise-cluster-security#sst-tls-modes></p>                                                                                                                                                                                                                            |         | <p>Enum: \[DISABLED REQUIRED VERIFY\_CA VERIFY\_IDENTITY]<br></p> |

#### TLSConfig

*Appears in:*

* [AzureBlob](#azureblob)
* [S3](#s3)

| Field                                                      | Description                                                                                                                                                                                                                                        | Default | Validation |
| ---------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `enabled` *boolean*                                        | Enabled is a flag to enable TLS.                                                                                                                                                                                                                   |         |            |
| `caSecretKeyRef` [*SecretKeySelector*](#secretkeyselector) | <p>CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3.<br>By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.</p> |         |            |

#### TLSRequirements

TLSRequirements specifies TLS requirements for the user to connect. See: <https://mariadb.com/kb/en/securing-connections-for-client-and-server/#requiring-tls>.

*Appears in:*

* [UserSpec](#userspec)

| Field              | Description                                                                                         | Default | Validation |
| ------------------ | --------------------------------------------------------------------------------------------------- | ------- | ---------- |
| `ssl` *boolean*    | SSL indicates that the user must connect via TLS.                                                   |         |            |
| `x509` *boolean*   | X509 indicates that the user must provide a valid x509 certificate to connect.                      |         |            |
| `issuer` *string*  | Issuer indicates that the TLS certificate provided by the user must be issued by a specific issuer. |         |            |
| `subject` *string* | Subject indicates that the TLS certificate provided by the user must have a specific subject.       |         |            |

#### TopologySpreadConstraint

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#topologyspreadconstraint-v1-core>.

*Appears in:*

* [MariaDBPodTemplate](#mariadbpodtemplate)
* [MariaDBSpec](#mariadbspec)
* [MaxScalePodTemplate](#maxscalepodtemplate)
* [MaxScaleSpec](#maxscalespec)

| Field                                                                                                                                                             | Description | Default | Validation |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `maxSkew` *integer*                                                                                                                                               |             |         |            |
| `topologyKey` *string*                                                                                                                                            |             |         |            |
| `whenUnsatisfiable` [*UnsatisfiableConstraintAction*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#unsatisfiableconstraintaction-v1-core) |             |         |            |
| `labelSelector` [*LabelSelector*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#labelselector-v1-meta)                                     |             |         |            |
| `minDomains` *integer*                                                                                                                                            |             |         |            |
| `nodeAffinityPolicy` [*NodeInclusionPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeinclusionpolicy-v1-core)                    |             |         |            |
| `nodeTaintsPolicy` [*NodeInclusionPolicy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#nodeinclusionpolicy-v1-core)                      |             |         |            |
| `matchLabelKeys` *string array*                                                                                                                                   |             |         |            |

#### TypedLocalObjectReference

TypedLocalObjectReference is a reference to a specific object type.

*Appears in:*

* [BootstrapFrom](#bootstrapfrom)

| Field           | Description           | Default | Validation |
| --------------- | --------------------- | ------- | ---------- |
| `name` *string* | Name of the referent. |         |            |
| `kind` *string* | Kind of the referent. |         |            |

#### UpdateStrategy

UpdateStrategy defines how a MariaDB resource is updated.

*Appears in:*

* [MariaDBSpec](#mariadbspec)

| Field                                                                                                                                                               | Description                                                                                                                                                                                                                                                                                                                                                                                       | Default                  | Validation                                                                |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------------------- |
| `type` [*UpdateType*](#updatetype)                                                                                                                                  | Type defines the type of updates. One of `ReplicasFirstPrimaryLast`, `RollingUpdate` or `OnDelete`. If not defined, it defaults to `ReplicasFirstPrimaryLast`.                                                                                                                                                                                                                                    | ReplicasFirstPrimaryLast | <p>Enum: \[ReplicasFirstPrimaryLast RollingUpdate OnDelete Never]<br></p> |
| `rollingUpdate` [*RollingUpdateStatefulSetStrategy*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#rollingupdatestatefulsetstrategy-v1-apps) | RollingUpdate defines parameters for the RollingUpdate type.                                                                                                                                                                                                                                                                                                                                      |                          |                                                                           |
| `autoUpdateDataPlane` *boolean*                                                                                                                                     | <p>AutoUpdateDataPlane indicates whether the Galera data-plane version (agent and init containers) should be automatically updated based on the operator version. It defaults to false.<br>Updating the operator will trigger updates on all the MariaDB instances that have this flag set to true. Thus, it is recommended to progressively set this flag after having updated the operator.</p> |                          |                                                                           |

#### UpdateType

*Underlying type:* *string*

UpdateType defines the type of update for a MariaDB resource.

*Appears in:*

* [UpdateStrategy](#updatestrategy)

| Field                      | Description                                                                                                                                                                                                                                                                                                             |
| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ReplicasFirstPrimaryLast` | <p>ReplicasFirstPrimaryLastUpdateType indicates that the update will be applied to all replica Pods first and later on to the primary Pod.<br>The updates are applied one by one waiting until each Pod passes the readiness probe<br>i.e. the Pod gets synced and it is ready to receive traffic.<br></p>              |
| `RollingUpdate`            | <p>RollingUpdateUpdateType indicates that the update will be applied by the StatefulSet controller using the RollingUpdate strategy.<br>This strategy is unaware of the roles that the Pod have (primary or replica) and it will<br>perform the update following the StatefulSet ordinal, from higher to lower.<br></p> |
| `OnDelete`                 | <p>OnDeleteUpdateType indicates that the update will be applied by the StatefulSet controller using the OnDelete strategy.<br>The update will be done when the Pods get manually deleted by the user.<br></p>                                                                                                           |
| `Never`                    | <p>NeverUpdateType indicates that the StatefulSet will never be updated.<br>This can be used to roll out updates progressively to a fleet of instances.<br></p>                                                                                                                                                         |

#### User

User is the Schema for the users API. It is used to define grants as if you were running a 'CREATE USER' statement.

| Field                                                                                                              | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------- | ------- | ---------- |
| `apiVersion` *string*                                                                                              | `enterprise.mariadb.com/v1alpha1`                               |         |            |
| `kind` *string*                                                                                                    | `User`                                                          |         |            |
| `metadata` [*ObjectMeta*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#objectmeta-v1-meta) | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |
| `spec` [*UserSpec*](#userspec)                                                                                     |                                                                 |         |            |

#### UserSpec

UserSpec defines the desired state of User

*Appears in:*

* [User](#user)

| Field                                                                                                                 | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Default | Validation                      |
| --------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ------------------------------- |
| `requeueInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta) | RequeueInterval is used to perform requeue reconciliations.                                                                                                                                                                                                                                                                                                                                                                                                 |         |                                 |
| `retryInterval` [*Duration*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#duration-v1-meta)   | RetryInterval is the interval used to perform retries.                                                                                                                                                                                                                                                                                                                                                                                                      |         |                                 |
| `cleanupPolicy` [*CleanupPolicy*](#cleanuppolicy)                                                                     | CleanupPolicy defines the behavior for cleaning up a SQL resource.                                                                                                                                                                                                                                                                                                                                                                                          |         | <p>Enum: \[Skip Delete]<br></p> |
| `mariaDbRef` [*MariaDBRef*](#mariadbref)                                                                              | MariaDBRef is a reference to a MariaDB object.                                                                                                                                                                                                                                                                                                                                                                                                              |         | <p>Required: {}<br></p>         |
| `passwordSecretKeyRef` [*SecretKeySelector*](#secretkeyselector)                                                      | <p>PasswordSecretKeyRef is a reference to the password to be used by the User.<br>If not provided, the account will be locked and the password will expire.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password.</p>                                                                                                                                           |         |                                 |
| `passwordHashSecretKeyRef` [*SecretKeySelector*](#secretkeyselector)                                                  | <p>PasswordHashSecretKeyRef is a reference to the password hash to be used by the User.<br>If the referred Secret is labeled with "enterprise.mariadb.com/watch", updates may be performed to the Secret in order to update the password hash.<br>It requires the 'strict-password-validation=false' option to be set. See: <https://mariadb.com/docs/server/server-management/variables-and-modes/server-system-variables#strict_password_validation>.</p> |         |                                 |
| `passwordPlugin` [*PasswordPlugin*](#passwordplugin)                                                                  | <p>PasswordPlugin is a reference to the password plugin and arguments to be used by the User.<br>It requires the 'strict-password-validation=false' option to be set. See: <https://mariadb.com/docs/server/server-management/variables-and-modes/server-system-variables#strict_password_validation>.</p>                                                                                                                                                  |         |                                 |
| `require` [*TLSRequirements*](#tlsrequirements)                                                                       | Require specifies TLS requirements for the user to connect. See: <https://mariadb.com/kb/en/securing-connections-for-client-and-server/#requiring-tls>.                                                                                                                                                                                                                                                                                                     |         |                                 |
| `maxUserConnections` *integer*                                                                                        | MaxUserConnections defines the maximum number of simultaneous connections that the User can establish.                                                                                                                                                                                                                                                                                                                                                      | 10      |                                 |
| `name` *string*                                                                                                       | Name overrides the default name provided by metadata.name.                                                                                                                                                                                                                                                                                                                                                                                                  |         | <p>MaxLength: 80<br></p>        |
| `host` *string*                                                                                                       | Host related to the User.                                                                                                                                                                                                                                                                                                                                                                                                                                   |         | <p>MaxLength: 255<br></p>       |

#### VolumeClaimTemplate

VolumeClaimTemplate defines a template to customize PVC objects.

*Appears in:*

* [EphemeralVolumeSource](#ephemeralvolumesource)
* [GaleraConfig](#galeraconfig)
* [MaxScaleConfig](#maxscaleconfig)
* [Storage](#storage)

| Field                                                                                                                                                         | Description                                                     | Default | Validation |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- | ------- | ---------- |
| `accessModes` [*PersistentVolumeAccessMode*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#persistentvolumeaccessmode-v1-core) *array* |                                                                 |         |            |
| `selector` [*LabelSelector*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#labelselector-v1-meta)                                      |                                                                 |         |            |
| `resources` [*VolumeResourceRequirements*](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volumeresourcerequirements-v1-core)           |                                                                 |         |            |
| `storageClassName` *string*                                                                                                                                   |                                                                 |         |            |
| `metadata` [*Metadata*](#metadata)                                                                                                                            | Refer to Kubernetes API documentation for fields of `metadata`. |         |            |

#### VolumeMount

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volumemount-v1-core>.

*Appears in:*

* [Agent](#agent)
* [Container](#container)
* [ContainerTemplate](#containertemplate)
* [InitContainer](#initcontainer)
* [MariaDBSpec](#mariadbspec)
* [MaxScaleSpec](#maxscalespec)

| Field                | Description                           | Default | Validation |
| -------------------- | ------------------------------------- | ------- | ---------- |
| `name` *string*      | This must match the Name of a Volume. |         |            |
| `readOnly` *boolean* |                                       |         |            |
| `mountPath` *string* |                                       |         |            |
| `subPath` *string*   |                                       |         |            |

#### VolumeSource

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#volume-v1-core>.

*Appears in:*

* [MariaDBVolume](#mariadbvolume)
* [MariaDBVolumeSource](#mariadbvolumesource)
* [Volume](#volume)

| Field                                                                                             | Description | Default | Validation |
| ------------------------------------------------------------------------------------------------- | ----------- | ------- | ---------- |
| `emptyDir` [*EmptyDirVolumeSource*](#emptydirvolumesource)                                        |             |         |            |
| `nfs` [*NFSVolumeSource*](#nfsvolumesource)                                                       |             |         |            |
| `csi` [*CSIVolumeSource*](#csivolumesource)                                                       |             |         |            |
| `hostPath` [*HostPathVolumeSource*](#hostpathvolumesource)                                        |             |         |            |
| `persistentVolumeClaim` [*PersistentVolumeClaimVolumeSource*](#persistentvolumeclaimvolumesource) |             |         |            |
| `secret` [*SecretVolumeSource*](#secretvolumesource)                                              |             |         |            |
| `configMap` [*ConfigMapVolumeSource*](#configmapvolumesource)                                     |             |         |            |

#### WaitPoint

*Underlying type:* *string*

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>.

*Appears in:*

* [Replication](#replication)
* [ReplicationSpec](#replicationspec)

| Field         | Description                                                                                                                                                                                      |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `AfterSync`   | <p>WaitPointAfterSync indicates that the primary waits for the replica ACK before committing the transaction to the storage engine.<br>It trades off performance for consistency.<br></p>        |
| `AfterCommit` | <p>WaitPointAfterCommit indicates that the primary commits the transaction to the storage engine and waits for the replica ACK afterwards.<br>It trades off consistency for performance.<br></p> |

#### WeightedPodAffinityTerm

Refer to the Kubernetes docs: <https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.35/#weightedpodaffinityterm-v1-core>.

*Appears in:*

* [PodAntiAffinity](#podantiaffinity)

| Field                                                   | Description | Default | Validation |
| ------------------------------------------------------- | ----------- | ------- | ---------- |
| `weight` *integer*                                      |             |         |            |
| `podAffinityTerm` [*PodAffinityTerm*](#podaffinityterm) |             |         |            |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mariadb.com/docs/tools/mariadb-enterprise-operator/api-reference.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
