# Sync pod that runs on blackstaff
apiVersion: apps/v1
kind: Deployment
metadata:
  name: sync
  namespace: apps
spec:
  replicas: 1
  selector:
    matchLabels:
      name: paperless-sync
  template:
    metadata:
      labels:
        name: paperless-sync
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
              - matchExpressions:
                  - key: kubernetes.io/hostname
                    operator: In
                    values:
                      - blackstaff
      containers:
        - name: sync
          image: alpine:latest
          command:
            - /bin/sh
            - -c
            - |
              apk add --no-cache inotify-tools
              WATCH_DIR=/sftp
              DEST_DIR=/consume/scanner
              while true; do
                inotifywait --monitor --quiet -e close_write $WATCH_DIR |
                  while read -r directory action file; do
                  new=$(echo $file | sed 's/^\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{4\}\)_\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{2\}\)_/\1-\2-\3_\4:\5:\6_/')
                  cp -v ${directory}${file} ${DEST_DIR}/${new}
                  rm -v ${directory}${file}
                done
              done
          volumeMounts:
            - name: sftp-volume
              mountPath: /sftp
            - name: consume-volume
              mountPath: /consume
              subPath: consume
      volumes:
        - name: sftp-volume
          persistentVolumeClaim:
            claimName: paperless-sftp
        - name: consume-volume
          persistentVolumeClaim:
            claimName: paperless-consume