Added support for configMap & persistVolume for slaves

This commit is contained in:
Beltran Rueda
2018-04-10 18:13:35 +00:00
parent 975d51244b
commit 60fca4a035
7 changed files with 99 additions and 8 deletions
@@ -8,7 +8,9 @@ Tip:
Services:
echo Master: {{ template "master.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.service.port }}
{{- if .Values.replication.enabled }}
echo Slave: {{ template "slave.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:{{ .Values.service.port }}
{{- end }}
Administrator credentials:
@@ -25,6 +27,8 @@ To connect to your database
mysql -h {{ template "master.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local -uroot -p {{ .Values.db.name }}
{{- if .Values.replication.enabled }}
3. To connect to slave service (read-only):
mysql -h {{ template "slave.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local -uroot -p {{ .Values.db.name }}
{{- end }}
@@ -0,0 +1,14 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "master.fullname" . }}
labels:
app: {{ template "master.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
data:
my.cnf: |-
{{- if .Values.master.config }}
{{ .Values.master.config | indent 4 }}
{{- end -}}
@@ -132,7 +132,7 @@ spec:
volumes:
- name: config
configMap:
name: {{ template "fullname" . }}
name: {{ template "master.fullname" . }}
- name: data
{{- if .Values.master.persistence.enabled }}
persistentVolumeClaim:
@@ -0,0 +1,16 @@
{{- if .Values.replication.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ template "slave.fullname" . }}
labels:
app: {{ template "slave.fullname" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
data:
my.cnf: |-
{{- if .Values.slave.config }}
{{ .Values.slave.config | indent 4 }}
{{- end -}}
{{- end -}}
@@ -105,6 +105,11 @@ spec:
volumeMounts:
- name: data
mountPath: /bitnami
{{- if .Values.slave.config }}
- name: config
mountPath: /opt/bitnami/mariadb/conf/my.cnf
subPath: my.cnf
{{- end }}
{{- if .Values.metrics.enabled }}
- name: metrics
image: "{{ .Values.metrics.image }}:{{ .Values.metrics.imageTag }}"
@@ -135,8 +140,16 @@ spec:
{{ toYaml .Values.metrics.resources | indent 10 }}
{{- end }}
volumes:
- name: config
configMap:
name: {{ template "slave.fullname" . }}
- name: data
{{- if .Values.slave.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ template "slave.fullname" . }}-data
{{- else }}
emptyDir: {}
{{- end }}
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
@@ -0,0 +1,28 @@
{{- if and (.Values.slave.persistence.enabled) (.Values.replication.enabled) }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "slave.fullname" . }}-data
labels:
app: "{{ template "name" . }}"
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
{{- if .Values.slave.persistence.annotations }}
annotations:
{{ toYaml .Values.slave.persistence.annotations | indent 2 }}
{{- end }}
spec:
accessModes:
{{ toYaml .Values.slave.persistence.accessModes | indent 2 }}
resources:
requests:
storage: "{{ .Values.slave.persistence.size }}"
{{- if .Values.slave.persistence.storageClass }}
{{- if (eq "-" .Values.slave.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.slave.persistence.storageClass }}"
{{- end }}
{{- end }}
{{- end }}
+23 -7
View File
@@ -44,7 +44,7 @@ db:
replication:
## Enable replication
enabled: false
enabled: true
## MariaDB replication user
## ref: https://github.com/bitnami/bitnami-docker-mariadb#setting-up-a-replication-cluster
##
@@ -82,12 +82,12 @@ master:
## Persistent Volume size
##
size: 8Gi
## 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
## 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
##
## Configure master resource requests and limits
@@ -103,6 +103,22 @@ slave:
max: 3
target:
cpuPercentage: 75
persistence:
## If true, use a Persistent Volume Claim, If false, use emptyDir
##
enabled: false
# storageClass: "-"
annotations:
accessModes:
- ReadWriteOnce
## Persistent Volume size
##
size: 8Gi
## Configure MySQL with a custom my.cnf file
# config: |-
# [mysqld]
# skip-name-resolve
##
## Configure slave resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##