{{- if .Values.haproxy.enabled }} apiVersion: v1 kind: Service metadata: name: {{ template "redis-ha.fullname" . }}-haproxy namespace: {{ .Release.Namespace }} labels: {{ include "labels.standard" . | indent 4 }} component: {{ template "redis-ha.fullname" . }}-haproxy annotations: {{- if .Values.haproxy.service.annotations }} {{ toYaml .Values.haproxy.service.annotations | indent 4 }} {{- end }} spec: type: {{ default "ClusterIP" .Values.haproxy.service.type }} {{- if and (eq .Values.haproxy.service.type "LoadBalancer") .Values.haproxy.service.loadBalancerIP }} loadBalancerIP: {{ .Values.haproxy.service.loadBalancerIP }} {{- end }} ports: - name: haproxy port: {{ .Values.redis.port }} protocol: TCP targetPort: redis {{- if and (eq .Values.haproxy.service.type "NodePort") .Values.haproxy.service.nodePort }} nodePort: {{ .Values.haproxy.service.nodePort }} {{- end }} {{- if .Values.haproxy.readOnly.enabled }} - name: haproxyreadonly port: {{ .Values.haproxy.readOnly.port }} protocol: TCP targetPort: {{ .Values.haproxy.readOnly.port }} {{- end }} {{- if .Values.haproxy.metrics.enabled }} - name: {{ .Values.haproxy.metrics.portName }} port: {{ .Values.haproxy.metrics.port }} protocol: TCP targetPort: metrics-port {{- end }} selector: release: {{ .Release.Name }} app: {{ template "redis-ha.name" . }}-haproxy {{- end }}