mirror of
https://github.com/morten-olsen/homelab-operator.git
synced 2026-02-08 01:36:28 +01:00
45 lines
1.3 KiB
YAML
45 lines
1.3 KiB
YAML
{{- $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 }}
|