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-galera
values.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