Skip to content

API Reference

Packages

k8s.mariadb.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the v1alpha1 API group

Resource Types

AffinityConfig

AffinityConfig defines policies to schedule Pods in Nodes.

Appears in: - BackupSpec - Exporter - Job - JobPodTemplate - MariaDBSpec - MaxScaleSpec - PodTemplate - RestoreSpec - SqlJobSpec

Field Description Default Validation
antiAffinityEnabled boolean AntiAffinityEnabled configures PodAntiAffinity so each Pod is scheduled in a different Node, enabling HA.
Make sure you have at least as many Nodes available as the replicas to not end up with unscheduled Pods.

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 k8s.mariadb.com/v1alpha1
kind string Backup
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec BackupSpec

BackupSpec

BackupSpec defines the desired state of Backup

Appears in: - Backup

Field Description Default Validation
args string array Args to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
securityContext SecurityContext SecurityContext holds security configuration that will be applied to a container.
podMetadata Metadata PodMetadata defines extra metadata for the Pod.
imagePullSecrets LocalObjectReference array ImagePullSecrets is the list of pull Secrets to be used to pull the image.
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 Affinity to be used in the Pod.
nodeSelector object (keys:string, values:string) NodeSelector to be used in the Pod.
tolerations Toleration 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. Minimum: 0
failedJobsHistoryLimit integer FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed. Minimum: 0
timeZone string TimeZone defines the timezone associated with the cron expression.
mariaDbRef MariaDBRef MariaDBRef is a reference to a MariaDB object. Required: {}
storage BackupStorage Storage to be used in the Backup. Required: {}
schedule Schedule Schedule defines when the Backup will be taken.
maxRetention Duration MaxRetention defines the retention policy for backups. Old backups will be cleaned up by the Backup Job.
It defaults to 30 days.
databases string array Databases defines the logical databases to be backed up. If not provided, all databases are backed up.
ignoreGlobalPriv boolean IgnoreGlobalPriv indicates to ignore the mysql.global_priv in backups.
If not provided, it will default to true when the referred MariaDB instance has Galera enabled and otherwise to false.
See: https://github.com/mariadb-operator/mariadb-operator/issues/556
logLevel string LogLevel to be used n the Backup Job. It defaults to 'info'. info
backoffLimit integer BackoffLimit defines the maximum number of attempts to successfully take a Backup.
restartPolicy RestartPolicy RestartPolicy to be added to the Backup Pod. OnFailure Enum: [Always OnFailure Never]
inheritMetadata Metadata InheritMetadata defines the metadata to be inherited by children resources.

BackupStorage

BackupStorage defines the storage for a Backup.

Appears in: - BackupSpec

Field Description Default Validation
s3 S3 S3 defines the configuration to store backups in a S3 compatible storage.
persistentVolumeClaim PersistentVolumeClaimSpec PersistentVolumeClaim is a Kubernetes PVC specification.
volume VolumeSource Volume is a Kubernetes volume specification.

BootstrapFrom

BootstrapFrom defines a source to bootstrap MariaDB from.

Appears in: - MariaDBSpec

Field Description Default Validation
backupRef LocalObjectReference BackupRef is a reference to a Backup object. It has priority over S3 and Volume.
s3 S3 S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.
volume VolumeSource Volume is a Kubernetes Volume object that contains a backup.
targetRecoveryTime Time TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective.
It is used to determine the closest restoration source in time.
restoreJob Job RestoreJob defines additional properties for the Job used to perform the Restore.

CleanupPolicy

Underlying type: string

CleanupPolicy defines the behavior for cleaning up a resource.

Appears in: - DatabaseSpec - GrantSpec - SQLTemplate - UserSpec

Field Description
Skip CleanupPolicySkip indicates that the resource will NOT be deleted from the database after the CR is deleted.
Delete CleanupPolicyDelete indicates that the resource will be deleted from the database after the CR is deleted.

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 k8s.mariadb.com/v1alpha1
kind string Connection
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ConnectionSpec

ConnectionSpec

ConnectionSpec defines the desired state of Connection

Appears in: - Connection

Field Description Default Validation
secretName string SecretName to be used in the Connection.
secretTemplate SecretTemplate SecretTemplate to be used in the Connection.
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 is a reference to the MariaDB to connect to. Either MariaDBRef or MaxScaleRef must be provided.
maxScaleRef 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. Required: {}
passwordSecretKeyRef SecretKeySelector PasswordSecretKeyRef is a reference to the password to use for configuring the Connection.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
Required: {}
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 - MariaDBMaxScaleSpec - MariaDBSpec - MaxScaleSpec

Field Description Default Validation
secretName string SecretName to be used in the Connection.
secretTemplate SecretTemplate SecretTemplate to be used in the Connection.
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: - Exporter - Galera - GaleraSpec - MariaDBSpec - MaxScaleSpec - PodTemplate

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 array Env represents the environment variables to be injected in a container.
envFrom EnvFromSource array EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
volumeMounts VolumeMount array VolumeMounts to be used in the Container.
livenessProbe Probe LivenessProbe to be used in the Container.
readinessProbe Probe ReadinessProbe to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
securityContext SecurityContext SecurityContext holds security configuration that will be applied to a container.
image string Image name to be used by the MariaDB instances. The supported format is <image>:<tag>. Required: {}
imagePullPolicy PullPolicy ImagePullPolicy is the image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Enum: [Always Never IfNotPresent]

ContainerTemplate

ContainerTemplate defines a template to configure Container objects.

Appears in: - Container - Exporter - GaleraAgent - MariaDBSpec - 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 array Env represents the environment variables to be injected in a container.
envFrom EnvFromSource array EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
volumeMounts VolumeMount array VolumeMounts to be used in the Container.
livenessProbe Probe LivenessProbe to be used in the Container.
readinessProbe Probe ReadinessProbe to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
securityContext SecurityContext SecurityContext holds security configuration that will be applied to a container.

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

