From 0b33a15e87338222dfc2fc3615374cacdec5cee8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Pailharey?= <rpailharey@grandlyon.com>
Date: Thu, 2 Feb 2023 18:01:38 +0100
Subject: [PATCH] doc: updated k8s

---
 k8s/README.md                                 | 13 +++++
 k8s/deployments/busybox-deployment.yml        | 44 ++++++++++++++++
 .../database-restore-deployment.yml           | 51 +++++++++++++++++++
 3 files changed, 108 insertions(+)
 create mode 100644 k8s/deployments/busybox-deployment.yml
 create mode 100644 k8s/deployments/database-restore-deployment.yml

diff --git a/k8s/README.md b/k8s/README.md
index f6902a7..f203343 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 0000000..51e32c4
--- /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 0000000..48e7241
--- /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
-- 
GitLab