blob: 6e8c9b854a3973fb99519ded85c8b15a7c0e4585 [file] [log] [blame]
{{ if and .Values.isSlave .Values.mysql.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-mysql-replication-init-configmap
labels:
app: mysql-replication-init
chart: {{ template "reviewdb.chart" . }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
data:
initialize-slave.sql: |
SET @query = CONCAT(
"CHANGE MASTER TO ",
"MASTER_HOST = '{{ .Values.mysql.replication.config.masterHost }}' , ",
"MASTER_PORT = {{ .Values.mysql.replication.config.masterPort }} , ",
"MASTER_USER = '{{ .Values.mysql.replication.config.masterUser }}' , ",
"MASTER_PASSWORD ='", @replpwd, "', ",
"MASTER_LOG_FILE = '{{ .Values.mysql.replication.config.masterLogFile }}' , ",
"MASTER_LOG_POS = {{ .Values.mysql.replication.config.masterLogPos }} , ",
"MASTER_SSL = {{ if .Values.mysql.ssl.enabled }} 1 {{ else }} 0 {{ end }} , ",
"MASTER_SSL_CA = '/ssl/ca.pem', ",
"MASTER_SSL_CERT = '/ssl/server-cert.pem', ",
"MASTER_SSL_KEY = '/ssl/server-key.pem', ",
"MASTER_SSL_VERIFY_SERVER_CERT = 1;");
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
START SLAVE;
DO SLEEP(15);
SHOW SLAVE STATUS\G;
dump-filepath: {{ .Values.mysql.replication.dbDumpAcceptPath }}
---
apiVersion: v1
kind: Secret
metadata:
name: {{ .Release.Name }}-mysql-replication-init-secret
labels:
app: mysql-replication-init
chart: {{ template "reviewdb.chart" . }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
data:
repl-password: {{ .Values.mysql.replication.config.masterPassword | b64enc }}
type: Opaque
---
apiVersion: batch/v1
kind: Job
metadata:
name: {{ .Release.Name }}-mysql-replication-init-job
labels:
app: mysql-replication-init
chart: {{ template "reviewdb.chart" . }}
heritage: {{ .Release.Service }}
release: {{ .Release.Name }}
spec:
template:
metadata:
name: {{ .Release.Name }}-mysql-replication-init
labels:
app: mysql-replication-init
spec:
restartPolicy: OnFailure
{{ if .Values.images.registry.ImagePullSecret.name -}}
imagePullSecrets:
- name: {{ .Values.images.registry.ImagePullSecret.name }}
{{- end }}
containers:
- name: mysql-replication-init
imagePullPolicy: {{ .Values.images.imagePullPolicy }}
image: {{ template "registry" . }}{{ .Values.mysql.replication.image }}:{{ .Values.images.version }}
env:
- name: REPL_PASSWORD
valueFrom:
secretKeyRef:
name: {{ .Release.Name }}-mysql-replication-init-secret
key: repl-password
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: {{ printf "%s-mysql" .Release.Name }}
key: mysql-root-password
- name: FILEPATH
valueFrom:
configMapKeyRef:
name: {{ .Release.Name }}-mysql-replication-init-configmap
key: dump-filepath
- name: MYSQL_HOST
value: {{ printf "%s-mysql" .Release.Name }}
- name: MYSQL_PORT
value: {{ .Values.mysql.service.port | quote }}
volumeMounts:
- name: mysql-replication-init-configmap
mountPath: "/var/sql"
volumes:
- name: mysql-replication-init-configmap
configMap:
name: {{ .Release.Name }}-mysql-replication-init-configmap
{{- end }}