go-guess/deploy/helm/go-guess/templates/rabbitmq-statefulset.yaml
2026-09-20 17:20:40 +02:00

100 lines
2.9 KiB
YAML

{{- if .Values.rabbitmq.enabled }}
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "go-guess.rabbitmqName" . }}
labels:
{{- include "go-guess.labels" . | nindent 4 }}
app.kubernetes.io/component: rabbitmq
spec:
serviceName: {{ include "go-guess.rabbitmqName" . }}
replicas: 1
selector:
matchLabels:
{{- include "go-guess.selectorLabels" . | nindent 6 }}
app.kubernetes.io/component: rabbitmq
template:
metadata:
labels:
{{- include "go-guess.selectorLabels" . | nindent 8 }}
app.kubernetes.io/component: rabbitmq
spec:
automountServiceAccountToken: false
securityContext:
fsGroup: 100
fsGroupChangePolicy: OnRootMismatch
containers:
- name: rabbitmq
image: "{{ .Values.rabbitmq.image.repository }}:{{ .Values.rabbitmq.image.tag }}"
imagePullPolicy: {{ .Values.rabbitmq.image.pullPolicy }}
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsNonRoot: true
runAsUser: 100
env:
- name: RABBITMQ_DEFAULT_USER
value: {{ .Values.rabbitmq.auth.username | quote }}
- name: RABBITMQ_DEFAULT_PASS
valueFrom:
secretKeyRef:
name: {{ include "go-guess.secretName" . }}
key: rabbitmq-password
ports:
- name: amqp
containerPort: 5672
readinessProbe:
exec:
command:
- rabbitmq-diagnostics
- -q
- ping
periodSeconds: 10
timeoutSeconds: 10
failureThreshold: 6
startupProbe:
exec:
command:
- rabbitmq-diagnostics
- -q
- ping
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 10
failureThreshold: 30
livenessProbe:
exec:
command:
- rabbitmq-diagnostics
- -q
- ping
periodSeconds: 20
timeoutSeconds: 10
failureThreshold: 3
resources:
{{- toYaml .Values.rabbitmq.resources | nindent 12 }}
volumeMounts:
- name: data
mountPath: /var/lib/rabbitmq
{{- if not .Values.rabbitmq.persistence.enabled }}
volumes:
- name: data
emptyDir: {}
{{- end }}
{{- if .Values.rabbitmq.persistence.enabled }}
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
{{- with .Values.rabbitmq.persistence.storageClass }}
storageClassName: {{ . | quote }}
{{- end }}
resources:
requests:
storage: {{ .Values.rabbitmq.persistence.size }}
{{- end }}
{{- end }}