{{- if .Values.velero.backup.enabled }} apiVersion: velero.io/v1 kind: Schedule metadata: name: {{ include "sapl.fullname" . }}-weekly namespace: {{ .Values.velero.namespace }} spec: # generate a random backup time between 1 and 5 AM on sunday schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} * * 0 template: includedNamespaces: - {{ .Release.Namespace }} {{- with .Values.velero.backup.excludedResources }} excludedResources: {{- toYaml . | nindent 8 }} {{- end }} snapshotVolumes: {{ .Values.velero.backup.snapshotVolumes }} # every sunday backup is good for 30 days (aprox. 1 month) ttl: 744h0m0s defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} hooks: resources: - name: fsfreeze includedResources: - pods labelSelector: matchLabels: {{- include "sapl.selectorLabels" . | nindent 12 }} pre: - exec: command: - /sbin/fsfreeze - --freeze - /var/interlegis/sapl/media timeout: 10s post: - exec: command: - /sbin/fsfreeze - --unfreeze - /var/interlegis/sapl/media timeout: 10s - name: pgdump includedResources: - pods labelSelector: matchLabels: app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/name: postgresql pre: - exec: command: - "/bin/bash" - "-c" - "/opt/bitnami/postgresql/bin/pg_dump -U postgres sapl > /bitnami/postgresql/sapl.dump" timeout: 360s useOwnerReferencesInBackup: false {{- end }}