first commit
This commit is contained in:
175
templates/valkey/statefulset.yaml
Normal file
175
templates/valkey/statefulset.yaml
Normal file
@@ -0,0 +1,175 @@
|
||||
{{- if eq (include "valkey.internal.enabled" .) "true" }}
|
||||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
name: {{ template "valkey.appName" . }}
|
||||
namespace: {{ .Release.Namespace }}
|
||||
labels:
|
||||
{{ include "valkey.labels" . | nindent 4 }}
|
||||
spec:
|
||||
replicas: {{ .Values.valkey.internal.clusterSize }}
|
||||
serviceName: {{ template "valkey.appName" . }}-headless
|
||||
selector:
|
||||
matchLabels:
|
||||
{{ include "valkey.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
{{- with .Values.valkey.internal.podAnnotations }}
|
||||
annotations:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
labels:
|
||||
{{ include "valkey.selectorLabels" . | nindent 8 }}
|
||||
dplane: valkey
|
||||
spec:
|
||||
terminationGracePeriodSeconds: {{ .Values.valkey.internal.terminationGracePeriodSeconds }}
|
||||
{{- with .Values.global.image.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.valkey.internal.serviceAccount.enabled }}
|
||||
serviceAccountName: {{ include "valkey.serviceAccountName" . }}
|
||||
{{- end }}
|
||||
{{- if .Values.valkey.internal.podSecurityContextEnabled }}
|
||||
securityContext: {{ toYaml .Values.valkey.internal.podSecurityContext | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
dnsConfig:
|
||||
options:
|
||||
- name: use-vc
|
||||
|
||||
containers:
|
||||
- name: {{ template "valkey.appName" . }}
|
||||
securityContext:
|
||||
{{ toYaml .Values.valkey.internal.securityContext | nindent 12 }}
|
||||
image: "{{ default .Values.global.image.repository .Values.valkey.internal.image.repository }}/{{ .Values.valkey.internal.image.name }}:{{ .Values.valkey.internal.image.buildTag | default .Chart.AppVersion }}"
|
||||
imagePullPolicy: {{ .Values.global.image.pullPolicy }}
|
||||
ports:
|
||||
- name: valkey-client
|
||||
containerPort: 6379
|
||||
- name: valkey-cluster
|
||||
containerPort: 16379
|
||||
lifecycle:
|
||||
preStop:
|
||||
exec:
|
||||
command:
|
||||
- "/bin/sh"
|
||||
- "-c"
|
||||
- >
|
||||
timeout 40 /scripts/pre-stop.sh || echo 'preStop timeout reached - continuing with shutdown'
|
||||
|
||||
{{- if .Values.valkey.internal.startupProbe.enabled }}
|
||||
startupProbe:
|
||||
initialDelaySeconds: {{ .Values.valkey.internal.startupProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.valkey.internal.startupProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.valkey.internal.startupProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.valkey.internal.startupProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.valkey.internal.startupProbe.failureThreshold }}
|
||||
exec:
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- /scripts/health-check.sh startup {{ .Values.valkey.internal.startupProbe.timeoutSeconds }}
|
||||
{{- end }}
|
||||
{{- if .Values.valkey.internal.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
initialDelaySeconds: {{ .Values.valkey.internal.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.valkey.internal.livenessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.valkey.internal.livenessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.valkey.internal.livenessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.valkey.internal.livenessProbe.failureThreshold }}
|
||||
exec:
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- /scripts/health-check.sh liveness {{ .Values.valkey.internal.livenessProbe.timeoutSeconds }}
|
||||
{{- end }}
|
||||
|
||||
{{- if .Values.valkey.internal.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
initialDelaySeconds: {{ .Values.valkey.internal.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.valkey.internal.readinessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.valkey.internal.readinessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.valkey.internal.readinessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.valkey.internal.readinessProbe.failureThreshold }}
|
||||
exec:
|
||||
command:
|
||||
- sh
|
||||
- -c
|
||||
- /scripts/health-check.sh readiness {{ .Values.valkey.internal.readinessProbe.timeoutSeconds }}
|
||||
{{- end }}
|
||||
command:
|
||||
- "/bin/sh"
|
||||
- "-c"
|
||||
- >
|
||||
/scripts/start-valkey.sh
|
||||
env:
|
||||
- name: VALKEY_DIR
|
||||
value: "{{ .Values.valkey.internal.valkeyDir }}"
|
||||
- name: REDISCLI_AUTH
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ .Values.common.datagridCredentials.name }}
|
||||
key: datagrid_password
|
||||
- name: POD_IP
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: status.podIP
|
||||
- name: CLUSTER_SIZE
|
||||
value: "{{ .Values.valkey.internal.clusterSize }}"
|
||||
- name: REPLICAS_PER_MASTER
|
||||
value: "{{ .Values.valkey.internal.replicasPerMaster }}"
|
||||
- name: VALKEY_PORT
|
||||
value: "6379"
|
||||
- name: POD_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.name
|
||||
resources:
|
||||
{{- toYaml .Values.valkey.internal.resources | nindent 12 }}
|
||||
volumeMounts:
|
||||
- name: {{ .Values.valkey.internal.persistence.claimTemplateName }}
|
||||
mountPath: {{ .Values.valkey.internal.valkeyDir }}
|
||||
- name: config
|
||||
mountPath: /config
|
||||
envFrom:
|
||||
{{- if .Values.common.email_authentication }}
|
||||
- secretRef:
|
||||
name: {{ .Values.common.fromMail.name }}
|
||||
{{- end }}
|
||||
- secretRef:
|
||||
name: {{ .Values.common.datagridCredentials.name }}
|
||||
|
||||
volumes:
|
||||
- name: config
|
||||
configMap:
|
||||
name: {{ template "valkey.appName" . }}-config
|
||||
|
||||
{{- with .Values.valkey.internal.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.valkey.internal.affinity }}
|
||||
affinity:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.valkey.internal.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
|
||||
volumeClaimTemplates:
|
||||
- metadata:
|
||||
name: {{ .Values.valkey.internal.persistence.claimTemplateName }}
|
||||
labels:
|
||||
{{ include "valkey.selectorLabels" . | nindent 10 }}
|
||||
spec:
|
||||
accessModes:
|
||||
- {{ .Values.valkey.internal.persistence.claimTemplateAccessModes }}
|
||||
resources:
|
||||
requests:
|
||||
storage: {{ .Values.valkey.internal.persistence.claimTemplateRequestStorage }}
|
||||
{{- if .Values.valkey.internal.persistence.claimTemplateStorageClass }}
|
||||
storageClassName: {{ .Values.valkey.internal.persistence.claimTemplateStorageClass }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
Reference in New Issue
Block a user