Helm install Bitnami MariaDB Galera to hostPath
$ kubectl apply -f pvc.yaml
---
kind: Namespace
apiVersion: v1
metadata:
  name: mariadb-galera-new
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: mariadb-galera-new-pv
  namespace: mariadb-galera-new
spec:
  storageClassName: manual
#  mountOptions:
#    - dir_mode=0777
#    - file_mode=0777
  capacity:
    storage: 40Gi
  accessModes:
  - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  hostPath:
    path: "/bitnami/mariadb-galera-new/"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mariadb-galera-new-pvc
  namespace: mariadb-galera-new
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 40Gi
  storageClassName: manual
  volumeMode: Filesystem
  volumeName: mariadb-galera-new-pv
---
apiVersion: v1
kind: Secret
metadata:
  name: mariadb-galera-new
  namespace: mariadb-galera-new
type: Opaque
data:
# base64 encoded!
  mariadb-galera-mariabackup-password: 
  mariadb-password: 
  mariadb-root-password: $ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm install mariadb-galera-new --namespace=mariadb-galera-new --values values.yaml bitnami/mariadb-galeravalues.yaml
existingSecret: mariadb-galera-new
persistence.existingClaim: mariadb-galera-new-pvc
podAntiAffinityPreset: hard
or
$ helm install mariadb-galera-new --namespace=mariadb-galera-new -f fullConfig.yaml bitnami/mariadb-galera
fullConfig.yaml
affinity: {}
args: []
clusterDomain: cluster.local
command: []
commonAnnotations: {}
commonLabels: {}
configurationConfigMap: ''
containerPorts:
  galera: 4567
  ist: 4568
  mysql: 3306
  sst: 4444
containerSecurityContext:
  enabled: true
  runAsNonRoot: true
  runAsUser: 1001
customLivenessProbe: {}
customPasswordFiles: {}
customReadinessProbe: {}
customStartupProbe: {}
db:
  forcePassword: false
  name: my_database
  password: ''
  user: ''
diagnosticMode:
  args:
    - infinity
  command:
    - sleep
  enabled: false
existingSecret: 'mariadb-galera-new'
extraDeploy: []
extraEnvVars: []
extraEnvVarsCM: ''
extraEnvVarsSecret: ''
extraFlags: ''
extraVolumeMounts: []
extraVolumes: []
fullnameOverride: ''
galera:
  bootstrap:
    bootstrapFromNode: 0
    forceBootstrap: false
    forceSafeToBootstrap: false
  mariabackup:
    forcePassword: false
    password: ''
    user: mariabackup
  name: galera
global:
  imagePullSecrets: []
  imageRegistry: ''
  storageClass: ''
hostAliases: []
image:
  debug: false
  digest: ''
  pullPolicy: IfNotPresent
  pullSecrets: []
  registry: docker.io
  repository: bitnami/mariadb-galera
  tag: 10.6.11-debian-11-r0
initContainers: []
initdbScripts: {}
initdbScriptsConfigMap: ''
kubeVersion: ''
ldap:
  base: ''
  binddn: ''
  bindpw: ''
  bslookup: ''
  enabled: false
  filter: ''
  map: ''
  nss_initgroups_ignoreusers: root,nslcd
  scope: ''
  tls_reqcert: ''
  uri: ''
lifecycleHooks: {}
livenessProbe:
  enabled: true
  failureThreshold: 3
  initialDelaySeconds: 120
  periodSeconds: 10
  successThreshold: 1
  timeoutSeconds: 1