Field Description
majority_of_all CooperativeMonitoringMajorityOfAll requires a lock from the majority of the MariaDB servers, even the ones that are down.
majority_of_running CooperativeMonitoringMajorityOfRunning requires a lock from the majority of the MariaDB servers.

CronJobTemplate

CronJobTemplate defines parameters for configuring CronJob objects.

Appears in: - BackupSpec - SqlJobSpec

Field Description Default Validation
successfulJobsHistoryLimit integer SuccessfulJobsHistoryLimit defines the maximum number of successful Jobs to be displayed. Minimum: 0
failedJobsHistoryLimit integer FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed. Minimum: 0
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 k8s.mariadb.com/v1alpha1
kind string Database
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec DatabaseSpec

DatabaseSpec

DatabaseSpec defines the desired state of Database

Appears in: - Database

Field Description Default Validation
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations.
retryInterval Duration RetryInterval is the interval used to perform retries.
cleanupPolicy CleanupPolicy CleanupPolicy defines the behavior for cleaning up a SQL resource. Enum: [Skip Delete]
mariaDbRef MariaDBRef MariaDBRef is a reference to a MariaDB object. Required: {}
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. MaxLength: 80

Exporter

Exporter defines a metrics exporter container.

Appears in: - MariadbMetrics - MaxScaleMetrics

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 array Env represents the environment variables to be injected in a container.
envFrom EnvFromSource array EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
volumeMounts VolumeMount array VolumeMounts to be used in the Container.
livenessProbe Probe LivenessProbe to be used in the Container.
readinessProbe Probe ReadinessProbe to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
securityContext SecurityContext SecurityContext holds security configuration that will be applied to a container.
podMetadata Metadata PodMetadata defines extra metadata for the Pod.
imagePullSecrets LocalObjectReference array ImagePullSecrets is the list of pull Secrets to be used to pull the image.
initContainers Container array InitContainers to be used in the Pod.
sidecarContainers Container array SidecarContainers to be used in the Pod.
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 Affinity to be used in the Pod.
nodeSelector object (keys:string, values:string) NodeSelector to be used in the Pod.
tolerations Toleration array Tolerations to be used in the Pod.
volumes Volume array Volumes to be used in the Pod.
priorityClassName string PriorityClassName to be used in the Pod.
topologySpreadConstraints TopologySpreadConstraint array TopologySpreadConstraints to be used in the Pod.
image string Image name to be used as metrics exporter. The supported format is <image>:<tag>.
Only mysqld-exporter >= v0.15.0 is supported: https://github.com/prometheus/mysqld_exporter
imagePullPolicy PullPolicy ImagePullPolicy is the image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Enum: [Always Never IfNotPresent]
port integer Port where the exporter will be listening for connections.

Galera

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

Appears in: - MariaDBSpec

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

GaleraAgent

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

Appears in: - Galera - GaleraSpec

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 array Env represents the environment variables to be injected in a container.
envFrom EnvFromSource array EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
volumeMounts VolumeMount array VolumeMounts to be used in the Container.
livenessProbe Probe LivenessProbe to be used in the Container.
readinessProbe Probe ReadinessProbe to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
securityContext SecurityContext SecurityContext holds security configuration that will be applied to a container.
image string Image name to be used by the MariaDB instances. The supported format is <image>:<tag>.
imagePullPolicy PullPolicy ImagePullPolicy is the image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Enum: [Always Never IfNotPresent]
port integer Port where the agent will be listening for connections.
kubernetesAuth KubernetesAuth KubernetesAuth to be used by the agent container
gracefulShutdownTimeout Duration GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests.

GaleraConfig

GaleraConfig defines storage options for the Galera configuration files.

Appears in: - Galera - GaleraSpec

Field Description Default Validation
reuseStorageVolume boolean ReuseStorageVolume indicates that storage volume used by MariaDB should be reused to store the Galera configuration files.
It defaults to false, which implies that a dedicated volume for the Galera configuration files is provisioned.
volumeClaimTemplate VolumeClaimTemplate VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB.

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

Field Description Default Validation
enabled boolean Enabled is a flag to enable GaleraRecovery.
minClusterSize IntOrString 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%).
If Galera consistently reports less replicas than this value for the given 'ClusterHealthyTimeout' interval, a cluster recovery is iniated.
It defaults to '1' replica.
clusterMonitorInterval Duration ClusterMonitorInterval represents the interval used to monitor the Galera cluster health.
clusterHealthyTimeout Duration ClusterHealthyTimeout represents the duration at which a Galera cluster, that consistently failed health checks,
is considered unhealthy, and consequently the Galera recovery process will be initiated by the operator.
clusterBootstrapTimeout Duration ClusterBootstrapTimeout is the time limit for bootstrapping a cluster.
Once this timeout is reached, the Galera recovery state is reset and a new cluster bootstrap will be attempted.
podRecoveryTimeout Duration PodRecoveryTimeout is the time limit for recevorying the sequence of a Pod during the cluster recovery.
podSyncTimeout Duration PodSyncTimeout is the time limit for a Pod to join the cluster after having performed a cluster bootstrap during the cluster recovery.
forceClusterBootstrapInPod string ForceClusterBootstrapInPod allows you to manually initiate the bootstrap process in a specific Pod.
IMPORTANT: Use this option only in exceptional circumstances. Not selecting the Pod with the highest sequence number may result in data loss.
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.
job GaleraRecoveryJob Job defines a Job that co-operates with mariadb-operator by performing the Galera cluster recovery .

