pg backup as well
This commit is contained in:
parent
7fcc5738bd
commit
c762a58080
@ -1,32 +0,0 @@
|
|||||||
apiVersion: batch/v1beta1
|
|
||||||
kind: CronJob
|
|
||||||
metadata:
|
|
||||||
name: postgres-backup
|
|
||||||
spec:
|
|
||||||
# Backup the database every day at 2AM
|
|
||||||
schedule: "0 2 * * *"
|
|
||||||
jobTemplate:
|
|
||||||
spec:
|
|
||||||
template:
|
|
||||||
spec:
|
|
||||||
containers:
|
|
||||||
- name: postgres-backup
|
|
||||||
image: postgres:12
|
|
||||||
command: ["/bin/sh"]
|
|
||||||
args: ["-c", 'echo "$PGPASS" > /root/.pgpass && chmod 600 /root/.pgpass && pg_dump -U postgres_admin -h postgres test_database > /var/backups/backup-$(date +"%m-%d-%Y-%H-%M").sql']
|
|
||||||
env:
|
|
||||||
- name: PGPASS
|
|
||||||
valueFrom:
|
|
||||||
secretKeyRef:
|
|
||||||
name: pgpass
|
|
||||||
key: pgpass
|
|
||||||
volumeMounts:
|
|
||||||
- mountPath: /var/backups
|
|
||||||
name: postgres-storage
|
|
||||||
restartPolicy: Never
|
|
||||||
volumes:
|
|
||||||
- name: postgres-storage
|
|
||||||
hostPath:
|
|
||||||
# Ensure the file directory is created.
|
|
||||||
path: /var/volumes/postgres-backups
|
|
||||||
type: DirectoryOrCreate
|
|
37
infrastructure/backup/postgres/cronjob.yaml
Normal file
37
infrastructure/backup/postgres/cronjob.yaml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
apiVersion: batch/v1
|
||||||
|
kind: CronJob
|
||||||
|
metadata:
|
||||||
|
name: postgres-backup
|
||||||
|
spec:
|
||||||
|
# Backup the database every day at 1AM
|
||||||
|
schedule: "0 1 * * *"
|
||||||
|
jobTemplate:
|
||||||
|
spec:
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: postgres-backup
|
||||||
|
image: postgres:15
|
||||||
|
command: ["/bin/sh"]
|
||||||
|
args:
|
||||||
|
- "-c"
|
||||||
|
- >-
|
||||||
|
echo "$postgress_password" > /root/.pgpass
|
||||||
|
&&
|
||||||
|
chmod 600 /root/.pgpass
|
||||||
|
&&
|
||||||
|
pg_dumpall -U postgres -h postgrespostgres-postgresql.postgres > /backup/backup-$(date +"%m-%d-%Y-%H-%M").sql
|
||||||
|
env:
|
||||||
|
- name: PGpostgress_passwordPASS
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: postgres-password
|
||||||
|
key: password
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /backup
|
||||||
|
name: postgres-backup-claim
|
||||||
|
restartPolicy: Never
|
||||||
|
volumes:
|
||||||
|
- name: postgres-backup-claim
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: postgres-backup-claim
|
9
infrastructure/backup/postgres/kustomization.yaml
Normal file
9
infrastructure/backup/postgres/kustomization.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
|
||||||
|
namespace: backup
|
||||||
|
|
||||||
|
resources:
|
||||||
|
- postgres.sealedsecret.yaml
|
||||||
|
- pvc.yaml
|
||||||
|
- cronjob.yaml
|
21
infrastructure/backup/postgres/postgres.sealedsecret.yaml
Normal file
21
infrastructure/backup/postgres/postgres.sealedsecret.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"kind": "SealedSecret",
|
||||||
|
"apiVersion": "bitnami.com/v1alpha1",
|
||||||
|
"metadata": {
|
||||||
|
"name": "postgres-password",
|
||||||
|
"namespace": "backup",
|
||||||
|
"creationTimestamp": null
|
||||||
|
},
|
||||||
|
"spec": {
|
||||||
|
"template": {
|
||||||
|
"metadata": {
|
||||||
|
"name": "postgres-password",
|
||||||
|
"namespace": "backup",
|
||||||
|
"creationTimestamp": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"encryptedData": {
|
||||||
|
"password": "AgBKXybtQWxHVX0UeQ9z5VOSJp9dadp+j+8VxBzyh37BdfLA9l5YppOWgK2RpmQmFmcrrxr7u2SgyJ4rP60n0r8LHLcmPTXAUJe5b07HTVOLn8Q4C9ObEkWVXBycmI5Kc8vHZ+OW8T3s/QqrnLIlQPOq56mjsWjO24O/72aUl4IzlrSq3NYPAMpQOwfgoam/4ZaHed6+Im40eQalkEWRlk5KOkSayWsrNJNccAhnZ8JapCP25pVVfz5xJc9286jNqTCgGt1Ez3xTXbd3LPI2QgeonIPU9zqlXeQgjS/UuAIuKyEW7ypD2/7lLoU1Yk4XMzIreVSrYgfy7ylnC++FPZBI+32/ocbEgpXPX9O/gb2tQLANVEn9BwVyPe3MW/vB63ryyfhtrPQbNJCJNnwKlsoS+HcVYBGAAtjdUYD4/2fKabH7Th2SlMIJvGBwhxpJo1bnblHoTUQ/Ao5gaUIcZC0qCnd9ZKVRKwtFsJrgqnEAapd9dNdDu9RBxVKAUa0TS+ahnXBaC87lvydb/9PxLz+J7E27oInt9coFEHpaZFNdt0QJXUqs3DF0JO7ll3wC+R1iDUWRY3NKf/bpiGgkwk3VtUkIXcW5biaD7lF8inrLVzktvQGET/CbYre5ws9qj5xF4NUYUivYexiP8isScnbrys671GizUjxFoPQpWotEHmZ9DNsIYOF3OvewKjDllpo1izKmY1Y="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
13
infrastructure/backup/postgres/pvc.yaml
Normal file
13
infrastructure/backup/postgres/pvc.yaml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
kind: PersistentVolumeClaim
|
||||||
|
apiVersion: v1
|
||||||
|
|
||||||
|
metadata:
|
||||||
|
name: postgres-backup-claim
|
||||||
|
|
||||||
|
spec:
|
||||||
|
storageClassName: nfs-client
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 10Gi
|
@ -4,3 +4,4 @@ resources:
|
|||||||
- secrets.application.yaml
|
- secrets.application.yaml
|
||||||
- backup.application.yaml
|
- backup.application.yaml
|
||||||
- prune.application.yaml
|
- prune.application.yaml
|
||||||
|
- postgres.backup.application.yaml
|
||||||
|
18
kluster-deployments/backup/postgres.backup.application.yaml
Normal file
18
kluster-deployments/backup/postgres.backup.application.yaml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
apiVersion: argoproj.io/v1alpha1
|
||||||
|
kind: Application
|
||||||
|
metadata:
|
||||||
|
name: postgres-backup-application
|
||||||
|
namespace: argocd
|
||||||
|
spec:
|
||||||
|
project: infrastructure
|
||||||
|
source:
|
||||||
|
repoURL: https://github.com/moll-re/k3s-infra.git
|
||||||
|
targetRevision: main
|
||||||
|
path: infrastructure/backup/postgres
|
||||||
|
destination:
|
||||||
|
server: https://kubernetes.default.svc
|
||||||
|
namespace: backup
|
||||||
|
syncPolicy:
|
||||||
|
automated:
|
||||||
|
prune: true
|
||||||
|
selfHeal: true
|
Loading…
x
Reference in New Issue
Block a user