Skip to content

Latest commit

 

History

History
1736 lines (1057 loc) · 109 KB

API_REFERENCE.md

File metadata and controls

1736 lines (1057 loc) · 109 KB

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:

Field Description Default Validation
nodeAffinity NodeAffinity Describes node affinity scheduling rules for the pod.
podAffinity PodAffinity Describes pod affinity scheduling rules (e.g. co-locate this pod in the same node, zone, etc. as some other pod(s)).
podAntiAffinity PodAntiAffinity Describes pod anti-affinity scheduling rules (e.g. avoid putting this pod in the same node, zone, etc. as some other pod(s)).
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
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec BackupSpec

BackupSpec

BackupSpec defines the desired state of Backup

Appears in:

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

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:

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.

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
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ConnectionSpec

ConnectionSpec

ConnectionSpec defines the desired state of Connection

Appears in:

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

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:

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:

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:

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
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec DatabaseSpec

DatabaseSpec

DatabaseSpec defines the desired state of Database

Appears in:

Field Description Default Validation
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations.
retryInterval Duration RetryInterval is the interval used to perform retries.
mariaDbRef MariaDBRef MariaDBRef is a reference to a MariaDB object. Required: {}
characterSet string CharacterSet to use in the Database. utf8
collate string CharacterSet 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:

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:

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 co-operates with mariadb-operator.
initJob Job InitJob defines additional properties for the Job used to perform the initialization.
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:

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:

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:

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 (3) 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 '50%' of the replicas specified by the MariaDB object.
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.
Once this timeout is reached, the Pod is restarted.
podSyncTimeout Duration PodSyncTimeout is the time limit for a Pod to join the cluster after having performed a cluster bootstrap during the cluster recovery.
Once this timeout is reached, the Pod is restarted.

GaleraSpec

GaleraSpec is the Galera desired state specification.

Appears in:

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 co-operates with mariadb-operator.
initJob Job InitJob defines additional properties for the Job used to perform the initialization.
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:

Field Description Default Validation
name string Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
TODO: Add other useful fields. apiVersion, kind, uid?
key string The key of the secret to select from. Must be a valid secret key.
optional boolean Specify whether the Secret or its key must be defined
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
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec GrantSpec

GrantSpec

GrantSpec defines the desired state of Grant

Appears in:

Field Description Default Validation
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations.
retryInterval Duration RetryInterval is the interval used to perform retries.
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:

HealthCheck

HealthCheck defines intervals for performing health checks.

Appears in:

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:

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:

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:

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:

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
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
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:

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

Field Description Default Validation
kind string Kind of the referent.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
namespace string Namespace of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
name string Name of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
uid UID UID of the referent.
More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
apiVersion string API version of the referent.
resourceVersion string Specific resourceVersion to which this reference is made, if any.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
fieldPath string If referring to a piece of an object instead of an entire object, this string
should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
For example, if the object reference is to a container within a pod, this would take on a value like:
"spec.containers{name}" (where "name" refers to the name of the container that triggered
the event) or if no container name is specified "spec.containers[2]" (container with
index 2 in this pod). This syntax is chosen only to have some well-defined way of
referencing a part of an object.
TODO: this design is not final and this field is subject to change in the future.
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:

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 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.
database string Database is the database to be created on bootstrap.
username string Username is the username of the user to be created on bootstrap.
passwordSecretKeyRef GeneratedSecretKeyRef PasswordSecretKeyRef is a reference to the password of the initial user provided via a Secret.
myCnf string MyCnf allows to specify the my.cnf file mounted by Mariadb.
myCnfConfigMapKeyRef ConfigMapKeySelector MyCnfConfigMapKeyRef is a reference to the my.cnf config file provided via a ConfigMap.
If not provided, it will be defaulted with reference to a ConfigMap with the contents of the MyCnf field.
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.
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
port integer Port where the instances will be listening for connections. 3306
podDisruptionBudget PodDisruptionBudget PodDisruptionBudget defines the budget for replica availability.
updateStrategy StatefulSetUpdateStrategy PodDisruptionBudget defines the update strategy for the StatefulSet object.
service ServiceTemplate Service defines templates to configure the general Service object.
connection ConnectionTemplate Connection defines templates to configure the general Connection object.
primaryService ServiceTemplate PrimaryService defines templates to configure the primary Service object.
primaryConnection ConnectionTemplate PrimaryConnection defines templates to configure the primary Connection object.
secondaryService ServiceTemplate SecondaryService defines templates to configure the secondary Service object.
secondaryConnection ConnectionTemplate SecondaryConnection defines templates to configure the secondary Connection object.

MariadbMetrics

MariadbMetrics defines the metrics for a MariaDB.

Appears in:

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.

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
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec MaxScaleSpec

MaxScaleAdmin

