--- apiVersion: v1 data: init.sql: | drop database if exists wordpress; create database wordpress; create user 'wordpress'@'%' identified by 'wordpress'; grant all on wordpress.* to 'wordpress'@'%'; flush privileges; kind: ConfigMap metadata: name: wordpress-init namespace: tools --- apiVersion: apps/v1 kind: StatefulSet metadata: name: wordpress-mariadb namespace: tools labels: app: wordpress-mariadb spec: replicas: 1 selector: matchLabels: app: wordpress-mariadb template: metadata: labels: app: wordpress-mariadb spec: terminationGracePeriodSeconds: 60 containers: - name: wordpress-mariadb image: harbor.uenpay.com/base/mariadb:10.5 #image: mariadb:10.5 imagePullPolicy: IfNotPresent ports: - containerPort: 3306 lifecycle: postStart: exec: command: ["/bin/sh", "-c", "mysql -u root -p${MYSQL_ROOT_PASSWORD} < /docker-entrypoint-initdb.d/init.sql"] env: - name: MYSQL_ROOT_PASSWORD value: Blala008! - name: MYSQL_LOG_CONSOLE value: "true" readinessProbe: tcpSocket: port: 3306 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 30 failureThreshold: 10 livenessProbe: tcpSocket: port: 3306 initialDelaySeconds: 30 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 1 resources: limits: cpu: 1 memory: 2Gi requests: cpu: 200m memory: 500Mi volumeMounts: - name: init-scripts mountPath: /docker-entrypoint-initdb.d - name: data mountPath: /var/lib/mysql volumes: - name: init-scripts configMap: name: wordpress-init items: - key: init.sql path: init.sql volumeClaimTemplates: - metadata: name: data spec: accessModes: [ "ReadWriteOnce" ] resources: requests: storage: 30Gi --- apiVersion: v1 kind: Service metadata: name: wordpress-mariadb namespace: tools labels: app: wordpress-mariadb spec: selector: app: wordpress-mariadb ports: - name: wordpress-mariadb port: 3306 protocol: TCP