apiVersion: v1 kind: Service metadata: name: mysql labels: app: mysql spec: ports: - port: 3306 name: db type: ClusterIP selector: app: mysql --- apiVersion: apps/v1 kind: StatefulSet metadata: name: mysql spec: selector: matchLabels: app: mysql # has to match .spec.template.metadata.labels serviceName: "mysql" replicas: 1 template: metadata: labels: app: mysql # has to match .spec.selector.matchLabels spec: terminationGracePeriodSeconds: 10 containers: - name: mysql image: aimvector/mysql-example ports: - containerPort: 3306 name: db env: - name: MYSQL_DATABASE valueFrom: secretKeyRef: name: mysql key: MYSQL_DATABASE - name: MYSQL_USER valueFrom: secretKeyRef: name: mysql key: MYSQL_USER - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: mysql key: MYSQL_PASSWORD - name: MYSQL_RANDOM_ROOT_PASSWORD valueFrom: configMapKeyRef: name: mysql key: MYSQL_RANDOM_ROOT_PASSWORD volumeMounts: - name: db mountPath: /var/lib/mysql volumeClaimTemplates: - metadata: name: db spec: accessModes: [ "ReadWriteOnce" ] storageClassName: "standard" resources: requests: storage: 500Mi