--- 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 - list - apiGroups: ["apps"] resources: - deployments verbs: - get --- 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 - name: documents persistentVolumeClaim: claimName: paperless-documents-backup restartPolicy: Never --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: documents namespace: paperless spec: storageClassName: nfs-backup-storage-intelligent accessModes: - ReadWriteMany resources: requests: storage: 10Gi --- kind: PersistentVolumeClaim apiVersion: v1 metadata: name: paperless-documents-backup namespace: paperless annotations: fileType: Backup spec: storageClassName: nfs-storage-fastaccess accessModes: - ReadWriteMany resources: requests: storage: 10Gi