Files
auricom-home-cluster/kubernetes/tools/kopia-restore.yaml
2022-11-26 02:50:50 +00:00

43 lines
1.6 KiB
YAML

---
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