72 lines
2.6 KiB
Smarty
72 lines
2.6 KiB
Smarty
{{- define "cluster.backup" -}}
|
|
|
|
{{- if and .Values.backup.enabled .Values.backup.profiles }}
|
|
backupProfiles:
|
|
{{- $isDumpInstance := false }}
|
|
{{- $isSnapshot := false }}
|
|
{{- range $_, $profile := .Values.backup.profiles }}
|
|
- name: {{ $profile.name | quote }}
|
|
{{- if hasKey $profile "podAnnotations" }}
|
|
podAnnotations:
|
|
{{ toYaml $profile.podAnnotations | nindent 6 }}
|
|
{{- end }}
|
|
{{- if hasKey $profile "podLabels" }}
|
|
podLabels:
|
|
{{ toYaml $profile.podLabels | nindent 6 }}
|
|
{{- end }}
|
|
|
|
{{- $isDumpInstance = hasKey $profile "dumpInstance" }}
|
|
{{- $isSnapshot = hasKey $profile "snapshot" }}
|
|
{{- if or $isDumpInstance $isSnapshot }}
|
|
|
|
{{- $backupProfile := ternary $profile.dumpInstance $profile.snapshot $isDumpInstance }}
|
|
{{- if $isDumpInstance }}
|
|
dumpInstance:
|
|
{{- else if $isSnapshot }}
|
|
snapshot:
|
|
{{- else }}
|
|
{{- fail "Unsupported or unspecified backup type, must be either snapshot or dumpInstance" }}
|
|
{{ end }}
|
|
|
|
{{- if not (hasKey $backupProfile "storage") }}
|
|
{{- fail "backup profile $profile.name has no storage section" }}
|
|
{{- else if hasKey $backupProfile.storage "s3" }}
|
|
storage:
|
|
s3:
|
|
{{- if $backupProfile.storage.s3.prefix }}
|
|
prefix: {{ $backupProfile.storage.s3.prefix }}
|
|
{{- end }}
|
|
bucketName: {{ required "bucketName is required" $backupProfile.storage.s3.bucketName }}
|
|
config: {{ required "config is required" $backupProfile.storage.s3.config }}
|
|
{{- if $backupProfile.storage.s3.profile }}
|
|
profile: {{ $backupProfile.storage.s3.profile }}
|
|
{{- end }}
|
|
{{- if $backupProfile.storage.s3.endpoint }}
|
|
endpoint: {{ $backupProfile.storage.s3.endpoint }}
|
|
{{- end }}
|
|
{{- else if hasKey $backupProfile.storage "persistentVolumeClaim" }}
|
|
storage:
|
|
persistentVolumeClaim: {{ toYaml $backupProfile.storage.persistentVolumeClaim | nindent 12}}
|
|
{{- else -}}
|
|
{{- fail "Backup profile $profile.name has empty storage section - neither s3 nor persistentVolumeClaim defined" }}
|
|
{{- end -}}
|
|
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if .Values.backup.schedules }}
|
|
backupSchedules:
|
|
{{- range $_, $schedule := .Values.backup.schedules }}
|
|
- name: {{ $schedule.name | quote }}
|
|
enabled: {{ $schedule.enabled }}
|
|
schedule: {{ quote $schedule.schedule }}
|
|
{{- if ($schedule).timeZone }}
|
|
timeZone: {{ quote $schedule.timeZone }}
|
|
{{- end }}
|
|
deleteBackupData: {{ $schedule.deleteBackupData }}
|
|
backupProfileName: {{ $schedule.backupProfileName }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- end }} |