mariadbConfiguration: >-
  [client]
  port=3306
  socket=/opt/bitnami/mariadb/tmp/mysql.sock
  plugin_dir=/opt/bitnami/mariadb/plugin
  [mysqld]
  default_storage_engine=InnoDB
  basedir=/opt/bitnami/mariadb
  datadir=/bitnami/mariadb/data
  plugin_dir=/opt/bitnami/mariadb/plugin
  tmpdir=/opt/bitnami/mariadb/tmp
  socket=/opt/bitnami/mariadb/tmp/mysql.sock
  pid_file=/opt/bitnami/mariadb/tmp/mysqld.pid
  bind_address=0.0.0.0
  ## Character set
  ##
  collation_server=utf8_unicode_ci
  init_connect='SET NAMES utf8'
  character_set_server=utf8
  ## MyISAM
  ##
  key_buffer_size=32M
  myisam_recover_options=FORCE,BACKUP
  ## Safety
  ##
  skip_host_cache
  skip_name_resolve
  max_allowed_packet=16M
  max_connect_errors=1000000
  sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY
  sysdate_is_now=1
  ## Binary Logging
  ##
  log_bin=mysql-bin
  expire_logs_days=14
  # Disabling for performance per
  http://severalnines.com/blog/9-tips-going-production-galera-cluster-mysql
  sync_binlog=0
  # Required for Galera
  binlog_format=row
  ## Caches and Limits
  ##
  tmp_table_size=32M
  max_heap_table_size=32M
  # Re-enabling as now works with Maria 10.1.2
  query_cache_type=1
  query_cache_limit=4M
  query_cache_size=256M
  max_connections=500
  thread_cache_size=50
  open_files_limit=65535
  table_definition_cache=4096
  table_open_cache=4096
  ## InnoDB
  ##
  innodb=FORCE
  innodb_strict_mode=1
  # Mandatory per https://github.com/codership/documentation/issues/25
  innodb_autoinc_lock_mode=2
  # Per https://www.percona.com/blog/2006/08/04/innodb-double-write/
  innodb_doublewrite=1
  innodb_flush_method=O_DIRECT
  innodb_log_files_in_group=2
  innodb_log_file_size=128M
  innodb_flush_log_at_trx_commit=1
  innodb_file_per_table=1
  # 80% Memory is default reco.
  # Need to re-evaluate when DB size grows
  innodb_buffer_pool_size=2G
  innodb_file_format=Barracuda
  ## Logging
  ##
  log_error=/opt/bitnami/mariadb/logs/mysqld.log
  slow_query_log_file=/opt/bitnami/mariadb/logs/mysqld.log
  log_queries_not_using_indexes=1
  slow_query_log=1
  ## SSL
  ## Use extraVolumes and extraVolumeMounts to mount /certs filesystem
  # ssl_ca=/certs/ca.pem
  # ssl_cert=/certs/server-cert.pem
  # ssl_key=/certs/server-key.pem
  [galera]
  wsrep_on=ON
  wsrep_provider=/opt/bitnami/mariadb/lib/libgalera_smm.so
  wsrep_sst_method=mariabackup
  wsrep_slave_threads=4
  wsrep_cluster_address=gcomm://
  wsrep_cluster_name=galera
  wsrep_sst_auth="root:"
  # Enabled for performance per
  https://mariadb.com/kb/en/innodb-system-variables/#innodb_flush_log_at_trx_commit
  innodb_flush_log_at_trx_commit=2
  # MYISAM REPLICATION SUPPORT #
  wsrep_replicate_myisam=ON
  [mariadb]
  plugin_load_add=auth_pam
  ## Data-at-Rest Encryption
  ## Use extraVolumes and extraVolumeMounts to mount /encryption filesystem
  # plugin_load_add=file_key_management
  # file_key_management_filename=/encryption/keyfile.enc
  # file_key_management_filekey=FILE:/encryption/keyfile.key
  # file_key_management_encryption_algorithm=AES_CTR
  # encrypt_binlog=ON
  # encrypt_tmp_files=ON
  ## InnoDB/XtraDB Encryption
  # innodb_encrypt_tables=ON
  # innodb_encrypt_temporary_tables=ON
  # innodb_encrypt_log=ON
  # innodb_encryption_threads=4
  # innodb_encryption_rotate_key_age=1
  ## Aria Encryption
  # aria_encrypt_tables=ON
  # encrypt_tmp_disk_tables=ON
metrics:
  enabled: false
  extraFlags: []
  image:
    digest: ''
    pullPolicy: IfNotPresent
    pullSecrets: []
    registry: docker.io
    repository: bitnami/mysqld-exporter
    tag: 0.14.0-debian-11-r55
  prometheusRules:
    additionalLabels:
      app: prometheus-operator
      release: prometheus
    enabled: false
    rules: {}
  resources:
    limits: {}
    requests: {}
  service:
    annotations:
      prometheus.io/port: '9104'
      prometheus.io/scrape: 'true'
    clusterIP: ''
    externalTrafficPolicy: Cluster
    loadBalancerIP: ''
    loadBalancerSourceRanges: []
    port: 9104
    type: ClusterIP
  serviceMonitor:
    enabled: false
    honorLabels: false
    interval: ''
    jobLabel: ''
    labels: {}
    metricRelabelings: []
    namespace: ''
    relabelings: []
    scrapeTimeout: ''
    selector: {}
nameOverride: ''
namespaceOverride: ''
nodeAffinityPreset:
  key: ''
  type: ''
  values: []
nodeSelector: {}
persistence:
  accessModes:
    - ReadWriteOnce
  annotations: {}
  enabled: true
  existingClaim: 'mariadb-galera-new-pvc'
  labels: {}
  mountPath: /bitnami/mariadb
  selector: {}
  size: 8Gi
  storageClass: ''
  subPath: ''
podAffinityPreset: ''
podAnnotations: {}
podAntiAffinityPreset: hard
podDisruptionBudget:
  create: false
  maxUnavailable: ''
  minAvailable: 1
podLabels: {}
podManagementPolicy: OrderedReady
podSecurityContext:
  enabled: true
  fsGroup: 1001
  runAsUser: 1001
priorityClassName: ''
rbac:
  create: false
readinessProbe:
  enabled: true
  failureThreshold: 3
  initialDelaySeconds: 30
  periodSeconds: 10
  successThreshold: 1
  timeoutSeconds: 1
replicaCount: 3
resources:
  limits: {}
  requests: {}
rootUser:
  forcePassword: false
  password: ''
  user: root
schedulerName: ''
service:
  annotations: {}
  clusterIP: ''
  externalIPs: []
  externalTrafficPolicy: Cluster
  extraPorts: []
  headless:
    annotations: {}
    publishNotReadyAddresses: true
  loadBalancerIP: ''
  loadBalancerSourceRanges: []
  nodePorts:
    mysql: ''
  ports:
    mysql: 3306
  sessionAffinity: None
  sessionAffinityConfig: {}
  type: ClusterIP
serviceAccount:
  annotations: {}
  automountServiceAccountToken: false
  create: false
  name: ''
sidecars: []
startupProbe:
  enabled: false
  failureThreshold: 48
  initialDelaySeconds: 120
  periodSeconds: 10
  successThreshold: 1
  timeoutSeconds: 1
tls:
  autoGenerated: false
  certCAFilename: ''
  certFilename: ''
  certKeyFilename: ''
  certificatesSecret: ''
  enabled: false
tolerations: []
topologySpreadConstraints: []
updateStrategy:
  type: RollingUpdate
usePasswordFiles: false