MariaDB
k8s.mariadb.com / v1alpha1
apiVersion: k8s.mariadb.com/v1alpha1
kind: MariaDB
metadata:
name: example
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
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
metadata
object
spec object required
MariaDBSpec defines the desired state of MariaDB
affinity object
Affinity to be used in the Pod.
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.
nodeAffinity object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeaffinity-v1-core
preferredDuringSchedulingIgnoredDuringExecution []object
preference object required
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeselectorterm-v1-core
matchExpressions []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
matchFields []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeselector-v1-core
nodeSelectorTerms []object required
matchExpressions []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
matchFields []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
podAntiAffinity object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#podantiaffinity-v1-core.
preferredDuringSchedulingIgnoredDuringExecution []object
podAffinityTerm object required
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#podaffinityterm-v1-core.
labelSelector object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#labelselector-v1-meta
matchExpressions []object
key
string required
operator
string required
A label selector operator is the set of operators that can be used in a selector requirement.
values
[]string
matchLabels
object
topologyKey
string required
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution []object
labelSelector object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#labelselector-v1-meta
matchExpressions []object
key
string required
operator
string required
A label selector operator is the set of operators that can be used in a selector requirement.
values
[]string
matchLabels
object
topologyKey
string required
args
[]string
Args to be used in the Container.
bootstrapFrom object
BootstrapFrom defines a source to bootstrap from.
azureBlob object
AzureBlob defines the configuration to restore from Azure Blob compatible storage.
This field takes precedence over the Volume source.
containerName
string required
ContainerName is the name of the storage container.
prefix
string
Prefix indicates a folder/subfolder in the container. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.
serviceURL
string required
ServiceURL is the full URL for connecting to Azure, usually in the form: http(s)://<account>.blob.core.windows.net/.
storageAccountKey object
StorageAccountKey is a reference to a Secret key containing the Azure Blob Storage Storage account Key. Pairs with StorageAccountKey for static credential authentication
key
string required
name
string
storageAccountName
string
StorageAccountName is the name of the storage account. Pairs with StorageAccountKey for static credential authentication
tls object
TLS provides the configuration required to establish TLS connections with Azure Blob Storage.
caSecretKeyRef object
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.
key
string required
name
string
enabled
boolean
Enabled is a flag to enable TLS.
backupContentType
string
BackupContentType is the backup content type available in the source to bootstrap from.
It is inferred based on the BackupRef and VolumeSnapshotRef fields. If inference is not possible, it defaults to Logical.
Set this field explicitly when using physical backups from S3 or Volume sources.
enum:
Logical, PhysicalbackupRef object
BackupRef is reference to a backup object. If the Kind is not specified, a logical Backup is assumed.
This field takes precedence over S3 and Volume sources.
kind
string
Kind of the referent.
name
string
Name of the referent.
logLevel
string
LogLevel to be used in the mariadb-operator container of the restoration Job. It defaults to 'info'.
enum:
debug, info, warn, error, dpanic, panic, fatalpointInTimeRecoveryRef object
PointInTimeRecoveryRef is a reference to a PointInTimeRecovery object.
Providing this field implies restoring the PhysicalBackup referenced in the PointInTimeRecovery object and replaying the
archived binary logs up to the point-in-time restoration target, defined by the targetRecoveryTime field.
name
string
restoreJob object
RestoreJob defines additional properties for the restoration Job.
affinity object
Affinity to be used in the Pod.
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.
nodeAffinity object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeaffinity-v1-core
preferredDuringSchedulingIgnoredDuringExecution []object
preference object required
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeselectorterm-v1-core
matchExpressions []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
matchFields []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeselector-v1-core
nodeSelectorTerms []object required
matchExpressions []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
matchFields []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
podAntiAffinity object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#podantiaffinity-v1-core.
preferredDuringSchedulingIgnoredDuringExecution []object
podAffinityTerm object required
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#podaffinityterm-v1-core.
labelSelector object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#labelselector-v1-meta
matchExpressions []object
key
string required
operator
string required
A label selector operator is the set of operators that can be used in a selector requirement.
values
[]string
matchLabels
object
topologyKey
string required
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution []object
labelSelector object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#labelselector-v1-meta
matchExpressions []object
key
string required
operator
string required
A label selector operator is the set of operators that can be used in a selector requirement.
values
[]string
matchLabels
object
topologyKey
string required
args
[]string
Args to be used in the Container.
metadata object
Metadata defines additional metadata for the bootstrap Jobs.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
nodeSelector
object
NodeSelector to be used in the Pod.
resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
tolerations []object
Tolerations to be used in the Pod.
effect
string
Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
key
string
Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys.
operator
string
Operator represents a key's relationship to the value.
Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod can
tolerate all taints of a particular category.
Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
tolerationSeconds
integer
TolerationSeconds represents the period of time the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
it is not set, which means tolerate the taint forever (do not evict). Zero and
negative values will be treated as 0 (evict immediately) by the system.
format:
int64
value
string
Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string.
s3 object
S3 defines the configuration to restore backups from a S3 compatible storage.
This field takes precedence over the Volume source.
accessKeyIdSecretKeyRef object
AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 access key id.
key
string required
name
string
bucket
string required
Bucket is the name Name of the bucket to store backups.
endpoint
string required
Endpoint is the S3 API endpoint without scheme.
prefix
string
Prefix indicates a folder/subfolder in the bucket. For example: mariadb/ or mariadb/backups. A trailing slash '/' is added if not provided.
region
string
Region is the S3 region name to use.
secretAccessKeySecretKeyRef object
AccessKeyIdSecretKeyRef is a reference to a Secret key containing the S3 secret key.
key
string required
name
string
sessionTokenSecretKeyRef object
SessionTokenSecretKeyRef is a reference to a Secret key containing the S3 session token.
key
string required
name
string
ssec object
SSEC is a reference to a Secret containing the SSE-C (Server-Side Encryption with Customer-Provided Keys) key.
The secret must contain a 32-byte key (256 bits) in the specified key.
This enables server-side encryption where you provide and manage the encryption key.
customerKeySecretKeyRef object required
CustomerKeySecretKeyRef is a reference to a Secret key containing the SSE-C customer-provided encryption key.
The key must be a 32-byte (256-bit) key encoded in base64.
key
string required
name
string
tls object
TLS provides the configuration required to establish TLS connections with S3.
caSecretKeyRef object
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.
key
string required
name
string
enabled
boolean
Enabled is a flag to enable TLS.
stagingStorage object
StagingStorage defines the temporary storage used to keep external backups and binary logs (i.e. S3) while they are being processed.
It defaults to an emptyDir volume, meaning that the backups will be temporarily stored in the node where the Job is scheduled.
persistentVolumeClaim object
PersistentVolumeClaim is a Kubernetes PVC specification.
accessModes
[]string
resources object
VolumeResourceRequirements describes the storage resource requirements for a volume.
limits
object
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
requests
object
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
selector object
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
storageClassName
string
volumeAttributesClassName
string
VolumeAttributesClassName references a VolumeAttributesClass for the PVC.
volume object
Volume is a Kubernetes volume specification.
csi object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#csivolumesource-v1-core.
driver
string required
fsType
string
nodePublishSecretRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
readOnly
boolean
volumeAttributes
object
emptyDir object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#emptydirvolumesource-v1-core.
medium
string
StorageMedium defines ways that storage can be allocated to a volume.
sizeLimit
string | integer
string pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$hostPath object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#hostpathvolumesource-v1-core
path
string required
type
string
nfs object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nfsvolumesource-v1-core.
path
string required
readOnly
boolean
server
string required
persistentVolumeClaim object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#persistentvolumeclaimvolumesource-v1-core.
claimName
string required
readOnly
boolean
targetRecoveryTime
string
TargetRecoveryTime is a RFC3339 (1970-01-01T00:00:00Z) date and time that defines the point in time recovery objective.
It is used to determine the closest restoration source in time.
format:
date-timevolume object
Volume is a Kubernetes Volume object that contains a backup.
csi object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#csivolumesource-v1-core.
driver
string required
fsType
string
nodePublishSecretRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
readOnly
boolean
volumeAttributes
object
emptyDir object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#emptydirvolumesource-v1-core.
medium
string
StorageMedium defines ways that storage can be allocated to a volume.
sizeLimit
string | integer
string pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$hostPath object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#hostpathvolumesource-v1-core
path
string required
type
string
nfs object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nfsvolumesource-v1-core.
path
string required
readOnly
boolean
server
string required
persistentVolumeClaim object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#persistentvolumeclaimvolumesource-v1-core.
claimName
string required
readOnly
boolean
volumeSnapshotRef object
VolumeSnapshotRef is a reference to a VolumeSnapshot object.
This field takes precedence over S3 and Volume sources.
name
string
cleanupPolicy
string
CleanupPolicy defines the behavior for cleaning up the initial User, Database, and Grant created by the operator.
enum:
Skip, Delete
command
[]string
Command to be used in the Container.
connection object
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.
healthCheck object
HealthCheck to be used in the Connection.
interval
string
Interval used to perform health checks.
retryInterval
string
RetryInterval is the interval used to perform health check retries.
params
object
Params 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.
format:
int32
secretName
string
SecretName to be used in the Connection.
secretTemplate object
SecretTemplate to be used in the Connection.
databaseKey
string
DatabaseKey to be used in the Secret.
format
string
Format to be used in the Secret.
hostKey
string
HostKey to be used in the Secret.
key
string
Key to be used in the Secret.
metadata object
Metadata to be added to the Secret object.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
passwordKey
string
PasswordKey to be used in the Secret.
portKey
string
PortKey to be used in the Secret.
usernameKey
string
UsernameKey to be used in the Secret.
serviceName
string
ServiceName to be used in the Connection.
database
string
Database is the name of the initial Database.
enableServiceLinks
boolean
EnableServiceLinks to be used in the Pod.
env []object
Env represents the environment variables to be injected in a container.
name
string required
Name of the environment variable. Must be a C_IDENTIFIER.
value
string
valueFrom object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#envvarsource-v1-core.
configMapKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#configmapkeyselector-v1-core.
key
string required
name
string
fieldRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#objectfieldselector-v1-core.
apiVersion
string
fieldPath
string required
secretKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#secretkeyselector-v1-core.
key
string required
name
string
envFrom []object
EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
configMapRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
prefix
string
secretRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
galera object
Replication configures high availability via Galera.
agent object
Agent is a sidecar agent that co-operates with mariadb-operator.
args
[]string
Args to be used in the Container.
basicAuth object
BasicAuth to be used by the agent container
enabled
boolean
Enabled is a flag to enable BasicAuth
passwordSecretKeyRef object
PasswordSecretKeyRef to be used for basic authentication
generate
boolean
Generate indicates whether the Secret should be generated if the Secret referenced is not present.
key
string required
name
string
username
string
Username to be used for basic authentication
command
[]string
Command to be used in the Container.
env []object
Env represents the environment variables to be injected in a container.
name
string required
Name of the environment variable. Must be a C_IDENTIFIER.
value
string
valueFrom object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#envvarsource-v1-core.
configMapKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#configmapkeyselector-v1-core.
key
string required
name
string
fieldRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#objectfieldselector-v1-core.
apiVersion
string
fieldPath
string required
secretKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#secretkeyselector-v1-core.
key
string required
name
string
envFrom []object
EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
configMapRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
prefix
string
secretRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
gracefulShutdownTimeout
string
GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests.
image
string
Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.
imagePullPolicy
string
ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
enum:
Always, Never, IfNotPresentkubernetesAuth object
KubernetesAuth to be used by the agent container
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.
enabled
boolean
Enabled is a flag to enable KubernetesAuth
lifecycle object
Lifecycle are actions that the management system should take in response to container lifecycle events.
postStart object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64preStop object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64livenessProbe object
LivenessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32
port
integer
Port where the agent will be listening for API connections.
format:
int32
probePort
integer
Port where the agent will be listening for probe connections.
format:
int32readinessProbe object
ReadinessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
securityContext object
SecurityContext holds security configuration that will be applied to a container.
allowPrivilegeEscalation
boolean
capabilities object
Adds and removes POSIX capabilities from running containers.
add
[]string
Added capabilities
drop
[]string
Removed capabilities
privileged
boolean
readOnlyRootFilesystem
boolean
runAsGroup
integer
format:
int64
runAsNonRoot
boolean
runAsUser
integer
format:
int64startupProbe object
StartupProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32volumeMounts []object
VolumeMounts to be used in the Container.
mountPath
string required
name
string required
This must match the Name of a Volume.
readOnly
boolean
subPath
string
availableWhenDonor
boolean
AvailableWhenDonor indicates whether a donor node should be responding to queries. It defaults to false.
config object
GaleraConfig defines storage options for the Galera configuration files.
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 object
VolumeClaimTemplate is a template for the PVC that will contain the Galera configuration files shared between the InitContainer, Agent and MariaDB.
accessModes
[]string
metadata object
Metadata to be added to the PVC metadata.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
resources object
VolumeResourceRequirements describes the storage resource requirements for a volume.
limits
object
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
requests
object
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
selector object
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
storageClassName
string
volumeAttributesClassName
string
VolumeAttributesClassName references a VolumeAttributesClass for the PVC.
enabled
boolean
Enabled is a flag to enable Galera.
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.
gtidDomainId
integer
GtidDomainID is the domain ID to be used in GTID mode, enabled when the multi-cluster topology is used.
For example: if you set this to `0`, the 'wsrep_gtid_domain_id' will be 0, while the replicas (if 3) will have 'gtid_domain_id' 1,2,3.
Make sure it has a different value on each the member of a multi-cluster topology.
See: https://mariadb.com/docs/galera-cluster/high-availability/using-mariadb-replication-with-mariadb-galera-cluster/configuring-mariadb-replication-between-two-mariadb-galera-clusters
initContainer object
InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-operator.
args
[]string
Args to be used in the Container.
command
[]string
Command to be used in the Container.
env []object
Env represents the environment variables to be injected in a container.
name
string required
Name of the environment variable. Must be a C_IDENTIFIER.
value
string
valueFrom object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#envvarsource-v1-core.
configMapKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#configmapkeyselector-v1-core.
key
string required
name
string
fieldRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#objectfieldselector-v1-core.
apiVersion
string
fieldPath
string required
secretKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#secretkeyselector-v1-core.
key
string required
name
string
envFrom []object
EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
configMapRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
prefix
string
secretRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
image
string required
Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.
imagePullPolicy
string
ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
enum:
Always, Never, IfNotPresentlifecycle object
Lifecycle are actions that the management system should take in response to container lifecycle events.
postStart object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64preStop object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64livenessProbe object
LivenessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32readinessProbe object
ReadinessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
securityContext object
SecurityContext holds security configuration that will be applied to a container.
allowPrivilegeEscalation
boolean
capabilities object
Adds and removes POSIX capabilities from running containers.
add
[]string
Added capabilities
drop
[]string
Removed capabilities
privileged
boolean
readOnlyRootFilesystem
boolean
runAsGroup
integer
format:
int64
runAsNonRoot
boolean
runAsUser
integer
format:
int64startupProbe object
StartupProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32volumeMounts []object
VolumeMounts to be used in the Container.
mountPath
string required
name
string required
This must match the Name of a Volume.
readOnly
boolean
subPath
string
initJob object
InitJob defines a Job that co-operates with mariadb-operator by performing initialization tasks.
metadata object
Metadata defines additional metadata for the Galera init Job.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
primary object
Primary is the Galera configuration for the primary node.
autoFailover
boolean
AutoFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.
podIndex
integer
PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.
providerOptions
object
ProviderOptions is map of Galera configuration parameters.
More info: https://mariadb.com/kb/en/galera-cluster-system-variables/#wsrep_provider_options.
recovery object
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.
clusterBootstrapTimeout
string
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.
clusterDownscaleTimeout
string
ClusterDownscaleTimeout represents the maximum duration for downscaling the cluster's StatefulSet during the recovery process.
clusterHealthyTimeout
string
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.
clusterMonitorInterval
string
ClusterMonitorInterval represents the interval used to monitor the Galera cluster health.
clusterUpscaleTimeout
string
ClusterUpscaleTimeout represents the maximum duration for upscaling the cluster's StatefulSet during the recovery process.
enabled
boolean
Enabled is a flag to enable GaleraRecovery.
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 object
Job defines a Job that co-operates with mariadb-operator by performing the Galera cluster recovery .
metadata object
Metadata defines additional metadata for the Galera recovery Jobs.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
podAffinity
boolean
PodAffinity indicates whether the recovery Jobs should run in the same Node as the MariaDB Pods. It defaults to true.
resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
minClusterSize
string | integer
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 initiated.
It defaults to '1' replica, and it is highly recommended to keep this value at '1' in most cases.
If set to more than one replica, the cluster recovery process may restart the healthy replicas as well.
podRecoveryTimeout
string
PodRecoveryTimeout is the time limit for recevorying the sequence of a Pod during the cluster recovery.
podSyncTimeout
string
PodSyncTimeout is the time limit for a Pod to join the cluster after having performed a cluster bootstrap during the cluster recovery.
replPasswordSecretKeyRef object
ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user.
This will be utilized as password of the replication user, when the multi-cluster topology is enabled.
By default, a random password will be generated.
generate
boolean
Generate indicates whether the Secret should be generated if the Secret referenced is not present.
key
string required
name
string
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.
serverId
integer
ServerID is the server ID to be used in GTID mode, enabled when the multi-cluster topology is used.
Make sure it has a different value on each the member of a multi-cluster topology.
See: https://mariadb.com/docs/galera-cluster/high-availability/using-mariadb-replication-with-mariadb-galera-cluster/configuring-mariadb-replication-between-two-mariadb-galera-clusters
sst
string
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
image
string
Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.
Only MariaDB official images are supported.
imagePullPolicy
string
ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
enum:
Always, Never, IfNotPresentimagePullSecrets []object
ImagePullSecrets is the list of pull Secrets to be used to pull the image.
name
string
inheritMetadata object
InheritMetadata defines the metadata to be inherited by children resources.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
initContainers []object
InitContainers to be used in the Pod.
args
[]string
Args to be used in the Container.
command
[]string
Command to be used in the Container.
env []object
Env represents the environment variables to be injected in a container.
name
string required
Name of the environment variable. Must be a C_IDENTIFIER.
value
string
valueFrom object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#envvarsource-v1-core.
configMapKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#configmapkeyselector-v1-core.
key
string required
name
string
fieldRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#objectfieldselector-v1-core.
apiVersion
string
fieldPath
string required
secretKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#secretkeyselector-v1-core.
key
string required
name
string
image
string required
Image name to be used by the container. The supported format is `<image>:<tag>`.
imagePullPolicy
string
ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
enum:
Always, Never, IfNotPresent
name
string
Name to be given to the container.
resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
volumeMounts []object
VolumeMounts to be used in the Container.
mountPath
string required
name
string required
This must match the Name of a Volume.
readOnly
boolean
subPath
string
lifecycle object
Lifecycle are actions that the management system should take in response to container lifecycle events.
postStart object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64preStop object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64livenessProbe object
LivenessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32maintenance object
Maintenance defines different capabilities of the operator to allow for maintenance to be performed on the DB.
Not to be confused with `suspend`, maintenance does not interfere with the normal reconciliation of the operator.
cordon
boolean
Cordon blocks connections to the resource.
drainConnections
boolean
DrainConnections determines whether all connections in MariaDB should be drained after `drainGracePeriodSeconds`.
drainGracePeriodSeconds
integer
DrainGracePeriodSeconds defines the grace period in seconds before a connection in MariaDB is drained.
enabled
boolean
Enabled turns on maintenance mode
readOnly
boolean
ReadOnly will allow only read statements to be performed on the resource.
maxScaleRef object
MaxScaleRef is a reference to a MaxScale resource to be used with the current MariaDB.
Providing this reference implies delegating high availability tasks such as primary failover to MaxScale.
name
string
namespace
string
metrics object
Metrics configures metrics and how to scrape them.
enabled
boolean
Enabled is a flag to enable Metrics
exporter object
Exporter defines the metrics exporter container.
affinity object
Affinity to be used in the Pod.
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.
nodeAffinity object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeaffinity-v1-core
preferredDuringSchedulingIgnoredDuringExecution []object
preference object required
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeselectorterm-v1-core
matchExpressions []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
matchFields []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeselector-v1-core
nodeSelectorTerms []object required
matchExpressions []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
matchFields []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
podAntiAffinity object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#podantiaffinity-v1-core.
preferredDuringSchedulingIgnoredDuringExecution []object
podAffinityTerm object required
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#podaffinityterm-v1-core.
labelSelector object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#labelselector-v1-meta
matchExpressions []object
key
string required
operator
string required
A label selector operator is the set of operators that can be used in a selector requirement.
values
[]string
matchLabels
object
topologyKey
string required
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution []object
labelSelector object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#labelselector-v1-meta
matchExpressions []object
key
string required
operator
string required
A label selector operator is the set of operators that can be used in a selector requirement.
values
[]string
matchLabels
object
topologyKey
string required
args
[]string
Args to be used in the Container.
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
string
ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
enum:
Always, Never, IfNotPresentimagePullSecrets []object
ImagePullSecrets is the list of pull Secrets to be used to pull the image.
name
string
nodeSelector
object
NodeSelector to be used in the Pod.
podMetadata object
PodMetadata defines extra metadata for the Pod.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
podSecurityContext object
SecurityContext holds pod-level security attributes and common container settings.
appArmorProfile object
AppArmorProfile defines a pod or container's AppArmor settings.
localhostProfile
string
localhostProfile indicates a profile loaded on the node that should be used.
The profile must be preconfigured on the node to work.
Must match the loaded name of the profile.
Must be set if and only if type is "Localhost".
type
string required
type indicates which kind of AppArmor profile will be applied.
Valid options are:
Localhost - a profile pre-loaded on the node.
RuntimeDefault - the container runtime's default profile.
Unconfined - no AppArmor enforcement.
fsGroup
integer
format:
int64
fsGroupChangePolicy
string
PodFSGroupChangePolicy holds policies that will be used for applying fsGroup to a volume
when volume is mounted.
runAsGroup
integer
format:
int64
runAsNonRoot
boolean
runAsUser
integer
format:
int64seLinuxOptions object
SELinuxOptions are the labels to be applied to the container
level
string
Level is SELinux level label that applies to the container.
role
string
Role is a SELinux role label that applies to the container.
type
string
Type is a SELinux type label that applies to the container.
user
string
User is a SELinux user label that applies to the container.
seccompProfile object
SeccompProfile defines a pod/container's seccomp profile settings.
Only one profile source may be set.
localhostProfile
string
localhostProfile indicates a profile defined in a file on the node should be used.
The profile must be preconfigured on the node to work.
Must be a descending path, relative to the kubelet's configured seccomp profile location.
Must be set if type is "Localhost". Must NOT be set for any other type.
type
string required
type indicates which kind of seccomp profile will be applied.
Valid options are:
Localhost - a profile defined in a file on the node should be used.
RuntimeDefault - the container runtime default profile should be used.
Unconfined - no profile should be applied.
supplementalGroups
[]integer
port
integer
Port where the exporter will be listening for connections.
format:
int32
priorityClassName
string
PriorityClassName to be used in the Pod.
resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
securityContext object
SecurityContext holds container-level security attributes.
allowPrivilegeEscalation
boolean
capabilities object
Adds and removes POSIX capabilities from running containers.
add
[]string
Added capabilities
drop
[]string
Removed capabilities
privileged
boolean
readOnlyRootFilesystem
boolean
runAsGroup
integer
format:
int64
runAsNonRoot
boolean
runAsUser
integer
format:
int64tolerations []object
Tolerations to be used in the Pod.
effect
string
Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
key
string
Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys.
operator
string
Operator represents a key's relationship to the value.
Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod can
tolerate all taints of a particular category.
Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
tolerationSeconds
integer
TolerationSeconds represents the period of time the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
it is not set, which means tolerate the taint forever (do not evict). Zero and
negative values will be treated as 0 (evict immediately) by the system.
format:
int64
value
string
Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string.
passwordSecretKeyRef object
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.
generate
boolean
Generate indicates whether the Secret should be generated if the Secret referenced is not present.
key
string required
name
string
serviceMonitor object
ServiceMonitor defines the ServiceMonior object.
enabled
boolean
Enabled is a flag to enable the ServiceMonitor creation. It defaults to true when metrics are enabled.
When disabled, the exporter is still deployed, but no ServiceMonitor is created,
and the ServiceMonitor CRD is no longer required to be installed in the cluster.
interval
string
Interval for scraping metrics.
jobLabel
string
JobLabel to add to the ServiceMonitor object.
prometheusRelease
string
PrometheusRelease is the release label to add to the ServiceMonitor object.
scrapeTimeout
string
ScrapeTimeout defines the timeout for scraping metrics.
username
string
Username is the username of the monitoring user used by the exporter.
multiCluster object
MultiCluster configures the multi-cluster topology.
enabled
boolean
Enabled is a flag to enable the multi-cluster topology.
members []object
Members is the specification of each member of the multi-cluster topology.
externalMariaDbRef object
ExternalMariaDBRef holds a reference to an ExternalMariaDB with connection details to form the multi-cluster topology.
These connection details are utilized to setup remote replicas.
name
string
namespace
string
name
string required
Name is the identifier of the member.
primary
string
Primary is the name of the primary cluster. It refers to a member in the 'members' field, containing its full specification.
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 object
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.
key
string required
name
string
nodeSelector
object
NodeSelector to be used in the Pod.
passwordHashSecretKeyRef object
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.
key
string required
name
string
passwordPlugin object
PasswordPlugin is a reference to the password plugin and arguments to be used by the initial User.
pluginArgSecretKeyRef object
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.
key
string required
name
string
pluginNameSecretKeyRef object
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.
key
string required
name
string
passwordSecretKeyRef object
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.
generate
boolean
Generate indicates whether the Secret should be generated if the Secret referenced is not present.
key
string required
name
string
podDisruptionBudget object
PodDisruptionBudget defines the budget for replica availability.
maxUnavailable
string | integer
MaxUnavailable defines the number of maximum unavailable Pods.
minAvailable
string | integer
MinAvailable defines the number of minimum available Pods.
podMetadata object
PodMetadata defines extra metadata for the Pod.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
podSecurityContext object
SecurityContext holds pod-level security attributes and common container settings.
appArmorProfile object
AppArmorProfile defines a pod or container's AppArmor settings.
localhostProfile
string
localhostProfile indicates a profile loaded on the node that should be used.
The profile must be preconfigured on the node to work.
Must match the loaded name of the profile.
Must be set if and only if type is "Localhost".
type
string required
type indicates which kind of AppArmor profile will be applied.
Valid options are:
Localhost - a profile pre-loaded on the node.
RuntimeDefault - the container runtime's default profile.
Unconfined - no AppArmor enforcement.
fsGroup
integer
format:
int64
fsGroupChangePolicy
string
PodFSGroupChangePolicy holds policies that will be used for applying fsGroup to a volume
when volume is mounted.
runAsGroup
integer
format:
int64
runAsNonRoot
boolean
runAsUser
integer
format:
int64seLinuxOptions object
SELinuxOptions are the labels to be applied to the container
level
string
Level is SELinux level label that applies to the container.
role
string
Role is a SELinux role label that applies to the container.
type
string
Type is a SELinux type label that applies to the container.
user
string
User is a SELinux user label that applies to the container.
seccompProfile object
SeccompProfile defines a pod/container's seccomp profile settings.
Only one profile source may be set.
localhostProfile
string
localhostProfile indicates a profile defined in a file on the node should be used.
The profile must be preconfigured on the node to work.
Must be a descending path, relative to the kubelet's configured seccomp profile location.
Must be set if type is "Localhost". Must NOT be set for any other type.
type
string required
type indicates which kind of seccomp profile will be applied.
Valid options are:
Localhost - a profile defined in a file on the node should be used.
RuntimeDefault - the container runtime default profile should be used.
Unconfined - no profile should be applied.
supplementalGroups
[]integer
pointInTimeRecoveryRef object
PointInTimeRecoveryRef is a reference to a PointInTimeRecovery resource to be used with the current MariaDB.
Providing this reference implies configuring binary logs in the MariaDB instance and binary log archival in the sidecar agent.
name
string
port
integer
Port where the instances will be listening for connections.
format:
int32primaryConnection object
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.
healthCheck object
HealthCheck to be used in the Connection.
interval
string
Interval used to perform health checks.
retryInterval
string
RetryInterval is the interval used to perform health check retries.
params
object
Params 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.
format:
int32
secretName
string
SecretName to be used in the Connection.
secretTemplate object
SecretTemplate to be used in the Connection.
databaseKey
string
DatabaseKey to be used in the Secret.
format
string
Format to be used in the Secret.
hostKey
string
HostKey to be used in the Secret.
key
string
Key to be used in the Secret.
metadata object
Metadata to be added to the Secret object.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
passwordKey
string
PasswordKey to be used in the Secret.
portKey
string
PortKey to be used in the Secret.
usernameKey
string
UsernameKey to be used in the Secret.
serviceName
string
ServiceName to be used in the Connection.
primaryService object
PrimaryService defines a template to configure the primary Service object.
The network traffic of this Service will be routed to the primary Pod.
allocateLoadBalancerNodePorts
boolean
AllocateLoadBalancerNodePorts Service field.
externalTrafficPolicy
string
ExternalTrafficPolicy Service field.
loadBalancerClass
string
LoadBalancerClass Service field.
loadBalancerIP
string
LoadBalancerIP Service field.
loadBalancerSourceRanges
[]string
LoadBalancerSourceRanges Service field.
metadata object
Metadata to be added to the Service metadata.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
sessionAffinity
string
SessionAffinity Service field.
type
string
Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`.
enum:
ClusterIP, NodePort, LoadBalancer
priorityClassName
string
PriorityClassName to be used in the Pod.
readinessProbe object
ReadinessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32
replicas
integer
Replicas indicates the number of desired instances.
format:
int32
replicasAllowEvenNumber
boolean
disables the validation check for an odd number of replicas.
replication object
Replication configures high availability via replication. This feature is still in alpha, use Galera if you are looking for a more production-ready HA.
agent object
Agent is a sidecar agent that runs in the MariaDB Pod and co-operates with mariadb-operator.
args
[]string
Args to be used in the Container.
basicAuth object
BasicAuth to be used by the agent container
enabled
boolean
Enabled is a flag to enable BasicAuth
passwordSecretKeyRef object
PasswordSecretKeyRef to be used for basic authentication
generate
boolean
Generate indicates whether the Secret should be generated if the Secret referenced is not present.
key
string required
name
string
username
string
Username to be used for basic authentication
command
[]string
Command to be used in the Container.
env []object
Env represents the environment variables to be injected in a container.
name
string required
Name of the environment variable. Must be a C_IDENTIFIER.
value
string
valueFrom object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#envvarsource-v1-core.
configMapKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#configmapkeyselector-v1-core.
key
string required
name
string
fieldRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#objectfieldselector-v1-core.
apiVersion
string
fieldPath
string required
secretKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#secretkeyselector-v1-core.
key
string required
name
string
envFrom []object
EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
configMapRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
prefix
string
secretRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
gracefulShutdownTimeout
string
GracefulShutdownTimeout is the time we give to the agent container in order to gracefully terminate in-flight requests.
image
string
Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.
imagePullPolicy
string
ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
enum:
Always, Never, IfNotPresentkubernetesAuth object
KubernetesAuth to be used by the agent container
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.
enabled
boolean
Enabled is a flag to enable KubernetesAuth
lifecycle object
Lifecycle are actions that the management system should take in response to container lifecycle events.
postStart object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64preStop object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64livenessProbe object
LivenessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32
port
integer
Port where the agent will be listening for API connections.
format:
int32
probePort
integer
Port where the agent will be listening for probe connections.
format:
int32readinessProbe object
ReadinessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
securityContext object
SecurityContext holds security configuration that will be applied to a container.
allowPrivilegeEscalation
boolean
capabilities object
Adds and removes POSIX capabilities from running containers.
add
[]string
Added capabilities
drop
[]string
Removed capabilities
privileged
boolean
readOnlyRootFilesystem
boolean
runAsGroup
integer
format:
int64
runAsNonRoot
boolean
runAsUser
integer
format:
int64startupProbe object
StartupProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32volumeMounts []object
VolumeMounts to be used in the Container.
mountPath
string required
name
string required
This must match the Name of a Volume.
readOnly
boolean
subPath
string
enabled
boolean
Enabled is a flag to enable replication.
gtidDomainId
integer
GtidDomainID is gtid_domain_id for all of the MariaDB nodes.
It is immutable.
See: https://mariadb.com/docs/server/ha-and-performance/standard-replication/gtid#gtid_domain_id
gtidStrictMode
boolean
GtidStrictMode determines whether the GTID strict mode is enabled.
See: https://mariadb.com/docs/server/ha-and-performance/standard-replication/gtid#gtid_strict_mode.
It is enabled by default.
initContainer object
InitContainer is an init container that runs in the MariaDB Pod and co-operates with mariadb-operator.
args
[]string
Args to be used in the Container.
command
[]string
Command to be used in the Container.
env []object
Env represents the environment variables to be injected in a container.
name
string required
Name of the environment variable. Must be a C_IDENTIFIER.
value
string
valueFrom object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#envvarsource-v1-core.
configMapKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#configmapkeyselector-v1-core.
key
string required
name
string
fieldRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#objectfieldselector-v1-core.
apiVersion
string
fieldPath
string required
secretKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#secretkeyselector-v1-core.
key
string required
name
string
envFrom []object
EnvFrom represents the references (via ConfigMap and Secrets) to environment variables to be injected in the container.
configMapRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
prefix
string
secretRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
image
string required
Image name to be used by the MariaDB instances. The supported format is `<image>:<tag>`.
imagePullPolicy
string
ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
enum:
Always, Never, IfNotPresentlifecycle object
Lifecycle are actions that the management system should take in response to container lifecycle events.
postStart object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64preStop object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#lifecyclehandler-v1-core.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
sleep object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#sleepaction-v1-core
seconds
integer
format:
int64livenessProbe object
LivenessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32readinessProbe object
ReadinessProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
securityContext object
SecurityContext holds security configuration that will be applied to a container.
allowPrivilegeEscalation
boolean
capabilities object
Adds and removes POSIX capabilities from running containers.
add
[]string
Added capabilities
drop
[]string
Removed capabilities
privileged
boolean
readOnlyRootFilesystem
boolean
runAsGroup
integer
format:
int64
runAsNonRoot
boolean
runAsUser
integer
format:
int64startupProbe object
StartupProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32volumeMounts []object
VolumeMounts to be used in the Container.
mountPath
string required
name
string required
This must match the Name of a Volume.
readOnly
boolean
subPath
string
primary object
Primary is the replication configuration for the primary node.
autoFailover
boolean
AutoFailover indicates whether the operator should automatically update PodIndex to perform an automatic primary failover.
It is enabled by default.
autoFailoverDelay
string
AutoFailoverDelay indicates the duration before performing an automatic primary failover.
By default, no extra delay is added.
podIndex
integer
PodIndex is the StatefulSet index of the primary node. The user may change this field to perform a manual switchover.
replica object
ReplicaReplication is the replication configuration for the replica nodes.
bootstrapFrom object
ReplicaBootstrapFrom defines the data sources used to bootstrap new replicas.
This will be used as part of the scaling out and recovery operations, when new replicas are created.
If not provided, scale out and recovery operations will return an error.
physicalBackupTemplateRef object required
PhysicalBackupTemplateRef is a reference to a PhysicalBackup object that will be used as template to create a new PhysicalBackup object
used synchronize the data from an up to date replica to the new replica to be bootstrapped.
name
string
restoreJob object
RestoreJob defines additional properties for the Job used to perform the restoration.
affinity object
Affinity to be used in the Pod.
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.
nodeAffinity object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeaffinity-v1-core
preferredDuringSchedulingIgnoredDuringExecution []object
preference object required
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeselectorterm-v1-core
matchExpressions []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
matchFields []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nodeselector-v1-core
nodeSelectorTerms []object required
matchExpressions []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
matchFields []object
key
string required
operator
string required
A node selector operator is the set of operators that can be used in
a node selector requirement.
values
[]string
podAntiAffinity object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#podantiaffinity-v1-core.
preferredDuringSchedulingIgnoredDuringExecution []object
podAffinityTerm object required
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#podaffinityterm-v1-core.
labelSelector object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#labelselector-v1-meta
matchExpressions []object
key
string required
operator
string required
A label selector operator is the set of operators that can be used in a selector requirement.
values
[]string
matchLabels
object
topologyKey
string required
weight
integer required
format:
int32requiredDuringSchedulingIgnoredDuringExecution []object
labelSelector object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#labelselector-v1-meta
matchExpressions []object
key
string required
operator
string required
A label selector operator is the set of operators that can be used in a selector requirement.
values
[]string
matchLabels
object
topologyKey
string required
args
[]string
Args to be used in the Container.
metadata object
Metadata defines additional metadata for the bootstrap Jobs.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
nodeSelector
object
NodeSelector to be used in the Pod.
resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
tolerations []object
Tolerations to be used in the Pod.
effect
string
Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
key
string
Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys.
operator
string
Operator represents a key's relationship to the value.
Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod can
tolerate all taints of a particular category.
Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
tolerationSeconds
integer
TolerationSeconds represents the period of time the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
it is not set, which means tolerate the taint forever (do not evict). Zero and
negative values will be treated as 0 (evict immediately) by the system.
format:
int64
value
string
Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string.
connectionRetrySeconds
integer
ConnectionRetrySeconds is the number of seconds that the replica will wait between connection retries.
See: https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/replication-statements/change-master-to#master_connect_retry.
gtid
string
Gtid indicates which Global Transaction ID (GTID) position mode should be used when connecting a replica to the master.
By default, CurrentPos is used.
See: https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/replication-statements/change-master-to#master_use_gtid.
enum:
CurrentPos, SlavePos
maxLagSeconds
integer
MaxLagSeconds is the maximum number of seconds that replicas are allowed to lag behind the primary.
If a replica exceeds this threshold, it is marked as not ready and read queries will no longer be forwarded to it.
If not provided, it defaults to 0, which means that replicas are not allowed to lag behind the primary (recommended).
Lagged replicas will not be taken into account as candidates for the new primary during failover,
and they will block other operations, such as switchover and upgrade.
This field is not taken into account by MaxScale, you can define the maximum lag as router parameters.
See: https://mariadb.com/docs/maxscale/reference/maxscale-routers/maxscale-readwritesplit#max_replication_lag.
recovery object
ReplicaRecovery defines how the replicas should be recovered after they enter an error state.
This process deletes data from faulty replicas and recreates them using the source defined in the bootstrapFrom field.
It is disabled by default, and it requires the bootstrapFrom field to be set.
enabled
boolean required
Enabled is a flag to enable replica recovery.
errorDurationThreshold
string
ErrorDurationThreshold defines the time duration after which, if a replica continues to report errors,
the operator will initiate the recovery process for that replica.
This threshold applies only to error codes not identified as recoverable by the operator.
Errors identified as recoverable will trigger the recovery process immediately.
It defaults to 5 minutes.
replPasswordSecretKeyRef object
ReplPasswordSecretKeyRef provides a reference to the Secret to use as password for the replication user.
By default, a random password will be generated.
generate
boolean
Generate indicates whether the Secret should be generated if the Secret referenced is not present.
key
string required
name
string
syncTimeout
string
SyncTimeout defines the timeout for the synchronization phase during switchover and failover operations.
During switchover, all replicas must be synced with the current primary before promoting the new primary.
During failover, the new primary must be synced before being promoted as primary. This implies processing all the events in the relay log.
When the timeout is reached, the operator restarts the operation from the beginning.
It defaults to 10s.
See: https://mariadb.com/docs/server/reference/sql-functions/secondary-functions/miscellaneous-functions/master_gtid_wait
semiSyncAckTimeout
string
SemiSyncAckTimeout for the replica to acknowledge transactions to the primary.
It requires semi-synchronous replication to be enabled.
See: https://mariadb.com/docs/server/ha-and-performance/standard-replication/semisynchronous-replication#rpl_semi_sync_master_timeout
semiSyncBootAsReplica
boolean
SemiSyncBootAsReplica determines whether a node boots read-only and with primary-side semi-synchronous replication
disabled, so that it is never writable while it is unable to require a replica acknowledgement.
Both read_only and rpl_semi_sync_master_enabled are dynamic global variables that do not survive a restart, so setting
this to true renders them as ON and OFF respectively in the configuration file. The operator then enables
primary-side semi-synchronous replication in the current primary and hands write traffic back to it, in this order.
Setting it to false renders rpl_semi_sync_master_enabled=ON and omits read_only, so every node boots as a writable
semi-synchronous primary.
See: https://mariadb.com/docs/maxscale/mariadb-maxscale-tutorials/failure-tolerant-replication-and-failover#enable-semi-synchronous-replication
It requires semi-synchronous replication to be enabled.
It is disabled by default.
semiSyncEnabled
boolean
SemiSyncEnabled determines whether semi-synchronous replication is enabled.
Semi-synchronous replication requires that at least one replica should have sent an ACK to the primary node
before committing the transaction back to the client.
See: https://mariadb.com/docs/server/ha-and-performance/standard-replication/semisynchronous-replication
It is enabled by default
semiSyncWaitNoSlave
boolean
SemiSyncWaitNoSlave determines whether the primary waits for the semi-synchronous ACK timeout to expire when it has
no semi-synchronous replicas connected. Disabling it makes it fall back to asynchronous commit immediately instead of
stalling for the whole semiSyncAckTimeout.
It requires semi-synchronous replication to be enabled.
It is enabled by default by the server.
See: https://mariadb.com/docs/server/ha-and-performance/standard-replication/semisynchronous-replication#rpl_semi_sync_master_wait_no_slave
semiSyncWaitPoint
string
SemiSyncWaitPoint determines whether the transaction should wait for an ACK after having synced the binlog (AfterSync)
or after having committed to the storage engine (AfterCommit, the default).
It requires semi-synchronous replication to be enabled.
See: https://mariadb.com/kb/en/semisynchronous-replication/#rpl_semi_sync_master_wait_point.
enum:
AfterSync, AfterCommit
serverIdStartIndex
integer
ServerIDStartIndex sets the start index of the MariaDB nodes. Each subsequent replica will increment this by 1.
It is immutable.
See: https://mariadb.com/docs/server/ha-and-performance/standard-replication/replication-and-binary-log-system-variables#server_id
standaloneProbes
boolean
StandaloneProbes indicates whether to use the default non-HA startup and liveness probes.
It is disabled by default
syncBinlog
integer
SyncBinlog indicates after how many events the binary log is synchronized to the disk.
See: https://mariadb.com/docs/server/ha-and-performance/standard-replication/replication-and-binary-log-system-variables#sync_binlog
resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
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.
rootPasswordSecretKeyRef object
RootPasswordSecretKeyRef is a reference to a Secret key containing the root password.
generate
boolean
Generate indicates whether the Secret should be generated if the Secret referenced is not present.
key
string required
name
string
secondaryConnection object
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.
healthCheck object
HealthCheck to be used in the Connection.
interval
string
Interval used to perform health checks.
retryInterval
string
RetryInterval is the interval used to perform health check retries.
params
object
Params 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.
format:
int32
secretName
string
SecretName to be used in the Connection.
secretTemplate object
SecretTemplate to be used in the Connection.
databaseKey
string
DatabaseKey to be used in the Secret.
format
string
Format to be used in the Secret.
hostKey
string
HostKey to be used in the Secret.
key
string
Key to be used in the Secret.
metadata object
Metadata to be added to the Secret object.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
passwordKey
string
PasswordKey to be used in the Secret.
portKey
string
PortKey to be used in the Secret.
usernameKey
string
UsernameKey to be used in the Secret.
serviceName
string
ServiceName to be used in the Connection.
secondaryService object
SecondaryService defines a template to configure the secondary Service object.
The network traffic of this Service will be routed to the secondary Pods.
allocateLoadBalancerNodePorts
boolean
AllocateLoadBalancerNodePorts Service field.
externalTrafficPolicy
string
ExternalTrafficPolicy Service field.
loadBalancerClass
string
LoadBalancerClass Service field.
loadBalancerIP
string
LoadBalancerIP Service field.
loadBalancerSourceRanges
[]string
LoadBalancerSourceRanges Service field.
metadata object
Metadata to be added to the Service metadata.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
sessionAffinity
string
SessionAffinity Service field.
type
string
Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`.
enum:
ClusterIP, NodePort, LoadBalancersecurityContext object
SecurityContext holds security configuration that will be applied to a container.
allowPrivilegeEscalation
boolean
capabilities object
Adds and removes POSIX capabilities from running containers.
add
[]string
Added capabilities
drop
[]string
Removed capabilities
privileged
boolean
readOnlyRootFilesystem
boolean
runAsGroup
integer
format:
int64
runAsNonRoot
boolean
runAsUser
integer
format:
int64service object
Service defines a template to configure the general Service object.
The network traffic of this Service will be routed to all Pods.
allocateLoadBalancerNodePorts
boolean
AllocateLoadBalancerNodePorts Service field.
externalTrafficPolicy
string
ExternalTrafficPolicy Service field.
loadBalancerClass
string
LoadBalancerClass Service field.
loadBalancerIP
string
LoadBalancerIP Service field.
loadBalancerSourceRanges
[]string
LoadBalancerSourceRanges Service field.
metadata object
Metadata to be added to the Service metadata.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
sessionAffinity
string
SessionAffinity Service field.
type
string
Type is the Service type. One of `ClusterIP`, `NodePort` or `LoadBalancer`. If not defined, it defaults to `ClusterIP`.
enum:
ClusterIP, NodePort, LoadBalancer
serviceAccountName
string
ServiceAccountName is the name of the ServiceAccount to be used by the Pods.
servicePorts []object
ServicePorts is the list of additional named ports to be added to the Services created by the operator.
name
string required
port
integer required
format:
int32sidecarContainers []object
SidecarContainers to be used in the Pod.
args
[]string
Args to be used in the Container.
command
[]string
Command to be used in the Container.
env []object
Env represents the environment variables to be injected in a container.
name
string required
Name of the environment variable. Must be a C_IDENTIFIER.
value
string
valueFrom object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#envvarsource-v1-core.
configMapKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#configmapkeyselector-v1-core.
key
string required
name
string
fieldRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#objectfieldselector-v1-core.
apiVersion
string
fieldPath
string required
secretKeyRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#secretkeyselector-v1-core.
key
string required
name
string
image
string required
Image name to be used by the container. The supported format is `<image>:<tag>`.
imagePullPolicy
string
ImagePullPolicy is the image pull policy. One of `Always`, `Never` or `IfNotPresent`. If not defined, it defaults to `IfNotPresent`.
enum:
Always, Never, IfNotPresent
name
string
Name to be given to the container.
resources object
Resources describes the compute resource requirements.
limits
object
ResourceList is a set of (resource name, quantity) pairs.
requests
object
ResourceList is a set of (resource name, quantity) pairs.
volumeMounts []object
VolumeMounts to be used in the Container.
mountPath
string required
name
string required
This must match the Name of a Volume.
readOnly
boolean
subPath
string
startupProbe object
StartupProbe to be used in the Container.
exec object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#execaction-v1-core.
command
[]string
failureThreshold
integer
format:
int32httpGet object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#httpgetaction-v1-core.
host
string
path
string
port
string | integer required
scheme
string
URIScheme identifies the scheme used for connection to a host for Get actions
initialDelaySeconds
integer
format:
int32
periodSeconds
integer
format:
int32
successThreshold
integer
format:
int32tcpSocket object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#tcpsocketaction-v1-core.
host
string
port
string | integer required
timeoutSeconds
integer
format:
int32storage object
Storage defines the storage options to be used for provisioning the PVCs mounted by MariaDB.
ephemeral
boolean
Ephemeral indicates whether to use ephemeral storage in the PVCs. It is only compatible with non HA MariaDBs.
pvcRetentionPolicy object
PersistentVolumeClaimRetentionPolicy describes the lifecycle of PVCs created from volumeClaimTemplates.
By default, all persistent volume claims are created as needed and retained until manually deleted.
This policy allows the lifecycle to be altered, for example by deleting PVCs when their statefulset is deleted,
or when their pod is scaled down.
whenDeleted
string
PersistentVolumeClaimRetentionPolicyType describes the lifecycle of persistent volume claims.
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#statefulsetpersistentvolumeclaimretentionpolicy-v1-apps.
whenScaled
string
PersistentVolumeClaimRetentionPolicyType describes the lifecycle of persistent volume claims.
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#statefulsetpersistentvolumeclaimretentionpolicy-v1-apps.
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.
size
string | integer
Size of the PVCs to be mounted by MariaDB. Required if not provided in 'VolumeClaimTemplate'. It supersedes the storage size specified in 'VolumeClaimTemplate'.
string pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
storageClassName
string
StorageClassName to be used to provision the PVCS. It supersedes the 'StorageClassName' specified in 'VolumeClaimTemplate'.
If not provided, the default 'StorageClass' configured in the cluster is used.
volumeClaimTemplate object
VolumeClaimTemplate provides a template to define the PVCs.
accessModes
[]string
metadata object
Metadata to be added to the PVC metadata.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
resources object
VolumeResourceRequirements describes the storage resource requirements for a volume.
limits
object
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
requests
object
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
selector object
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
storageClassName
string
volumeAttributesClassName
string
VolumeAttributesClassName references a VolumeAttributesClass for the PVC.
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.
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.
terminationGracePeriodSeconds
integer
TerminationGracePeriodSeconds to be used in the Pod.
format:
int64
timeZone
string
TimeZone sets the default timezone. If not provided, it defaults to SYSTEM and the timezone data is not loaded.
tls object
TLS defines the PKI to be used with MariaDB.
clientCASecretRef object
ClientCASecretRef is a reference to a Secret containing the client certificate authority keypair. It is used to establish trust and issue client certificates.
One of:
- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.
- Secret containing only the 'ca.crt' in order to establish trust. In this case, either clientCertSecretRef or clientCertIssuerRef fields must be provided.
If not provided, a self-signed CA will be provisioned to issue the client certificate.
name
string
clientCertIssuerRef object
ClientCertIssuerRef is a reference to a cert-manager issuer object used to issue the client certificate. cert-manager must be installed previously in the cluster.
It is mutually exclusive with clientCertSecretRef.
By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via clientCASecretRef.
group
string
Group of the issuer being referred to.
Defaults to 'cert-manager.io'.
kind
string
Kind of the issuer being referred to.
Defaults to 'Issuer'.
name
string required
Name of the issuer being referred to.
clientCertSecretRef object
ClientCertSecretRef is a reference to a TLS Secret containing the client certificate.
It is mutually exclusive with clientCertIssuerRef.
name
string
enabled
boolean
Enabled indicates whether TLS is enabled, determining if certificates should be issued and mounted to the MariaDB instance.
It is enabled by default.
galeraSSTEnabled
boolean
GaleraSSTEnabled determines whether Galera SST connections should use TLS.
It disabled by default.
required
boolean
Required specifies whether TLS must be enforced for all connections.
User TLS requirements take precedence over this.
It disabled by default.
serverCASecretRef object
ServerCASecretRef is a reference to a Secret containing the server certificate authority keypair. It is used to establish trust and issue server certificates.
One of:
- Secret containing both the 'ca.crt' and 'ca.key' keys. This allows you to bring your own CA to Kubernetes to issue certificates.
- Secret containing only the 'ca.crt' in order to establish trust. In this case, either serverCertSecretRef or serverCertIssuerRef must be provided.
If not provided, a self-signed CA will be provisioned to issue the server certificate.
name
string
serverCertAdditionalNames
[]string
ServerCertAdditionalNames is a list of additional certificate common names
serverCertIssuerRef object
ServerCertIssuerRef is a reference to a cert-manager issuer object used to issue the server certificate. cert-manager must be installed previously in the cluster.
It is mutually exclusive with serverCertSecretRef.
By default, the Secret field 'ca.crt' provisioned by cert-manager will be added to the trust chain. A custom trust bundle may be specified via serverCASecretRef.
group
string
Group of the issuer being referred to.
Defaults to 'cert-manager.io'.
kind
string
Kind of the issuer being referred to.
Defaults to 'Issuer'.
name
string required
Name of the issuer being referred to.
serverCertSecretRef object
ServerCertSecretRef is a reference to a TLS Secret containing the server certificate.
It is mutually exclusive with serverCertIssuerRef.
name
string
tolerations []object
Tolerations to be used in the Pod.
effect
string
Effect indicates the taint effect to match. Empty means match all taint effects.
When specified, allowed values are NoSchedule, PreferNoSchedule and NoExecute.
key
string
Key is the taint key that the toleration applies to. Empty means match all taint keys.
If the key is empty, operator must be Exists; this combination means to match all values and all keys.
operator
string
Operator represents a key's relationship to the value.
Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal.
Exists is equivalent to wildcard for value, so that a pod can
tolerate all taints of a particular category.
Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators).
tolerationSeconds
integer
TolerationSeconds represents the period of time the toleration (which must be
of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default,
it is not set, which means tolerate the taint forever (do not evict). Zero and
negative values will be treated as 0 (evict immediately) by the system.
format:
int64
value
string
Value is the taint value the toleration matches to.
If the operator is Exists, the value should be empty, otherwise just a regular string.
topologySpreadConstraints []object
TopologySpreadConstraints to be used in the Pod.
labelSelector object
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
matchLabelKeys
[]string
maxSkew
integer required
format:
int32
minDomains
integer
format:
int32
nodeAffinityPolicy
string
NodeInclusionPolicy defines the type of node inclusion policy
nodeTaintsPolicy
string
NodeInclusionPolicy defines the type of node inclusion policy
topologyKey
string required
whenUnsatisfiable
string required
updateStrategy object
UpdateStrategy defines how a MariaDB resource is updated.
autoUpdateDataPlane
boolean
AutoUpdateDataPlane indicates whether the Galera data-plane version (agent and init containers) should be automatically updated based on the operator version. It defaults to false.
Updating the operator will trigger updates on all the MariaDB instances that have this flag set to true. Thus, it is recommended to progressively set this flag after having updated the operator.
mariadbAutoUpgradeEnabled
boolean
MariaDBAutoUpgradeEnabled indicates whether the official `mariadb` image entrypoint should run `mariadb-upgrade` on start, by setting `MARIADB_AUTO_UPGRADE=true` in the `mariadb` container env. It defaults to false.
Set this to true before bumping `spec.image` to a new major version, so that the server schema is migrated when the Pods roll. Leaving it set afterwards is safe: `mariadb-upgrade` is a no-op when there is nothing to migrate.
rollingUpdate object
RollingUpdate defines parameters for the RollingUpdate type.
maxUnavailable
string | integer
The maximum number of pods that can be unavailable during the update.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
Absolute number is calculated from percentage by rounding up. This can not be 0.
Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to
Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it
will be counted towards MaxUnavailable.
This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time.
partition
integer
Partition indicates the ordinal at which the StatefulSet should be partitioned
for updates. During a rolling update, all pods from ordinal Replicas-1 to
Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched.
This is helpful in being able to do a canary based deployment. The default value is 0.
format:
int32
type
string
Type defines the type of updates. One of `ReplicasFirstPrimaryLast`, `RollingUpdate` or `OnDelete`. If not defined, it defaults to `ReplicasFirstPrimaryLast`.
enum:
ReplicasFirstPrimaryLast, RollingUpdate, OnDelete, Never
username
string
Username is the initial username to be created by the operator once MariaDB is ready.
The initial User will have ALL PRIVILEGES in the initial Database.
volumeMounts []object
VolumeMounts to be used in the Container.
mountPath
string required
name
string required
This must match the Name of a Volume.
readOnly
boolean
subPath
string
volumes []object
Volumes to be used in the Pod.
configMap object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#configmapvolumesource-v1-core.
defaultMode
integer
format:
int32
name
string
csi object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#csivolumesource-v1-core.
driver
string required
fsType
string
nodePublishSecretRef object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#localobjectreference-v1-core.
name
string
readOnly
boolean
volumeAttributes
object
emptyDir object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#emptydirvolumesource-v1-core.
medium
string
StorageMedium defines ways that storage can be allocated to a volume.
sizeLimit
string | integer
string pattern:
^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ephemeral object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#ephemeralvolumesource-v1-core.
volumeClaimTemplate object
VolumeClaimTemplate defines a template to customize PVC objects.
accessModes
[]string
metadata object
Metadata to be added to the PVC metadata.
annotations
object
Annotations to be added to children resources.
labels
object
Labels to be added to children resources.
resources object
VolumeResourceRequirements describes the storage resource requirements for a volume.
limits
object
Limits describes the maximum amount of compute resources allowed.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
requests
object
Requests describes the minimum amount of compute resources required.
If Requests is omitted for a container, it defaults to Limits if that is explicitly specified,
otherwise to an implementation-defined value. Requests cannot exceed Limits.
More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
selector object
A label selector is a label query over a set of resources. The result of matchLabels and
matchExpressions are ANDed. An empty label selector matches all objects. A null
label selector matches no objects.
matchExpressions []object
matchExpressions is a list of label selector requirements. The requirements are ANDed.
key
string required
key is the label key that the selector applies to.
operator
string required
operator represents a key's relationship to a set of values.
Valid operators are In, NotIn, Exists and DoesNotExist.
values
[]string
values is an array of string values. If the operator is In or NotIn,
the values array must be non-empty. If the operator is Exists or DoesNotExist,
the values array must be empty. This array is replaced during a strategic
merge patch.
matchLabels
object
matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions, whose key field is "key", the
operator is "In", and the values array contains only "value". The requirements are ANDed.
storageClassName
string
volumeAttributesClassName
string
VolumeAttributesClassName references a VolumeAttributesClass for the PVC.
hostPath object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#hostpathvolumesource-v1-core
path
string required
type
string
name
string required
nfs object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#nfsvolumesource-v1-core.
path
string required
readOnly
boolean
server
string required
persistentVolumeClaim object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#persistentvolumeclaimvolumesource-v1-core.
claimName
string required
readOnly
boolean
secret object
Refer to the Kubernetes docs: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.36/#secretvolumesource-v1-core.
defaultMode
integer
format:
int32
secretName
string
status object
MariaDBStatus defines the observed state of MariaDB
conditions []object
Conditions for the Mariadb object.
lastTransitionTime
string required
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format:
date-time
message
string required
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength:
32768
observedGeneration
integer
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format:
int64minimum:
0
reason
string required
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
pattern:
^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$minLength:
1maxLength:
1024
status
string required
status of the condition, one of True, False, Unknown.
enum:
True, False, Unknown
type
string required
type of condition in CamelCase or in foo.example.com/CamelCase.
pattern:
^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$maxLength:
316
currentMultiClusterPrimary
string
CurrentMultiClusterPrimary is the current primary cluster name when using the multi-cluster topology.
currentPrimary
string
CurrentPrimary is the primary Pod.
currentPrimaryFailingSince
string
CurrentPrimaryFailingSince is the timestamp of the moment when the primary became not ready.
format:
date-time
currentPrimaryPodIndex
integer
CurrentPrimaryPodIndex is the primary Pod index.
defaultVersion
string
DefaultVersion is the MariaDB version used by the operator when it cannot infer the version
from spec.image. This can happen if the image uses a digest (e.g. sha256) instead
of a version tag.
galeraRecovery object
GaleraRecovery is the Galera recovery current state.
bootstrap object
Bootstrap indicates when and in which Pod the cluster bootstrap process has been performed.
pod
string
time
string
format:
date-time
podsRestarted
boolean
PodsRestarted that the Pods have been restarted after the cluster bootstrap.
recovered
object
State is a per Pod representation of the sequence recovery process.
state
object
State is a per Pod representation of the Galera state file (grastate.dat).
pointInTimeRecovery object
PointInTimeRecovery is the status of the point-in-time-recovery process.
lastArchivedBinaryLog
string
LastArchivedBinaryLog is name of the last archived binary log.
lastArchivedGtid
string
LastArchivedGtid is the last archived GTID.
lastArchivedPosition
integer
LastArchivedPosition is the position of last archived binary log event.
format:
int32
lastArchivedTime
string
LastArchivedTime is the time of the last archived binary log event.
format:
date-time
serverId
integer
ServerId identifies the server whose binary logs are being archived.
format:
int32
storageReadyForArchival
boolean
StorageReadyForArchival indicates that the storage is ready for archival, meaning that the sidecar agent can start archiving the binary logs.
replicas
integer
Replicas indicates the number of current instances.
format:
int32replication object
Replication is the replication current status per each Pod.
gtidStrictModePaused
boolean
GtidStrictModePaused indicates that gtid_strict_mode has been temporarily paused.
replicaToRecover
string
ReplicaToRecover is the replica that is being recovered by the operator.
replicas
object
Replicas is the observed replication status for each replica.
roles
object
Roles is the observed replication roles for each Pod.
rootPasswordHash
string
RootPasswordHash is a hash of the root password. It is used to avoid unnecessary reconciliations.
scaleOutInitialIndex
integer
ScaleOutInitialIndex is the initial index where the scale out operation started.
tls object
TLS aggregates the status of the certificates used by the MariaDB instance.
caBundle []object
CABundle is the status of the Certificate Authority bundle.
issuer
string required
Issuer is the issuer of the current certificate.
notAfter
string
NotAfter indicates that the certificate is not valid after the given date.
format:
date-time
notBefore
string
NotBefore indicates that the certificate is not valid before the given date.
format:
date-time
subject
string required
Subject is the subject of the current certificate.
clientCert object
ClientCert is the status of the client certificate.
issuer
string required
Issuer is the issuer of the current certificate.
notAfter
string
NotAfter indicates that the certificate is not valid after the given date.
format:
date-time
notBefore
string
NotBefore indicates that the certificate is not valid before the given date.
format:
date-time
subject
string required
Subject is the subject of the current certificate.
serverCert object
ServerCert is the status of the server certificate.
issuer
string required
Issuer is the issuer of the current certificate.
notAfter
string
NotAfter indicates that the certificate is not valid after the given date.
format:
date-time
notBefore
string
NotBefore indicates that the certificate is not valid before the given date.
format:
date-time
subject
string required
Subject is the subject of the current certificate.
No matches. Try .spec.affinity for an exact path