From 5a29b59d047a5a6148ec188a18ca0ebd5cebe1a9 Mon Sep 17 00:00:00 2001 From: Jean-Marc Andre Date: Thu, 31 Dec 2020 16:07:04 +0100 Subject: [PATCH] 2 steps backups --- test/00-setup.yaml | 10 +++++++ test/01-deployment.yaml | 59 ++++++++++++++++++++++++++++++++++++++++- test/02-backupconf.yaml | 36 +++++++++++++++++-------- 3 files changed, 93 insertions(+), 12 deletions(-) diff --git a/test/00-setup.yaml b/test/00-setup.yaml index 2698446..bfb592a 100644 --- a/test/00-setup.yaml +++ b/test/00-setup.yaml @@ -72,3 +72,13 @@ spec: server: raid5.desmojim.fr:9000 bucket: testbucket2 repositorySecrets: secret-minio +--- +apiVersion: formol.desmojim.fr/v1alpha1 +kind: Function +metadata: + name: backup-pg + namespace: demo +spec: + name: backup-pg + image: desmo999r/formolcli:latest + args: ["backup", "postgres", "--hostname", $(PGHOST), "--database", $(PGDATABASE), "--username", $(PGUSER), "--password", $(PGPASSWD), "--file", "/output/backup-pg.sql"] diff --git a/test/01-deployment.yaml b/test/01-deployment.yaml index 3d54640..d3daac7 100644 --- a/test/01-deployment.yaml +++ b/test/01-deployment.yaml @@ -28,4 +28,61 @@ spec: - name: demo-data persistentVolumeClaim: claimName: demo-pvc - +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: postgres-config-demo + namespace: demo + labels: + app: postgres +data: + POSTGRES_DB: demopostgres + POSTGRES_USER: demopostgres + POSTGRES_PASSWORD: password123! +--- +apiVersion: v1 +kind: Service +metadata: + name: postgres + namespace: demo + labels: + app: postgres +spec: + ports: + - port: 5432 + name: postgres + clusterIP: None + selector: + app: postgres +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: postgres-demo + namespace: demo +spec: + serviceName: "postgres" + replicas: 1 + selector: + matchLabels: + app: postgres + template: + metadata: + labels: + app: postgres + spec: + containers: + - name: postgres + image: postgres:12 + envFrom: + - configMapRef: + name: postgres-config-demo + ports: + - containerPort: 5432 + name: postgredb + volumeMounts: + - name: postgredb + mountPath: /var/lib/postgresql/data + volumes: + - name: postgredb diff --git a/test/02-backupconf.yaml b/test/02-backupconf.yaml index 381c43b..39e564f 100644 --- a/test/02-backupconf.yaml +++ b/test/02-backupconf.yaml @@ -2,24 +2,38 @@ apiVersion: formol.desmojim.fr/v1alpha1 kind: BackupConfiguration metadata: - name: backupconf-demo + name: backup-demo namespace: demo spec: repository: name: repo-minio schedule: "*/1 * * * *" - target: + targets: + - kind: Deployment apiVersion: v1 - kind: Deployment name: nginx-deployment - volumeMounts: - - name: demo-data - mountPath: /data - paths: - - /data + volumeMounts: + - name: demo-data + mountPath: /data + paths: + - /data + - kind: task + name: backup-pg + steps: + - name: backup-pg + namespace: demo + env: + - name: PGHOST + value: postgres + - name: PGDATABASE + value: demopostgres + - name: PGUSER + value: demopostgres + - name: PGPASSWD + value: password123! keep: last: 5 - daily: 5 - weekly: 3 - monthly: 10 + daily: 2 + weekly: 2 + monthly: 6 yearly: 3