# Redis 7 — cache / session store (Authentik, and available to the apps). # Password-protected (requirepass) even in-cluster; AOF persistence on a small # local-path volume so sessions survive restarts. apiVersion: v1 kind: Service metadata: name: redis namespace: dezky-data spec: clusterIP: None # headless: stable DNS redis.dezky-data:6379 selector: app: redis ports: - name: redis port: 6379 targetPort: 6379 --- apiVersion: apps/v1 kind: StatefulSet metadata: name: redis namespace: dezky-data spec: serviceName: redis replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis spec: containers: - name: redis image: redis:7-alpine command: ["redis-server"] args: - "--requirepass" - "$(REDIS_PASSWORD)" - "--appendonly" - "yes" ports: - containerPort: 6379 env: - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: redis-secret key: REDIS_PASSWORD volumeMounts: - name: data mountPath: /data resources: requests: cpu: 50m memory: 64Mi limits: memory: 256Mi readinessProbe: exec: command: ["sh", "-c", 'redis-cli -a "$REDIS_PASSWORD" ping'] initialDelaySeconds: 5 periodSeconds: 10 livenessProbe: exec: command: ["sh", "-c", 'redis-cli -a "$REDIS_PASSWORD" ping'] initialDelaySeconds: 15 periodSeconds: 20 volumeClaimTemplates: - metadata: name: data spec: accessModes: ["ReadWriteOnce"] storageClassName: longhorn resources: requests: storage: 2Gi