GaleraRecoveryJob

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

Appears in: - GaleraRecovery

Field Description Default Validation
metadata Metadata Refer to Kubernetes API documentation for fields of metadata.
resources ResourceRequirements Resouces describes the compute resource requirements.

GaleraSpec

GaleraSpec is the Galera desired state specification.

Appears in: - Galera

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

GeneratedSecretKeyRef

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

Appears in: - MariaDBSpec - MariadbMetrics - MaxScaleAuth - ReplicaReplication

Field Description Default Validation
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 k8s.mariadb.com/v1alpha1
kind string Grant
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec GrantSpec

GrantSpec

GrantSpec defines the desired state of Grant

Appears in: - Grant

Field Description Default Validation
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations.
retryInterval Duration RetryInterval is the interval used to perform retries.
cleanupPolicy CleanupPolicy CleanupPolicy defines the behavior for cleaning up a SQL resource. Enum: [Skip Delete]
mariaDbRef MariaDBRef MariaDBRef is a reference to a MariaDB object. Required: {}
privileges string array Privileges to use in the Grant. MinItems: 1
Required: {}
database string Database to use in the Grant. *
table string Table to use in the Grant. *
username string Username to use in the Grant. Required: {}
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 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

Field Description
CurrentPos GtidCurrentPos indicates the union of gtid_binlog_pos and gtid_slave_pos will be used when replicating from master.
This is the default Gtid mode.
SlavePos GtidSlavePos indicates that gtid_slave_pos will be used when replicating from master.

HealthCheck

HealthCheck defines intervals for performing health checks.

Appears in: - ConnectionSpec - ConnectionTemplate

Field Description Default Validation
interval Duration Interval used to perform health checks.
retryInterval Duration RetryInterval is the interval used to perform health check retries.

Job

Job defines a Job used to be used with MariaDB.

Appears in: - BootstrapFrom - Galera - GaleraSpec

Field Description Default Validation
metadata Metadata Refer to Kubernetes API documentation for fields of metadata.
affinity AffinityConfig Affinity to be used in the Pod.
resources ResourceRequirements Resouces 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 - RestoreSpec - SqlJobSpec

Field Description Default Validation
args string array Args to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
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 - RestoreSpec - SqlJobSpec

Field Description Default Validation
podMetadata Metadata PodMetadata defines extra metadata for the Pod.
imagePullSecrets LocalObjectReference array ImagePullSecrets is the list of pull Secrets to be used to pull the image.
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 Affinity to be used in the Pod.
nodeSelector object (keys:string, values:string) NodeSelector to be used in the Pod.
tolerations Toleration 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: - GaleraAgent

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

MariaDB

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

Field Description Default Validation
apiVersion string k8s.mariadb.com/v1alpha1
kind string MariaDB
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec MariaDBSpec

MariaDBMaxScaleSpec

MariaDBMaxScaleSpec defines a reduced version of MaxScale to be used with the current MariaDB.

Appears in: - MariaDBSpec

Field Description Default Validation
enabled boolean Enabled is a flag to enable a MaxScale instance to be used with the current MariaDB.
image string Image name to be used by the MaxScale instances. The supported format is <image>:<tag>.
Only MariaDB official images are supported.
imagePullPolicy PullPolicy ImagePullPolicy is the image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Enum: [Always Never IfNotPresent]
services MaxScaleService array Services define how the traffic is forwarded to the MariaDB servers.
monitor MaxScaleMonitor Monitor monitors MariaDB server instances.
admin MaxScaleAdmin Admin configures the admin REST API and GUI.
config MaxScaleConfig Config defines the MaxScale configuration.
auth MaxScaleAuth Auth defines the credentials required for MaxScale to connect to MariaDB.
metrics MaxScaleMetrics Metrics configures metrics and how to scrape them.
connection ConnectionTemplate Connection provides a template to define the Connection for MaxScale.
replicas integer Replicas indicates the number of desired instances.
podDisruptionBudget PodDisruptionBudget PodDisruptionBudget defines the budget for replica availability.
updateStrategy StatefulSetUpdateStrategy UpdateStrategy defines the update strategy for the StatefulSet object.
kubernetesService ServiceTemplate KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.
guiKubernetesService ServiceTemplate GuiKubernetesService define a template for a Kubernetes Service object to connect to MaxScale's GUI.
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations.

MariaDBRef

MariaDBRef is a reference to a MariaDB object.

Appears in: - BackupSpec - ConnectionSpec - DatabaseSpec - GrantSpec - MaxScaleSpec - RestoreSpec - SqlJobSpec - UserSpec

