apiVersion: v1 kind: PersistentVolume metadata: name: mysql-pv spec: capacity: storage: 1Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain hostPath: path: /tmp/todo-mysql-data --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pvc namespace: todo-app spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi --- apiVersion: v1 kind: ConfigMap metadata: name: mysql-init-script namespace: todo-app data: init.sql: | CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(100) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL ); CREATE TABLE IF NOT EXISTS tasks ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, title VARCHAR(255) NOT NULL, description TEXT NOT NULL, deadline DATE NOT NULL, status TINYINT(1) NOT NULL DEFAULT 0, FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE ); --- apiVersion: apps/v1 kind: StatefulSet metadata: name: db namespace: todo-app spec: serviceName: db replicas: 1 selector: matchLabels: app: db template: metadata: labels: app: db spec: containers: - name: mysql image: mysql:8.0 ports: - containerPort: 3306 env: - name: MYSQL_ROOT_PASSWORD value: "NajsilnejsieHeslo123." - name: MYSQL_DATABASE value: "zkt_zadanie" - name: MYSQL_USER value: "todo_user" - name: MYSQL_PASSWORD value: "SilneHeslo123." volumeMounts: - name: mysql-storage mountPath: /var/lib/mysql - name: mysql-init-volume mountPath: /docker-entrypoint-initdb.d/init.sql subPath: init.sql volumes: - name: mysql-storage persistentVolumeClaim: claimName: mysql-pvc - name: mysql-init-volume configMap: name: mysql-init-script