{ "title": "Chart Values", "type": "object", "properties": { "global": { "type": "object", "properties": { "imageRegistry": { "type": "string", "description": "Global Docker Image registry", "default": "" }, "imagePullSecrets": { "type": "array", "description": "Global Docker registry secret names as an array", "default": [], "items": {} }, "defaultStorageClass": { "type": "string", "description": "Global default StorageClass for Persistent Volume(s)", "default": "" }, "security": { "type": "object", "properties": { "allowInsecureImages": { "type": "boolean", "description": "Allows skipping image verification", "default": false } } }, "compatibility": { "type": "object", "properties": { "openshift": { "type": "object", "properties": { "adaptSecurityContext": { "type": "string", "description": "Adapt the securityContext sections of the deployment to make them compatible with Openshift restricted-v2 SCC: remove runAsUser, runAsGroup and fsGroup and let the platform use their allowed default IDs. Possible values: auto (apply if the detected running cluster is Openshift), force (perform the adaptation always), disabled (do not perform adaptation)", "default": "auto" } } } } } } }, "kubeVersion": { "type": "string", "description": "Force target Kubernetes version (using Helm capabilities if not set)", "default": "" }, "nameOverride": { "type": "string", "description": "String to partially override mariadb.fullname", "default": "" }, "fullnameOverride": { "type": "string", "description": "String to fully override mariadb.fullname", "default": "" }, "clusterDomain": { "type": "string", "description": "Default Kubernetes cluster domain", "default": "cluster.local" }, "commonAnnotations": { "type": "object", "description": "Common annotations to add to all MariaDB resources (sub-charts are not considered)", "default": {} }, "commonLabels": { "type": "object", "description": "Common labels to add to all MariaDB resources (sub-charts are not considered)", "default": {} }, "schedulerName": { "type": "string", "description": "Name of the scheduler (other than default) to dispatch pods", "default": "" }, "runtimeClassName": { "type": "string", "description": "Name of the Runtime Class for all MariaDB pods", "default": "" }, "extraDeploy": { "type": "array", "description": "Array of extra objects to deploy with the release (evaluated as a template)", "default": [], "items": {} }, "diagnosticMode": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable diagnostic mode (all probes will be disabled and the command will be overridden)", "default": false }, "command": { "type": "array", "description": "Command to override all containers in the deployment", "default": [ "sleep" ], "items": { "type": "string" } }, "args": { "type": "array", "description": "Args to override all containers in the deployment", "default": [ "infinity" ], "items": { "type": "string" } } } }, "serviceBindings": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Create secret for service binding (Experimental)", "default": false } } }, "image": { "type": "object", "properties": { "registry": { "type": "string", "description": "MariaDB image registry", "default": "REGISTRY_NAME" }, "repository": { "type": "string", "description": "MariaDB image repository", "default": "REPOSITORY_NAME/mariadb" }, "digest": { "type": "string", "description": "MariaDB image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag", "default": "" }, "pullPolicy": { "type": "string", "description": "MariaDB image pull policy", "default": "IfNotPresent" }, "pullSecrets": { "type": "array", "description": "Specify docker-registry secret names as an array", "default": [], "items": {} }, "debug": { "type": "boolean", "description": "Specify if debug logs should be enabled", "default": false } } }, "architecture": { "type": "string", "description": "MariaDB architecture (`standalone` or `replication`)", "default": "standalone" }, "auth": { "type": "object", "properties": { "rootPassword": { "type": "string", "description": "Password for the `root` user. Ignored if existing secret is provided.", "default": "" }, "database": { "type": "string", "description": "Name for a custom database to create", "default": "my_database" }, "username": { "type": "string", "description": "Name for a custom user to create", "default": "" }, "password": { "type": "string", "description": "Password for the new user. Ignored if existing secret is provided", "default": "" }, "replicationUser": { "type": "string", "description": "MariaDB replication user", "default": "replicator" }, "replicationPassword": { "type": "string", "description": "MariaDB replication user password. Ignored if existing secret is provided", "default": "" }, "existingSecret": { "type": "string", "description": "Use existing secret for password details (`auth.rootPassword`, `auth.password`, `auth.replicationPassword` will be ignored and picked up from this secret). The secret has to contain the keys `mariadb-root-password`, `mariadb-replication-password` and `mariadb-password`", "default": "" }, "forcePassword": { "type": "boolean", "description": "Force users to specify required passwords", "default": false }, "usePasswordFiles": { "type": "boolean", "description": "Mount credentials as files instead of using environment variables", "default": false }, "customPasswordFiles": { "type": "object", "description": "Use custom password files when `auth.usePasswordFiles` is set to `true`. Define path for keys `root` and `user`, also define `replicator` if `architecture` is set to `replication`", "default": {} } } }, "initdbScripts": { "type": "object", "description": "Dictionary of initdb scripts", "default": {} }, "initdbScriptsConfigMap": { "type": "string", "description": "ConfigMap with the initdb scripts (Note: Overrides `initdbScripts`)", "default": "" }, "tls": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable TLS in MariaDB", "default": false }, "existingSecret": { "type": "string", "description": "Existing secret that contains TLS certificates", "default": "" }, "certFilename": { "type": "string", "description": "The secret key from the existingSecret if 'cert' key different from the default (tls.crt)", "default": "tls.crt" }, "certKeyFilename": { "type": "string", "description": "The secret key from the existingSecret if 'key' key different from the default (tls.key)", "default": "tls.key" }, "certCAFilename": { "type": "string", "description": "The secret key from the existingSecret if 'ca' key different from the default (tls.crt)", "default": "" }, "ca": { "type": "string", "description": "CA certificate for TLS. Ignored if `tls.existingSecret` is set", "default": "" }, "cert": { "type": "string", "description": "TLS certificate. Ignored if `tls.master.existingSecret` is set", "default": "" }, "key": { "type": "string", "description": "TLS key. Ignored if `tls.master.existingSecret` is set", "default": "" }, "autoGenerated": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable automatic generation of certificates for TLS", "default": true }, "engine": { "type": "string", "description": "Mechanism to generate the certificates (allowed values: helm, cert-manager)", "default": "helm" }, "certManager": { "type": "object", "properties": { "existingIssuer": { "type": "string", "description": "The name of an existing Issuer to use for generating the certificates (only for `cert-manager` engine)", "default": "" }, "existingIssuerKind": { "type": "string", "description": "Existing Issuer kind, defaults to Issuer (only for `cert-manager` engine)", "default": "" }, "keyAlgorithm": { "type": "string", "description": "Key algorithm for the certificates (only for `cert-manager` engine)", "default": "RSA" }, "keySize": { "type": "number", "description": "Key size for the certificates (only for `cert-manager` engine)", "default": 2048 }, "duration": { "type": "string", "description": "Duration for the certificates (only for `cert-manager` engine)", "default": "2160h" }, "renewBefore": { "type": "string", "description": "Renewal period for the certificates (only for `cert-manager` engine)", "default": "360h" } } } } } } }, "tde": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable Transparent Data Encryption using the File Key Management Encryption Plugin for MariaDB", "default": false }, "existingSecret": { "type": "string", "description": "Existing secret that contains Transparent Data Encryption key files used when secretsStoreProvider is not enabled", "default": "" }, "randomKeyFilename": { "type": "string", "description": "File name of the 'random keyfile' when it is different from the default (keyfile.key), is also used for key name in the existingSecret", "default": "keyfile.key" }, "encryptedKeyFilename": { "type": "string", "description": "File name of the 'encrypted keyfile' when it is different from the default (keyfile.enc), is also used for key name in the existingSecret", "default": "keyfile.enc" }, "fileKeyManagementEncryptionAlgorithm": { "type": "string", "description": "Encryption algorithm used for encrypting data (allowed values: AES_CTR, AES_CBC | default: AES_CTR)", "default": "AES_CTR" }, "innodbEncryptTables": { "type": "string", "description": "Enables automatic encryption of all InnoDB tablespaces (allowed values: FORCE, ON, OFF | default: FORCE)", "default": "FORCE" }, "innodbEncryptLog": { "type": "string", "description": "Enables encryption of the InnoDB redo log (allowed values: ON, OFF | default: ON)", "default": "ON" }, "innodbEncryptTemporaryTables": { "type": "string", "description": "Enables automatic encryption of the InnoDB temporary tablespace (allowed values: ON, OFF | default: ON)", "default": "ON" }, "innodbEncryptionThreads": { "type": "number", "description": "Number of threads to use for encryption (default: 4)", "default": 4 }, "encryptTmpDiskTables": { "type": "string", "description": "Enables automatic encryption of all internal on-disk temporary tables that are created during query execution (allowed values: ON, OFF | default: ON)", "default": "ON" }, "encryptTmpTiles": { "type": "string", "description": "Enables automatic encryption of temporary files, such as those created for filesort operations, binary log file caches, etc. (allowed values: ON, OFF | default: ON)", "default": "ON" }, "encryptBINLOG": { "type": "string", "description": "Enables encrypting binary logs including relay logs (allowed values: ON, OFF | default: ON)", "default": "ON" }, "ariaEncryptTables": { "type": "string", "description": "Enables automatic encryption of all Aria tablespaces (allowed values: ON, OFF | default: ON)", "default": "ON" }, "secretsStoreProvider": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable use of secrets store provider for Transparent Data Encryption key files", "default": false }, "provider": { "type": "string", "description": "Type of provider used in secrets store provider class (allowed values: vault)", "default": "vault" }, "vault": { "type": "object", "properties": { "roleName": { "type": "string", "description": "The name of the HashiCorp Vault role used for accessing the key files (only for `vault` provider)", "default": "" }, "address": { "type": "string", "description": "The URL of the HashiCorp Vault server (only for `vault` provider)", "default": "" }, "authMountPath": { "type": "string", "description": "The HashiCorp Vault auth mount path (only for `vault` provider)", "default": "" }, "randomKeySecretPath": { "type": "string", "description": "The HashiCorp Vault secret path for the 'random keyfile' (only for `vault` provider)", "default": "" }, "randomKeySecretKey": { "type": "string", "description": "The HashiCorp Vault secret key for the 'random keyfile' (only for `vault` provider)", "default": "" }, "encryptedKeySecretPath": { "type": "string", "description": "The HashiCorp Vault secret path for the 'encrypted keyfile' (only for `vault` provider)", "default": "" }, "encryptedKeySecretKey": { "type": "string", "description": "The HashiCorp Vault secret key for the 'encrypted keyfile' (only for `vault` provider)", "default": "" } } } } } } }, "primary": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the primary database (eg primary, master, leader, ...)", "default": "primary" }, "command": { "type": "array", "description": "Override default container command on MariaDB Primary container(s) (useful when using custom images)", "default": [], "items": {} }, "args": { "type": "array", "description": "Override default container args on MariaDB Primary container(s) (useful when using custom images)", "default": [], "items": {} }, "lifecycleHooks": { "type": "object", "description": "for the MariaDB Primary container(s) to automate configuration before or after startup", "default": {} }, "automountServiceAccountToken": { "type": "boolean", "description": "Mount Service Account token in pod", "default": false }, "hostAliases": { "type": "array", "description": "Add deployment host aliases", "default": [], "items": {} }, "containerPorts": { "type": "object", "properties": { "mysql": { "type": "number", "description": "Container port for mysql", "default": 3306 } } }, "configuration": { "type": "string", "description": "MariaDB Primary configuration to be injected as ConfigMap", "default": "\"\"" }, "existingConfigmap": { "type": "string", "description": "Name of existing ConfigMap with MariaDB Primary configuration.", "default": "" }, "updateStrategy": { "type": "object", "properties": { "type": { "type": "string", "description": "MariaDB primary statefulset strategy type", "default": "RollingUpdate" } } }, "rollingUpdatePartition": { "type": "string", "description": "Partition update strategy for Mariadb Primary statefulset", "default": "" }, "podAnnotations": { "type": "object", "description": "Additional pod annotations for MariaDB primary pods", "default": {} }, "podLabels": { "type": "object", "description": "Extra labels for MariaDB primary pods", "default": {} }, "podAffinityPreset": { "type": "string", "description": "MariaDB primary pod affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`", "default": "" }, "podAntiAffinityPreset": { "type": "string", "description": "MariaDB primary pod anti-affinity preset. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`", "default": "soft" }, "nodeAffinityPreset": { "type": "object", "properties": { "type": { "type": "string", "description": "MariaDB primary node affinity preset type. Ignored if `primary.affinity` is set. Allowed values: `soft` or `hard`", "default": "" }, "key": { "type": "string", "description": "MariaDB primary node label key to match Ignored if `primary.affinity` is set.", "default": "" }, "values": { "type": "array", "description": "MariaDB primary node label values to match. Ignored if `primary.affinity` is set.", "default": [], "items": {} } } }, "affinity": { "type": "object", "description": "Affinity for MariaDB primary pods assignment", "default": {} }, "nodeSelector": { "type": "object", "description": "Node labels for MariaDB primary pods assignment", "default": {} }, "tolerations": { "type": "array", "description": "Tolerations for MariaDB primary pods assignment", "default": [], "items": {} }, "schedulerName": { "type": "string", "description": "Name of the k8s scheduler (other than default)", "default": "" }, "podManagementPolicy": { "type": "string", "description": "podManagementPolicy to manage scaling operation of MariaDB primary pods", "default": "" }, "topologySpreadConstraints": { "type": "array", "description": "Topology Spread Constraints for MariaDB primary pods assignment", "default": [], "items": {} }, "priorityClassName": { "type": "string", "description": "Priority class for MariaDB primary pods assignment", "default": "" }, "runtimeClassName": { "type": "string", "description": "Runtime Class for MariaDB primary pods", "default": "" }, "podSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable security context for MariaDB primary pods", "default": true }, "fsGroupChangePolicy": { "type": "string", "description": "Set filesystem group change policy", "default": "Always" }, "sysctls": { "type": "array", "description": "Set kernel settings using the sysctl interface", "default": [], "items": {} }, "supplementalGroups": { "type": "array", "description": "Set filesystem extra groups", "default": [], "items": {} }, "fsGroup": { "type": "number", "description": "Group ID for the mounted volumes' filesystem", "default": 1001 } } }, "containerSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "MariaDB primary container securityContext", "default": true }, "runAsUser": { "type": "number", "description": "User ID for the MariaDB primary container", "default": 1001 }, "runAsGroup": { "type": "number", "description": "Group ID for the MariaDB primary container", "default": 1001 }, "runAsNonRoot": { "type": "boolean", "description": "Set primary container's Security Context runAsNonRoot", "default": true }, "privileged": { "type": "boolean", "description": "Set primary container's Security Context privileged", "default": false }, "allowPrivilegeEscalation": { "type": "boolean", "description": "Set primary container's Security Context allowPrivilegeEscalation", "default": false }, "readOnlyRootFilesystem": { "type": "boolean", "description": "Set container's Security Context readOnlyRootFilesystem", "default": true }, "capabilities": { "type": "object", "properties": { "drop": { "type": "array", "description": "List of capabilities to be dropped", "default": [ "ALL" ], "items": { "type": "string" } } } }, "seccompProfile": { "type": "object", "properties": { "type": { "type": "string", "description": "Set container's Security Context seccomp profile", "default": "RuntimeDefault" } } } } }, "resourcesPreset": { "type": "string", "description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if primary.resources is set (primary.resources is recommended for production).", "default": "micro" }, "resources": { "type": "object", "description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)", "default": {} }, "startupProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable startupProbe", "default": false }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for startupProbe", "default": 120 }, "periodSeconds": { "type": "number", "description": "Period seconds for startupProbe", "default": 15 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for startupProbe", "default": 5 }, "failureThreshold": { "type": "number", "description": "Failure threshold for startupProbe", "default": 10 }, "successThreshold": { "type": "number", "description": "Success threshold for startupProbe", "default": 1 } } }, "livenessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable livenessProbe", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for livenessProbe", "default": 120 }, "periodSeconds": { "type": "number", "description": "Period seconds for livenessProbe", "default": 10 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for livenessProbe", "default": 1 }, "failureThreshold": { "type": "number", "description": "Failure threshold for livenessProbe", "default": 3 }, "successThreshold": { "type": "number", "description": "Success threshold for livenessProbe", "default": 1 } } }, "readinessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable readinessProbe", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for readinessProbe", "default": 30 }, "periodSeconds": { "type": "number", "description": "Period seconds for readinessProbe", "default": 10 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for readinessProbe", "default": 1 }, "failureThreshold": { "type": "number", "description": "Failure threshold for readinessProbe", "default": 3 }, "successThreshold": { "type": "number", "description": "Success threshold for readinessProbe", "default": 1 } } }, "customStartupProbe": { "type": "object", "description": "Override default startup probe for MariaDB primary containers", "default": {} }, "customLivenessProbe": { "type": "object", "description": "Override default liveness probe for MariaDB primary containers", "default": {} }, "customReadinessProbe": { "type": "object", "description": "Override default readiness probe for MariaDB primary containers", "default": {} }, "startupWaitOptions": { "type": "object", "description": "Override default builtin startup wait check options for MariaDB primary containers", "default": {} }, "extraFlags": { "type": "string", "description": "MariaDB primary additional command line flags", "default": "" }, "extraEnvVars": { "type": "array", "description": "Extra environment variables to be set on MariaDB primary containers", "default": [], "items": {} }, "extraEnvVarsCM": { "type": "string", "description": "Name of existing ConfigMap containing extra env vars for MariaDB primary containers", "default": "" }, "extraEnvVarsSecret": { "type": "string", "description": "Name of existing Secret containing extra env vars for MariaDB primary containers", "default": "" }, "persistence": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable persistence on MariaDB primary replicas using a `PersistentVolumeClaim`. If false, use emptyDir", "default": true }, "existingClaim": { "type": "string", "description": "Name of an existing `PersistentVolumeClaim` for MariaDB primary replicas", "default": "" }, "subPath": { "type": "string", "description": "Subdirectory of the volume to mount at", "default": "" }, "storageClass": { "type": "string", "description": "MariaDB primary persistent volume storage Class", "default": "" }, "labels": { "type": "object", "description": "Labels for the PVC", "default": {} }, "annotations": { "type": "object", "description": "MariaDB primary persistent volume claim annotations", "default": {} }, "accessModes": { "type": "array", "description": "MariaDB primary persistent volume access Modes", "default": [ "ReadWriteOnce" ], "items": { "type": "string" } }, "size": { "type": "string", "description": "MariaDB primary persistent volume size", "default": "8Gi" }, "selector": { "type": "object", "description": "Selector to match an existing Persistent Volume", "default": {} } } }, "extraVolumes": { "type": "array", "description": "Optionally specify extra list of additional volumes to the MariaDB Primary pod(s)", "default": [], "items": {} }, "extraVolumeMounts": { "type": "array", "description": "Optionally specify extra list of additional volumeMounts for the MariaDB Primary container(s)", "default": [], "items": {} }, "initContainers": { "type": "array", "description": "Add additional init containers for the MariaDB Primary pod(s)", "default": [], "items": {} }, "sidecars": { "type": "array", "description": "Add additional sidecar containers for the MariaDB Primary pod(s)", "default": [], "items": {} }, "service": { "type": "object", "properties": { "type": { "type": "string", "description": "MariaDB Primary Kubernetes service type", "default": "ClusterIP" }, "ports": { "type": "object", "properties": { "mysql": { "type": "number", "description": "MariaDB Primary Kubernetes service port for MariaDB", "default": 3306 }, "metrics": { "type": "number", "description": "MariaDB Primary Kubernetes service port for metrics", "default": 9104 } } }, "nodePorts": { "type": "object", "properties": { "mysql": { "type": "string", "description": "MariaDB Primary Kubernetes service node port", "default": "" } } }, "clusterIP": { "type": "string", "description": "MariaDB Primary Kubernetes service clusterIP IP", "default": "" }, "loadBalancerIP": { "type": "string", "description": "MariaDB Primary loadBalancerIP if service type is `LoadBalancer`", "default": "" }, "externalTrafficPolicy": { "type": "string", "description": "Enable client source IP preservation", "default": "Cluster" }, "loadBalancerSourceRanges": { "type": "array", "description": "Address that are allowed when MariaDB Primary service is LoadBalancer", "default": [], "items": {} }, "extraPorts": { "type": "array", "description": "Extra ports to expose (normally used with the `sidecar` value)", "default": [], "items": {} }, "annotations": { "type": "object", "description": "Provide any additional annotations which may be required", "default": {} }, "sessionAffinity": { "type": "string", "description": "Session Affinity for Kubernetes service, can be \"None\" or \"ClientIP\"", "default": "None" }, "sessionAffinityConfig": { "type": "object", "description": "Additional settings for the sessionAffinity", "default": {} }, "headless": { "type": "object", "properties": { "annotations": { "type": "object", "description": "Annotations of the headless service", "default": {} } } } } }, "pdb": { "type": "object", "properties": { "create": { "type": "boolean", "description": "Enable/disable a Pod Disruption Budget creation for MariaDB primary pods", "default": true }, "minAvailable": { "type": "string", "description": "Minimum number/percentage of MariaDB primary pods that must still be available after the eviction", "default": "" }, "maxUnavailable": { "type": "string", "description": "Maximum number/percentage of MariaDB primary pods that can be unavailable after the eviction. Defaults to `1` if both `primary.pdb.minAvailable` and `primary.pdb.maxUnavailable` are empty.", "default": "" } } }, "revisionHistoryLimit": { "type": "number", "description": "Maximum number of revisions that will be maintained in the StatefulSet", "default": 10 } } }, "secondary": { "type": "object", "properties": { "name": { "type": "string", "description": "Name of the secondary database (eg secondary, slave, ...)", "default": "secondary" }, "replicaCount": { "type": "number", "description": "Number of MariaDB secondary replicas", "default": 1 }, "command": { "type": "array", "description": "Override default container command on MariaDB Secondary container(s) (useful when using custom images)", "default": [], "items": {} }, "args": { "type": "array", "description": "Override default container args on MariaDB Secondary container(s) (useful when using custom images)", "default": [], "items": {} }, "lifecycleHooks": { "type": "object", "description": "for the MariaDB Secondary container(s) to automate configuration before or after startup", "default": {} }, "automountServiceAccountToken": { "type": "boolean", "description": "Mount Service Account token in pod", "default": false }, "hostAliases": { "type": "array", "description": "Add deployment host aliases", "default": [], "items": {} }, "containerPorts": { "type": "object", "properties": { "mysql": { "type": "number", "description": "Container port for mysql", "default": 3306 } } }, "configuration": { "type": "string", "description": "MariaDB Secondary configuration to be injected as ConfigMap", "default": "\"\"" }, "existingConfigmap": { "type": "string", "description": "Name of existing ConfigMap with MariaDB Secondary configuration.", "default": "" }, "updateStrategy": { "type": "object", "properties": { "type": { "type": "string", "description": "MariaDB secondary statefulset strategy type", "default": "RollingUpdate" } } }, "rollingUpdatePartition": { "type": "string", "description": "Partition update strategy for Mariadb Secondary statefulset", "default": "" }, "podAnnotations": { "type": "object", "description": "Additional pod annotations for MariaDB secondary pods", "default": {} }, "podLabels": { "type": "object", "description": "Extra labels for MariaDB secondary pods", "default": {} }, "podAffinityPreset": { "type": "string", "description": "MariaDB secondary pod affinity preset. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard`", "default": "" }, "podAntiAffinityPreset": { "type": "string", "description": "MariaDB secondary pod anti-affinity preset. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard`", "default": "soft" }, "nodeAffinityPreset": { "type": "object", "properties": { "type": { "type": "string", "description": "MariaDB secondary node affinity preset type. Ignored if `secondary.affinity` is set. Allowed values: `soft` or `hard`", "default": "" }, "key": { "type": "string", "description": "MariaDB secondary node label key to match Ignored if `secondary.affinity` is set.", "default": "" }, "values": { "type": "array", "description": "MariaDB secondary node label values to match. Ignored if `secondary.affinity` is set.", "default": [], "items": {} } } }, "affinity": { "type": "object", "description": "Affinity for MariaDB secondary pods assignment", "default": {} }, "nodeSelector": { "type": "object", "description": "Node labels for MariaDB secondary pods assignment", "default": {} }, "tolerations": { "type": "array", "description": "Tolerations for MariaDB secondary pods assignment", "default": [], "items": {} }, "topologySpreadConstraints": { "type": "array", "description": "Topology Spread Constraints for MariaDB secondary pods assignment", "default": [], "items": {} }, "priorityClassName": { "type": "string", "description": "Priority class for MariaDB secondary pods assignment", "default": "" }, "runtimeClassName": { "type": "string", "description": "Runtime Class for MariaDB secondary pods", "default": "" }, "schedulerName": { "type": "string", "description": "Name of the k8s scheduler (other than default)", "default": "" }, "podManagementPolicy": { "type": "string", "description": "podManagementPolicy to manage scaling operation of MariaDB secondary pods", "default": "" }, "podSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable security context for MariaDB secondary pods", "default": true }, "fsGroupChangePolicy": { "type": "string", "description": "Set filesystem group change policy", "default": "Always" }, "sysctls": { "type": "array", "description": "Set kernel settings using the sysctl interface", "default": [], "items": {} }, "supplementalGroups": { "type": "array", "description": "Set filesystem extra groups", "default": [], "items": {} }, "fsGroup": { "type": "number", "description": "Group ID for the mounted volumes' filesystem", "default": 1001 } } }, "containerSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "MariaDB secondary container securityContext", "default": true }, "runAsUser": { "type": "number", "description": "User ID for the MariaDB secondary container", "default": 1001 }, "runAsGroup": { "type": "number", "description": "Group ID for the MariaDB secondary container", "default": 1001 }, "runAsNonRoot": { "type": "boolean", "description": "Set secondary container's Security Context runAsNonRoot", "default": true }, "privileged": { "type": "boolean", "description": "Set secondary container's Security Context privileged", "default": false }, "allowPrivilegeEscalation": { "type": "boolean", "description": "Set secondary container's Security Context allowPrivilegeEscalation", "default": false }, "readOnlyRootFilesystem": { "type": "boolean", "description": "Set container's Security Context readOnlyRootFilesystem", "default": true }, "capabilities": { "type": "object", "properties": { "drop": { "type": "array", "description": "List of capabilities to be dropped", "default": [ "ALL" ], "items": { "type": "string" } } } }, "seccompProfile": { "type": "object", "properties": { "type": { "type": "string", "description": "Set container's Security Context seccomp profile", "default": "RuntimeDefault" } } } } }, "resourcesPreset": { "type": "string", "description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if secondary.resources is set (secondary.resources is recommended for production).", "default": "micro" }, "resources": { "type": "object", "description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)", "default": {} }, "startupProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable startupProbe", "default": false }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for startupProbe", "default": 120 }, "periodSeconds": { "type": "number", "description": "Period seconds for startupProbe", "default": 15 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for startupProbe", "default": 5 }, "failureThreshold": { "type": "number", "description": "Failure threshold for startupProbe", "default": 10 }, "successThreshold": { "type": "number", "description": "Success threshold for startupProbe", "default": 1 } } }, "livenessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable livenessProbe", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for livenessProbe", "default": 120 }, "periodSeconds": { "type": "number", "description": "Period seconds for livenessProbe", "default": 10 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for livenessProbe", "default": 1 }, "failureThreshold": { "type": "number", "description": "Failure threshold for livenessProbe", "default": 3 }, "successThreshold": { "type": "number", "description": "Success threshold for livenessProbe", "default": 1 } } }, "readinessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable readinessProbe", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for readinessProbe", "default": 30 }, "periodSeconds": { "type": "number", "description": "Period seconds for readinessProbe", "default": 10 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for readinessProbe", "default": 1 }, "failureThreshold": { "type": "number", "description": "Failure threshold for readinessProbe", "default": 3 }, "successThreshold": { "type": "number", "description": "Success threshold for readinessProbe", "default": 1 } } }, "customStartupProbe": { "type": "object", "description": "Override default startup probe for MariaDB secondary containers", "default": {} }, "customLivenessProbe": { "type": "object", "description": "Override default liveness probe for MariaDB secondary containers", "default": {} }, "customReadinessProbe": { "type": "object", "description": "Override default readiness probe for MariaDB secondary containers", "default": {} }, "startupWaitOptions": { "type": "object", "description": "Override default builtin startup wait check options for MariaDB secondary containers", "default": {} }, "extraFlags": { "type": "string", "description": "MariaDB secondary additional command line flags", "default": "" }, "extraEnvVars": { "type": "array", "description": "Extra environment variables to be set on MariaDB secondary containers", "default": [], "items": {} }, "extraEnvVarsCM": { "type": "string", "description": "Name of existing ConfigMap containing extra env vars for MariaDB secondary containers", "default": "" }, "extraEnvVarsSecret": { "type": "string", "description": "Name of existing Secret containing extra env vars for MariaDB secondary containers", "default": "" }, "persistence": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable persistence on MariaDB secondary replicas using a `PersistentVolumeClaim`", "default": true }, "subPath": { "type": "string", "description": "Subdirectory of the volume to mount at", "default": "" }, "storageClass": { "type": "string", "description": "MariaDB secondary persistent volume storage Class", "default": "" }, "labels": { "type": "object", "description": "Labels for the PVC", "default": {} }, "annotations": { "type": "object", "description": "MariaDB secondary persistent volume claim annotations", "default": {} }, "accessModes": { "type": "array", "description": "MariaDB secondary persistent volume access Modes", "default": [ "ReadWriteOnce" ], "items": { "type": "string" } }, "size": { "type": "string", "description": "MariaDB secondary persistent volume size", "default": "8Gi" }, "selector": { "type": "object", "description": "Selector to match an existing Persistent Volume", "default": {} } } }, "extraVolumes": { "type": "array", "description": "Optionally specify extra list of additional volumes to the MariaDB secondary pod(s)", "default": [], "items": {} }, "extraVolumeMounts": { "type": "array", "description": "Optionally specify extra list of additional volumeMounts for the MariaDB secondary container(s)", "default": [], "items": {} }, "initContainers": { "type": "array", "description": "Add additional init containers for the MariaDB secondary pod(s)", "default": [], "items": {} }, "sidecars": { "type": "array", "description": "Add additional sidecar containers for the MariaDB secondary pod(s)", "default": [], "items": {} }, "service": { "type": "object", "properties": { "type": { "type": "string", "description": "MariaDB secondary Kubernetes service type", "default": "ClusterIP" }, "ports": { "type": "object", "properties": { "mysql": { "type": "number", "description": "MariaDB secondary Kubernetes service port for MariaDB", "default": 3306 }, "metrics": { "type": "number", "description": "MariaDB secondary Kubernetes service port for metrics", "default": 9104 } } }, "nodePorts": { "type": "object", "properties": { "mysql": { "type": "string", "description": "MariaDB secondary Kubernetes service node port", "default": "" } } }, "clusterIP": { "type": "string", "description": "MariaDB secondary Kubernetes service clusterIP IP", "default": "" }, "loadBalancerIP": { "type": "string", "description": "MariaDB secondary loadBalancerIP if service type is `LoadBalancer`", "default": "" }, "externalTrafficPolicy": { "type": "string", "description": "Enable client source IP preservation", "default": "Cluster" }, "loadBalancerSourceRanges": { "type": "array", "description": "Address that are allowed when MariaDB secondary service is LoadBalancer", "default": [], "items": {} }, "extraPorts": { "type": "array", "description": "Extra ports to expose (normally used with the `sidecar` value)", "default": [], "items": {} }, "annotations": { "type": "object", "description": "Provide any additional annotations which may be required", "default": {} }, "sessionAffinity": { "type": "string", "description": "Session Affinity for Kubernetes service, can be \"None\" or \"ClientIP\"", "default": "None" }, "sessionAffinityConfig": { "type": "object", "description": "Additional settings for the sessionAffinity", "default": {} } } }, "pdb": { "type": "object", "properties": { "create": { "type": "boolean", "description": "Enable/disable a Pod Disruption Budget creation for MariaDB secondary pods", "default": true }, "minAvailable": { "type": "string", "description": "Minimum number/percentage of MariaDB secondary pods that should remain scheduled", "default": "" }, "maxUnavailable": { "type": "string", "description": "Maximum number/percentage of MariaDB secondary pods that may be made unavailable. Defaults to `1` if both `secondary.pdb.minAvailable` and `secondary.pdb.maxUnavailable` are empty.", "default": "" } } }, "revisionHistoryLimit": { "type": "number", "description": "Maximum number of revisions that will be maintained in the StatefulSet", "default": 10 } } }, "serviceAccount": { "type": "object", "properties": { "create": { "type": "boolean", "description": "Enable the creation of a ServiceAccount for MariaDB pods", "default": true }, "name": { "type": "string", "description": "Name of the created ServiceAccount", "default": "" }, "annotations": { "type": "object", "description": "Annotations for MariaDB Service Account", "default": {} }, "automountServiceAccountToken": { "type": "boolean", "description": "Automount service account token for the server service account", "default": false } } }, "rbac": { "type": "object", "properties": { "create": { "type": "boolean", "description": "Whether to create and use RBAC resources or not", "default": false } } }, "passwordUpdateJob": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable password update job", "default": false }, "backoffLimit": { "type": "number", "description": "set backoff limit of the job", "default": 10 }, "command": { "type": "array", "description": "Override default container command on MariaDB Primary container(s) (useful when using custom images)", "default": [], "items": {} }, "args": { "type": "array", "description": "Override default container args on MariaDB Primary container(s) (useful when using custom images)", "default": [], "items": {} }, "extraCommands": { "type": "string", "description": "Extra commands to pass to the generation job", "default": "" }, "previousPasswords": { "type": "object", "properties": { "rootPassword": { "type": "string", "description": "Previous root password (set if the password secret was already changed)", "default": "" }, "password": { "type": "string", "description": "Previous password (set if the password secret was already changed)", "default": "" }, "replicationPassword": { "type": "string", "description": "Previous replication password (set if the password secret was already changed)", "default": "" }, "existingSecret": { "type": "string", "description": "Name of a secret containing the previous passwords (set if the password secret was already changed)", "default": "" } } }, "containerSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enabled containers' Security Context", "default": true }, "runAsUser": { "type": "number", "description": "Set containers' Security Context runAsUser", "default": 1001 }, "runAsGroup": { "type": "number", "description": "Set containers' Security Context runAsGroup", "default": 1001 }, "runAsNonRoot": { "type": "boolean", "description": "Set container's Security Context runAsNonRoot", "default": true }, "privileged": { "type": "boolean", "description": "Set container's Security Context privileged", "default": false }, "readOnlyRootFilesystem": { "type": "boolean", "description": "Set container's Security Context readOnlyRootFilesystem", "default": true }, "allowPrivilegeEscalation": { "type": "boolean", "description": "Set container's Security Context allowPrivilegeEscalation", "default": false }, "capabilities": { "type": "object", "properties": { "drop": { "type": "array", "description": "List of capabilities to be dropped", "default": [ "ALL" ], "items": { "type": "string" } } } }, "seccompProfile": { "type": "object", "properties": { "type": { "type": "string", "description": "Set container's Security Context seccomp profile", "default": "RuntimeDefault" } } } } }, "podSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enabled credential init job pods' Security Context", "default": true }, "fsGroupChangePolicy": { "type": "string", "description": "Set filesystem group change policy", "default": "Always" }, "sysctls": { "type": "array", "description": "Set kernel settings using the sysctl interface", "default": [], "items": {} }, "supplementalGroups": { "type": "array", "description": "Set filesystem extra groups", "default": [], "items": {} }, "fsGroup": { "type": "number", "description": "Set credential init job pod's Security Context fsGroup", "default": 1001 } } }, "extraEnvVars": { "type": "array", "description": "Array containing extra env vars to configure the credential init job", "default": [], "items": {} }, "extraEnvVarsCM": { "type": "string", "description": "ConfigMap containing extra env vars to configure the credential init job", "default": "" }, "extraEnvVarsSecret": { "type": "string", "description": "Secret containing extra env vars to configure the credential init job (in case of sensitive data)", "default": "" }, "extraVolumes": { "type": "array", "description": "Optionally specify extra list of additional volumes for the credential init job", "default": [], "items": {} }, "extraVolumeMounts": { "type": "array", "description": "Array of extra volume mounts to be added to the jwt Container (evaluated as template). Normally used with `extraVolumes`.", "default": [], "items": {} }, "initContainers": { "type": "array", "description": "Add additional init containers for the MariaDB Primary pod(s)", "default": [], "items": {} }, "resourcesPreset": { "type": "string", "description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if passwordUpdateJob.resources is set (passwordUpdateJob.resources is recommended for production).", "default": "micro" }, "resources": { "type": "object", "description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)", "default": {} }, "customLivenessProbe": { "type": "object", "description": "Custom livenessProbe that overrides the default one", "default": {} }, "customReadinessProbe": { "type": "object", "description": "Custom readinessProbe that overrides the default one", "default": {} }, "customStartupProbe": { "type": "object", "description": "Custom startupProbe that overrides the default one", "default": {} }, "automountServiceAccountToken": { "type": "boolean", "description": "Mount Service Account token in pod", "default": false }, "hostAliases": { "type": "array", "description": "Add deployment host aliases", "default": [], "items": {} }, "podLabels": { "type": "object", "description": "Additional pod labels", "default": {} }, "podAnnotations": { "type": "object", "description": "Additional pod annotations", "default": {} } } }, "volumePermissions": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable init container that changes the owner and group of the persistent volume(s) mountpoint to `runAsUser:fsGroup`", "default": false }, "image": { "type": "object", "properties": { "registry": { "type": "string", "description": "Init container volume-permissions image registry", "default": "REGISTRY_NAME" }, "repository": { "type": "string", "description": "Init container volume-permissions image repository", "default": "REPOSITORY_NAME/os-shell" }, "digest": { "type": "string", "description": "Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag", "default": "" }, "pullPolicy": { "type": "string", "description": "Init container volume-permissions image pull policy", "default": "IfNotPresent" }, "pullSecrets": { "type": "array", "description": "Specify docker-registry secret names as an array", "default": [], "items": {} } } }, "resourcesPreset": { "type": "string", "description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if volumePermissions.resources is set (volumePermissions.resources is recommended for production).", "default": "nano" }, "resources": { "type": "object", "description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)", "default": {} } } }, "metrics": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Start a side-car prometheus exporter", "default": false }, "image": { "type": "object", "properties": { "registry": { "type": "string", "description": "Exporter image registry", "default": "REGISTRY_NAME" }, "repository": { "type": "string", "description": "Exporter image repository", "default": "REPOSITORY_NAME/mysqld-exporter" }, "digest": { "type": "string", "description": "Exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag", "default": "" }, "pullPolicy": { "type": "string", "description": "Exporter image pull policy", "default": "IfNotPresent" }, "pullSecrets": { "type": "array", "description": "Specify docker-registry secret names as an array", "default": [], "items": {} } } }, "containerPorts": { "type": "object", "properties": { "http": { "type": "number", "description": "Container port for http", "default": 9104 } } }, "containerSecurityContext": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable security context for MariaDB metrics container", "default": false }, "runAsUser": { "type": "number", "description": "User ID for the MariaDB metrics container", "default": 1001 }, "runAsGroup": { "type": "number", "description": "Group ID for the MariaDB metrics container", "default": 1001 }, "runAsNonRoot": { "type": "boolean", "description": "Set metrics container's Security Context runAsNonRoot", "default": true }, "privileged": { "type": "boolean", "description": "Set metrics container's Security Context privileged", "default": false }, "allowPrivilegeEscalation": { "type": "boolean", "description": "Set metrics container's Security Context allowPrivilegeEscalation", "default": false }, "readOnlyRootFilesystem": { "type": "boolean", "description": "Set container's Security Context readOnlyRootFilesystem", "default": true }, "capabilities": { "type": "object", "properties": { "drop": { "type": "array", "description": "List of capabilities to be dropped", "default": [ "ALL" ], "items": { "type": "string" } } } }, "seccompProfile": { "type": "object", "properties": { "type": { "type": "string", "description": "Set container's Security Context seccomp profile", "default": "RuntimeDefault" } } } } }, "resourcesPreset": { "type": "string", "description": "Set container resources according to one common preset (allowed values: none, nano, micro, small, medium, large, xlarge, 2xlarge). This is ignored if metrics.resources is set (metrics.resources is recommended for production).", "default": "nano" }, "resources": { "type": "object", "description": "Set container requests and limits for different resources like CPU or memory (essential for production workloads)", "default": {} }, "livenessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable livenessProbe", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for livenessProbe", "default": 120 }, "periodSeconds": { "type": "number", "description": "Period seconds for livenessProbe", "default": 10 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for livenessProbe", "default": 1 }, "failureThreshold": { "type": "number", "description": "Failure threshold for livenessProbe", "default": 3 }, "successThreshold": { "type": "number", "description": "Success threshold for livenessProbe", "default": 1 } } }, "readinessProbe": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable readinessProbe", "default": true }, "initialDelaySeconds": { "type": "number", "description": "Initial delay seconds for readinessProbe", "default": 30 }, "periodSeconds": { "type": "number", "description": "Period seconds for readinessProbe", "default": 10 }, "timeoutSeconds": { "type": "number", "description": "Timeout seconds for readinessProbe", "default": 1 }, "failureThreshold": { "type": "number", "description": "Failure threshold for readinessProbe", "default": 3 }, "successThreshold": { "type": "number", "description": "Success threshold for readinessProbe", "default": 1 } } }, "serviceMonitor": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Create ServiceMonitor Resource for scraping metrics using PrometheusOperator", "default": false }, "namespace": { "type": "string", "description": "Namespace which Prometheus is running in", "default": "" }, "jobLabel": { "type": "string", "description": "The name of the label on the target service to use as the job name in prometheus.", "default": "" }, "interval": { "type": "string", "description": "Interval at which metrics should be scraped", "default": "30s" }, "scrapeTimeout": { "type": "string", "description": "Specify the timeout after which the scrape is ended", "default": "" }, "relabelings": { "type": "array", "description": "RelabelConfigs to apply to samples before scraping", "default": [], "items": {} }, "metricRelabelings": { "type": "array", "description": "MetricRelabelConfigs to apply to samples before ingestion", "default": [], "items": {} }, "honorLabels": { "type": "boolean", "description": "honorLabels chooses the metric's labels on collisions with target labels", "default": false }, "selector": { "type": "object", "description": "ServiceMonitor selector labels", "default": {} }, "labels": { "type": "object", "description": "Extra labels for the ServiceMonitor", "default": {} } } }, "prometheusRule": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "if `true`, creates a Prometheus Operator PrometheusRule (also requires `metrics.enabled` to be `true` and `metrics.prometheusRule.rules`)", "default": false }, "namespace": { "type": "string", "description": "Namespace for the PrometheusRule Resource (defaults to the Release Namespace)", "default": "" }, "additionalLabels": { "type": "object", "description": "Additional labels that can be used so PrometheusRule will be discovered by Prometheus", "default": {} }, "rules": { "type": "array", "description": "Prometheus Rule definitions", "default": [], "items": {} } } } } }, "networkPolicy": { "type": "object", "properties": { "enabled": { "type": "boolean", "description": "Enable creation of NetworkPolicy resources", "default": true }, "allowExternal": { "type": "boolean", "description": "The Policy model to apply", "default": true }, "allowExternalEgress": { "type": "boolean", "description": "Allow the pod to access any range of port and all destinations.", "default": true }, "extraIngress": { "type": "array", "description": "Add extra ingress rules to the NetworkPolicy", "default": "[]", "items": { "type": "string" } }, "extraEgress": { "type": "array", "description": "Add extra ingress rules to the NetworkPolicy", "default": "[]", "items": { "type": "string" } } } } } }