63 lines
2.0 KiB
YAML
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}}
|