From f7aeb107deb20ec56b8aac5bafaf449e3bee188f Mon Sep 17 00:00:00 2001 From: pierre Date: Wed, 19 Jun 2024 13:44:42 +0100 Subject: [PATCH] :boom: add all the files --- Bookstack.configmap.yaml | 11 +++ Paperless-db.kube.yaml | 57 ++++++++++++++ Paperless-post-consumption.configmap.yaml | 29 +++++++ Paperless-redis.kube.yaml | 50 ++++++++++++ Paperless-webserver.kube.yaml | 95 +++++++++++++++++++++++ Paperless.secret.yaml | 12 +++ pvc.claim.yaml | 48 ++++++++++++ 7 files changed, 302 insertions(+) create mode 100644 Bookstack.configmap.yaml create mode 100644 Paperless-db.kube.yaml create mode 100644 Paperless-post-consumption.configmap.yaml create mode 100644 Paperless-redis.kube.yaml create mode 100644 Paperless-webserver.kube.yaml create mode 100644 Paperless.secret.yaml create mode 100644 pvc.claim.yaml diff --git a/Bookstack.configmap.yaml b/Bookstack.configmap.yaml new file mode 100644 index 0000000..02451e3 --- /dev/null +++ b/Bookstack.configmap.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: config + namespace: bookstack +data: + LOCAL_UID: "1000" + LOCAL_GID: "1000" + TZ: "Europe/London" + APP_URL: "https://bookstack.tryton.geeraert.eu" + DB_PORT: "3306" diff --git a/Paperless-db.kube.yaml b/Paperless-db.kube.yaml new file mode 100644 index 0000000..01d00cc --- /dev/null +++ b/Paperless-db.kube.yaml @@ -0,0 +1,57 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: paperless +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: paperless-db + namespace: paperless +spec: + replicas: 1 + selector: + matchLabels: + app: paperless-db + template: + metadata: + labels: + app: paperless-db + spec: + containers: + - name: db + image: docker.io/library/postgres:15 + imagePullPolicy: IfNotPresent + env: + - name: POSTGRES_DB + value: "paperless" + - name: POSTGRES_USER + value: "paperless" + - name: POSTGRES_PASSWORD + value: "paperless" + volumeMounts: + - name: pgdata + mountPath: /var/lib/postgresql/data + ports: + - name: postgres + containerPort: 5432 + volumes: + - name: pgdata + hostPath: + path: /opt/kubernetes/Paperless_kube/data/pgdata + +--- +apiVersion: v1 +kind: Service +metadata: + name: db + namespace: paperless +spec: + selector: + app: paperless-db + ports: + - protocol: TCP + port: 5432 + targetPort: postgres + + diff --git a/Paperless-post-consumption.configmap.yaml b/Paperless-post-consumption.configmap.yaml new file mode 100644 index 0000000..2f317be --- /dev/null +++ b/Paperless-post-consumption.configmap.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +data: + post-consumption-example.sh: | + #!/usr/bin/env bash + + echo " + + A document with an id of ${DOCUMENT_ID} was just consumed. I know the + following additional information about it: + + * Generated File Name: ${DOCUMENT_FILE_NAME} + * Archive Path: ${DOCUMENT_ARCHIVE_PATH} + * Source Path: ${DOCUMENT_SOURCE_PATH} + * Created: ${DOCUMENT_CREATED} + * Added: ${DOCUMENT_ADDED} + * Modified: ${DOCUMENT_MODIFIED} + * Thumbnail Path: ${DOCUMENT_THUMBNAIL_PATH} + * Download URL: ${DOCUMENT_DOWNLOAD_URL} + * Thumbnail URL: ${DOCUMENT_THUMBNAIL_URL} + * Correspondent: ${DOCUMENT_CORRESPONDENT} + * Tags: ${DOCUMENT_TAGS} + + It was consumed with the passphrase ${PASSPHRASE} + + " +kind: ConfigMap +metadata: + creationTimestamp: null + name: paperless-post-consumption diff --git a/Paperless-redis.kube.yaml b/Paperless-redis.kube.yaml new file mode 100644 index 0000000..b40becf --- /dev/null +++ b/Paperless-redis.kube.yaml @@ -0,0 +1,50 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: paperless +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: paperless-redis + namespace: paperless +spec: + replicas: 1 + selector: + matchLabels: + app: paperless-redis + template: + metadata: + labels: + app: paperless-redis + spec: + containers: + - name: broker + image: docker.io/library/redis:7 + imagePullPolicy: IfNotPresent + volumeMounts: + - name: redisdata + mountPath: /data + ports: + - name: redis + containerPort: 6379 + + volumes: + - name: redisdata + hostPath: + path: /opt/kubernetes/Paperless_kube/data/redisdata + +--- +apiVersion: v1 +kind: Service +metadata: + name: redis + namespace: paperless +spec: + selector: + app: paperless-redis + ports: + - protocol: TCP + port: 6379 + targetPort: redis + diff --git a/Paperless-webserver.kube.yaml b/Paperless-webserver.kube.yaml new file mode 100644 index 0000000..058e303 --- /dev/null +++ b/Paperless-webserver.kube.yaml @@ -0,0 +1,95 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: paperless +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: paperless-webserver + namespace: paperless +spec: + replicas: 1 + selector: + matchLabels: + app: paperless-webserver + template: + metadata: + labels: + app: paperless-webserver + spec: + containers: + - name: paperless-webserver + image: ghcr.io/paperless-ngx/paperless-ngx:latest + imagePullPolicy: IfNotPresent + ports: + - containerPort: 8000 + name: webserver-port + env: + - name: PAPERLESS_URL + value: "https://paperless.tryton.geeraert.eu" + - name: PAPERLESS_REDIS + value: "redis://redis:6379" + - name: PAPERLESS_DBHOST + value: "db" + - name: PAPERLESS_POST_CONSUME_SCRIPT + value: "/usr/src/paperless/scripts/post-consumption-example.sh" + - name: PAPERLESS_ADMIN_USER + value: "admin" + - name: PAPERLESS_ADMIN_PASSWORD + value: "admin" + - name: PAPERLESS_OCR_USER_ARGS + value: '{"invalidate_digital_signatures": true}' + volumeMounts: +# - name: data +# mountPath: /usr/src/paperless/data + - name: paperless-data + mountPath: /usr/src/paperless/data + - name: media + mountPath: /usr/src/paperless/media + - name: export + mountPath: /usr/src/paperless/export + - name: consume + mountPath: /usr/src/paperless/consume + - name: scripts + mountPath: /usr/src/paperless/scripts/ + + volumes: + - name: data + hostPath: + path: /opt/kubernetes/Paperless_kube/data/data + - name: paperless-data + persistentVolumeClaim: + claimName: paperless-data + + - name: export + persistentVolumeClaim: + claimName: paperless-export + - name: media + persistentVolumeClaim: + claimName: paperless-media + - name: consume + persistentVolumeClaim: + claimName: paperless-consume + +# - name: consume +# hostPath: +# path: /opt/kubernetes/Paperless_kube/data/consume + - name: scripts + configMap: + name: paperless-post-consumption + defaultMode: 0555 + +--- +apiVersion: v1 +kind: Service +metadata: + name: webserver + namespace: paperless +spec: + ports: + - port: 8000 + targetPort: webserver-port + protocol: TCP + selector: + app: paperless-webserver diff --git a/Paperless.secret.yaml b/Paperless.secret.yaml new file mode 100644 index 0000000..bb976e9 --- /dev/null +++ b/Paperless.secret.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +data: + POSTGRES_DB: cGFwZXJsZXNz + POSTGRES_USER: cGFwZXJsZXNz + POSTGRES_PASSWORD: cGFwZXJsZXNz + PAPERLESS_ADMIN_USER: YWRtaW4= + PAPERLESS_ADMIN_PASSWORD: YWRtaW4= +kind: Secret +metadata: + name: paperless-credentials + namespace: paperless +type: Opaque diff --git a/pvc.claim.yaml b/pvc.claim.yaml new file mode 100644 index 0000000..1cf1fde --- /dev/null +++ b/pvc.claim.yaml @@ -0,0 +1,48 @@ +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: paperless-media +spec: + storageClassName: nfs-storage-intelligent + accessModes: + - ReadWriteMany + resources: + requests: + storage: 20Gi +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: paperless-export +spec: + storageClassName: nfs-storage-intelligent + accessModes: + - ReadWriteMany + resources: + requests: + storage: 2Gi + +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: paperless-data +spec: + storageClassName: nfs-storage-intelligent + accessModes: + - ReadWriteMany + resources: + requests: + storage: 200Mi +--- +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: paperless-consume +spec: + storageClassName: nfs-storage-intelligent + accessModes: + - ReadWriteMany + resources: + requests: + storage: 1Gi