diff --git a/charts/edemocracia/v0.1.12/templates/velero-schedule-monthly.yaml b/charts/edemocracia/v0.1.12/templates/velero-schedule-monthly.yaml new file mode 100755 index 0000000..04cbc3a --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/velero-schedule-monthly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-monthly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on first day of every month + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} 1 * * + 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 year (365 days) + ttl: 8760h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.12/templates/velero-schedule-weekdays.yaml b/charts/edemocracia/v0.1.12/templates/velero-schedule-weekdays.yaml new file mode 100755 index 0000000..ea53bda --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/velero-schedule-weekdays.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.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: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.12/templates/velero-schedule-weekly.yaml b/charts/edemocracia/v0.1.12/templates/velero-schedule-weekly.yaml new file mode 100755 index 0000000..e9a09a3 --- /dev/null +++ b/charts/edemocracia/v0.1.12/templates/velero-schedule-weekly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.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: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.12/values.yaml b/charts/edemocracia/v0.1.12/values.yaml index 7e8c1cb..268d428 100755 --- a/charts/edemocracia/v0.1.12/values.yaml +++ b/charts/edemocracia/v0.1.12/values.yaml @@ -186,6 +186,19 @@ ingress: # extra annotations only annotations: {} +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 + nodeSelector: {} tolerations: [] diff --git a/charts/edemocracia/v0.1.13/templates/velero-schedule-monthly.yaml b/charts/edemocracia/v0.1.13/templates/velero-schedule-monthly.yaml new file mode 100755 index 0000000..04cbc3a --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/velero-schedule-monthly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.fullname" . }}-monthly + namespace: {{ .Values.velero.namespace }} +spec: + # generate a random backup time between 1 and 5 AM on first day of every month + schedule: {{ mod (randNumeric 2) 60 }} {{ mod (randNumeric 1) 6 }} 1 * * + 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 year (365 days) + ttl: 8760h0m0s + defaultVolumesToRestic: {{ .Values.velero.backup.defaultVolumesToRestic }} + hooks: + resources: + - name: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.13/templates/velero-schedule-weekdays.yaml b/charts/edemocracia/v0.1.13/templates/velero-schedule-weekdays.yaml new file mode 100755 index 0000000..ea53bda --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/velero-schedule-weekdays.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.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: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.13/templates/velero-schedule-weekly.yaml b/charts/edemocracia/v0.1.13/templates/velero-schedule-weekly.yaml new file mode 100755 index 0000000..e9a09a3 --- /dev/null +++ b/charts/edemocracia/v0.1.13/templates/velero-schedule-weekly.yaml @@ -0,0 +1,39 @@ +{{- if .Values.velero.backup.enabled }} +apiVersion: velero.io/v1 +kind: Schedule +metadata: + name: {{ include "edemocracia.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: pgdump + includedResources: + - pods + labelSelector: + matchLabels: + app.kubernetes.io/instance: {{ .Release.Name }} + app.kubernetes.io/name: postgresql + pre: + - exec: + command: + - "/bin/bash" + - "-c" + - "PGPASSWORD=$POSTGRES_PASSWORD /opt/bitnami/postgresql/bin/pg_dumpall -U postgres > /bitnami/postgresql/all.dump" + timeout: 360s + onError: Continue + useOwnerReferencesInBackup: false +{{- end }} \ No newline at end of file diff --git a/charts/edemocracia/v0.1.13/values.yaml b/charts/edemocracia/v0.1.13/values.yaml index 5208076..584fdc1 100755 --- a/charts/edemocracia/v0.1.13/values.yaml +++ b/charts/edemocracia/v0.1.13/values.yaml @@ -186,6 +186,19 @@ ingress: # extra annotations only annotations: {} +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 + nodeSelector: {} tolerations: []