diff --git a/helmfile.yaml b/helmfile.yaml index 43d1d7d..a90fff4 100644 --- a/helmfile.yaml +++ b/helmfile.yaml @@ -185,8 +185,12 @@ releases: namespace: k8up createNamespace: true chart: k8up-io/k8up - # backups - - name: k8up-backup + values: + - ./k8up/values.yaml + + +# backups + - name: ghost-backup namespace: ghost chart: ./k8up-backup createNamespace: true @@ -212,7 +216,6 @@ releases: value: {{ requiredEnv "HETZNER_S3_ACCESS_SECRET" }} - name: repoPassword value: {{ requiredEnv "k8UP_REPO_PASSWORD" }} - - name: gitea-backup namespace: gitea chart: ./k8up-backup @@ -226,4 +229,16 @@ releases: value: {{ requiredEnv "HETZNER_S3_ACCESS_SECRET" }} - name: repoPassword value: {{ requiredEnv "k8UP_REPO_PASSWORD" }} - + - name: immich-backup + namespace: immich + chart: ./k8up-backup + createNamespace: true + values: + - ./k8up-backup/values_override.yaml + setString: + - name: credentials.id + value: {{ requiredEnv "HETZNER_S3_ACCESS_KEY" }} + - name: credentials.key + value: {{ requiredEnv "HETZNER_S3_ACCESS_SECRET" }} + - name: repoPassword + value: {{ requiredEnv "k8UP_REPO_PASSWORD" }} diff --git a/immich/values.yaml.gotmpl b/immich/values.yaml.gotmpl index d48e0ad..4681922 100644 --- a/immich/values.yaml.gotmpl +++ b/immich/values.yaml.gotmpl @@ -12,15 +12,19 @@ immich: persistence: library: existingClaim: immich-data - + redis: enabled: true master: + persistence: + annotations: + k8up.io/backup: 'false' resources: requests: cpu: 10m limits: cpu: 1 + server: ingress: main: diff --git a/k8up-backup/templates/backup.yaml b/k8up-backup/templates/backup.yaml index 558b590..e1d81e3 100644 --- a/k8up-backup/templates/backup.yaml +++ b/k8up-backup/templates/backup.yaml @@ -1,3 +1,5 @@ +# {{- if .Values.oneTimeBackup }} + apiVersion: k8up.io/v1 kind: Backup metadata: @@ -18,3 +20,4 @@ spec: secretAccessKeySecretRef: name: "{{ .Release.Name }}-credentials" key: key +# {{- end }} diff --git a/k8up-backup/templates/schedule.yaml b/k8up-backup/templates/schedule.yaml new file mode 100644 index 0000000..321e731 --- /dev/null +++ b/k8up-backup/templates/schedule.yaml @@ -0,0 +1,35 @@ +# {{- if not .Values.oneTimeBackup }} +apiVersion: k8up.io/v1 +kind: Schedule +metadata: + name: "{{ .Release.Name }}-schedule" +spec: + backend: + repoPasswordSecretRef: + name: "{{ .Release.Name }}-repopassword" + key: password + s3: + endpoint: "{{ .Values.endpoint }}" + bucket: "{{ .Values.bucket }}" + accessKeyIDSecretRef: + name: "{{ .Release.Name }}-credentials" + key: id + secretAccessKeySecretRef: + name: "{{ .Release.Name }}-credentials" + key: key + backup: + schedule: '@hourly-random' + failedJobsHistoryLimit: 2 + successfulJobsHistoryLimit: 2 + # optional + #promURL: https://prometheus-io-instance:8443 + check: + schedule: '@daily-random' + # optional + #promURL: https://prometheus-io-instance:8443 + prune: + schedule: '@weekly-ramdom' + retention: + keepLast: 5 + keep Daily: 14 +# {{- end }} diff --git a/k8up-backup/values.yaml b/k8up-backup/values.yaml index 16cfea4..eb60222 100644 --- a/k8up-backup/values.yaml +++ b/k8up-backup/values.yaml @@ -5,3 +5,4 @@ # id: # key: +oneTimeBackup: false diff --git a/k8up/values.yaml b/k8up/values.yaml index e69de29..7b2b09d 100644 --- a/k8up/values.yaml +++ b/k8up/values.yaml @@ -0,0 +1,4 @@ +k8up: + envVars: + - name: BACKUP_GLOBAL_CONCURRENT_BACKUP_JOBS_LIMIT + values: 1