diff --git a/production/helm/loki/templates/_helpers.tpl b/production/helm/loki/templates/_helpers.tpl index cf433347f4a5a..7d1850d9a9260 100644 --- a/production/helm/loki/templates/_helpers.tpl +++ b/production/helm/loki/templates/_helpers.tpl @@ -1183,6 +1183,18 @@ enableServiceLinks: false {{- printf "%s" $querierAddress }} {{- end }} +{{/* Determine headless querier address for tail proxy */}} +{{- define "loki.querierHeadlessAddress" -}} +{{- $querierAddress := "" }} +{{- $isDistributed := eq (include "loki.deployment.isDistributed" .) "true" -}} +{{- if $isDistributed -}} +{{- $querierHost := include "loki.querierFullname" .}} +{{- $querierUrl := printf "http://%s-headless.%s.svc.%s:3100" $querierHost .Release.Namespace .Values.global.clusterDomain }} +{{- $querierAddress = $querierUrl }} +{{- end -}} +{{- printf "%s" $querierAddress }} +{{- end }} + {{/* Determine index-gateway address */}} {{- define "loki.indexGatewayAddress" -}} {{- $idxGatewayAddress := ""}} diff --git a/production/helm/loki/templates/querier/service-querier-headless.yaml b/production/helm/loki/templates/querier/service-querier-headless.yaml new file mode 100644 index 0000000000000..9ec481b7a3d6b --- /dev/null +++ b/production/helm/loki/templates/querier/service-querier-headless.yaml @@ -0,0 +1,37 @@ +{{- $isDistributed := eq (include "loki.deployment.isDistributed" .) "true" -}} +{{- if $isDistributed -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "loki.querierFullname" . }}-headless + namespace: {{ .Release.Namespace }} + labels: + {{- include "loki.querierLabels" . | nindent 4 }} + {{- with .Values.querier.serviceLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} + annotations: + {{- with .Values.loki.serviceAnnotations }} + {{- toYaml . | nindent 4}} + {{- end }} + {{- with .Values.querier.serviceAnnotations }} + {{- toYaml . | nindent 4}} + {{- end }} +spec: + type: ClusterIP + clusterIP: None + ports: + - name: http-metrics + port: 3100 + targetPort: http-metrics + protocol: TCP + - name: grpc + port: 9095 + targetPort: grpc + protocol: TCP + {{- if .Values.querier.appProtocol.grpc }} + appProtocol: {{ .Values.querier.appProtocol.grpc }} + {{- end }} + selector: + {{- include "loki.querierSelectorLabels" . | nindent 4 }} +{{- end -}} diff --git a/production/helm/loki/values.yaml b/production/helm/loki/values.yaml index 494a9786a21c4..5e6a78d576264 100644 --- a/production/helm/loki/values.yaml +++ b/production/helm/loki/values.yaml @@ -560,7 +560,7 @@ loki: mode: simple frontend: scheduler_address: '{{ include "loki.querySchedulerAddress" . }}' - tail_proxy_url: '{{ include "loki.querierAddress" . }}' + tail_proxy_url: '{{ include "loki.querierHeadlessAddress" . }}' frontend_worker: scheduler_address: '{{ include "loki.querySchedulerAddress" . }}' # -- Optional distributor configuration