apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql spec: serviceName: "galera" replicas: 3 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: initContainers: - name: install image: registry.k8s.io/galera-install:0.1 imagePullPolicy: Always args: - "--work-dir=/work-dir" volumeMounts: - name: workdir mountPath: "/work-dir" - name: config mountPath: "/etc/mysql" - name: bootstrap image: debian:jessie command: - "/work-dir/peer-finder" args: - -on-start="/work-dir/on-start.sh" - "-service=galera" env: - name: POD_NAMESPACE valueFrom: fieldRef: apiVersion: v1 fieldPath: metadata.namespace volumeMounts: - name: workdir mountPath: "/work-dir" - name: config mountPath: "/etc/mysql" containers: - name: mysql image: registry.k8s.io/mysql-galera:e2e ports: - containerPort: 3306 name: mysql - containerPort: 4444 name: sst - containerPort: 4567 name: replication - containerPort: 4568 name: ist args: - --defaults-file=/etc/mysql/my-galera.cnf - --user=root readinessProbe: # TODO: If docker exec is buggy just use registry.k8s.io/mysql-healthz:1.0 exec: command: - sh - -c - "mysql -u root -e 'show databases;'" initialDelaySeconds: 15 timeoutSeconds: 5 successThreshold: 2 volumeMounts: - name: datadir mountPath: /var/lib/ - name: config mountPath: /etc/mysql volumes: - name: config emptyDir: {} - name: workdir emptyDir: {} volumeClaimTemplates: - metadata: name: datadir spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 1Gi