apiVersion: v1 kind: Service metadata: name: immich-valkey namespace: immich labels: app: immich-valkey spec: clusterIP: None selector: app: immich-valkey ports: - name: valkey port: 6379 targetPort: valkey --- apiVersion: apps/v1 kind: StatefulSet metadata: name: immich-valkey namespace: immich labels: app: immich-valkey spec: serviceName: immich-valkey replicas: 1 selector: matchLabels: app: immich-valkey template: metadata: labels: app: immich-valkey spec: containers: - name: valkey image: docker.io/valkey/valkey:9.1.2-alpine command: - sh - -c - valkey-server --appendonly yes --save 30 1 --loglevel warning --requirepass "$REDIS_PASSWORD" envFrom: - secretRef: name: immich-secrets ports: - name: valkey containerPort: 6379 volumeMounts: - name: valkey-data mountPath: /data # Same reasoning as postgres: 1s probe timeouts flap on a loaded # single node with rotational storage. startupProbe: exec: command: ["sh", "-c", 'valkey-cli --pass "$REDIS_PASSWORD" ping | grep -q PONG'] failureThreshold: 20 periodSeconds: 5 timeoutSeconds: 5 readinessProbe: exec: command: ["sh", "-c", 'valkey-cli --pass "$REDIS_PASSWORD" ping | grep -q PONG'] periodSeconds: 10 timeoutSeconds: 5 livenessProbe: exec: command: ["sh", "-c", 'valkey-cli --pass "$REDIS_PASSWORD" ping | grep -q PONG'] initialDelaySeconds: 20 periodSeconds: 20 timeoutSeconds: 5 resources: requests: cpu: "25m" memory: "64Mi" limits: cpu: "250m" memory: "256Mi" volumeClaimTemplates: - metadata: name: valkey-data spec: accessModes: ["ReadWriteOnce"] resources: requests: storage: 1Gi