--- apiVersion: batch/v1 kind: Job metadata: name: ${APP}-${CLAIM}-restore namespace: ${NAMESPACE} spec: ttlSecondsAfterFinished: 3600 template: spec: automountServiceAccountToken: false restartPolicy: OnFailure containers: - name: restore image: ghcr.io/onedr0p/kopia:0.12.1@sha256:ed13c180efbe3bbaf9101ebf6951666eddf9d97a08e695d366088fee9b60d508 env: - name: KOPIA_PASSWORD value: "none" command: - /bin/bash - -c - |- shopt -s dotglob printf "\e[1;32m%-6s\e[m\n" "[01/04] Connect to repo ..." && kopia repo connect filesystem --path=/snapshots --override-hostname=cluster --override-username=root printf "\e[1;32m%-6s\e[m\n" "[02/04] Remove previous data ..." && rm -rf /data/${NAMESPACE}/${APP}/${CLAIM}/* printf "\e[1;32m%-6s\e[m\n" "[03/04] Restore snapshot ..." && kopia snap restore "${SNAPSHOT}" /data/${NAMESPACE}/${APP}/${CLAIM} printf "\e[1;32m%-6s\e[m\n" "[04/04] Disconnect from repo ..." && kopia repo disconnect volumeMounts: - name: data mountPath: /data/${NAMESPACE}/${APP}/${CLAIM} - name: snapshots mountPath: /snapshots securityContext: privileged: true volumes: - name: data persistentVolumeClaim: claimName: ${CLAIM} - name: snapshots nfs: server: 192.168.9.10 path: /mnt/storage/backups/kubernetes