diff --git a/Paperless/paperless_backup_documents.cronjob.yaml b/Paperless/paperless_backup_documents.cronjob.yaml new file mode 100644 index 0000000..997eae6 --- /dev/null +++ b/Paperless/paperless_backup_documents.cronjob.yaml @@ -0,0 +1,107 @@ +--- +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