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