# Redis 7 — Ephemeral instance for integration tests # Namespace is substituted at runtime via envsubst # No persistence — uses --save "" --appendonly no # No password — simplifies sandbox testing --- apiVersion: apps/v1 kind: Deployment metadata: name: redis namespace: ${NAMESPACE} labels: app: redis tier: infra app.kubernetes.io/part-of: stonks-oracle spec: replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis tier: infra spec: automountServiceAccountToken: false securityContext: runAsNonRoot: true runAsUser: 999 runAsGroup: 999 fsGroup: 999 seccompProfile: type: RuntimeDefault containers: - name: redis image: redis:7-alpine imagePullPolicy: IfNotPresent args: ["--save", "", "--appendonly", "no"] ports: - containerPort: 6379 protocol: TCP securityContext: allowPrivilegeEscalation: false capabilities: drop: ["ALL"] resources: requests: cpu: 50m memory: 128Mi limits: cpu: 250m memory: 256Mi readinessProbe: tcpSocket: port: 6379 initialDelaySeconds: 3 periodSeconds: 5 timeoutSeconds: 3 failureThreshold: 6 livenessProbe: tcpSocket: port: 6379 initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 3 failureThreshold: 3 --- apiVersion: v1 kind: Service metadata: name: redis namespace: ${NAMESPACE} labels: app: redis tier: infra app.kubernetes.io/part-of: stonks-oracle spec: selector: app: redis ports: - port: 6379 targetPort: 6379 protocol: TCP