From 6ebfa7f05680ed0fa1e9c71136610993f0597ec5 Mon Sep 17 00:00:00 2001 From: auricom <27022259+auricom@users.noreply.github.com> Date: Fri, 2 Dec 2022 22:53:36 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=A9=B9=20postgres-external-backup=20hook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../postgres/external-backup/00-webhook | 30 +++++++++++++++++++ .../external-backup/helm-release.yaml | 7 +++++ .../external-backup/kustomization.yaml | 6 ++++ 3 files changed, 43 insertions(+) create mode 100644 kubernetes/cluster-0/apps/databases/postgres/external-backup/00-webhook diff --git a/kubernetes/cluster-0/apps/databases/postgres/external-backup/00-webhook b/kubernetes/cluster-0/apps/databases/postgres/external-backup/00-webhook new file mode 100644 index 000000000..74b8334a2 --- /dev/null +++ b/kubernetes/cluster-0/apps/databases/postgres/external-backup/00-webhook @@ -0,0 +1,30 @@ +#!/bin/sh + +set -e + +# Possible actions: error, pre-backup, post-backup +ACTION="$1" + +if [ "$WEBHOOK_URL" != "**None**" ]; then + case "$ACTION" in + "error") + echo "Execute error webhook call to $WEBHOOK_URL" + curl --url "$WEBHOOK_URL" \ + --header 'Content-Type: application/json' \ + --max-time 10 \ + --retry 5 \ + $WEBHOOK_EXTRA_ARGS + ;; +# "pre-backup") +# echo "Nothing to do" +# ;; + "post-backup") + echo "Execute post-backup webhook call to $WEBHOOK_URL" + curl --url "$WEBHOOK_URL" \ + --header 'Content-Type: application/json' \ + --max-time 10 \ + --retry 5 \ + $WEBHOOK_EXTRA_ARGS + ;; + esac +fi diff --git a/kubernetes/cluster-0/apps/databases/postgres/external-backup/helm-release.yaml b/kubernetes/cluster-0/apps/databases/postgres/external-backup/helm-release.yaml index 0daa1d75e..49ec323ce 100644 --- a/kubernetes/cluster-0/apps/databases/postgres/external-backup/helm-release.yaml +++ b/kubernetes/cluster-0/apps/databases/postgres/external-backup/helm-release.yaml @@ -75,8 +75,15 @@ spec: volumeMounts: - name: backups mountPath: /backups + - name: files + subPath: 00-webhook + mountPath: /hooks/00-webhook volumes: - name: backups nfs: server: "${LOCAL_LAN_TRUENAS}" path: /mnt/storage/backups/postgresql + - name: files + configMap: + name: postgres-external-backup + defaultMode: 0555 diff --git a/kubernetes/cluster-0/apps/databases/postgres/external-backup/kustomization.yaml b/kubernetes/cluster-0/apps/databases/postgres/external-backup/kustomization.yaml index 0cc230388..afa3dcef9 100644 --- a/kubernetes/cluster-0/apps/databases/postgres/external-backup/kustomization.yaml +++ b/kubernetes/cluster-0/apps/databases/postgres/external-backup/kustomization.yaml @@ -2,3 +2,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - ./helm-release.yaml +configMapGenerator: + - name: postgres-external-backup + files: + - ./00-webhook +generatorOptions: + disableNameSuffixHash: true