2 steps backups

This commit is contained in:
jandre 2020-12-31 16:07:04 +01:00
parent 7bbdc831b2
commit 5a29b59d04
3 changed files with 93 additions and 12 deletions

View File

@ -72,3 +72,13 @@ spec:
server: raid5.desmojim.fr:9000 server: raid5.desmojim.fr:9000
bucket: testbucket2 bucket: testbucket2
repositorySecrets: secret-minio 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"]

View File

@ -28,4 +28,61 @@ spec:
- name: demo-data - name: demo-data
persistentVolumeClaim: persistentVolumeClaim:
claimName: demo-pvc 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

View File

@ -2,24 +2,38 @@
apiVersion: formol.desmojim.fr/v1alpha1 apiVersion: formol.desmojim.fr/v1alpha1
kind: BackupConfiguration kind: BackupConfiguration
metadata: metadata:
name: backupconf-demo name: backup-demo
namespace: demo namespace: demo
spec: spec:
repository: repository:
name: repo-minio name: repo-minio
schedule: "*/1 * * * *" schedule: "*/1 * * * *"
target: targets:
- kind: Deployment
apiVersion: v1 apiVersion: v1
kind: Deployment
name: nginx-deployment name: nginx-deployment
volumeMounts: volumeMounts:
- name: demo-data - name: demo-data
mountPath: /data mountPath: /data
paths: paths:
- /data - /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: keep:
last: 5 last: 5
daily: 5 daily: 2
weekly: 3 weekly: 2
monthly: 10 monthly: 6
yearly: 3 yearly: 3