apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/name: redis app.kubernetes.io/component: redis app.kubernetes.io/instance: paperless-ngx app.kubernetes.io/part-of: paperless-ngx name: redis namespace: paperless-ngx spec: ports: - name: redis port: 6379 selector: app.kubernetes.io/name: redis app.kubernetes.io/component: redis app.kubernetes.io/instance: paperless-ngx type: ClusterIP --- apiVersion: apps/v1 kind: StatefulSet metadata: name: redis namespace: paperless-ngx labels: app.kubernetes.io/name: redis app.kubernetes.io/component: redis app.kubernetes.io/instance: paperless-ngx app.kubernetes.io/part-of: paperless-ngx spec: serviceName: redis selector: matchLabels: app.kubernetes.io/name: redis app.kubernetes.io/component: redis app.kubernetes.io/instance: paperless-ngx template: metadata: labels: app.kubernetes.io/name: redis app.kubernetes.io/component: redis app.kubernetes.io/instance: paperless-ngx spec: containers: - name: redis image: docker.io/library/redis:7 imagePullPolicy: IfNotPresent ports: - name: redis containerPort: 6379 securityContext: runAsNonRoot: true readOnlyRootFilesystem: true runAsUser: 1000 runAsGroup: 1000 volumeMounts: - name: data mountPath: /data subPath: data - name: tmp mountPath: /tmp securityContext: fsGroup: 1000 volumes: - name: tmp emptyDir: volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: data labels: app.kubernetes.io/name: redis app.kubernetes.io/component: redis app.kubernetes.io/part-of: paperless-ngx spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi