Files
apps/paperless/main.yaml
2025-10-12 17:45:53 +02:00

262 lines
6.8 KiB
YAML

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.18.4
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