apiVersion: apps/v1beta2
kind: StatefulSet
metadata:
  name: gitea-pxc
  labels:
    app: gitea-pxc
  namespace: gitea-db
spec:
  replicas: 3
  selector:
    matchLabels:
      app: gitea-pxc
  serviceName: gitea-pxc
  template:
    metadata:
      labels:
        app: gitea-pxc
    spec:
      initContainers:
      - name: "remove-lost-found"
        image: "busybox:1.25.0"
        imagePullPolicy: IfNotPresent
        command:
        - "rm"
        - "-fr"
        - "/var/lib/mysql/lost+found"
        volumeMounts:
        - name: mysql-data
          mountPath: /var/lib/mysql
      containers:
      - name: database
        image: "percona/percona-xtradb-cluster:5.7.19"
        imagePullPolicy: "IfNotPresent"
        command:
        - "/bin/bash"
        - "/startup-scripts/entrypoint.sh"
        resources:
          null

        env:
        - name: MYSQL_ROOT_PASSWORD
          valueFrom:
            secretKeyRef:
              name: gitea-pxc
              key: mysql-root-password
        - name: MYSQL_PASSWORD
          valueFrom:
            secretKeyRef:
              name: gitea-pxc
              key: mysql-password
        - name: XTRABACKUP_PASSWORD
          valueFrom:
            secretKeyRef:
              name: gitea-pxc
              key: xtrabackup-password
        - name: MYSQL_USER
          value: "gitea"
        - name: MYSQL_DATABASE
          value: "gitea"
        - name: ALLOW_ROOT_FROM
          value: "127.0.0.1"
        - name: CLUSTER_NAME
          value: gitea-pxc
        - name: SHORT_CLUSTER_NAME
          value: gitea-pxc
        - name: K8S_SERVICE_NAME
          value: gitea-pxc-repl
        - name: DEBUG
          value: "true"
        ports:
        - name: mysql
          containerPort: 3306
        - name: galera-repl
          containerPort: 4567
        - name: state-transfer
          containerPort: 4568
        - name: state-snapshot
          containerPort: 4444
        livenessProbe:
          exec:
            command: ["mysqladmin","ping"]
          initialDelaySeconds: 30
          timeoutSeconds: 2
        readinessProbe:
          exec:
            command: ["mysql", "-h", "127.0.0.1", "-e", "SELECT 1"]
          initialDelaySeconds: 30
          timeoutSeconds: 2
        volumeMounts:
        - name: mysql-data
          mountPath: /var/lib/mysql
        - name: mysql-startup-scripts
          mountPath: /startup-scripts
        - name: mysql-config-files
          mountPath: /etc/mysql/conf.d
        - name: slash-root
          mountPath: /root
        - name: var-log
          mountPath: /var/log

      - name: "logs"
        image: "busybox:1.25.0"
        imagePullPolicy: IfNotPresent
        command:
        - "tail"
        - "-f"
        - "/var/log/mysqld.log"
        volumeMounts:
        - name: var-log
          mountPath: /var/log
      volumes:
      - name: slash-root
        emptyDir: {}
      - name: var-log
        emptyDir: {}
      - name: mysql-config-files
        configMap:
          name: gitea-pxc-config-files
      - name: mysql-startup-scripts
        configMap:
          name: gitea-pxc-startup-scripts
  volumeClaimTemplates:
  - metadata:
      name: mysql-data
      namespace: gitea-db
    spec:
      accessModes: ["ReadWriteOnce"]
      storageClassName: "cinder"
      resources:
        requests:
          storage: "24Gi"