summaryrefslogtreecommitdiff
path: root/astroshop-platform/argocd-helmchart/charts/redis-ha/templates/redis-haproxy-deployment.yaml
diff options
context:
space:
mode:
authorSaumit <justsaumit@protonmail.com>2025-10-11 02:34:38 +0530
committerSaumit <justsaumit@protonmail.com>2025-10-11 02:34:38 +0530
commit88a326bacdffde9e065b08ba893a17149584e72e (patch)
tree20e380438497afb8c4b33a932505602590721690 /astroshop-platform/argocd-helmchart/charts/redis-ha/templates/redis-haproxy-deployment.yaml
parentef773bd27019ec6597bd12237e3b4f4f0f46f244 (diff)
platform: Adding argocd helm chart
Diffstat (limited to 'astroshop-platform/argocd-helmchart/charts/redis-ha/templates/redis-haproxy-deployment.yaml')
-rw-r--r--astroshop-platform/argocd-helmchart/charts/redis-ha/templates/redis-haproxy-deployment.yaml202
1 files changed, 202 insertions, 0 deletions
diff --git a/astroshop-platform/argocd-helmchart/charts/redis-ha/templates/redis-haproxy-deployment.yaml b/astroshop-platform/argocd-helmchart/charts/redis-ha/templates/redis-haproxy-deployment.yaml
new file mode 100644
index 0000000..07677fc
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/charts/redis-ha/templates/redis-haproxy-deployment.yaml
@@ -0,0 +1,202 @@
+{{- if .Values.haproxy.enabled }}
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+ name: {{ template "redis-ha.fullname" . }}-haproxy
+ namespace: {{ .Release.Namespace | quote }}
+ labels:
+{{ include "labels.standard" . | indent 4 }}
+ {{- range $key, $value := .Values.extraLabels }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+spec:
+ {{- with .Values.haproxy.deploymentStrategy }}
+ strategy:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ revisionHistoryLimit: 1
+ replicas: {{ .Values.haproxy.replicas }}
+ selector:
+ matchLabels:
+ app: {{ template "redis-ha.name" . }}-haproxy
+ release: {{ .Release.Name }}
+ template:
+ metadata:
+ name: {{ template "redis-ha.fullname" . }}-haproxy
+ labels:
+ app: {{ template "redis-ha.name" . }}-haproxy
+ release: {{ .Release.Name }}
+ {{- range $key, $value := .Values.haproxy.labels }}
+ {{ $key }}: {{ $value | toString }}
+ {{- end }}
+ {{- range $key, $value := .Values.extraLabels }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ annotations:
+ {{- if and (.Values.haproxy.metrics.enabled) (not .Values.haproxy.metrics.serviceMonitor.enabled) }}
+ prometheus.io/port: "{{ .Values.haproxy.metrics.port }}"
+ prometheus.io/scrape: "true"
+ prometheus.io/path: "{{ .Values.haproxy.metrics.scrapePath }}"
+ {{- end }}
+ checksum/config: {{ print (include "config-haproxy.cfg" .) (include "config-haproxy_init.sh" .) | sha256sum }}
+ {{- if .Values.haproxy.annotations }}
+{{ toYaml .Values.haproxy.annotations | indent 8 }}
+ {{- end }}
+ spec:
+ # Needed when using unmodified rbac-setup.yml
+ {{ if .Values.haproxy.serviceAccount.create }}
+ serviceAccountName: {{ template "redis-ha.serviceAccountName" . }}-haproxy
+ {{- else }}
+ serviceAccountName: {{ .Values.haproxy.serviceAccountName }}
+ {{- end }}
+ securityContext: {{- include "compatibility.renderSecurityContext" (dict "secContext" .Values.haproxy.securityContext "context" $) | nindent 8 }}
+ automountServiceAccountToken: {{ .Values.haproxy.serviceAccount.automountToken }}
+ nodeSelector:
+{{ toYaml .Values.nodeSelector | indent 8 }}
+ tolerations:
+{{ toYaml .Values.tolerations | indent 8 }}
+ affinity:
+ {{- if .Values.haproxy.affinity }}
+ {{- with .Values.haproxy.affinity }}
+{{ tpl . $ | indent 8 }}
+ {{- end }}
+ {{- else }}
+ {{- if .Values.haproxy.additionalAffinities }}
+{{ toYaml .Values.haproxy.additionalAffinities | indent 8 }}
+ {{- end }}
+ podAntiAffinity:
+ {{- if .Values.haproxy.hardAntiAffinity }}
+ requiredDuringSchedulingIgnoredDuringExecution:
+ - labelSelector:
+ matchLabels:
+ app: {{ template "redis-ha.name" . }}-haproxy
+ release: {{ .Release.Name }}
+ topologyKey: kubernetes.io/hostname
+ {{- else }}
+ preferredDuringSchedulingIgnoredDuringExecution:
+ - weight: 100
+ podAffinityTerm:
+ labelSelector:
+ matchLabels:
+ app: {{ template "redis-ha.name" . }}-haproxy
+ release: {{ .Release.Name }}
+ topologyKey: kubernetes.io/hostname
+ {{- end }}
+ {{- end }}
+ {{- if .Values.topologySpreadConstraints.enabled }}
+ topologySpreadConstraints:
+ - maxSkew: {{ .Values.topologySpreadConstraints.maxSkew | default 1 }}
+ topologyKey: {{ .Values.topologySpreadConstraints.topologyKey | default "topology.kubernetes.io/zone" }}
+ whenUnsatisfiable: {{ .Values.topologySpreadConstraints.whenUnsatisfiable | default "ScheduleAnyway" }}
+ labelSelector:
+ matchLabels:
+ app: {{ template "redis-ha.name" . }}-haproxy
+ release: {{ .Release.Name }}
+ {{- end }}
+ initContainers:
+ - name: config-init
+ image: {{ .Values.haproxy.image.repository }}:{{ .Values.haproxy.image.tag }}
+ imagePullPolicy: {{ .Values.haproxy.image.pullPolicy }}
+ resources:
+{{ toYaml .Values.haproxy.init.resources | indent 10 }}
+ command:
+ - sh
+ args:
+ - /readonly/haproxy_init.sh
+ securityContext: {{- include "compatibility.renderSecurityContext" (dict "secContext" .Values.haproxy.containerSecurityContext "context" $) | nindent 10 }}
+ volumeMounts:
+ - name: config-volume
+ mountPath: /readonly
+ readOnly: true
+ - name: data
+ mountPath: /data
+ {{- if .Values.haproxy.imagePullSecrets }}
+ imagePullSecrets: {{ toYaml .Values.haproxy.imagePullSecrets | nindent 8 }}
+ {{- end }}
+ containers:
+ - name: haproxy
+ image: {{ .Values.haproxy.image.repository }}:{{ .Values.haproxy.image.tag }}
+ imagePullPolicy: {{ .Values.haproxy.image.pullPolicy }}
+ securityContext: {{- include "compatibility.renderSecurityContext" (dict "secContext" .Values.haproxy.containerSecurityContext "context" $) | nindent 10 }}
+ {{- if or .Values.auth .Values.sentinel.auth}}
+ env:
+ {{- if .Values.auth }}
+ - name: AUTH
+ valueFrom:
+ secretKeyRef:
+ {{- if .Values.existingSecret }}
+ name: {{ .Values.existingSecret }}
+ {{- else }}
+ name: {{ template "redis-ha.fullname" . }}
+ {{- end }}
+ key: {{ .Values.authKey }}
+ {{- end }}
+ {{- if .Values.sentinel.auth }}
+ - name: SENTINELAUTH
+ valueFrom:
+ secretKeyRef:
+ {{- if .Values.sentinel.existingSecret }}
+ name: {{ .Values.sentinel.existingSecret }}
+ {{- else }}
+ name: {{ template "redis-ha.fullname" . }}-sentinel
+ {{- end }}
+ key: {{ .Values.sentinel.authKey }}
+ {{- end }}
+ {{- end }}
+ livenessProbe:
+ httpGet:
+ path: /healthz
+ port: probe
+ initialDelaySeconds: 5
+ periodSeconds: 3
+ readinessProbe:
+ httpGet:
+ path: /healthz
+ port: probe
+ initialDelaySeconds: 5
+ periodSeconds: 3
+ ports:
+ - name: probe
+ containerPort: 8888
+ - name: redis
+ containerPort: {{ default "6379" .Values.haproxy.containerPort }}
+ {{- if .Values.haproxy.readOnly.enabled }}
+ - name: readonlyport
+ containerPort: {{ default "6380" .Values.haproxy.readOnly.port }}
+ {{- end }}
+ {{- if .Values.haproxy.metrics.enabled }}
+ - name: metrics-port
+ containerPort: {{ default "9101" .Values.haproxy.metrics.port }}
+ {{- end }}
+ resources:
+{{ toYaml .Values.haproxy.resources | indent 10 }}
+ volumeMounts:
+ - name: data
+ mountPath: /usr/local/etc/haproxy
+ - name: shared-socket
+ mountPath: /run/haproxy
+{{- if .Values.haproxy.tls.enabled }}
+ - name: pemfile
+ mountPath: {{ .Values.haproxy.tls.certMountPath }}
+{{- end }}
+ lifecycle:
+{{ toYaml .Values.haproxy.lifecycle | indent 10 }}
+ {{- with .Values.haproxy.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ volumes:
+{{- if .Values.haproxy.tls.enabled }}
+ - name: pemfile
+ secret:
+ secretName: {{ .Values.haproxy.tls.secretName }}
+{{- end }}
+ - name: config-volume
+ configMap:
+ name: {{ template "redis-ha.fullname" . }}-configmap
+ - name: shared-socket
+ emptyDir:
+{{ toYaml .Values.haproxy.emptyDir | indent 10 }}
+ - name: data
+ emptyDir:
+{{ toYaml .Values.haproxy.emptyDir | indent 10 }}
+{{- end }}