{{- $values := .Values -}} {{- $release := .Release -}} --- {{- range $key, $value := $values.jobs}} apiVersion: batch/v1 kind: CronJob metadata: name: "{{ $release.Name }}-{{ $key }}-backup" spec: schedule: "{{ $value.cron.backup }}" concurrencyPolicy: Forbid successfulJobsHistoryLimit: 3 failedJobsHistoryLimit: 1 jobTemplate: spec: template: spec: containers: - name: "{{ $release.Name }}-{{ $key }}-backup" image: ghcr.io/morten-olsen/homelab-operator-backup:main command: ["/app/backup.sh"] env: - name: RESTIC_PASSWORD valueFrom: secretKeyRef: name: "{{ $values.password.name }}" key: "{{ $values.password.key }}" volumeMounts: - name: source mountPath: "/mnt/source" - name: target mountPath: "/mnt/backups" subPath: "{{ $release.Name }}-{{ $key }}" volumes: - name: source persistentVolumeClaim: claimName: "{{ $value.source }}" - name: target persistentVolumeClaim: claimName: "{{ $values.target }}" restartPolicy: OnFailure --- {{- end }}