| {{ 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 }} |