apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/instance: paperless app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: paperless app.kubernetes.io/version: 1.8.0 helm.sh/chart: paperless-9.1.3 name: paperless spec: ports: - name: http port: 8000 protocol: TCP targetPort: http selector: app.kubernetes.io/instance: paperless app.kubernetes.io/name: paperless type: ClusterIP --- apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app.kubernetes.io/instance: paperless app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: paperless app.kubernetes.io/version: 1.8.0 helm.sh/chart: paperless-9.1.3 name: paperless-data spec: accessModes: - ReadWriteOnce resources: requests: storage: 1Gi storageClassName: openebs-3-replicas --- apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app.kubernetes.io/instance: paperless app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: paperless app.kubernetes.io/version: 1.8.0 helm.sh/chart: paperless-9.1.3 name: paperless-media spec: accessModes: - ReadWriteOnce resources: requests: storage: 5Gi storageClassName: openebs-3-replicas --- apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/instance: paperless app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: paperless app.kubernetes.io/version: 1.8.0 helm.sh/chart: paperless-9.1.3 name: paperless spec: replicas: 1 revisionHistoryLimit: 3 selector: matchLabels: app.kubernetes.io/instance: paperless app.kubernetes.io/name: paperless strategy: type: Recreate template: metadata: labels: app.kubernetes.io/instance: paperless app.kubernetes.io/name: paperless spec: automountServiceAccountToken: true containers: - env: - name: COMPOSE_PROJECT_NAME value: paperless - name: PAPERLESS_APPS value: allauth.socialaccount.providers.openid_connect - name: PAPERLESS_DBHOST valueFrom: secretKeyRef: key: host name: cnpg-paperless-cluster-app - name: PAPERLESS_DBPASS valueFrom: secretKeyRef: key: password name: cnpg-paperless-cluster-app - name: PAPERLESS_DBUSER valueFrom: secretKeyRef: key: user name: cnpg-paperless-cluster-app - name: PAPERLESS_ENABLE_HTTP_REMOTE_USER value: "true" - name: PAPERLESS_HTTP_REMOTE_USER_HEADER_NAME value: HTTP_X_FORWARDED_USER - name: PAPERLESS_LOGOUT_REDIRECT_URL value: https://iam.borninpain.de/realms/home/protocol/openid-connect/logout - name: PAPERLESS_OCR_LANGUAGE value: deu - name: PAPERLESS_OCR_LANGUAGES value: deu - name: PAPERLESS_PORT value: "8000" - name: PAPERLESS_REDIS valueFrom: secretKeyRef: key: redis-url name: paperless - name: PAPERLESS_SOCIALACCOUNT_PROVIDERS valueFrom: secretKeyRef: key: provider name: paperless - name: PAPERLESS_TIME_ZONE value: Europe/Berlin - name: PAPERLESS_URL value: https://paperless.home - name: USERMAP_GID value: "1000" - name: USERMAP_UID value: "1000" image: ghcr.io/paperless-ngx/paperless-ngx:2.19.3 imagePullPolicy: IfNotPresent livenessProbe: failureThreshold: 3 initialDelaySeconds: 0 periodSeconds: 10 tcpSocket: port: 8000 timeoutSeconds: 1 name: paperless ports: - containerPort: 8000 name: http protocol: TCP readinessProbe: failureThreshold: 3 initialDelaySeconds: 0 periodSeconds: 10 tcpSocket: port: 8000 timeoutSeconds: 1 startupProbe: failureThreshold: 30 initialDelaySeconds: 0 periodSeconds: 5 tcpSocket: port: 8000 timeoutSeconds: 1 volumeMounts: - mountPath: /usr/src/paperless/data name: data - mountPath: /usr/src/paperless/media name: media dnsPolicy: ClusterFirst enableServiceLinks: true serviceAccountName: default volumes: - name: data persistentVolumeClaim: claimName: paperless-data - name: media persistentVolumeClaim: claimName: paperless-media --- apiVersion: batch/v1 kind: Job metadata: annotations: helm.sh/hook: test helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded labels: app.kubernetes.io/component: database-ping-test name: cnpg-paperless-cluster-ping-test namespace: paperless spec: template: metadata: labels: app.kubernetes.io/component: database-ping-test name: cnpg-paperless-cluster-ping-test spec: containers: - args: - -c - apk add postgresql-client && psql "postgresql://$PGUSER:$PGPASS@cnpg-paperless-cluster-rw.paperless.svc.cluster.local:5432/${PGDBNAME:-$PGUSER}" -c 'SELECT 1' command: - sh env: - name: PGUSER valueFrom: secretKeyRef: key: username name: cnpg-paperless-cluster-app - name: PGPASS valueFrom: secretKeyRef: key: password name: cnpg-paperless-cluster-app - name: PGDBNAME valueFrom: secretKeyRef: key: dbname name: cnpg-paperless-cluster-app optional: true image: alpine:3.17 name: alpine restartPolicy: Never --- apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: labels: app.kubernetes.io/instance: cnpg-paperless app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: cluster app.kubernetes.io/part-of: cloudnative-pg helm.sh/chart: cluster-0.3.1 name: cnpg-paperless-cluster namespace: paperless spec: affinity: topologyKey: kubernetes.io/hostname bootstrap: initdb: database: paperless owner: paperless enablePDB: true enableSuperuserAccess: true imageName: ghcr.io/cloudnative-pg/postgresql:17 imagePullPolicy: IfNotPresent instances: 3 logLevel: info monitoring: disableDefaultQueries: false enablePodMonitor: false postgresGID: 26 postgresUID: 26 postgresql: null primaryUpdateMethod: switchover primaryUpdateStrategy: unsupervised storage: size: 10Gi storageClass: openebs-hostpath walStorage: size: 1Gi storageClass: openebs-hostpath