From 14ab11b20ec4ba5e4635addc25448b075605af5f Mon Sep 17 00:00:00 2001 From: Fabio Rauber Date: Mon, 4 Apr 2022 11:25:50 -0300 Subject: [PATCH] Add velero backup support to pdnsadmin --- .../templates/velero-schedule-weekdays.yaml | 39 +++++++++++++++++++ charts/pdnsadmin/v0.1.0/values.yaml | 15 ++++++- 2 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 charts/pdnsadmin/v0.1.0/templates/velero-schedule-weekdays.yaml diff --git a/charts/pdnsadmin/v0.1.0/templates/velero-schedule-weekdays.yaml b/charts/pdnsadmin/v0.1.0/templates/velero-schedule-weekdays.yaml new file mode 100644 index 0000000..7be5938 --- /dev/null +++ b/charts/pdnsadmin/v0.1.0/templates/velero-schedule-weekdays.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "pdnsadmin.fullname" . }}-weekdays + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on weekdays + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 1-5 + template: + includedNamespaces: + - {{ .Release.Namespace }} + {{- with .Values.velero.backup.excludedResources }} + excludedResources: + {{- toYaml . | nindent 8 }} + {{- end }} + snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} + # every weekday backup is good for the next week (7 days) + ttl: 168h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: mysqldump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: mariadb + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "/opt/bitnami/mariadb/bin/mysqldump {{ .Values.mariadb.auth.database }} -u {{ .Values.mariadb.auth.username }} -p$MARIADB_PASSWORD > /bitnami/mariadb/{{ .Values.mariadb.auth.database }}.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/pdnsadmin/v0.1.0/values.yaml b/charts/pdnsadmin/v0.1.0/values.yaml index d770a0c..5e3f5d7 100644 --- a/charts/pdnsadmin/v0.1.0/values.yaml +++ b/charts/pdnsadmin/v0.1.0/values.yaml @@ -87,4 +87,17 @@ mariadb: database: pdnsadmin password: pdnsadminpw rootPassword: pdnsadminrootpw - username: pdnsadmin \ No newline at end of file + username: pdnsadmin + +velero: + namespace: velero + backup: + enabled: true + snapshotVolumes: false + defaultVolumesToRestic: true + # cert-manager objects are usually blocked during backup + excludedResources: + - certificates.cert-manager.io + - orders.acme.cert-manager.io + - certificaterequests.cert-manager.io + - challenges.acme.cert-manager.io \ No newline at end of file