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

  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: Never
          hostname: restic-k3s-pod
          # used by restic to identify the host
          containers:
          # run after completion of initContainers
          - name: ntfy-command-send
            image: curl
            command: ["curl"]
            args:
              - "-H"
              - "Title: $(cat /proc/sys/kernel/hostname)"
              - "-d"
              - "Restic operation to gdrive finished"
              - "https://ntfy.kluster.moll.re/backup"
          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:
              - name: RESTIC_REPOSITORY
                value: rest:http://rclone-gcloud:8000/kluster
                # lives in the same namespace
              - name: RESTIC_PASSWORD
                valueFrom:
                  secretKeyRef:
                    name: restic-gdrive-credentials
                    key: restic-password
          volumes:
            - name: backup-nfs-access
              persistentVolumeClaim:
                claimName: backup-nfs-access