mirror of
https://github.com/auricom/home-cluster.git
synced 2025-09-28 13:05:26 +02:00
🔧 pgbackups as cronjob
This commit is contained in:
56
cluster/apps/databases/pgbackups/cron-job.yaml
Normal file
56
cluster/apps/databases/pgbackups/cron-job.yaml
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
apiVersion: batch/v1
|
||||||
|
kind: CronJob
|
||||||
|
metadata:
|
||||||
|
name: &app pgbackups
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
schedule: "@daily"
|
||||||
|
jobTemplate:
|
||||||
|
spec:
|
||||||
|
ttlSecondsAfterFinished: 86400
|
||||||
|
template:
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
restartPolicy: OnFailure
|
||||||
|
containers:
|
||||||
|
- name: pgbackups
|
||||||
|
image: prodrigestivill/postgres-backup-local:14-alpine@sha256:2985300b476382c727fc170d3f2b37972b8445cc92635f1bcc6fa48a1a061f01
|
||||||
|
env:
|
||||||
|
- name: POSTGRES_HOST
|
||||||
|
value: postgres-rw.default.svc.cluster.local.
|
||||||
|
- name: POSTGRES_DB
|
||||||
|
value: "authelia,freshrss,gitea,home_assistant,healthchecks,joplin,lychee,recipes,sharry,outline,vaultwarden,vikunja,wallabag"
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: postgres-superuser
|
||||||
|
key: username
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: postgres-superuser
|
||||||
|
key: password
|
||||||
|
- name: POSTGRES_EXTRA_OPTS
|
||||||
|
value: "-Z9 --schema=public --blobs"
|
||||||
|
- name: BACKUP_KEEP_DAYS
|
||||||
|
value: "7"
|
||||||
|
- name: BACKUP_KEEP_WEEKS
|
||||||
|
value: "4"
|
||||||
|
- name: BACKUP_KEEP_MONTHS
|
||||||
|
value: "3"
|
||||||
|
- name: HEALTHCHECK_PORT
|
||||||
|
value: "8080"
|
||||||
|
- name: WEBHOOK_URL
|
||||||
|
value: http://healthchecks.default.svc.cluster.local.:/ping/${SECRET_HEALTHCHECKS_PING_KEY}/postgresql-backup
|
||||||
|
|
||||||
|
command:
|
||||||
|
- "/backup.sh"
|
||||||
|
volumeMounts:
|
||||||
|
- name: backups
|
||||||
|
mountPath: /backups
|
||||||
|
volumes:
|
||||||
|
- name: backups
|
||||||
|
nfs:
|
||||||
|
server: "${LOCAL_LAN_TRUENAS}"
|
||||||
|
path: /mnt/storage/backups/postgresql
|
@@ -1,55 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: helm.toolkit.fluxcd.io/v2beta1
|
|
||||||
kind: HelmRelease
|
|
||||||
metadata:
|
|
||||||
name: &app pgbackups
|
|
||||||
namespace: default
|
|
||||||
spec:
|
|
||||||
interval: 15m
|
|
||||||
chart:
|
|
||||||
spec:
|
|
||||||
chart: app-template
|
|
||||||
version: 0.2.1
|
|
||||||
sourceRef:
|
|
||||||
kind: HelmRepository
|
|
||||||
name: bjw-s-charts
|
|
||||||
namespace: flux-system
|
|
||||||
install:
|
|
||||||
createNamespace: true
|
|
||||||
remediation:
|
|
||||||
retries: 5
|
|
||||||
upgrade:
|
|
||||||
remediation:
|
|
||||||
retries: 5
|
|
||||||
values:
|
|
||||||
image:
|
|
||||||
repository: prodrigestivill/postgres-backup-local
|
|
||||||
tag: 14-alpine@sha256:2985300b476382c727fc170d3f2b37972b8445cc92635f1bcc6fa48a1a061f01
|
|
||||||
env:
|
|
||||||
POSTGRES_HOST: postgres-rw.default.svc.cluster.local.
|
|
||||||
POSTGRES_DB: "authelia,freshrss,gitea,hass,healthchecks,joplin,lychee,recipes,sharry,outline,vaultwarden,vikunja,wallabag"
|
|
||||||
POSTGRES_EXTRA_OPTS: "-Z9 --schema=public --blobs"
|
|
||||||
SCHEDULE: "@daily"
|
|
||||||
BACKUP_KEEP_DAYS: "7"
|
|
||||||
BACKUP_KEEP_WEEKS: "4"
|
|
||||||
BACKUP_KEEP_MONTHS: "3"
|
|
||||||
HEALTHCHECK_PORT: "8080"
|
|
||||||
WEBHOOK_URL: "http://healthchecks.default.svc.cluster.local.:/ping/${SECRET_HEALTHCHECKS_PING_KEY}/postgresql-backup"
|
|
||||||
service:
|
|
||||||
main:
|
|
||||||
ports:
|
|
||||||
http:
|
|
||||||
port: 8080
|
|
||||||
persistence:
|
|
||||||
backups:
|
|
||||||
enabled: true
|
|
||||||
type: nfs
|
|
||||||
server: "${LOCAL_LAN_TRUENAS}"
|
|
||||||
path: /mnt/storage/backups
|
|
||||||
mountPath: /backups/postgresql
|
|
||||||
resources:
|
|
||||||
requests:
|
|
||||||
memory: 128Mi
|
|
||||||
cpu: 50m
|
|
||||||
limits:
|
|
||||||
memory: 512Mi
|
|
@@ -1,5 +1,4 @@
|
|||||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- secret.sops.yaml
|
- cron-job.yaml
|
||||||
- helm-release.yaml
|
|
||||||
|
@@ -1,30 +0,0 @@
|
|||||||
# yamllint disable
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
metadata:
|
|
||||||
name: pgbackups
|
|
||||||
namespace: default
|
|
||||||
type: Opaque
|
|
||||||
stringData:
|
|
||||||
POSTGRES_USER: ENC[AES256_GCM,data:iIZa4nQ2GB4=,iv:TozvC0f2xbAau4d+Bh+lNyRf4KuQzrDnFHbJDdVqzp8=,tag:NcYaU6iZzTjDp2sFneQHdg==,type:str]
|
|
||||||
POSTGRES_PASSWORD: ENC[AES256_GCM,data:5HIfce9v8rwcd4l0txoGzw==,iv:KHE+3aTVyA9bDlE/9Padn+hMp+ltaPEjmf1jTCKgg+U=,tag:qBDcXfezg3NugXpeh29J1Q==,type:str]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age1hhurqwmfvl9m3vh3hk8urulfzcdsrep2ax2neazqt435yhpamu3qj20asg
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJaU16anJNV2pBZmxPR3h2
|
|
||||||
bWREUnpjcTFvd05ZQ2E4VVBDdm1FL2k4WEYwCkdQSStTNWtpdjNkUW51WS9MekdC
|
|
||||||
VkpTUUFjSjY2a1JMOUtqOVh5M0JRR2sKLS0tIDRmcWpJSEVvaUp4U1lsaTZYZGNw
|
|
||||||
OGVKWU0zNUZJSFh4aFJxQWFsYm1VeFkKaDeI/hl7z0Qh8t5W39Kxu9ert1dt4xo+
|
|
||||||
LX+MjpVqxiZNcfwROD4bkWeQSN+VsxoGOOyj4L15BlggNnlg+L7Hww==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2022-09-17T08:37:26Z"
|
|
||||||
mac: ENC[AES256_GCM,data:qeqt58+cc5BLlaTCaKS6t5q8P1jRQvHrGZjpXv91ONAk5clHQmL8NlOHwXs6ig/bSP8ihjhsI1A8DI6b644Cuti7LWdV/sbCiewZ+Uesu7pfiWSeUN1qMKIyNyWR27NK6BMzUmgjlqraRAsrDXsm25gQU5c8lq9Mw83/Svbds2c=,iv:IRUrRekFQXcQ9PNE9S0mXHfxAGXZoyJws4FZd+LuDSE=,tag:F9sqy/zHbv9pJYTcXy4taA==,type:str]
|
|
||||||
pgp: []
|
|
||||||
encrypted_regex: ^(data|stringData)$
|
|
||||||
version: 3.7.3
|
|
Reference in New Issue
Block a user