apiVersion: v1 kind: Namespace metadata: name: php-test --- apiVersion: v1 kind: Secret metadata: name: mysql-secret namespace: php-test type: Opaque stringData: MYSQL_ROOT_PASSWORD: "rootpassword" MYSQL_DATABASE: "test_db" MYSQL_USER: "phpuser" MYSQL_PASSWORD: "phppassword" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc namespace: php-test spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: mysql namespace: php-test spec: replicas: 1 selector: matchLabels: app: mysql template: metadata: labels: app: mysql spec: containers: - name: mysql image: mysql:8.0 ports: - containerPort: 3306 name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_ROOT_PASSWORD - name: MYSQL_DATABASE valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_DATABASE - name: MYSQL_USER valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_USER - name: MYSQL_PASSWORD valueFrom: secretKeyRef: name: mysql-secret key: MYSQL_PASSWORD volumeMounts: - name: mysql-storage mountPath: /var/lib/mysql - name: init-sql mountPath: /docker-entrypoint-initdb.d volumes: - name: mysql-storage persistentVolumeClaim: claimName: mysql-pvc - name: init-sql configMap: name: mysql-init-sql --- apiVersion: v1 kind: Service metadata: name: mysql namespace: php-test spec: selector: app: mysql ports: - port: 3306 targetPort: 3306 clusterIP: None