Field Description Default Validation
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

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 array Env represents the environment variables to be injected in a container.
envFrom EnvFromSource array EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
volumeMounts VolumeMount array VolumeMounts to be used in the Container.
livenessProbe Probe LivenessProbe to be used in the Container.
readinessProbe Probe ReadinessProbe to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
securityContext SecurityContext SecurityContext holds security configuration that will be applied to a container.
podMetadata Metadata PodMetadata defines extra metadata for the Pod.
imagePullSecrets LocalObjectReference array ImagePullSecrets is the list of pull Secrets to be used to pull the image.
initContainers Container array InitContainers to be used in the Pod.
sidecarContainers Container array SidecarContainers to be used in the Pod.
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 Affinity to be used in the Pod.
nodeSelector object (keys:string, values:string) NodeSelector to be used in the Pod.
tolerations Toleration array Tolerations to be used in the Pod.
volumes Volume array Volumes to be used in the Pod.
priorityClassName string PriorityClassName to be used in the Pod.
topologySpreadConstraints TopologySpreadConstraint array TopologySpreadConstraints to be used in the Pod.
suspend boolean Suspend indicates whether the current resource should be suspended or not.
This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.
false
image string Image name to be used by the MariaDB instances. The supported format is <image>:<tag>.
Only MariaDB official images are supported.
imagePullPolicy PullPolicy ImagePullPolicy is the image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Enum: [Always Never IfNotPresent]
inheritMetadata Metadata InheritMetadata defines the metadata to be inherited by children resources.
rootPasswordSecretKeyRef 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 Username is the initial username to be created by the operator once MariaDB is ready. It has all privileges on the initial database.
The initial User will have ALL PRIVILEGES in the initial Database.
passwordSecretKeyRef GeneratedSecretKeyRef PasswordSecretKeyRef is a reference to a Secret that contains the password to be used by the initial User.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
passwordHashSecretKeyRef SecretKeySelector PasswordHashSecretKeyRef is a reference to the password hash to be used by the initial User.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password hash.
passwordPlugin PasswordPlugin PasswordPlugin is a reference to the password plugin and arguments to be used by the initial User.
myCnf string MyCnf allows to specify the my.cnf file mounted by Mariadb.
Updating this field will trigger an update to the Mariadb resource.
myCnfConfigMapKeyRef ConfigMapKeySelector MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap.
If not provided, it will be defaulted with a reference to a ConfigMap containing the MyCnf field.
If the referred ConfigMap is labeled with "k8s.mariadb.com/watch", an update to the Mariadb resource will be triggered when the ConfigMap is updated.
timeZone string TimeZone sets the default timezone. If not provided, it defaults to SYSTEM and the timezone data is not loaded.
bootstrapFrom BootstrapFrom BootstrapFrom defines a source to bootstrap from.
storage Storage Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.
metrics MariadbMetrics Metrics configures metrics and how to scrape them.
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 Replication configures high availability via Galera.
maxScaleRef ObjectReference MaxScaleRef is a reference to a MaxScale resource to be used with the current MariaDB.
Providing this field implies delegating high availability tasks such as primary failover to MaxScale.
maxScale MariaDBMaxScaleSpec MaxScale is the MaxScale specification that defines the MaxScale resource to be used with the current MariaDB.
When enabling this field, MaxScaleRef is automatically set.
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
podDisruptionBudget PodDisruptionBudget PodDisruptionBudget defines the budget for replica availability.
updateStrategy UpdateStrategy UpdateStrategy defines how a MariaDB resource is updated.
service ServiceTemplate Service defines a template to configure the general Service object.
The network traffic of this Service will be routed to all Pods.
connection ConnectionTemplate Connection defines a template to configure the general Connection object.
This Connection provides the initial User access to the initial Database.
It will make use of the Service to route network traffic to all Pods.
primaryService ServiceTemplate PrimaryService defines a template to configure the primary Service object.
The network traffic of this Service will be routed to the primary Pod.
primaryConnection ConnectionTemplate PrimaryConnection defines a template to configure the primary Connection object.
This Connection provides the initial User access to the initial Database.
It will make use of the PrimaryService to route network traffic to the primary Pod.
secondaryService ServiceTemplate SecondaryService defines a template to configure the secondary Service object.
The network traffic of this Service will be routed to the secondary Pods.
secondaryConnection ConnectionTemplate SecondaryConnection defines a template to configure the secondary Connection object.
This Connection provides the initial User access to the initial Database.
It will make use of the SecondaryService to route network traffic to the secondary Pods.

MariadbMetrics

MariadbMetrics defines the metrics for a MariaDB.

Appears in: - MariaDBSpec

Field Description Default Validation
enabled boolean Enabled is a flag to enable Metrics
exporter Exporter Exporter defines the metrics exporter container.
serviceMonitor ServiceMonitor ServiceMonitor defines the ServiceMonior object.
username string Username is the username of the monitoring user used by the exporter.
passwordSecretKeyRef GeneratedSecretKeyRef PasswordSecretKeyRef is a reference to the password of the monitoring user used by the exporter.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.

MaxScale

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

Field Description Default Validation
apiVersion string k8s.mariadb.com/v1alpha1
kind string MaxScale
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec MaxScaleSpec

MaxScaleAdmin

MaxScaleAdmin configures the admin REST API and GUI.

Appears in: - MariaDBMaxScaleSpec - 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: - MariaDBMaxScaleSpec - MaxScaleSpec

Field Description Default Validation
generate boolean Generate defies whether the operator should generate users and grants for MaxScale to work.
It only supports MariaDBs specified via spec.mariaDbRef.
adminUsername string AdminUsername is an admin username to call the admin REST API. It is defaulted if not provided.
adminPasswordSecretKeyRef 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 MetricsPasswordSecretKeyRef is Secret key reference to the metrics password to call the admib REST API. It is defaulted if metrics are enabled.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
clientUsername string ClientUsername is the user to connect to MaxScale. It is defaulted if not provided.
clientPasswordSecretKeyRef GeneratedSecretKeyRef ClientPasswordSecretKeyRef is Secret key reference to the password to connect to MaxScale. It is defaulted if not provided.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
clientMaxConnections integer ClientMaxConnections defines the maximum number of connections that the client can establish.
If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.
It defaults to 30 times the number of MaxScale replicas.
serverUsername string ServerUsername is the user used by MaxScale to connect to MariaDB server. It is defaulted if not provided.
serverPasswordSecretKeyRef GeneratedSecretKeyRef ServerPasswordSecretKeyRef is Secret key reference to the password used by MaxScale to connect to MariaDB server. It is defaulted if not provided.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
serverMaxConnections integer ServerMaxConnections defines the maximum number of connections that the server can establish.
If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.
It defaults to 30 times the number of MaxScale replicas.
monitorUsername string MonitorUsername is the user used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.
monitorPasswordSecretKeyRef GeneratedSecretKeyRef MonitorPasswordSecretKeyRef is Secret key reference to the password used by MaxScale monitor to connect to MariaDB server. It is defaulted if not provided.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
monitorMaxConnections integer MonitorMaxConnections defines the maximum number of connections that the monitor can establish.
If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.
It defaults to 30 times the number of MaxScale replicas.
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 SyncPasswordSecretKeyRef is Secret key reference to the password used by MaxScale config to connect to MariaDB server. It is defaulted when HA is enabled.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
syncMaxConnections integer SyncMaxConnections defines the maximum number of connections that the sync can establish.
If HA is enabled, make sure to increase this value, as more MaxScale replicas implies more connections.
It defaults to 30 times the number of MaxScale replicas.

