diff --git a/k8s/README.md b/k8s/README.md index f6902a73f4517663a23519650dd8803d1761a110..f2033439db483662bff170d6629e3b7b49e67cc7 100644 --- a/k8s/README.md +++ b/k8s/README.md @@ -82,6 +82,12 @@ Configuration: - Copier le contenu du fichier k8s/services/ecolyo-agent-database-service.yml dedans - Lancer `oc apply -f ecolyo-agent-database-service.yml` +## Déployer un container de restauration de dump MySQL + +- Depuis VS Code, créer un fichier database-restore-deployment.yml +- Copier le contenu du fichier k8s/deployments/database-restore-deployment.yml dedans +- Lancer `oc apply -f database-restore-deployment.yml` + ### Déployer la base de données Meilisearch - Depuis VS Code, créer un fichier ecolyo-agent-meilisearch-deployment.yml @@ -145,3 +151,10 @@ Configuration: ```s -F *.sql.gz | head -n -72 | xargs -r rm``` - Répéter l'opération pour **mysql-dump-cronjob-daily** et **mysql-dump-cronjob-weekly** + +## Restaurer un dump +- Monter un pod du déploiement "database-restore" +- Rentrer dans le terminal de ce pod +- Aller dans le dossier des dumps horaires `cd /dump/hourly` ou journaliers `cd /dump/hourly` ou hebdomadaires `cd /dump/weekly` +- Décompresser le dump souhaité `gz -d YYYY-MM-dd_hh:mm:ss.sql.gz` +- Restorer ce dump `mysql -uroot -p$MYSQL_ROOT_PASSWORD -h$DATABASE_HOST $MYSQL_DATABASE < YYYY-MM-dd_hh:mm:ss.sql` diff --git a/k8s/deployments/busybox-deployment.yml b/k8s/deployments/busybox-deployment.yml new file mode 100644 index 0000000000000000000000000000000000000000..51e32c4c440e9066dcb72295c967fef933f5f2f9 --- /dev/null +++ b/k8s/deployments/busybox-deployment.yml @@ -0,0 +1,44 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: busybox + namespace: ns-selfdata-d01-syn +spec: + selector: + matchLabels: + app: httpd + replicas: 1 + template: + metadata: + labels: + app: httpd + spec: + volumes: + - name: data + persistentVolumeClaim: + claimName: pvc-4-ns-selfdata-d01-syn-claim + - name: mysql + persistentVolumeClaim: + claimName: pvc-3-ns-selfdata-d01-syn-claim + containers: + - name: busybox + image: 'busybox:latest' + command: + - sh + - '-c' + - tail -f /dev/null + resources: + limits: + cpu: 100m + memory: 8Mi + requests: + cpu: 100m + memory: 8Mi + volumeMounts: + - name: data + mountPath: /mnt/data + - name: mysql + mountPath: /mnt/mysql + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: Always \ No newline at end of file diff --git a/k8s/deployments/database-restore-deployment.yml b/k8s/deployments/database-restore-deployment.yml new file mode 100644 index 0000000000000000000000000000000000000000..48e7241e9937236779ead8a32fbc825e04f7d0c8 --- /dev/null +++ b/k8s/deployments/database-restore-deployment.yml @@ -0,0 +1,51 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: database-restore + namespace: ns-selfdata-d01-syn +spec: + selector: + matchLabels: + app: httpd + replicas: 0 + template: + metadata: + labels: + app: httpd + spec: + volumes: + - name: pvc-4-ns-selfdata-d01-syn-claim + persistentVolumeClaim: + claimName: pvc-4-ns-selfdata-d01-syn-claim + containers: + - name: mysql-restore + image: 'mysql:5' + env: + - name: MYSQL_DATABASE + valueFrom: + secretKeyRef: + name: ecolyo-agent-database + key: name + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + name: ecolyo-agent-database + key: password + - name: DATABASE_HOST + valueFrom: + secretKeyRef: + name: ecolyo-agent-database + key: host + - resources: + limits: + cpu: 100m + memory: 256Mi + requests: + cpu: 100m + memory: 256Mi + volumeMounts: + - name: pvc-4-ns-selfdata-d01-syn-claim + mountPath: /dump + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + imagePullPolicy: IfNotPresent \ No newline at end of file