@@ -6,7 +6,7 @@ SPDX-License-Identifier: APACHE-2.0
66apiVersion : {{ include "common.capabilities.cronjob.apiVersion" . }}
77kind : Job
88metadata :
9- name : {{ include "mysql.cluster.fullname" . }}
9+ name : {{ include "mysql.cluster.fullname" . }}-init
1010 namespace : {{ include "common.names.namespace" . | quote }}
1111 labels : {{- include "common.labels.standard" . | nindent 4 }}
1212 app.kubernetes.io/component : primary
2121 template :
2222 spec :
2323 restartPolicy : Never
24+ subdomain : {{ include "mysql.primary.fullname" . }}
25+ dnsConfig :
26+ searches :
27+ - {{ include "mysql.primary.fullname" . }}.{{ include "common.names.namespace" . }}.svc.cluster.local
2428 initContainers :
2529 - name : init-wait
2630 image : registry.uucin.com/drycc/python-dev:latest
@@ -29,70 +33,16 @@ spec:
2933 - netcat
3034 - -v
3135 - -u
32- - mysql://$(MYSQL_MASTER_HOST)-0.$(MYSQL_MASTER_HOST):$(MYSQL_MASTER_PORT_NUMBER),mysql://$(MYSQL_MASTER_HOST)-1.$(MYSQL_MASTER_HOST):$(MYSQL_MASTER_PORT_NUMBER),mysql://$(MYSQL_MASTER_HOST)-2.$(MYSQL_MASTER_HOST) :$(MYSQL_MASTER_PORT_NUMBER )
36+ - mysql://$(MYSQL_HOST)-2 :$(MYSQL_PORT_NUMBER )
3337
3438 env :
35- - name : MYSQL_MASTER_HOST
39+ - name : MYSQL_HOST
3640 value : {{ include "mysql.primary.fullname" . }}
37- - name : MYSQL_MASTER_PORT_NUMBER
41+ - name : MYSQL_PORT_NUMBER
3842 value : {{ .Values.primary.service.ports.mysql | quote }}
39-
40- - name : mgr
41- image : {{ include "mysql.image" . }}
42- imagePullPolicy : {{ .Values.image.pullPolicy | quote }}
43- {{- if .Values.primary.containerSecurityContext.enabled }}
44- securityContext : {{- omit .Values.primary.containerSecurityContext "enabled" | toYaml | nindent 12 }}
45- {{- end }}
46- command :
47- - /bin/bash
48- - -ec
49- - |
50- export HOST_0=${MYSQL_MASTER_HOST}-0.${MYSQL_MASTER_HOST}
51- export HOST_1=${MYSQL_MASTER_HOST}-1.${MYSQL_MASTER_HOST}
52- export HOST_2=${MYSQL_MASTER_HOST}-2.${MYSQL_MASTER_HOST}
53-
54- echo "
55- set global group_replication_bootstrap_group=on;
56- start group_replication;
57- select * from performance_schema.replication_group_members;
58- set global group_replication_bootstrap_group=off;
59- " > /tmp/master.sql
60- mysql -h${HOST_0} -P${MYSQL_MASTER_PORT_NUMBER} -uroot -p${MYSQL_ROOT_PASSWORD} < /tmp/master.sql
61-
62- echo "
63- reset master;
64- change master to master_user='$(MYSQL_REPLICATION_USER)',master_password='$(MYSQL_REPLICATION_PASSWORD)' for channel 'group_replication_recovery';
65- start group_replication;
66- select * from performance_schema.replication_group_members;
67- " > /tmp/slave.sql
68- mysql -h${HOST_1} -P${MYSQL_MASTER_PORT_NUMBER} -uroot -p${MYSQL_ROOT_PASSWORD} < /tmp/slave.sql
69- mysql -h${HOST_2} -P${MYSQL_MASTER_PORT_NUMBER} -uroot -p${MYSQL_ROOT_PASSWORD} < /tmp/slave.sql
70- mysql -h${HOST_0} -P${MYSQL_MASTER_PORT_NUMBER} -uroot -p${MYSQL_ROOT_PASSWORD} -e "GRANT ALL PRIVILEGES ON *.* TO administrator@'%' WITH GRANT OPTION;flush privileges;"
71-
72- env :
73- - name : DRYCC_DEBUG
74- value : {{ ternary "true" "false" (or .Values.image.debug .Values.diagnosticMode.enabled) | quote }}
75- - name : MYSQL_MASTER_HOST
76- value : {{ include "mysql.primary.fullname" . }}
77- - name : MYSQL_MASTER_PORT_NUMBER
78- value : {{ .Values.primary.service.ports.mysql | quote }}
79- - name : MYSQL_MASTER_ROOT_USER
80- value : " root"
81- - name : MYSQL_ROOT_PASSWORD
82- valueFrom :
83- secretKeyRef :
84- name : {{ template "mysql.secretName" . }}
85- key : mysql-root-password
86- - name : MYSQL_REPLICATION_USER
87- value : {{ .Values.auth.replicationUser | quote }}
88- - name : MYSQL_REPLICATION_PASSWORD
89- valueFrom :
90- secretKeyRef :
91- name : {{ template "mysql.secretName" . }}
92- key : mysql-replication-password
9343
9444 containers :
95- - name : cluster
45+ - name : init- cluster
9646 image : {{ include "cluster.image" . }}
9747 imagePullPolicy : {{ .Values.image.pullPolicy | quote }}
9848 {{- if .Values.primary.containerSecurityContext.enabled }}
@@ -102,15 +52,32 @@ spec:
10252 - /bin/bash
10353 - -ec
10454 - |
105- export HOST_0=${MYSQL_MASTER_HOST}-0.${MYSQL_MASTER_HOST}
106- echo 'Y' | mysqlsh --uri=${MYSQL_MASTER_ROOT_USER}@${HOST_0}:${MYSQL_MASTER_PORT_NUMBER} -p${MYSQL_ROOT_PASSWORD} -e'var c=dba.createCluster("MXMGR");'
10755
56+ export HOST_0=${MYSQL_HOST}-0
57+ export HOST_1=${MYSQL_HOST}-1
58+ export HOST_2=${MYSQL_HOST}-2
59+
60+ # create mysql cluster --file
61+ echo "
62+ shell.options['dba.restartWaitTimeout']=300;
63+ dba.createCluster('MXMGR',{disableClone:false});
64+ dba.getCluster().addInstance('root@${HOST_1}',{recoveryMethod:'clone'});
65+ dba.getCluster().addInstance('root@${HOST_2}',{recoveryMethod:'clone'});
66+ dba.getCluster().status();
67+ " > /tmp/create_cluster.js
68+ mysqlsh --uri=${MYSQL_ROOT_USER}@${HOST_0}:${MYSQL_PORT_NUMBER} -p${MYSQL_ROOT_PASSWORD} -f /tmp/create_cluster.js
69+
70+ # init sql --sql
71+ echo "
72+ GRANT ALL PRIVILEGES ON *.* TO administrator@'%' WITH GRANT OPTION;flush privileges;
73+ " > /tmp/init.sql
74+ mysqlsh --uri=${MYSQL_ROOT_USER}@${HOST_0}:${MYSQL_PORT_NUMBER} -p${MYSQL_ROOT_PASSWORD} --sql -f /tmp/init.sql
10875 env :
109- - name : MYSQL_MASTER_HOST
76+ - name : MYSQL_HOST
11077 value : {{ include "mysql.primary.fullname" . }}
111- - name : MYSQL_MASTER_PORT_NUMBER
78+ - name : MYSQL_PORT_NUMBER
11279 value : {{ .Values.primary.service.ports.mysql | quote }}
113- - name : MYSQL_MASTER_ROOT_USER
80+ - name : MYSQL_ROOT_USER
11481 value : " root"
11582 - name : MYSQL_ROOT_PASSWORD
11683 valueFrom :
0 commit comments