MaxScaleConfig

MaxScaleConfig defines the MaxScale configuration.

Appears in: - MariaDBMaxScaleSpec - MaxScaleSpec

Field Description Default Validation
params object (keys:string, values:string) Params is a key value pair of parameters to be used in the MaxScale static configuration file.
Any parameter supported by MaxScale may be specified here. See reference:
https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#global-settings.
volumeClaimTemplate VolumeClaimTemplate VolumeClaimTemplate provides a template to define the PVCs for storing MaxScale runtime configuration files. It is defaulted if not provided.
sync 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

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 Interval defines the config synchronization interval. It is defaulted if not provided.
timeout Duration 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

Field Description Default Validation
suspend boolean Suspend indicates whether the current resource should be suspended or not.
This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.
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. Required: {}
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) Params defines extra parameters to pass to the listener.
Any parameter supported by MaxScale may be specified here. See reference:
https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#listener_1.

MaxScaleMetrics

MaxScaleMetrics defines the metrics for a Maxscale.

Appears in: - MariaDBMaxScaleSpec - MaxScaleSpec

Field Description Default Validation
enabled boolean Enabled is a flag to enable Metrics
exporter Exporter Exporter defines the metrics exporter container.
serviceMonitor ServiceMonitor ServiceMonitor defines the ServiceMonior object.

MaxScaleMonitor

MaxScaleMonitor monitors MariaDB server instances

Appears in: - MariaDBMaxScaleSpec - MaxScaleSpec

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

MaxScaleServer

MaxScaleServer defines a MariaDB server to forward traffic to.

Appears in: - MaxScaleSpec

Field Description Default Validation
name string Name is the identifier of the MariaDB server. Required: {}
address string Address is the network address of the MariaDB server. Required: {}
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) Params defines extra parameters to pass to the server.
Any parameter supported by MaxScale may be specified here. See reference:
https://mariadb.com/kb/en/mariadb-maxscale-2308-mariadb-maxscale-configuration-guide/#server_1.

MaxScaleService

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

Appears in: - MariaDBMaxScaleSpec - MaxScaleSpec

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

MaxScaleSpec

MaxScaleSpec defines the desired state of MaxScale.

Appears in: - 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 array Env represents the environment variables to be injected in a container.
envFrom EnvFromSource array EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
volumeMounts VolumeMount array VolumeMounts to be used in the Container.
livenessProbe Probe LivenessProbe to be used in the Container.
readinessProbe Probe ReadinessProbe to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
securityContext SecurityContext SecurityContext holds security configuration that will be applied to a container.
podMetadata Metadata PodMetadata defines extra metadata for the Pod.
imagePullSecrets LocalObjectReference array ImagePullSecrets is the list of pull Secrets to be used to pull the image.
initContainers Container array InitContainers to be used in the Pod.
sidecarContainers Container array SidecarContainers to be used in the Pod.
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 Affinity to be used in the Pod.
nodeSelector object (keys:string, values:string) NodeSelector to be used in the Pod.
tolerations Toleration array Tolerations to be used in the Pod.
volumes Volume array Volumes to be used in the Pod.
priorityClassName string PriorityClassName to be used in the Pod.
topologySpreadConstraints TopologySpreadConstraint array TopologySpreadConstraints to be used in the Pod.
suspend boolean Suspend indicates whether the current resource should be suspended or not.
This can be useful for maintenance, as disabling the reconciliation prevents the operator from interfering with user operations during maintenance activities.
false
mariaDbRef MariaDBRef MariaDBRef is a reference to the MariaDB that MaxScale points to. It is used to initialize the servers field.
servers MaxScaleServer array Servers are the MariaDB servers to forward traffic to. It is required if 'spec.mariaDbRef' is not provided.
image string Image name to be used by the MaxScale instances. The supported format is <image>:<tag>.
Only MaxScale official images are supported.
imagePullPolicy PullPolicy ImagePullPolicy is the image pull policy. One of Always, Never or IfNotPresent. If not defined, it defaults to IfNotPresent. Enum: [Always Never IfNotPresent]
inheritMetadata Metadata InheritMetadata defines the metadata to be inherited by children resources.
services MaxScaleService array Services define how the traffic is forwarded to the MariaDB servers. It is defaulted if not provided.
monitor MaxScaleMonitor Monitor monitors MariaDB server instances. It is required if 'spec.mariaDbRef' is not provided.
admin MaxScaleAdmin Admin configures the admin REST API and GUI.
config MaxScaleConfig Config defines the MaxScale configuration.
auth MaxScaleAuth Auth defines the credentials required for MaxScale to connect to MariaDB.
metrics MaxScaleMetrics Metrics configures metrics and how to scrape them.
connection ConnectionTemplate Connection provides a template to define the Connection for MaxScale.
replicas integer Replicas indicates the number of desired instances. 1
podDisruptionBudget PodDisruptionBudget PodDisruptionBudget defines the budget for replica availability.
updateStrategy StatefulSetUpdateStrategy UpdateStrategy defines the update strategy for the StatefulSet object.
kubernetesService ServiceTemplate KubernetesService defines a template for a Kubernetes Service object to connect to MaxScale.
guiKubernetesService ServiceTemplate GuiKubernetesService defines a template for a Kubernetes Service object to connect to MaxScale's GUI.
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations. If not defined, it defaults to 10s.

