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
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"]

View File

@ -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

View File

@ -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