123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- {{- if $.Values.externalAccess.enabled }}
- {{- $shards := $.Values.shards | int }}
- {{- $replicas := $.Values.replicaCount | int }}
- {{- $totalNodes := mul $shards $replicas }}
- {{- range $shard, $e := until $shards }}
- {{- range $i, $_e := until $replicas }}
- {{- $targetPod := printf "%s-shard%d-%d" (include "common.names.fullname" $) $shard $i }}
- apiVersion: v1
- kind: Service
- metadata:
- name: {{ printf "%s-external" $targetPod | trunc 63 | trimSuffix "-" }}
- namespace: {{ $.Release.Namespace | quote }}
- labels: {{- include "common.labels.standard" $ | nindent 4 }}
- app.kubernetes.io/component: clickhouse
- pod: {{ $targetPod }}
- {{- if $.Values.commonLabels }}
- {{- include "common.tplvalues.render" ( dict "value" $.Values.commonLabels "context" $ ) | nindent 4 }}
- {{- end }}
- {{- if $.Values.externalAccess.service.labels }}
- {{- include "common.tplvalues.render" ( dict "value" $.Values.externalAccess.service.labels "context" $) | nindent 4 }}
- {{- end }}
- {{- if or $.Values.externalAccess.service.annotations $.Values.commonAnnotations $.Values.externalAccess.service.loadBalancerAnnotations }}
- annotations:
- {{- if and (not (empty $.Values.externalAccess.service.loadBalancerAnnotations)) (eq (len $.Values.externalAccess.service.loadBalancerAnnotations) $totalNodes) }}
- {{ include "common.tplvalues.render" ( dict "value" (index $.Values.externalAccess.service.loadBalancerAnnotations $i) "context" $) | nindent 4 }}
- {{- end }}
- {{- if $.Values.externalAccess.service.annotations }}
- {{- include "common.tplvalues.render" ( dict "value" $.Values.externalAccess.service.annotations "context" $) | nindent 4 }}
- {{- end }}
- {{- if $.Values.commonAnnotations }}
- {{- include "common.tplvalues.render" ( dict "value" $.Values.commonAnnotations "context" $ ) | nindent 4 }}
- {{- end }}
- {{- end }}
- spec:
- type: {{ $.Values.externalAccess.service.type }}
- {{- if eq $.Values.externalAccess.service.type "LoadBalancer" }}
- {{- if and (not (empty $.Values.externalAccess.service.loadBalancerIPs)) (eq (len $.Values.externalAccess.service.loadBalancerIPs) $totalNodes) }}
- loadBalancerIP: {{ index $.Values.externalAccess.service.loadBalancerIPs $i }}
- {{- end }}
- {{- if $.Values.externalAccess.service.loadBalancerSourceRanges }}
- loadBalancerSourceRanges: {{- toYaml $.Values.externalAccess.service.loadBalancerSourceRanges | nindent 4 }}
- {{- end }}
- {{- end }}
- ports:
- - name: http
- port: {{ $.Values.externalAccess.service.ports.http }}
- targetPort: http
- {{- if not (empty $.Values.externalAccess.service.nodePorts.http) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.http $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- {{- if $.Values.tls.enabled }}
- - name: https
- port: {{ $.Values.externalAccess.service.ports.https }}
- targetPort: https
- {{- if not (empty $.Values.externalAccess.service.nodePorts.https) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.https $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- {{- end }}
- {{- if $.Values.metrics.enabled }}
- - name: http-metrics
- port: {{ $.Values.externalAccess.service.ports.metrics }}
- targetPort: http-metrics
- {{- if not (empty $.Values.externalAccess.service.nodePorts.metrics) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.metrics $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- {{- end }}
- - name: tcp
- port: {{ $.Values.externalAccess.service.ports.tcp }}
- targetPort: tcp
- {{- if not (empty $.Values.externalAccess.service.nodePorts.tcp) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.tcp $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- {{- if $.Values.tls.enabled }}
- - name: tcp-secure
- port: {{ $.Values.externalAccess.service.ports.tcpSecure }}
- targetPort: tcp-secure
- {{- if not (empty $.Values.externalAccess.service.nodePorts.tcpSecure) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.tcpSecure $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- {{- end }}
- {{- if $.Values.keeper.enabled }}
- - name: tcp-keeper
- port: {{ $.Values.externalAccess.service.ports.keeper }}
- targetPort: tcp-keeper
- {{- if not (empty $.Values.externalAccess.service.nodePorts.keeper) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.keeper $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- - name: tcp-keeperinter
- port: {{ $.Values.externalAccess.service.ports.keeperInter }}
- targetPort: tcp-keeperinter
- {{- if not (empty $.Values.externalAccess.service.nodePorts.keeperInter) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.keeperInter $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- {{- if $.Values.tls.enabled }}
- - name: tcp-keepertls
- port: {{ $.Values.externalAccess.service.ports.keeperSecure }}
- targetPort: tcp-keepertls
- {{- if not (empty $.Values.externalAccess.service.nodePorts.keeperSecure) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.keeperSecure $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- {{- end }}
- {{- end }}
- - name: tcp-mysql
- port: {{ $.Values.externalAccess.service.ports.mysql }}
- targetPort: tcp-mysql
- {{- if not (empty $.Values.externalAccess.service.nodePorts.mysql) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.mysql $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- - name: tcp-postgresql
- port: {{ $.Values.externalAccess.service.ports.postgresql }}
- targetPort: tcp-postgresql
- {{- if not (empty $.Values.externalAccess.service.nodePorts.postgresql) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.postgresql $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- - name: tcp-intersrv
- port: {{ $.Values.externalAccess.service.ports.interserver }}
- targetPort: tcp-intersrv
- {{- if not (empty $.Values.externalAccess.service.nodePorts.interserver) }}
- nodePort: {{ index $.Values.externalAccess.service.nodePorts.interserver $i }}
- {{- else }}
- nodePort: null
- {{- end }}
- {{- if $.Values.externalAccess.service.extraPorts }}
- {{- include "common.tplvalues.render" (dict "value" $.Values.externalAccess.service.extraPorts "context" $) | nindent 4 }}
- {{- end }}
- selector: {{- include "common.labels.matchLabels" $ | nindent 4 }}
- app.kubernetes.io/component: clickhouse
- statefulset.kubernetes.io/pod-name: {{ $targetPod }}
- ---
- {{- end }}
- {{- end }}
- {{- end }}
|