Files
manifests/charts/atlantis/templates/redis.yaml
T

63 lines
2.0 KiB
YAML

{{- if .Values.redis.enabled -}}
apiVersion: dragonflydb.io/v1alpha1
kind: Dragonfly
metadata:
name: {{ include "Atlantis.fullname" . }}-redis
namespace: {{ .Release.Namespace }}
annotations:
linkerd.io/inject: disabled
labels:
app.kubernetes.io/created-by: dragonfly-operator
{{- include "Atlantis.labels" . | nindent 4 }}
spec:
args:
- --dbfilename=dump # Static filename prevents disk exhaustion
- --maxmemory=$(MAX_MEMORY)Mi # Graceful memory management (90% of limit)
- --proactor_threads=1 # Auto-detect CPU cores (optimal threading)
- --cluster_mode=emulated
- --logtostderr
- --save_schedule= # Disable continuous saves (cron snapshots only)
- --s3_endpoint=hel1.your-objectstorage.com # Hertzner S3
env:
- name: MAX_MEMORY
valueFrom:
resourceFieldRef:
resource: limits.memory
divisor: 1Mi
{{- if .Values.redis.backup.enabled }}
- name: AWS_ACCESS_KEY_ID
valueFrom:
secretKeyRef:
key: access_key
name: redis-s3
- name: AWS_SECRET_ACCESS_KEY
valueFrom:
secretKeyRef:
key: access_secret
name: redis-s3
{{- end}}
replicas: {{ .Values.redis.replicas | default "1" }}
resources:
requests:
cpu: {{ .Values.redis.resources.cpu | default "150m" }}
memory: {{ .Values.redis.resources.memory | default "256Mi"}}
limits:
memory: {{ .Values.redis.resources.memory | default "256Mi"}}
authentication:
passwordFromSecret:
name: {{ .Values.redis.secret.name | quote }}
key: {{ .Values.redis.secret.key | quote }}
{{- if .Values.redis.backup.enabled }}
snapshot:
dir: "s3://obx-redis/hel1/{{ include "Atlantis.fullname" . }}-redis"
cron: "0 3 * * *" # Default: every day at 03:00
enableOnMasterOnly: false
persistentVolumeClaimSpec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: {{ .Values.redis.size | default "1Gi" }}
{{- end }}
{{- end}}