...
1apiVersion: apps/v1
2kind: StatefulSet
3metadata:
4 name: mysql
5spec:
6 serviceName: "galera"
7 replicas: 3
8 selector:
9 matchLabels:
10 app: mysql
11 template:
12 metadata:
13 labels:
14 app: mysql
15 spec:
16 initContainers:
17 - name: install
18 image: registry.k8s.io/galera-install:0.1
19 imagePullPolicy: Always
20 args:
21 - "--work-dir=/work-dir"
22 volumeMounts:
23 - name: workdir
24 mountPath: "/work-dir"
25 - name: config
26 mountPath: "/etc/mysql"
27 - name: bootstrap
28 image: debian:jessie
29 command:
30 - "/work-dir/peer-finder"
31 args:
32 - -on-start="/work-dir/on-start.sh"
33 - "-service=galera"
34 env:
35 - name: POD_NAMESPACE
36 valueFrom:
37 fieldRef:
38 apiVersion: v1
39 fieldPath: metadata.namespace
40 volumeMounts:
41 - name: workdir
42 mountPath: "/work-dir"
43 - name: config
44 mountPath: "/etc/mysql"
45 containers:
46 - name: mysql
47 image: registry.k8s.io/mysql-galera:e2e
48 ports:
49 - containerPort: 3306
50 name: mysql
51 - containerPort: 4444
52 name: sst
53 - containerPort: 4567
54 name: replication
55 - containerPort: 4568
56 name: ist
57 args:
58 - --defaults-file=/etc/mysql/my-galera.cnf
59 - --user=root
60 readinessProbe:
61 # TODO: If docker exec is buggy just use registry.k8s.io/mysql-healthz:1.0
62 exec:
63 command:
64 - sh
65 - -c
66 - "mysql -u root -e 'show databases;'"
67 initialDelaySeconds: 15
68 timeoutSeconds: 5
69 successThreshold: 2
70 volumeMounts:
71 - name: datadir
72 mountPath: /var/lib/
73 - name: config
74 mountPath: /etc/mysql
75 volumes:
76 - name: config
77 emptyDir: {}
78 - name: workdir
79 emptyDir: {}
80 volumeClaimTemplates:
81 - metadata:
82 name: datadir
83 spec:
84 accessModes: [ "ReadWriteOnce" ]
85 resources:
86 requests:
87 storage: 1Gi
View as plain text