Metadata

Metadata defines the metadata to added to resources.

Appears in: - BackupSpec - Exporter - GaleraRecoveryJob - Job - JobPodTemplate - MariaDBSpec - MaxScaleSpec - PodTemplate - RestoreSpec - SecretTemplate - ServiceTemplate - SqlJobSpec - 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

Field Description
mariadbmon MonitorModuleMariadb is a monitor to be used with MariaDB servers.
galeramon MonitorModuleGalera is a monitor to be used with Galera servers.

PasswordPlugin

PasswordPlugin defines the password plugin and its arguments.

Appears in: - MariaDBSpec - UserSpec

Field Description Default Validation
pluginNameSecretKeyRef SecretKeySelector PluginNameSecretKeyRef is a reference to the authentication plugin to be used by the User.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the authentication plugin.
pluginArgSecretKeyRef SecretKeySelector PluginArgSecretKeyRef is a reference to the arguments to be provided to the authentication plugin for the User.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the authentication plugin arguments.

PodDisruptionBudget

PodDisruptionBudget is the Pod availability bundget for a MariaDB

Appears in: - MariaDBMaxScaleSpec - MariaDBSpec - MaxScaleSpec

Field Description Default Validation
minAvailable IntOrString MinAvailable defines the number of minimum available Pods.
maxUnavailable IntOrString MaxUnavailable defines the number of maximum unavailable Pods.

PodTemplate

PodTemplate defines a template to configure Container objects.

Appears in: - Exporter - MariaDBSpec - MaxScaleSpec

Field Description Default Validation
podMetadata Metadata PodMetadata defines extra metadata for the Pod.
imagePullSecrets LocalObjectReference array ImagePullSecrets is the list of pull Secrets to be used to pull the image.
initContainers Container array InitContainers to be used in the Pod.
sidecarContainers Container array SidecarContainers to be used in the Pod.
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 Affinity to be used in the Pod.
nodeSelector object (keys:string, values:string) NodeSelector to be used in the Pod.
tolerations Toleration array Tolerations to be used in the Pod.
volumes Volume array Volumes to be used in the Pod.
priorityClassName string PriorityClassName to be used in the Pod.
topologySpreadConstraints TopologySpreadConstraint array TopologySpreadConstraints to be used in the Pod.

PrimaryGalera

PrimaryGalera is the Galera configuration for the primary node.

Appears in: - Galera - 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.
automaticFailover boolean AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.

PrimaryReplication

PrimaryReplication is the replication configuration for the primary node.

Appears in: - Replication - 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.
automaticFailover boolean AutomaticFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.

ReplicaReplication

ReplicaReplication is the replication configuration for the replica nodes.

Appears in: - Replication - ReplicationSpec

Field Description Default Validation
waitPoint WaitPoint WaitPoint defines whether the transaction should wait for ACK before committing to the storage engine.
More info: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.
Enum: [AfterSync AfterCommit]
gtid Gtid Gtid indicates which Global Transaction ID should be used when connecting a replica to the master.
See: https://mariadb.com/kb/en/gtid/#using-current_pos-vs-slave_pos.
Enum: [CurrentPos SlavePos]
replPasswordSecretKeyRef GeneratedSecretKeyRef ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user.
connectionTimeout Duration ConnectionTimeout to be used when the replica connects to the primary.
connectionRetries integer ConnectionRetries to be used when the replica connects to the primary.
syncTimeout Duration SyncTimeout defines the timeout for a replica to be synced with the primary when performing a primary switchover.
If the timeout is reached, the replica GTID will be reset and the switchover will continue.

Replication

Replication allows you to enable single-master HA via semi-synchronours replication in your MariaDB cluster.

Appears in: - MariaDBSpec

Field Description Default Validation
primary PrimaryReplication Primary is the replication configuration for the primary node.
replica ReplicaReplication ReplicaReplication is the replication configuration for the replica nodes.
syncBinlog boolean SyncBinlog indicates whether the binary log should be synchronized to the disk after every event.
It trades off performance for consistency.
See: https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#sync_binlog.
probesEnabled boolean ProbesEnabled indicates to use replication specific liveness and readiness probes.
This probes check that the primary can receive queries and that the replica has the replication thread running.
enabled boolean Enabled is a flag to enable Replication.

ReplicationSpec

ReplicationSpec is the Replication desired state specification.

Appears in: - Replication

Field Description Default Validation
primary PrimaryReplication Primary is the replication configuration for the primary node.
replica ReplicaReplication ReplicaReplication is the replication configuration for the replica nodes.
syncBinlog boolean SyncBinlog indicates whether the binary log should be synchronized to the disk after every event.
It trades off performance for consistency.
See: https://mariadb.com/kb/en/replication-and-binary-log-system-variables/#sync_binlog.
probesEnabled boolean ProbesEnabled indicates to use replication specific liveness and readiness probes.
This probes check that the primary can receive queries and that the replica has the replication thread running.

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 k8s.mariadb.com/v1alpha1
kind string Restore
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec RestoreSpec

RestoreSource

RestoreSource defines a source for restoring a MariaDB.

Appears in: - BootstrapFrom - RestoreSpec

Field Description Default Validation
backupRef LocalObjectReference BackupRef is a reference to a Backup object. It has priority over S3 and Volume.
s3 S3 S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.
volume VolumeSource Volume is a Kubernetes Volume object that contains a backup.
targetRecoveryTime Time TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective.
It is used to determine the closest restoration source in time.

