From b81eee425e2d8e027d05eae0fd038886f35ccd78 Mon Sep 17 00:00:00 2001 From: Remy Moll Date: Mon, 30 Sep 2024 15:21:24 +0200 Subject: [PATCH] add paperless deployment --- apps/paperless/deployment.yaml | 52 +++++++++++++++++++ apps/paperless/kustomization.yaml | 31 +++++++++++ apps/paperless/namespace.yaml | 4 ++ .../paperless-secret-key.sealedsecret.yaml | 15 ++++++ apps/paperless/pvc.yaml | 11 ++++ apps/paperless/service.yaml | 10 ++++ kluster-deployments/kustomization.yaml | 1 + .../paperless/application.yaml | 19 +++++++ .../paperless/kustomization.yaml | 4 ++ 9 files changed, 147 insertions(+) create mode 100644 apps/paperless/deployment.yaml create mode 100644 apps/paperless/kustomization.yaml create mode 100644 apps/paperless/namespace.yaml create mode 100644 apps/paperless/paperless-secret-key.sealedsecret.yaml create mode 100644 apps/paperless/pvc.yaml create mode 100644 apps/paperless/service.yaml create mode 100644 kluster-deployments/paperless/application.yaml create mode 100644 kluster-deployments/paperless/kustomization.yaml diff --git a/apps/paperless/deployment.yaml b/apps/paperless/deployment.yaml new file mode 100644 index 0000000..4eea914 --- /dev/null +++ b/apps/paperless/deployment.yaml @@ -0,0 +1,52 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: paperless +spec: + replicas: 1 + selector: + matchLabels: + app: paperless + template: + metadata: + labels: + app: paperless + spec: + containers: + - name: paperless + image: paperless + ports: + - containerPort: 8000 + env: + - name: PAPERLESS_REDIS + value: redis://redis-master:6379 + - name: PAPERLESS_TIME_ZONE + value: Europe/Berlin + - name: PAPERLESS_OCR_LANGUAGE + value: deu+eng+fra + - name: PAPERLESS_URL + value: https://paperless.kluster.moll.re + - name: PAPERLESS_SECRET_KEY + valueFrom: + secretKeyRef: + name: paperless-secret-key + key: key + - name: PAPERLESS_DATA_DIR + value: /data + - name: PAPERLESS_MEDIA_ROOT + value: /data + volumeMounts: + - name: data + mountPath: /data + resources: + requests: + cpu: "100m" + memory: "200Mi" + limits: + cpu: "2" + memory: "1Gi" + volumes: + - name: data + persistentVolumeClaim: + claimName: paperless-data + diff --git a/apps/paperless/kustomization.yaml b/apps/paperless/kustomization.yaml new file mode 100644 index 0000000..34bca33 --- /dev/null +++ b/apps/paperless/kustomization.yaml @@ -0,0 +1,31 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - namespace.yaml + - pvc.yaml + - deployment.yaml + - service.yaml + - ingress.yaml + - paperless-secret-key.sealedsecret.yaml + +namespace: paperless + +images: + - name: paperless + newName: ghcr.io/paperless-ngx/paperless-ngx + newTag: "2.12.1" + + +helmCharts: + - name: redis + releaseName: redis + repo: https://charts.bitnami.com/bitnami + version: 20.1.5 + valuesInline: + auth: + enabled: false + replica: + replicaCount: 0 + master: + persistence: + storageClass: "nfs-client" diff --git a/apps/paperless/namespace.yaml b/apps/paperless/namespace.yaml new file mode 100644 index 0000000..0a074bd --- /dev/null +++ b/apps/paperless/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: placeholder diff --git a/apps/paperless/paperless-secret-key.sealedsecret.yaml b/apps/paperless/paperless-secret-key.sealedsecret.yaml new file mode 100644 index 0000000..5ac1ecf --- /dev/null +++ b/apps/paperless/paperless-secret-key.sealedsecret.yaml @@ -0,0 +1,15 @@ +--- +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + creationTimestamp: null + name: paperless-secret-key + namespace: paperless +spec: + encryptedData: + key: AgAjDxYW+bf+7a+65DR/u5Qrh37JSPQCstUrNWRdxq9We1eGf7qzTnmyke/O5TiE26rHVx3yzyK/Lcp/R+pJUnDauCvL6ja7k82DLzElkoRGhvRg4nr5Iehw488WIdJDXWqAbus4oLFCgnj5axs1B97hEiAN2onCPDsOuk7oSdJfG4mMI47Ass2qFPyQaff9TulLXQQEY5U7LrawCTudUPeiTCYGbOjBadPjEzn5pDwsyAd1G+NrqoPOwkrbNzrwMwbnwB4hLO0f+jrYOh2OMNcdZzMZgM671VH9cRYSVV6uz5iAN4A1NpZ1ZdenQN4pcWvaPmPOcvp14vjZtrYbGeyaNGnob5IycRrO4yaf+0V7DZ4Thwc/vqm6r5y/MR9U4Q9EFoNNHYmfo9VEw7LhivtaDOG8OaZXUnIFoXFLOZ59qfoZdIyK4eByTRQBZFZLK9rVgXOommbqlCgzNuDM7u11OGcYfROJFeiI9pH333x5u7GZsDz0hnAjWKphXzeTglXdaXMsQUeAHusdqKCn0X1cMatGUjkBAXwlOBrqmaDwSRdyc/+J2QIdkyQM9A+88+yoop7q8c5P8oizBikVaL7SojulUTJStH5cv7nRzhmpAY4j15+o3RQKrbEjGB4HVVx3VBFjjOiP9gfjhiYqxznYwkYTpXADPwjhLFf4opOPuhpoUD1M3OKXlQpPK/RvFTWWsh14jbJuL7WJpXbfyYs0+drbVdnYeUsn8OKlnFDoOaACdpNUCr6t9dSFMs7o7Mo8yN0E + template: + metadata: + creationTimestamp: null + name: paperless-secret-key + namespace: paperless diff --git a/apps/paperless/pvc.yaml b/apps/paperless/pvc.yaml new file mode 100644 index 0000000..5067254 --- /dev/null +++ b/apps/paperless/pvc.yaml @@ -0,0 +1,11 @@ +kind: PersistentVolumeClaim +apiVersion: v1 +metadata: + name: paperless-data +spec: + storageClassName: "nfs-client" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/apps/paperless/service.yaml b/apps/paperless/service.yaml new file mode 100644 index 0000000..10f4118 --- /dev/null +++ b/apps/paperless/service.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Service +metadata: + name: paperless-web +spec: + selector: + app: paperless + ports: + - port: 8000 + targetPort: 8000 diff --git a/kluster-deployments/kustomization.yaml b/kluster-deployments/kustomization.yaml index 195e12c..7f63bf9 100644 --- a/kluster-deployments/kustomization.yaml +++ b/kluster-deployments/kustomization.yaml @@ -35,6 +35,7 @@ resources: - minecraft/application.yaml - monitoring/ - ntfy/ + - paperless/ - recipes/ - rss/ - whoami/ diff --git a/kluster-deployments/paperless/application.yaml b/kluster-deployments/paperless/application.yaml new file mode 100644 index 0000000..8f17e65 --- /dev/null +++ b/kluster-deployments/paperless/application.yaml @@ -0,0 +1,19 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: paperless-application + namespace: argocd + +spec: + project: infrastructure + source: + repoURL: ssh://git@git.kluster.moll.re:2222/remoll/k3s-infra.git + targetRevision: main + path: apps/paperless + destination: + server: https://kubernetes.default.svc + namespace: paperless + syncPolicy: + automated: + prune: true + selfHeal: true diff --git a/kluster-deployments/paperless/kustomization.yaml b/kluster-deployments/paperless/kustomization.yaml new file mode 100644 index 0000000..1f43d0d --- /dev/null +++ b/kluster-deployments/paperless/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- application.yaml