{{- if .Values.redis.enabled }} {{- $ns := include "sebastian.namespace" . -}} {{- $existing := (lookup "apps/v1" "StatefulSet" $ns "redis") -}} {{- $annotations := dict -}} {{- if and $existing $existing.metadata $existing.metadata.annotations -}} {{- $annotations = $existing.metadata.annotations -}} {{- end -}} {{- $owned := and $existing (eq (get $annotations "meta.helm.sh/release-name") .Release.Name) -}} {{- if or (not $existing) $owned }} apiVersion: apps/v1 kind: StatefulSet metadata: name: redis namespace: {{ include "sebastian.namespace" . }} labels: app: redis annotations: "helm.sh/resource-policy": keep spec: serviceName: redis replicas: 1 selector: matchLabels: app: redis template: metadata: labels: app: redis {{- if .Values.devEnv.enabled }} alga.dev/environment: "true" {{- end }} annotations: redis-password: "{{ .Values.config.redis.password }}" spec: containers: - name: redis image: "{{ .Values.redis.image.repository }}:{{ .Values.redis.image.tag }}" command: ["sh", "-c", "mkdir -p /etc/redis && printf \"requirepass ${REDIS_PASSWORD}\nsave ''\n\" > /etc/redis/redis.conf && redis-server /etc/redis/redis.conf"] imagePullPolicy: Always ports: - containerPort: {{ .Values.redis.service.port }} name: cql env: - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: redis-credentials key: REDIS_PASSWORD {{- if .Values.redis.persistence.enabled }} volumeMounts: - name: redis-data mountPath: /data {{- end }} {{- if .Values.devEnv.enabled }} {{- with .Values.devEnv.nodeSelector }} nodeSelector: {{- toYaml . | nindent 8 }} {{- end }} {{- end }} {{- if .Values.redis.persistence.enabled }} volumes: - name: redis-data persistentVolumeClaim: {{- if .Values.redis.persistence.existingClaim }} claimName: {{ .Values.redis.persistence.existingClaim }} {{- else }} claimName: {{ include "sebastian.fullname" . }}-redis-data {{- end }} {{- end }} {{- end }} {{- end }}