From 68195cef86f6a40bafe401e3b6d28bb099f12b2b Mon Sep 17 00:00:00 2001 From: Michael Haehnel Date: Fri, 3 Jan 2025 12:36:08 +0100 Subject: [PATCH] MOB-1267: Add helper objects for Mobene postgresql backup to s3 --- backup-postgresql.yaml | 111 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 backup-postgresql.yaml diff --git a/backup-postgresql.yaml b/backup-postgresql.yaml new file mode 100644 index 0000000..3ed103e --- /dev/null +++ b/backup-postgresql.yaml @@ -0,0 +1,111 @@ +# --- +# apiVersion: v1 +# kind: PersistentVolumeClaim +# metadata: +# name: postgres-backup-pvc +# namespace: mobene-cusprod +# spec: +# accessModes: +# - ReadWriteOnce +# resources: +# requests: +# storage: 500Gi +# storageClassName: hcloud-volumes +# --- +# apiVersion: v1 +# kind: Pod +# metadata: +# name: postgres-backup +# namespace: mobene-cusprod +# spec: +# containers: +# - name: postgres-backup +# image: postgres:14 +# env: +# - name: PGHOST +# value: "postgres-cluster" +# - name: PGUSER +# value: "postgres" +# - name: PGPASSWORD +# value: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" +# - name: PGDATABASE +# value: "smardigo_connect" +# command: ["/bin/sh", "-c"] +# args: +# - | +# mkdir -p /backup/$(date +%Y-%m-%d) && \ +# pg_dump -j 6 -Fd -f /backup/$(date +%Y-%m-%d)/database.dump && \ +# echo "Backup completed." +# volumeMounts: +# - mountPath: /backup +# name: backup-volume +# resources: +# limits: +# cpu: "7" +# memory: "1Gi" +# requests: +# cpu: "500m" +# memory: "512Mi" +# volumes: +# - name: backup-volume +# persistentVolumeClaim: +# claimName: postgres-backup-pvc +# restartPolicy: Never +# --- +# apiVersion: networking.k8s.io/v1 +# kind: NetworkPolicy +# metadata: +# name: s3-upload-egress +# namespace: mobene-cusprod +# spec: +# podSelector: +# matchLabels: +# app: s3-upload # Label des Pods +# policyTypes: +# - Egress +# egress: +# - to: +# - ipBlock: +# cidr: 0.0.0.0/0 +# ports: +# - protocol: TCP +# port: 443 # HTTPS-Traffic +# --- +# apiVersion: v1 +# kind: Pod +# metadata: +# name: s3-upload +# namespace: mobene-cusprod +# labels: +# app: s3-upload # Dieses Label wird benötigt +# spec: +# containers: +# - name: s3-uploader +# image: amazon/aws-cli:2.13.7 +# env: +# - name: AWS_ACCESS_KEY_ID +# value: "XXXXXXXXXXXXXXXXXXXX" +# - name: AWS_SECRET_ACCESS_KEY +# value: "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" +# - name: AWS_DEFAULT_REGION +# value: "de-1" # Die Region, z. B. "de-1" für Wasabi +# command: ["/bin/sh", "-c"] +# args: +# - | +# aws s3 cp --endpoint-url https://s3.de-1.wasabisys.com --recursive /backup s3://prodwork01-mobene && \ +# echo "Upload completed." +# volumeMounts: +# - mountPath: /backup +# name: backup-volume +# resources: +# limits: +# cpu: "2" +# memory: "512Mi" +# requests: +# cpu: "500m" +# memory: "256Mi" +# volumes: +# - name: backup-volume +# persistentVolumeClaim: +# claimName: postgres-backup-pvc +# restartPolicy: Never