RestoreSpec

RestoreSpec defines the desired state of restore

Appears in: - Restore

Field Description Default Validation
args string array Args to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
securityContext SecurityContext SecurityContext holds security configuration that will be applied to a container.
podMetadata Metadata PodMetadata defines extra metadata for the Pod.
imagePullSecrets LocalObjectReference array ImagePullSecrets is the list of pull Secrets to be used to pull the image.
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 Affinity to be used in the Pod.
nodeSelector object (keys:string, values:string) NodeSelector to be used in the Pod.
tolerations Toleration array Tolerations to be used in the Pod.
priorityClassName string PriorityClassName to be used in the Pod.
backupRef LocalObjectReference BackupRef is a reference to a Backup object. It has priority over S3 and Volume.
s3 S3 S3 defines the configuration to restore backups from a S3 compatible storage. It has priority over Volume.
volume VolumeSource Volume is a Kubernetes Volume object that contains a backup.
targetRecoveryTime Time TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective.
It is used to determine the closest restoration source in time.
mariaDbRef MariaDBRef MariaDBRef is a reference to a MariaDB object. Required: {}
database string Database defines the logical database to be restored. If not provided, all databases available in the backup are restored.
IMPORTANT: The database must previously exist.
logLevel string LogLevel to be used n the Backup Job. It defaults to 'info'. info
backoffLimit integer BackoffLimit defines the maximum number of attempts to successfully perform a Backup. 5
restartPolicy RestartPolicy RestartPolicy to be added to the Backup Job. OnFailure Enum: [Always OnFailure Never]
inheritMetadata Metadata InheritMetadata defines the metadata to be inherited by children resources.

S3

Appears in: - BackupStorage - BootstrapFrom - RestoreSource - RestoreSpec

Field Description Default Validation
bucket string Bucket is the name Name of the bucket to store backups. Required: {}
endpoint string Endpoint is the S3 API endpoint without scheme. Required: {}
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 AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id. Required: {}
secretAccessKeySecretKeyRef SecretKeySelector AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key. Required: {}
sessionTokenSecretKeyRef SecretKeySelector SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.
tls TLS TLS provides the configuration required to establish TLS connections with S3.

SQLTemplate

SQLTemplate defines a template to customize SQL objects.

Appears in: - DatabaseSpec - GrantSpec - UserSpec

Field Description Default Validation
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations.
retryInterval Duration RetryInterval is the interval used to perform retries.
cleanupPolicy CleanupPolicy CleanupPolicy defines the behavior for cleaning up a SQL resource. Enum: [Skip Delete]

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

Field Description
rsync SSTRsync is an SST based on rsync.
mariabackup SSTMariaBackup is an SST based on mariabackup. It is the recommended SST.
mysqldump SSTMysqldump is an SST based on mysqldump.

Schedule

Schedule contains parameters to define a schedule

Appears in: - BackupSpec - SqlJobSpec

Field Description Default Validation
cron string Cron is a cron expression that defines the schedule. Required: {}
suspend boolean Suspend defines whether the schedule is active or not. false

SecretTemplate

SecretTemplate defines a template to customize Secret objects.

Appears in: - ConnectionSpec - ConnectionTemplate

Field Description Default Validation
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.

ServiceMonitor

ServiceMonitor defines a prometheus ServiceMonitor object.

Appears in: - MariadbMetrics - 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.

ServiceRouter

Underlying type: string

ServiceRouter defines the type of service router.

Appears in: - MaxScaleService

Field Description
readwritesplit ServiceRouterReadWriteSplit splits the load based on the queries. Write queries are performed on master and read queries on the replicas.
readconnroute ServiceRouterReadConnRoute splits the load based on the connections. Each connection is assigned to a server.

ServiceTemplate

ServiceTemplate defines a template to customize Service objects.

Appears in: - MariaDBMaxScaleSpec - MariaDBSpec - MaxScaleSpec

Field Description Default Validation
type ServiceType Type is the Service type. One of ClusterIP, NodePort or LoadBalancer. If not defined, it defaults to ClusterIP. ClusterIP Enum: [ClusterIP NodePort LoadBalancer]
metadata Metadata Refer to Kubernetes API documentation for fields of metadata.
loadBalancerIP string LoadBalancerIP Service field.
loadBalancerSourceRanges string array LoadBalancerSourceRanges Service field.
externalTrafficPolicy ServiceExternalTrafficPolicy ExternalTrafficPolicy Service field.
sessionAffinity ServiceAffinity SessionAffinity Service field.
allocateLoadBalancerNodePorts boolean AllocateLoadBalancerNodePorts Service field.

SqlJob

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

Field Description Default Validation
apiVersion string k8s.mariadb.com/v1alpha1
kind string SqlJob
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec SqlJobSpec

SqlJobSpec

SqlJobSpec defines the desired state of SqlJob

Appears in: - SqlJob

