apiVersion: batch/v1
kind: CronJob
metadata:
  name: restic-backblaze
  
spec:
  successfulJobsHistoryLimit: 2
  failedJobsHistoryLimit: 2

  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: Never
          hostname: restic-kluster
          # used by restic to identify the host
          containers:
          # run after completion of initContainers
          - name: ntfy-command-send
            image: curlimages/curl
            command:
              - /bin/sh
              - -c
            args:
              - >-
                curl
                https://ntfy.kluster.moll.re/backup
                -H "Title: ${OPERATION}"
                -d "Finished successfully"
            env:
              - name: OPERATION
                value: "PLACEHOLDER"

          initContainers:
          - name: restic-base-container
            image: restic/restic:latest
            command:
              - /bin/sh
              - -c
            # >- strips newlines
            # RESTIC_ARGS Can be for instance: --verbose --dry-run
            args: []
            
            volumeMounts:
              - mountPath: /data
                name: backup-nfs-access

            env:
              # secrets live in the same namespace as per kustomization.yaml
              - name: RESTIC_PASSWORD
                valueFrom:
                  secretKeyRef:
                    name: restic-gdrive-credentials
                    key: restic-password
              - name: RESTIC_REPOSITORY
                valueFrom:
                  secretKeyRef:
                    name: backblaze-credentials
                    key: repository-string
              - name: AWS_ACCESS_KEY_ID
                valueFrom:
                  secretKeyRef:
                    name: backblaze-credentials
                    key: key-id
              - name: AWS_SECRET_ACCESS_KEY
                valueFrom:
                  secretKeyRef:
                    name: backblaze-credentials
                    key: key-secret
          volumes:
            - name: backup-nfs-access
              persistentVolumeClaim:
                claimName: backup-nfs-access