Files
Backup_kube/Paperless/paperless_backup_documents.cronjob.yaml
T
2024-07-23 13:14:01 +01:00

108 lines
2.3 KiB
YAML

---
apiVersion: v1
kind: ServiceAccount
metadata:
name: backup-service-account
namespace: paperless
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: role:service-acc
namespace: paperless
rules:
- apiGroups: [""]
resources:
- pods
- pods/exec
verbs:
- create
# - get
- list
# - watch
- apiGroups: ["apps"]
resources:
- deployments
verbs:
- get
# - list
# - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: rolebinding:service-acc
namespace: paperless
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: role:service-acc
subjects:
- kind: ServiceAccount
name: backup-service-account
namespace: paperless
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: paperless-documents-backup
namespace: paperless
spec:
schedule: "0 0 * * *"
jobTemplate:
spec:
ttlSecondsAfterFinished: 100
template:
spec:
serviceAccountName: "backup-service-account"
containers:
- name: export-attachements
command:
- "/bin/sh"
- "-c"
args: ['
echo "start the export";
kubectl exec -it deploy/paperless-webserver -n paperless -- document_exporter -z /usr/src/paperless/export;
echo "Export done"
']
image: "bitnami/kubectl:1.21"
- name: move-attachements
command:
- "/bin/sh"
- "-c"
args: ['echo "sleep 5 min"; sleep 300;echo "end of sleep"; mv /paperless-export/* /documents/ ;echo "move done"']
image: "busybox"
volumeMounts:
- name: paperless-export
mountPath: /paperless-export
- name: documents
mountPath: /documents
volumes:
- name: paperless-export
persistentVolumeClaim:
claimName: paperless-export
- name: documents
persistentVolumeClaim:
claimName: documents
restartPolicy: Never
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: documents
namespace: paperless
spec:
storageClassName: nfs-backup-storage-intelligent
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi