{{- if .Values.externalAccess.enabled }} {{- $root := . }} {{- $fullname := include "redis-cluster.fullname" . }} --- apiVersion: v1 kind: Service metadata: name: {{ $fullname }}-external namespace: {{ .Release.Namespace }} labels: {{- include "redis-cluster.labels" . | nindent 4 }} redis-cluster.external-role: bootstrap {{- with .Values.externalAccess.bootstrap.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: type: LoadBalancer externalTrafficPolicy: {{ .Values.externalAccess.externalTrafficPolicy }} allocateLoadBalancerNodePorts: {{ .Values.externalAccess.allocateLoadBalancerNodePorts }} {{- with .Values.externalAccess.loadBalancerClass }} loadBalancerClass: {{ . | quote }} {{- end }} {{- with .Values.externalAccess.loadBalancerSourceRanges }} loadBalancerSourceRanges: {{- toYaml . | nindent 4 }} {{- end }} selector: {{- include "redis-cluster.selectorLabels" . | nindent 4 }} ports: - name: tcp-redis port: {{ .Values.externalAccess.port }} targetPort: tcp-redis appProtocol: redis {{- range $shard := until (int .Values.cluster.shards) }} {{- range $member := until (int (add (int $.Values.cluster.replicasPerShard) 1)) }} {{- $memberName := printf "%s-s%d-n%d" $fullname $shard $member | trunc 63 | trimSuffix "-" }} --- apiVersion: v1 kind: Service metadata: name: {{ $memberName }}-x namespace: {{ $.Release.Namespace }} labels: {{- include "redis-cluster.labels" $root | nindent 4 }} redis-cluster.external-role: member redis-cluster.shard: {{ $shard | quote }} redis-cluster.member: {{ $member | quote }} {{- with $.Values.externalAccess.memberServices.annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: type: LoadBalancer externalTrafficPolicy: {{ $.Values.externalAccess.externalTrafficPolicy }} allocateLoadBalancerNodePorts: {{ $.Values.externalAccess.allocateLoadBalancerNodePorts }} {{- with $.Values.externalAccess.loadBalancerClass }} loadBalancerClass: {{ . | quote }} {{- end }} {{- with $.Values.externalAccess.loadBalancerSourceRanges }} loadBalancerSourceRanges: {{- toYaml . | nindent 4 }} {{- end }} selector: {{- include "redis-cluster.selectorLabels" $root | nindent 4 }} redis-cluster.shard: {{ $shard | quote }} redis-cluster.member: {{ $member | quote }} ports: - name: tcp-redis port: {{ $.Values.externalAccess.port }} targetPort: tcp-redis appProtocol: redis {{- end }} {{- end }} {{- end }}