## Global Docker image parameters ## Please, note that this will override the image parameters, including dependencies, configured to use the global value ## Current available global Docker image parameters: imageRegistry and imagePullSecrets ## # global: # imageRegistry: myRegistryName # imagePullSecrets: # - myRegistryKeySecretName # storageClass: myStorageClass ## Use an alternate scheduler, e.g. "stork". ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ ## # schedulerName: ## Bitnami MariaDB image ## ref: https://hub.docker.com/r/bitnami/mariadb/tags/ ## image: registry: docker.io repository: bitnami/mariadb tag: 10.3.22-debian-10-r27 ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images ## pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ ## # pullSecrets: # - myRegistryKeySecretName ## Set to true if you would like to see extra information on logs ## It turns BASH and NAMI debugging in minideb ## ref: https://github.com/bitnami/minideb-extras/#turn-on-bash-debugging debug: false ## String to partially override mariadb.fullname template (will maintain the release name) ## # nameOverride: ## String to fully override mariadb.fullname template ## # fullnameOverride: ## Init containers parameters: ## volumePermissions: Change the owner and group of the persistent volume mountpoint to runAsUser:fsGroup values from the securityContext section. ## volumePermissions: enabled: false image: registry: docker.io repository: bitnami/minideb tag: buster pullPolicy: Always ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ ## # pullSecrets: # - myRegistryKeySecretName resources: {} service: ## Kubernetes service type, ClusterIP and NodePort are supported at present type: ClusterIP # clusterIp: # master: xx.xx.xx.xx # slave: xx.xx.xx.xx port: 3306 ## Specify the nodePort value for the LoadBalancer and NodePort service types. ## ref: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport ## # nodePort: # master: 30001 # slave: 30002 ## Pods Service Account ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ serviceAccount: ## Specifies whether a ServiceAccount should be created ## create: false ## The name of the ServiceAccount to use. ## If not set and create is true, a name is generated using the mariadb.fullname template # name: ## Role Based Access ## Ref: https://kubernetes.io/docs/admin/authorization/rbac/ ## rbac: create: false ## Pod Security Context ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ ## securityContext: enabled: true fsGroup: 1001 runAsUser: 1001 ## Use existing secret (ignores root, db and replication passwords) ## # existingSecret: ## MariaDB admin credentials ## rootUser: ## MariaDB admin password ## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-the-root-password-on-first-run ## password: "" ## Option to force users to specify a password. That is required for 'helm upgrade' to work properly. ## If it is not force, a random password will be generated. ## forcePassword: false ## Mount admin password as a file instead of using an environment variable ## injectSecretsAsVolume: false ## Custom user/db credentials ## db: ## MariaDB username and password ## ref: https://github.com/bitnami/bitnami-docker-mariadb#creating-a-database-user-on-first-run ## user: "" password: "" ## Database to create ## ref: https://github.com/bitnami/bitnami-docker-mariadb#creating-a-database-on-first-run ## name: my_database ## Option to force users to specify a password. That is required for 'helm upgrade' to work properly. ## If it is not force, a random password will be generated. ## forcePassword: false ## Mount user password as a file instead of using an environment variable ## injectSecretsAsVolume: false ## Replication configuration ## replication: ## Enable replication. This enables the creation of replicas of MariaDB. If false, only a ## master deployment would be created ## enabled: true ## MariaDB replication user ## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-up-a-replication-cluster ## user: replicator ## MariaDB replication user password ## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-up-a-replication-cluster ## password: "" ## Option to force users to specify a password. That is required for 'helm upgrade' to work properly. ## If it is not force, a random password will be generated. ## forcePassword: false ## Mount replication user password as a file instead of using an environment variable ## injectSecretsAsVolume: false ## initdb scripts ## Specify dictionary of scripts to be run at first boot ## Alternatively, you can put your scripts under the files/docker-entrypoint-initdb.d directory ## # initdbScripts: # my_init_script.sh: | # #!/bin/sh # echo "Do something." # ## ConfigMap with scripts to be run at first boot ## Note: This will override initdbScripts # initdbScriptsConfigMap: master: ## Mariadb Master additional pod annotations ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ # annotations: # key: value # another-key: another-value ## MariaDB additional command line flags ## Can be used to specify command line flags, for example: ## ## extraFlags: "--max-connect-errors=1000 --max_connections=155" ## Affinity for pod assignment ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity ## affinity: {} ## Kept for backwards compatibility. You can now disable it by removing it. ## if you wish to set it through master.affinity.podAntiAffinity instead. ## antiAffinity: soft ## Node labels for pod assignment ## Ref: https://kubernetes.io/docs/user-guide/node-selection/ ## nodeSelector: {} ## Tolerations for pod assignment ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] ## updateStrategy for MariaDB Master StatefulSet ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies updateStrategy: type: RollingUpdate ## Enable persistence using Persistent Volume Claims ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ ## persistence: ## If true, use a Persistent Volume Claim, If false, use emptyDir ## enabled: true # Enable persistence using an existing PVC # existingClaim: # Subdirectory of the volume to mount # subPath: mountPath: /bitnami/mariadb ## Persistent Volume Storage Class ## If defined, storageClassName: ## If set to "-", storageClassName: "", which disables dynamic provisioning ## If undefined (the default) or set to null, no storageClassName spec is ## set, choosing the default provisioner. (gp2 on AWS, standard on ## GKE, AWS & OpenStack) ## # storageClass: "-" ## Persistent Volume Claim annotations ## annotations: {} ## Persistent Volume Access Mode ## accessModes: - ReadWriteOnce ## Persistent Volume size ## size: 8Gi extraInitContainers: | # - name: do-something # image: busybox # command: ['do', 'something'] ## An array to add extra environment variables ## For example: ## extraEnvVars: ## - name: TZ ## value: "Europe/Paris" ## # extraEnvVars: ## Configure MySQL with a custom my.cnf file ## ref: https://mysql.com/kb/en/mysql/configuring-mysql-with-mycnf/#example-of-configuration-file ## config: |- [mysqld] skip-name-resolve explicit_defaults_for_timestamp basedir=/opt/bitnami/mariadb plugin_dir=/opt/bitnami/mariadb/plugin port=3306 socket=/opt/bitnami/mariadb/tmp/mysql.sock tmpdir=/opt/bitnami/mariadb/tmp max_allowed_packet=16M bind-address=0.0.0.0 pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid log-error=/opt/bitnami/mariadb/logs/mysqld.log character-set-server=UTF8 collation-server=utf8_general_ci [client] port=3306 socket=/opt/bitnami/mariadb/tmp/mysql.sock default-character-set=UTF8 plugin_dir=/opt/bitnami/mariadb/plugin [manager] port=3306 socket=/opt/bitnami/mariadb/tmp/mysql.sock pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid ## Configure master resource requests and limits ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ ## resources: {} livenessProbe: enabled: true ## ## Initializing the database could take some time initialDelaySeconds: 120 ## ## Default Kubernetes values periodSeconds: 10 timeoutSeconds: 1 successThreshold: 1 failureThreshold: 3 readinessProbe: enabled: true initialDelaySeconds: 30 ## ## Default Kubernetes values periodSeconds: 10 timeoutSeconds: 1 successThreshold: 1 failureThreshold: 3 podDisruptionBudget: enabled: false minAvailable: 1 # maxUnavailable: 1 ## Allow customization of the service resource ## service: ## Add custom annotations to the service ## annotations: {} # external-dns.alpha.kubernetes.io/hostname: db.example.com slave: replicas: 1 ## Mariadb Slave additional pod annotations ## ref: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ # annotations: # key: value # another-key: another-value ## MariaDB additional command line flags ## Can be used to specify command line flags, for example: ## ## extraFlags: "--max-connect-errors=1000 --max_connections=155" ## Affinity for pod assignment ## Ref: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity ## affinity: {} ## Kept for backwards compatibility. You can now disable it by removing it. ## if you wish to set it through slave.affinity.podAntiAffinity instead. ## antiAffinity: soft ## Node labels for pod assignment ## Ref: https://kubernetes.io/docs/user-guide/node-selection/ ## nodeSelector: {} ## Tolerations for pod assignment ## Ref: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/ ## tolerations: [] ## updateStrategy for MariaDB Slave StatefulSet ## ref: https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#update-strategies updateStrategy: type: RollingUpdate persistence: ## If true, use a Persistent Volume Claim, If false, use emptyDir ## enabled: true # storageClass: "-" annotations: accessModes: - ReadWriteOnce ## Persistent Volume size ## size: 8Gi extraInitContainers: | # - name: do-something # image: busybox # command: ['do', 'something'] ## An array to add extra environment variables ## For example: ## extraEnvVars: ## - name: TZ ## value: "Europe/Paris" ## # extraEnvVars: ## Configure MySQL slave with a custom my.cnf file ## ref: https://mysql.com/kb/en/mysql/configuring-mysql-with-mycnf/#example-of-configuration-file ## config: |- [mysqld] skip-name-resolve explicit_defaults_for_timestamp basedir=/opt/bitnami/mariadb port=3306 socket=/opt/bitnami/mariadb/tmp/mysql.sock tmpdir=/opt/bitnami/mariadb/tmp max_allowed_packet=16M bind-address=0.0.0.0 pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid log-error=/opt/bitnami/mariadb/logs/mysqld.log character-set-server=UTF8 collation-server=utf8_general_ci [client] port=3306 socket=/opt/bitnami/mariadb/tmp/mysql.sock default-character-set=UTF8 [manager] port=3306 socket=/opt/bitnami/mariadb/tmp/mysql.sock pid-file=/opt/bitnami/mariadb/tmp/mysqld.pid ## ## Configure slave resource requests and limits ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ ## resources: {} livenessProbe: enabled: true ## ## Initializing the database could take some time initialDelaySeconds: 120 ## ## Default Kubernetes values periodSeconds: 10 timeoutSeconds: 1 successThreshold: 1 failureThreshold: 3 readinessProbe: enabled: true initialDelaySeconds: 45 ## ## Default Kubernetes values periodSeconds: 10 timeoutSeconds: 1 successThreshold: 1 failureThreshold: 3 podDisruptionBudget: enabled: false minAvailable: 1 # maxUnavailable: 1 ## Allow customization of the service resource ## service: ## Add custom annotations to the service ## annotations: {} # external-dns.alpha.kubernetes.io/hostname: rodb.example.com metrics: enabled: false image: registry: docker.io repository: bitnami/mysqld-exporter tag: 0.12.1-debian-10-r27 pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. ## Secrets must be manually created in the namespace. ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ ## # pullSecrets: # - myRegistryKeySecretName resources: {} annotations: prometheus.io/scrape: "true" prometheus.io/port: "9104" ## Extra args to be passed to mysqld_exporter ## ref: https://github.com/prometheus/mysqld_exporter/ ## extraArgs: master: [] slave: [] # - --collect.auto_increment.columns # - --collect.binlog_size # - --collect.engine_innodb_status # - --collect.engine_tokudb_status # - --collect.global_status # - --collect.global_variables # - --collect.info_schema.clientstats # - --collect.info_schema.innodb_metrics # - --collect.info_schema.innodb_tablespaces # - --collect.info_schema.innodb_cmp # - --collect.info_schema.innodb_cmpmem # - --collect.info_schema.processlist # - --collect.info_schema.processlist.min_time # - --collect.info_schema.query_response_time # - --collect.info_schema.tables # - --collect.info_schema.tables.databases # - --collect.info_schema.tablestats # - --collect.info_schema.userstats # - --collect.perf_schema.eventsstatements # - --collect.perf_schema.eventsstatements.digest_text_limit # - --collect.perf_schema.eventsstatements.limit # - --collect.perf_schema.eventsstatements.timelimit # - --collect.perf_schema.eventswaits # - --collect.perf_schema.file_events # - --collect.perf_schema.file_instances # - --collect.perf_schema.indexiowaits # - --collect.perf_schema.tableiowaits # - --collect.perf_schema.tablelocks # - --collect.perf_schema.replication_group_member_stats # - --collect.slave_status # - --collect.slave_hosts # - --collect.heartbeat # - --collect.heartbeat.database # - --collect.heartbeat.table livenessProbe: enabled: true ## ## Initializing the database could take some time initialDelaySeconds: 120 ## ## Default Kubernetes values periodSeconds: 10 timeoutSeconds: 1 successThreshold: 1 failureThreshold: 3 readinessProbe: enabled: true initialDelaySeconds: 30 ## ## Default Kubernetes values periodSeconds: 10 timeoutSeconds: 1 successThreshold: 1 failureThreshold: 3 # Enable this if you're using https://github.com/coreos/prometheus-operator serviceMonitor: enabled: false ## Specify a namespace if needed # namespace: monitoring # fallback to the prometheus default unless specified # interval: 10s # scrapeTimeout: 10s ## Defaults to what's used if you follow CoreOS [Prometheus Install Instructions](https://github.com/helm/charts/tree/master/stable/prometheus-operator#tldr) ## [Prometheus Selector Label](https://github.com/helm/charts/tree/master/stable/prometheus-operator#prometheus-operator-1) ## [Kube Prometheus Selector Label](https://github.com/helm/charts/tree/master/stable/prometheus-operator#exporters) selector: prometheus: kube-prometheus ## Bats Framework (= Bash Automated Testing System) is needed to test if MariaDB is accessible ## See test-runner.yaml and tests.yaml for details. ## To run the tests after the deployment, enter "helm test ". tests: enabled: true # resources: {} testFramework: image: registry: docker.io repository: dduportal/bats tag: 0.4.0 # resources: {}