Field Description Default Validation
args string array Args to be used in the Container.
resources ResourceRequirements Resouces describes the compute resource requirements.
securityContext SecurityContext SecurityContext holds security configuration that will be applied to a container.
podMetadata Metadata PodMetadata defines extra metadata for the Pod.
imagePullSecrets LocalObjectReference array ImagePullSecrets is the list of pull Secrets to be used to pull the image.
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 Affinity to be used in the Pod.
nodeSelector object (keys:string, values:string) NodeSelector to be used in the Pod.
tolerations Toleration 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. Minimum: 0
failedJobsHistoryLimit integer FailedJobsHistoryLimit defines the maximum number of failed Jobs to be displayed. Minimum: 0
timeZone string TimeZone defines the timezone associated with the cron expression.
mariaDbRef MariaDBRef MariaDBRef is a reference to a MariaDB object. Required: {}
schedule Schedule Schedule defines when the SqlJob will be executed.
username string Username to be impersonated when executing the SqlJob. Required: {}
passwordSecretKeyRef SecretKeySelector UserPasswordSecretKeyRef is a reference to the impersonated user's password to be used when executing the SqlJob. Required: {}
database string Username to be used when executing the SqlJob.
dependsOn LocalObjectReference array DependsOn defines dependencies with other SqlJob objectecs.
sql string Sql is the script to be executed by the SqlJob.
sqlConfigMapKeyRef ConfigMapKeySelector SqlConfigMapKeyRef is a reference to a ConfigMap containing the Sql script.
It is defaulted to a ConfigMap with the contents of the Sql field.
backoffLimit integer BackoffLimit defines the maximum number of attempts to successfully execute a SqlJob. 5
restartPolicy RestartPolicy RestartPolicy to be added to the SqlJob Pod. OnFailure Enum: [Always OnFailure Never]
inheritMetadata Metadata InheritMetadata defines the metadata to be inherited by children resources.

Storage

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

Appears in: - 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 Size of the PVCs to be mounted by MariaDB. Required if not provided in 'VolumeClaimTemplate'. It superseeds the storage size specified in 'VolumeClaimTemplate'.
storageClassName string StorageClassName to be used to provision the PVCS. It superseeds the 'StorageClassName' specified in 'VolumeClaimTemplate'.
If not provided, the default 'StorageClass' configured in the cluster is used.
resizeInUseVolumes boolean ResizeInUseVolumes indicates whether the PVCs can be resized. The 'StorageClassName' used should have 'allowVolumeExpansion' set to 'true' to allow resizing.
It defaults to true.
waitForVolumeResize boolean 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.
It defaults to true.
volumeClaimTemplate VolumeClaimTemplate VolumeClaimTemplate provides a template to define the PVCs.

SuspendTemplate

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

Appears in: - MariaDBSpec - MaxScaleListener - MaxScaleMonitor - MaxScaleService - MaxScaleSpec

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

TLS

Appears in: - S3

Field Description Default Validation
enabled boolean Enabled is a flag to enable TLS.
caSecretKeyRef SecretKeySelector CASecretKeyRef is a reference to a Secret key containing a CA bundle in PEM format used to establish TLS connections with S3.
By default, the system trust chain will be used, but you can use this field to add more CAs to the bundle.

UpdateStrategy

UpdateStrategy defines how a MariaDB resource is updated.

Appears in: - MariaDBSpec

Field Description Default Validation
type UpdateType Type defines the type of updates. One of ReplicasFirstPrimaryLast, RollingUpdate or OnDelete. If not defined, it defaults to ReplicasFirstPrimaryLast. ReplicasFirstPrimaryLast Enum: [ReplicasFirstPrimaryLast RollingUpdate OnDelete]
rollingUpdate RollingUpdateStatefulSetStrategy RollingUpdate defines parameters for the RollingUpdate type.

UpdateType

Underlying type: string

UpdateType defines the type of update for a MariaDB resource.

Appears in: - UpdateStrategy

Field Description
ReplicasFirstPrimaryLast ReplicasFirstPrimaryLast indicates that the update will be applied to all replica Pods first and later on to the primary Pod.
The updates are applied one by one waiting until each Pod passes the readiness probe
i.e. the Pod gets synced and it is ready to receive traffic.
RollingUpdate RollingUpdateUpdateType indicates that the update will be applied by the StatefulSet controller using the RollingUpdate strategy.
This strategy is unaware of the roles that the Pod have (primary or replica) and it will
perform the update following the StatefulSet ordinal, from higher to lower.
OnDelete OnDeleteUpdateType indicates that the update will be applied by the StatefulSet controller using the OnDelete strategy.
The update will be done when the Pods get manually deleted by the user.

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 k8s.mariadb.com/v1alpha1
kind string User
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec UserSpec

UserSpec

UserSpec defines the desired state of User

Appears in: - User

Field Description Default Validation
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations.
retryInterval Duration RetryInterval is the interval used to perform retries.
cleanupPolicy CleanupPolicy CleanupPolicy defines the behavior for cleaning up a SQL resource. Enum: [Skip Delete]
mariaDbRef MariaDBRef MariaDBRef is a reference to a MariaDB object. Required: {}
passwordSecretKeyRef SecretKeySelector PasswordSecretKeyRef is a reference to the password to be used by the User.
If not provided, the account will be locked and the password will expire.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password.
passwordHashSecretKeyRef SecretKeySelector PasswordHashSecretKeyRef is a reference to the password hash to be used by the User.
If the referred Secret is labeled with "k8s.mariadb.com/watch", updates may be performed to the Secret in order to update the password hash.
passwordPlugin PasswordPlugin PasswordPlugin is a reference to the password plugin and arguments to be used by the User.
maxUserConnections integer MaxUserConnections defines the maximum number of connections that the User can establish. 10
name string Name overrides the default name provided by metadata.name. MaxLength: 80
host string Host related to the User. MaxLength: 255

VolumeClaimTemplate

VolumeClaimTemplate defines a template to customize PVC objects.

Appears in: - GaleraConfig - MaxScaleConfig - Storage

Field Description Default Validation
metadata Metadata Refer to Kubernetes API documentation for fields of metadata.

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: - ReplicaReplication

Field Description
AfterSync WaitPointAfterSync indicates that the primary waits for the replica ACK before committing the transaction to the storage engine.
This is the default WaitPoint. It trades off performance for consistency.
AfterCommit WaitPointAfterCommit indicates that the primary commits the transaction to the storage engine and waits for the replica ACK afterwards.
It trades off consistency for performance.