MaxScaleAdmin configures the admin REST API and GUI.

Appears in:

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:

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

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:

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:

Field Description Default Validation
suspend boolean Suspend indicates whether the current resource should be suspended or not. Feature flag --feature-maxscale-suspend is required in the controller to enable this.
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:

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:

Field Description Default Validation
suspend boolean Suspend indicates whether the current resource should be suspended or not. Feature flag --feature-maxscale-suspend is required in the controller to enable this.
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:

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:

Field Description Default Validation
suspend boolean Suspend indicates whether the current resource should be suspended or not. Feature flag --feature-maxscale-suspend is required in the controller to enable this.
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:

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

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:

PodDisruptionBudget

PodDisruptionBudget is the Pod availability bundget for a MariaDB

Appears in:

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

PodTemplate

PodTemplate defines a template to configure Container objects.

Appears in:

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:

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:

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:

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:

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:

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.

ReplicationState

Underlying type: string

Appears in:

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
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec RestoreSpec

RestoreSource

RestoreSource defines a source for restoring a MariaDB.

Appears in:

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:

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:

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:

Field Description Default Validation
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations.
retryInterval Duration RetryInterval is the interval used to perform retries.

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:

Schedule

Schedule contains parameters to define a schedule

Appears in:

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:

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:

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:

ServiceTemplate

ServiceTemplate defines a template to customize Service objects.

Appears in:

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
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec SqlJobSpec

SqlJobSpec

SqlJobSpec defines the desired state of SqlJob

Appears in:

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.
mariaDbRef MariaDBRef MariaDBRef is a reference to a MariaDB object. Required: {}
schedule Schedule Schedule defines when the SqlJob will be executed. Required: {}
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:

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. Feature flag --feature-maxscale-suspend is required in the controller to enable this.

Appears in:

Field Description Default Validation
suspend boolean Suspend indicates whether the current resource should be suspended or not. Feature flag --feature-maxscale-suspend is required in the controller to enable this.

TLS

Appears in:

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.

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
kind string Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
apiVersion string APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec UserSpec

UserSpec

UserSpec defines the desired state of User

Appears in:

Field Description Default Validation
requeueInterval Duration RequeueInterval is used to perform requeue reconciliations.
retryInterval Duration RetryInterval is the interval used to perform retries.
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.
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:

Field Description Default Validation
accessModes PersistentVolumeAccessMode array accessModes contains the desired access modes the volume should have.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1
selector LabelSelector selector is a label query over volumes to consider for binding.
resources VolumeResourceRequirements resources represents the minimum resources the volume should have.
If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements
that are lower than previous value but must still be higher than capacity recorded in the
status field of the claim.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources
volumeName string volumeName is the binding reference to the PersistentVolume backing this claim.
storageClassName string storageClassName is the name of the StorageClass required by the claim.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1
volumeMode PersistentVolumeMode volumeMode defines what type of volume is required by the claim.
Value of Filesystem is implied when not included in claim spec.
dataSource TypedLocalObjectReference dataSource field can be used to specify either:
* An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot)
* An existing PVC (PersistentVolumeClaim)
If the provisioner or an external controller can support the specified data source,
it will create a new volume based on the contents of the specified data source.
When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef,
and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified.
If the namespace is specified, then dataSourceRef will not be copied to dataSource.
dataSourceRef TypedObjectReference dataSourceRef specifies the object from which to populate the volume with data, if a non-empty
volume is desired. This may be any object from a non-empty API group (non
core object) or a PersistentVolumeClaim object.
When this field is specified, volume binding will only succeed if the type of
the specified object matches some installed volume populator or dynamic
provisioner.
This field will replace the functionality of the dataSource field and as such
if both fields are non-empty, they must have the same value. For backwards
compatibility, when namespace isn't specified in dataSourceRef,
both fields (dataSource and dataSourceRef) will be set to the same
value automatically if one of them is empty and the other is non-empty.
When namespace is specified in dataSourceRef,
dataSource isn't set to the same value and must be empty.
There are three important differences between dataSource and dataSourceRef:
* While dataSource only allows two specific types of objects, dataSourceRef
allows any non-core object, as well as PersistentVolumeClaim objects.
* While dataSource ignores disallowed values (dropping them), dataSourceRef
preserves all values, and generates an error if a disallowed value is
specified.
* While dataSource only allows local objects, dataSourceRef allows objects
in any namespaces.
(Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled.
(Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.
volumeAttributesClassName string volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim.
If specified, the CSI driver will create or update the volume with the attributes defined
in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName,
it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass
will be applied to the claim but it's not allowed to reset this field to empty string once it is set.
If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass
will be set by the persistentvolume controller if it exists.
If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be
set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource
exists.
More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass
(Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.
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: