feat(helm): Replace bloom compactor with bloom planner and builder (#14003)

This is PR is part of the process of removing the bloom compactor and replace it with bloom planner and bloom builder.

Part of https://github.com/grafana/loki/issues/13957

Signed-off-by: Christian Haudum <christian.haudum@gmail.com>
pull/14039/head helm-loki-6.12.0
Christian Haudum 9 months ago committed by GitHub
parent 51f9376847
commit 08e61ca4db
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      Makefile
  2. 628
      docs/sources/setup/install/helm/reference.md
  3. 4
      production/helm/loki/CHANGELOG.md
  4. 2
      production/helm/loki/Chart.yaml
  5. 2
      production/helm/loki/README.md
  6. 7
      production/helm/loki/distributed-values.yaml
  7. 32
      production/helm/loki/templates/bloom-builder/_helpers-bloom-builder.tpl
  8. 142
      production/helm/loki/templates/bloom-builder/deployment-bloom-builder.yaml
  9. 55
      production/helm/loki/templates/bloom-builder/hpa.yaml
  10. 21
      production/helm/loki/templates/bloom-builder/poddisruptionbudget-bloom-builder.yaml
  11. 43
      production/helm/loki/templates/bloom-builder/service-bloom-builder-headless.yaml
  12. 41
      production/helm/loki/templates/bloom-builder/service-bloom-builder.yaml
  13. 58
      production/helm/loki/templates/bloom-compactor/_helpers-bloom-compactor.tpl
  14. 58
      production/helm/loki/templates/bloom-planner/_helpers-bloom-planner.tpl
  15. 36
      production/helm/loki/templates/bloom-planner/service-bloom-planner-headless.yaml
  16. 72
      production/helm/loki/templates/bloom-planner/statefulset-bloom-planner.yaml
  17. 218
      production/helm/loki/values.yaml

@ -193,8 +193,8 @@ production/helm/loki/src/helm-test/helm-test:
helm-lint: ## run helm linter
$(MAKE) -BC production/helm/loki lint
helm-docs:
helm-docs -c production/helm/loki -g production/helm/loki
helm-docs: ## generate reference documentation
$(MAKE) -BC docs sources/setup/install/helm/reference.md
#################
# Loki-QueryTee #

File diff suppressed because it is too large Load Diff

@ -13,6 +13,10 @@ Entries should include a reference to the pull request that introduced the chang
[//]: # (<AUTOMATED_UPDATES_LOCATOR> : do not remove this line. This locator is used by the CI pipeline to automatically create a changelog entry for each new Loki release. Add other chart versions and respective changelog entries bellow this line.)
## 6.12.0
- [ENHANCEMENT] Replace Bloom Compactor component with Bloom Planner and Bloom Builder. These are the new components to build bloom blocks.
## 6.11.0
- [FEATURE] Add support for configuring persistence for memcached.

@ -3,7 +3,7 @@ name: loki
description: Helm chart for Grafana Loki and Grafana Enterprise Logs supporting both simple, scalable and distributed modes.
type: application
appVersion: 3.1.1
version: 6.11.0
version: 6.12.0
home: https://grafana.github.io/helm-charts
sources:
- https://github.com/grafana/loki

@ -1,6 +1,6 @@
# loki
![Version: 6.11.0](https://img.shields.io/badge/Version-6.11.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.1.1](https://img.shields.io/badge/AppVersion-3.1.1-informational?style=flat-square)
![Version: 6.12.0](https://img.shields.io/badge/Version-6.12.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 3.1.1](https://img.shields.io/badge/AppVersion-3.1.1-informational?style=flat-square)
Helm chart for Grafana Loki and Grafana Enterprise Logs supporting both simple, scalable and distributed modes.

@ -47,7 +47,10 @@ indexGateway:
replicas: 2
maxUnavailable: 1
bloomCompactor:
# optional experimental components
bloomPlanner:
replicas: 0
bloomBuilder:
replicas: 0
bloomGateway:
replicas: 0
@ -66,5 +69,3 @@ write:
singleBinary:
replicas: 0

@ -0,0 +1,32 @@
{{/*
bloom-builder fullname
*/}}
{{- define "loki.bloomBuilderFullname" -}}
{{ include "loki.fullname" . }}-bloom-builder
{{- end }}
{{/*
bloom-builder common labels
*/}}
{{- define "loki.bloomBuilderLabels" -}}
{{ include "loki.labels" . }}
app.kubernetes.io/component: bloom-builder
{{- end }}
{{/*
bloom-builder selector labels
*/}}
{{- define "loki.bloomBuilderSelectorLabels" -}}
{{ include "loki.selectorLabels" . }}
app.kubernetes.io/component: bloom-builder
{{- end }}
{{/*
bloom-builder priority class name
*/}}
{{- define "loki.bloomBuilderPriorityClassName" -}}
{{- $pcn := coalesce .Values.global.priorityClassName .Values.bloomBuilder.priorityClassName -}}
{{- if $pcn }}
priorityClassName: {{ $pcn }}
{{- end }}
{{- end }}

@ -0,0 +1,142 @@
{{- $isDistributed := eq (include "loki.deployment.isDistributed" .) "true" -}}
{{- if $isDistributed -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "loki.bloomBuilderFullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "loki.bloomBuilderLabels" . | nindent 4 }}
{{- with .Values.loki.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if not .Values.bloomBuilder.autoscaling.enabled }}
replicas: {{ .Values.bloomBuilder.replicas }}
{{- end }}
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 1
revisionHistoryLimit: {{ .Values.loki.revisionHistoryLimit }}
selector:
matchLabels:
{{- include "loki.bloomBuilderSelectorLabels" . | nindent 6 }}
template:
metadata:
annotations:
{{- include "loki.config.checksum" . | nindent 8 }}
{{- with .Values.loki.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomBuilder.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "loki.bloomBuilderSelectorLabels" . | nindent 8 }}
app.kubernetes.io/part-of: memberlist
{{- with .Values.loki.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomBuilder.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
serviceAccountName: {{ include "loki.serviceAccountName" . }}
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomBuilder.hostAliases }}
hostAliases:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- include "loki.bloomBuilderPriorityClassName" . | nindent 6 }}
securityContext:
{{- toYaml .Values.loki.podSecurityContext | nindent 8 }}
terminationGracePeriodSeconds: {{ .Values.bloomBuilder.terminationGracePeriodSeconds }}
containers:
- name: bloom-builder
image: {{ include "loki.image" . }}
imagePullPolicy: {{ .Values.loki.image.pullPolicy }}
{{- if or .Values.loki.command .Values.bloomBuilder.command }}
command:
- {{ coalesce .Values.bloomBuilder.command .Values.loki.command | quote }}
{{- end }}
args:
- -config.file=/etc/loki/config/config.yaml
- -target=bloom-builder
{{- with .Values.bloomBuilder.extraArgs }}
{{- toYaml . | nindent 12 }}
{{- end }}
ports:
- name: http-metrics
containerPort: 3100
protocol: TCP
- name: grpc
containerPort: 9095
protocol: TCP
- name: http-memberlist
containerPort: 7946
protocol: TCP
{{- with .Values.bloomBuilder.extraEnv }}
env:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.bloomBuilder.extraEnvFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
securityContext:
{{- toYaml .Values.loki.containerSecurityContext | nindent 12 }}
readinessProbe:
{{- toYaml .Values.loki.readinessProbe | nindent 12 }}
volumeMounts:
- name: config
mountPath: /etc/loki/config
- name: runtime-config
mountPath: /etc/loki/runtime-config
{{- if .Values.enterprise.enabled }}
- name: license
mountPath: /etc/loki/license
{{- end }}
{{- with .Values.bloomBuilder.extraVolumeMounts }}
{{- toYaml . | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.bloomBuilder.resources | nindent 12 }}
{{- if .Values.bloomBuilder.extraContainers }}
{{- toYaml .Values.bloomBuilder.extraContainers | nindent 8}}
{{- end }}
{{- with .Values.bloomBuilder.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomBuilder.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomBuilder.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
volumes:
- name: config
{{- include "loki.configVolume" . | nindent 10 }}
- name: runtime-config
configMap:
name: {{ template "loki.name" . }}-runtime
{{- if .Values.enterprise.enabled }}
- name: license
secret:
{{- if .Values.enterprise.useExternalLicense }}
secretName: {{ .Values.enterprise.externalLicenseName }}
{{- else }}
secretName: enterprise-logs-license
{{- end }}
{{- end }}
{{- with .Values.bloomBuilder.extraVolumes }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end -}}

@ -0,0 +1,55 @@
{{- $isDistributed := eq (include "loki.deployment.isDistributed" .) "true" -}}
{{- if and $isDistributed .Values.bloomBuilder.autoscaling.enabled }}
{{- $apiVersion := include "loki.hpa.apiVersion" . -}}
apiVersion: {{ $apiVersion }}
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "loki.bloomBuilderFullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "loki.bloomBuilderLabels" . | nindent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "loki.bloomBuilderFullname" . }}
minReplicas: {{ .Values.bloomBuilder.autoscaling.minReplicas }}
maxReplicas: {{ .Values.bloomBuilder.autoscaling.maxReplicas }}
metrics:
{{- with .Values.bloomBuilder.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
{{- if (eq $apiVersion "autoscaling/v2") }}
target:
type: Utilization
averageUtilization: {{ . }}
{{- else }}
targetAverageUtilization: {{ . }}
{{- end }}
{{- end }}
{{- with .Values.bloomBuilder.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
{{- if (eq $apiVersion "autoscaling/v2") }}
target:
type: Utilization
averageUtilization: {{ . }}
{{- else }}
targetAverageUtilization: {{ . }}
{{- end }}
{{- end }}
{{- with .Values.bloomBuilder.autoscaling.customMetrics }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- if .Values.bloomBuilder.autoscaling.behavior.enabled }}
behavior:
{{- with .Values.bloomBuilder.autoscaling.behavior.scaleDown }}
scaleDown: {{ toYaml . | nindent 6 }}
{{- end }}
{{- with .Values.bloomBuilder.autoscaling.behavior.scaleUp }}
scaleUp: {{ toYaml . | nindent 6 }}
{{- end }}
{{- end }}
{{- end }}

@ -0,0 +1,21 @@
{{- $isDistributed := eq (include "loki.deployment.isDistributed" .) "true" -}}
{{- if and $isDistributed (gt (int .Values.bloomBuilder.replicas) 1) }}
{{- if kindIs "invalid" .Values.bloomBuilder.maxUnavailable }}
{{- fail "`.Values.bloomBuilder.maxUnavailable` must be set when `.Values.bloomBuilder.replicas` is greater than 1." }}
{{- else }}
apiVersion: {{ include "loki.pdb.apiVersion" . }}
kind: PodDisruptionBudget
metadata:
name: {{ include "loki.bloomBuilderFullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "loki.bloomBuilderLabels" . | nindent 4 }}
spec:
selector:
matchLabels:
{{- include "loki.bloomBuilderSelectorLabels" . | nindent 6 }}
{{- with .Values.bloomBuilder.maxUnavailable }}
maxUnavailable: {{ . }}
{{- end }}
{{- end }}
{{- end }}

@ -0,0 +1,43 @@
{{- $isDistributed := eq (include "loki.deployment.isDistributed" .) "true" -}}
{{- if $isDistributed -}}
apiVersion: v1
kind: Service
metadata:
name: {{ include "loki.bloomBuilderFullname" . }}-headless
namespace: {{ .Release.Namespace }}
labels:
{{- include "loki.bloomBuilderLabels" . | nindent 4 }}
{{- with .Values.bloomBuilder.serviceLabels }}
{{- toYaml . | nindent 4 }}
{{- end }}
prometheus.io/service-monitor: "false"
{{- with .Values.loki.serviceAnnotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
clusterIP: None
type: ClusterIP
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
{{- if .Values.bloomBuilder.appProtocol.grpc }}
appProtocol: {{ .Values.bloomBuilder.appProtocol.grpc }}
{{- end }}
- name: grpclb
port: 9096
targetPort: grpc
protocol: TCP
{{- if .Values.bloomBuilder.appProtocol.grpc }}
appProtocol: {{ .Values.bloomBuilder.appProtocol.grpc }}
{{- end }}
selector:
{{- include "loki.bloomBuilderSelectorLabels" . | nindent 4 }}
{{- end -}}

@ -0,0 +1,41 @@
{{- $isDistributed := eq (include "loki.deployment.isDistributed" .) "true" -}}
{{- if $isDistributed -}}
apiVersion: v1
kind: Service
metadata:
name: {{ include "loki.bloomBuilderFullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "loki.bloomBuilderLabels" . | nindent 4 }}
{{- with .Values.bloomBuilder.serviceLabels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.loki.serviceAnnotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: ClusterIP
publishNotReadyAddresses: true
ports:
- name: http-metrics
port: 3100
targetPort: http-metrics
protocol: TCP
- name: grpc
port: 9095
targetPort: grpc
protocol: TCP
{{- if .Values.bloomBuilder.appProtocol.grpc }}
appProtocol: {{ .Values.bloomBuilder.appProtocol.grpc }}
{{- end }}
- name: grpclb
port: 9096
targetPort: grpc
protocol: TCP
{{- if .Values.bloomBuilder.appProtocol.grpc }}
appProtocol: {{ .Values.bloomBuilder.appProtocol.grpc }}
{{- end }}
selector:
{{- include "loki.bloomBuilderSelectorLabels" . | nindent 4 }}
{{- end -}}

@ -1,58 +0,0 @@
{{/*
bloom compactor fullname
*/}}
{{- define "loki.bloomCompactorFullname" -}}
{{ include "loki.fullname" . }}-bloom-compactor
{{- end }}
{{/*
bloom compactor common labels
*/}}
{{- define "loki.bloomCompactorLabels" -}}
{{ include "loki.labels" . }}
app.kubernetes.io/component: bloom-compactor
{{- end }}
{{/*
bloom compactor selector labels
*/}}
{{- define "loki.bloomCompactorSelectorLabels" -}}
{{ include "loki.selectorLabels" . }}
app.kubernetes.io/component: bloom-compactor
{{- end }}
{{/*
bloom compactor readinessProbe
*/}}
{{- define "loki.bloomCompactor.readinessProbe" -}}
{{- with .Values.bloomCompactor.readinessProbe }}
readinessProbe:
{{- toYaml . | nindent 2 }}
{{- else }}
{{- with .Values.loki.readinessProbe }}
readinessProbe:
{{- toYaml . | nindent 2 }}
{{- end }}
{{- end }}
{{- end -}}
{{/*
bloom compactor priority class name
*/}}
{{- define "loki.bloomCompactorPriorityClassName" }}
{{- $pcn := coalesce .Values.global.priorityClassName .Values.bloomCompactor.priorityClassName -}}
{{- if $pcn }}
priorityClassName: {{ $pcn }}
{{- end }}
{{- end }}
{{/*
Create the name of the bloom compactor service account
*/}}
{{- define "loki.bloomCompactorServiceAccountName" -}}
{{- if .Values.bloomCompactor.serviceAccount.create -}}
{{ default (print (include "loki.serviceAccountName" .) "-bloom-compactor") .Values.bloomCompactor.serviceAccount.name }}
{{- else -}}
{{ default (include "loki.serviceAccountName" .) .Values.bloomCompactor.serviceAccount.name }}
{{- end -}}
{{- end -}}

@ -0,0 +1,58 @@
{{/*
bloom planner fullname
*/}}
{{- define "loki.bloomPlannerFullname" -}}
{{ include "loki.fullname" . }}-bloom-planner
{{- end }}
{{/*
bloom planner common labels
*/}}
{{- define "loki.bloomPlannerLabels" -}}
{{ include "loki.labels" . }}
app.kubernetes.io/component: bloom-planner
{{- end }}
{{/*
bloom planner selector labels
*/}}
{{- define "loki.bloomPlannerSelectorLabels" -}}
{{ include "loki.selectorLabels" . }}
app.kubernetes.io/component: bloom-planner
{{- end }}
{{/*
bloom planner readinessProbe
*/}}
{{- define "loki.bloomPlanner.readinessProbe" -}}
{{- with .Values.bloomPlanner.readinessProbe }}
readinessProbe:
{{- toYaml . | nindent 2 }}
{{- else }}
{{- with .Values.loki.readinessProbe }}
readinessProbe:
{{- toYaml . | nindent 2 }}
{{- end }}
{{- end }}
{{- end -}}
{{/*
bloom planner priority class name
*/}}
{{- define "loki.bloomPlannerPriorityClassName" }}
{{- $pcn := coalesce .Values.global.priorityClassName .Values.bloomPlanner.priorityClassName -}}
{{- if $pcn }}
priorityClassName: {{ $pcn }}
{{- end }}
{{- end }}
{{/*
Create the name of the bloom planner service account
*/}}
{{- define "loki.bloomPlannerServiceAccountName" -}}
{{- if .Values.bloomPlanner.serviceAccount.create -}}
{{ default (print (include "loki.serviceAccountName" .) "-bloom-planner") .Values.bloomPlanner.serviceAccount.name }}
{{- else -}}
{{ default (include "loki.serviceAccountName" .) .Values.bloomPlanner.serviceAccount.name }}
{{- end -}}
{{- end -}}

@ -0,0 +1,36 @@
{{- $isDistributed := eq (include "loki.deployment.isDistributed" .) "true" -}}
{{- if $isDistributed -}}
{{- if (gt (int .Values.bloomPlanner.replicas) 0) -}}
apiVersion: v1
kind: Service
metadata:
name: {{ include "loki.bloomPlannerFullname" . }}-headless
namespace: {{ .Release.Namespace }}
labels:
{{- include "loki.bloomPlannerSelectorLabels" . | nindent 4 }}
{{- with .Values.bloomPlanner.serviceLabels }}
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .Values.loki.serviceAnnotations }}
annotations:
{{- 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.bloomPlanner.appProtocol.grpc }}
appProtocol: {{ .Values.bloomPlanner.appProtocol.grpc }}
{{- end }}
selector:
{{- include "loki.bloomPlannerSelectorLabels" . | nindent 4 }}
{{- end -}}
{{- end -}}

@ -1,33 +1,33 @@
{{- $isDistributed := eq (include "loki.deployment.isDistributed" .) "true" -}}
{{- if $isDistributed }}
{{- if (gt (int .Values.bloomCompactor.replicas) 0) -}}
{{- if (gt (int .Values.bloomPlanner.replicas) 0) -}}
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: {{ include "loki.bloomCompactorFullname" . }}
name: {{ include "loki.bloomPlannerFullname" . }}
namespace: {{ .Release.Namespace }}
labels:
{{- include "loki.bloomCompactorLabels" . | nindent 4 }}
{{- include "loki.bloomPlannerLabels" . | nindent 4 }}
{{- with .Values.loki.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
replicas: {{ .Values.bloomCompactor.replicas }}
replicas: {{ .Values.bloomPlanner.replicas }}
podManagementPolicy: Parallel
updateStrategy:
rollingUpdate:
partition: 0
serviceName: {{ include "loki.bloomCompactorFullname" . }}-headless
serviceName: {{ include "loki.bloomPlannerFullname" . }}-headless
revisionHistoryLimit: {{ .Values.loki.revisionHistoryLimit }}
{{- if and (semverCompare ">= 1.23-0" .Capabilities.KubeVersion.Version) (.Values.bloomCompactor.persistence.enableStatefulSetAutoDeletePVC) }}
{{- if and (semverCompare ">= 1.23-0" .Capabilities.KubeVersion.Version) (.Values.bloomPlanner.persistence.enableStatefulSetAutoDeletePVC) }}
persistentVolumeClaimRetentionPolicy:
whenDeleted: {{ .Values.bloomCompactor.persistence.whenDeleted }}
whenScaled: {{ .Values.bloomCompactor.persistence.whenScaled }}
whenDeleted: {{ .Values.bloomPlanner.persistence.whenDeleted }}
whenScaled: {{ .Values.bloomPlanner.persistence.whenScaled }}
{{- end }}
selector:
matchLabels:
{{- include "loki.bloomCompactorSelectorLabels" . | nindent 6 }}
{{- include "loki.bloomPlannerSelectorLabels" . | nindent 6 }}
template:
metadata:
annotations:
@ -35,16 +35,16 @@ spec:
{{- with .Values.loki.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomCompactor.podAnnotations }}
{{- with .Values.bloomPlanner.podAnnotations }}
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "loki.bloomCompactorSelectorLabels" . | nindent 8 }}
{{- include "loki.bloomPlannerSelectorLabels" . | nindent 8 }}
app.kubernetes.io/part-of: memberlist
{{- with .Values.loki.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomCompactor.podLabels }}
{{- with .Values.bloomPlanner.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
@ -53,30 +53,30 @@ spec:
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomCompactor.hostAliases }}
{{- with .Values.bloomPlanner.hostAliases }}
hostAliases:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- include "loki.bloomCompactorPriorityClassName" . | nindent 6 }}
{{- include "loki.bloomPlannerPriorityClassName" . | nindent 6 }}
securityContext:
{{- toYaml .Values.loki.podSecurityContext | nindent 8 }}
terminationGracePeriodSeconds: {{ .Values.bloomCompactor.terminationGracePeriodSeconds }}
{{- with .Values.bloomCompactor.initContainers }}
terminationGracePeriodSeconds: {{ .Values.bloomPlanner.terminationGracePeriodSeconds }}
{{- with .Values.bloomPlanner.initContainers }}
initContainers:
{{- toYaml . | nindent 8 }}
{{- end }}
containers:
- name: bloom-compactor
- name: bloom-planner
image: {{ include "loki.image" . }}
imagePullPolicy: {{ .Values.loki.image.pullPolicy }}
{{- if or .Values.loki.command .Values.bloomCompactor.command }}
{{- if or .Values.loki.command .Values.bloomPlanner.command }}
command:
- {{ coalesce .Values.bloomCompactor.command .Values.loki.command | quote }}
- {{ coalesce .Values.bloomPlanner.command .Values.loki.command | quote }}
{{- end }}
args:
- -config.file=/etc/loki/config/config.yaml
- -target=bloom-compactor
{{- with .Values.bloomCompactor.extraArgs }}
- -target=bloom-planner
{{- with .Values.bloomPlanner.extraArgs }}
{{- toYaml . | nindent 12 }}
{{- end }}
ports:
@ -89,17 +89,17 @@ spec:
- name: http-memberlist
containerPort: 7946
protocol: TCP
{{- with .Values.bloomCompactor.extraEnv }}
{{- with .Values.bloomPlanner.extraEnv }}
env:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.bloomCompactor.extraEnvFrom }}
{{- with .Values.bloomPlanner.extraEnvFrom }}
envFrom:
{{- toYaml . | nindent 12 }}
{{- end }}
securityContext:
{{- toYaml .Values.loki.containerSecurityContext | nindent 12 }}
{{- include "loki.bloomCompactor.readinessProbe" . | nindent 10 }}
{{- include "loki.bloomPlanner.readinessProbe" . | nindent 10 }}
volumeMounts:
- name: temp
mountPath: /tmp
@ -113,25 +113,25 @@ spec:
- name: license
mountPath: /etc/loki/license
{{- end }}
{{- with .Values.bloomCompactor.extraVolumeMounts }}
{{- with .Values.bloomPlanner.extraVolumeMounts }}
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.bloomCompactor.resources }}
{{- with .Values.bloomPlanner.resources }}
resources:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- if .Values.bloomCompactor.extraContainers }}
{{- toYaml .Values.bloomCompactor.extraContainers | nindent 8}}
{{- if .Values.bloomPlanner.extraContainers }}
{{- toYaml .Values.bloomPlanner.extraContainers | nindent 8}}
{{- end }}
{{- with .Values.bloomCompactor.affinity }}
{{- with .Values.bloomPlanner.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomCompactor.nodeSelector }}
{{- with .Values.bloomPlanner.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.bloomCompactor.tolerations }}
{{- with .Values.bloomPlanner.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
@ -152,16 +152,16 @@ spec:
secretName: enterprise-logs-license
{{- end }}
{{- end }}
{{- if not .Values.bloomCompactor.persistence.enabled }}
{{- if not .Values.bloomPlanner.persistence.enabled }}
- name: data
emptyDir: {}
{{- end }}
{{- with .Values.bloomCompactor.extraVolumes }}
{{- with .Values.bloomPlanner.extraVolumes }}
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if .Values.bloomCompactor.persistence.enabled }}
{{- if .Values.bloomPlanner.persistence.enabled }}
volumeClaimTemplates:
{{- range .Values.bloomCompactor.persistence.claims }}
{{- range .Values.bloomPlanner.persistence.claims }}
- metadata:
name: {{ .name }}
{{- with .annotations }}
@ -180,4 +180,4 @@ spec:
{{- end }}
{{- end }}
{{- end -}}
{{- end -}}
{{- end -}}

@ -440,6 +440,10 @@ loki:
# -- Enable tracing
tracing:
enabled: false
bloom_build:
enabled: false
bloom_gateway:
enabled: false
######################################################################################################################
#
# Enterprise Loki Configs
@ -2376,9 +2380,9 @@ compactor:
annotations: {}
# -- Set this toggle to false to opt out of automounting API credentials for the service account
automountServiceAccountToken: true
# -- Configuration for the bloom gateway
# -- Configuration for the bloom-gateway
bloomGateway:
# -- Number of replicas for the bloom gateway
# -- Number of replicas for the bloom-gateway
replicas: 0
# -- hostAliases to add
hostAliases: []
@ -2386,21 +2390,21 @@ bloomGateway:
# hostnames:
# - domain.tld
image:
# -- The Docker registry for the bloom gateway image. Overrides `loki.image.registry`
# -- The Docker registry for the bloom-gateway image. Overrides `loki.image.registry`
registry: null
# -- Docker image repository for the bloom gateway image. Overrides `loki.image.repository`
# -- Docker image repository for the bloom-gateway image. Overrides `loki.image.repository`
repository: null
# -- Docker image tag for the bloom gateway image. Overrides `loki.image.tag`
# -- Docker image tag for the bloom-gateway image. Overrides `loki.image.tag`
tag: null
# -- Command to execute instead of defined in Docker image
command: null
# -- The name of the PriorityClass for bloom gateway pods
# -- The name of the PriorityClass for bloom-gateway pods
priorityClassName: null
# -- Labels for bloom gateway pods
# -- Labels for bloom-gateway pods
podLabels: {}
# -- Annotations for bloom gateway pods
# -- Annotations for bloom-gateway pods
podAnnotations: {}
# -- Affinity for bloom gateway pods.
# -- Affinity for bloom-gateway pods.
# @default -- Hard node anti-affinity
affinity:
podAntiAffinity:
@ -2409,39 +2413,39 @@ bloomGateway:
matchLabels:
app.kubernetes.io/component: bloom-gateway
topologyKey: kubernetes.io/hostname
# -- Labels for bloom gateway service
# -- Labels for bloom-gateway service
serviceLabels: {}
# -- Additional CLI args for the bloom gateway
# -- Additional CLI args for the bloom-gateway
extraArgs: []
# -- Environment variables to add to the bloom gateway pods
# -- Environment variables to add to the bloom-gateway pods
extraEnv: []
# -- Environment variables from secrets or configmaps to add to the bloom gateway pods
# -- Environment variables from secrets or configmaps to add to the bloom-gateway pods
extraEnvFrom: []
# -- Volume mounts to add to the bloom gateway pods
# -- Volume mounts to add to the bloom-gateway pods
extraVolumeMounts: []
# -- Volumes to add to the bloom gateway pods
# -- Volumes to add to the bloom-gateway pods
extraVolumes: []
# -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
readinessProbe: {}
# -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
livenessProbe: {}
# -- Resource requests and limits for the bloom gateway
# -- Resource requests and limits for the bloom-gateway
resources: {}
# -- Containers to add to the bloom gateway pods
# -- Containers to add to the bloom-gateway pods
extraContainers: []
# -- Init containers to add to the bloom gateway pods
# -- Init containers to add to the bloom-gateway pods
initContainers: []
# -- Grace period to allow the bloom gateway to shutdown before it is killed
# -- Grace period to allow the bloom-gateway to shutdown before it is killed
terminationGracePeriodSeconds: 30
# -- Node selector for bloom gateway pods
# -- Node selector for bloom-gateway pods
nodeSelector: {}
# -- Tolerations for bloom gateway pods
# -- Tolerations for bloom-gateway pods
tolerations: []
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
appProtocol:
grpc: ""
persistence:
# -- Enable creating PVCs for the bloom gateway
# -- Enable creating PVCs for the bloom-gateway
enabled: false
# -- Size of persistent disk
size: 10Gi
@ -2451,9 +2455,9 @@ bloomGateway:
# If empty or set to null, no storageClassName spec is
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
storageClass: null
# -- Annotations for bloom gateway PVCs
# -- Annotations for bloom-gateway PVCs
annotations: {}
# -- List of the bloom gateway PVCs
# -- List of the bloom-gateway PVCs
# @notationType -- list
claims:
- name: data
@ -2472,19 +2476,19 @@ bloomGateway:
whenScaled: Retain
serviceAccount:
create: false
# -- The name of the ServiceAccount to use for the bloom gateway.
# -- The name of the ServiceAccount to use for the bloom-gateway.
# If not set and create is true, a name is generated by appending
# "-bloom-gateway" to the common ServiceAccount.
name: null
# -- Image pull secrets for the bloom gateway service account
# -- Image pull secrets for the bloom-gateway service account
imagePullSecrets: []
# -- Annotations for the bloom gateway service account
# -- Annotations for the bloom-gateway service account
annotations: {}
# -- Set this toggle to false to opt out of automounting API credentials for the service account
automountServiceAccountToken: true
# -- Configuration for the bloom compactor
bloomCompactor:
# -- Number of replicas for the bloom compactor
# -- Configuration for the bloom-planner
bloomPlanner:
# -- Number of replicas for the bloom-planner
replicas: 0
# -- hostAliases to add
hostAliases: []
@ -2492,62 +2496,62 @@ bloomCompactor:
# hostnames:
# - domain.tld
image:
# -- The Docker registry for the bloom compactor image. Overrides `loki.image.registry`
# -- The Docker registry for the bloom-planner image. Overrides `loki.image.registry`
registry: null
# -- Docker image repository for the bloom compactor image. Overrides `loki.image.repository`
# -- Docker image repository for the bloom-planner image. Overrides `loki.image.repository`
repository: null
# -- Docker image tag for the bloom compactor image. Overrides `loki.image.tag`
# -- Docker image tag for the bloom-planner image. Overrides `loki.image.tag`
tag: null
# -- Command to execute instead of defined in Docker image
command: null
# -- The name of the PriorityClass for bloom compactor pods
# -- The name of the PriorityClass for bloom-planner pods
priorityClassName: null
# -- Labels for bloom compactor pods
# -- Labels for bloom-planner pods
podLabels: {}
# -- Annotations for bloom compactor pods
# -- Annotations for bloom-planner pods
podAnnotations: {}
# -- Affinity for bloom compactor pods.
# -- Affinity for bloom-planner pods.
# @default -- Hard node anti-affinity
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: bloom-compactor
app.kubernetes.io/component: bloom-planner
topologyKey: kubernetes.io/hostname
# -- Labels for bloom compactor service
# -- Labels for bloom-planner service
serviceLabels: {}
# -- Additional CLI args for the bloom compactor
# -- Additional CLI args for the bloom-planner
extraArgs: []
# -- Environment variables to add to the bloom compactor pods
# -- Environment variables to add to the bloom-planner pods
extraEnv: []
# -- Environment variables from secrets or configmaps to add to the bloom compactor pods
# -- Environment variables from secrets or configmaps to add to the bloom-planner pods
extraEnvFrom: []
# -- Volume mounts to add to the bloom compactor pods
# -- Volume mounts to add to the bloom-planner pods
extraVolumeMounts: []
# -- Volumes to add to the bloom compactor pods
# -- Volumes to add to the bloom-planner pods
extraVolumes: []
# -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
readinessProbe: {}
# -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
livenessProbe: {}
# -- Resource requests and limits for the bloom compactor
# -- Resource requests and limits for the bloom-planner
resources: {}
# -- Containers to add to the bloom compactor pods
# -- Containers to add to the bloom-planner pods
extraContainers: []
# -- Init containers to add to the bloom compactor pods
# -- Init containers to add to the bloom-planner pods
initContainers: []
# -- Grace period to allow the bloom compactor to shutdown before it is killed
# -- Grace period to allow the bloom-planner to shutdown before it is killed
terminationGracePeriodSeconds: 30
# -- Node selector for bloom compactor pods
# -- Node selector for bloom-planner pods
nodeSelector: {}
# -- Tolerations for bloom compactor pods
# -- Tolerations for bloom-planner pods
tolerations: []
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
appProtocol:
grpc: ""
persistence:
# -- Enable creating PVCs for the bloom compactor
# -- Enable creating PVCs for the bloom-planner
enabled: false
# -- Size of persistent disk
size: 10Gi
@ -2557,37 +2561,115 @@ bloomCompactor:
# If empty or set to null, no storageClassName spec is
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
storageClass: null
# -- Annotations for bloom compactor PVCs
# -- Annotations for bloom-planner PVCs
annotations: {}
# -- List of the bloom compactor PVCs
# -- List of the bloom-planner PVCs
# @notationType -- list
claims:
- name: data
size: 10Gi
# -- Storage class to be used.
# If defined, storageClassName: <storageClass>.
# If set to "-", storageClassName: "", which disables dynamic provisioning.
# If empty or set to null, no storageClassName spec is
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
storageClass: null
# - name: wal
# size: 150Gi
claims: []
# -- Enable StatefulSetAutoDeletePVC feature
enableStatefulSetAutoDeletePVC: false
whenDeleted: Retain
whenScaled: Retain
serviceAccount:
create: false
# -- The name of the ServiceAccount to use for the bloom compactor.
# -- The name of the ServiceAccount to use for the bloom-planner.
# If not set and create is true, a name is generated by appending
# "-bloom-compactor" to the common ServiceAccount.
# "-bloom-planner" to the common ServiceAccount.
name: null
# -- Image pull secrets for the bloom compactor service account
# -- Image pull secrets for the bloom-planner service account
imagePullSecrets: []
# -- Annotations for the bloom compactor service account
# -- Annotations for the bloom-planner service account
annotations: {}
# -- Set this toggle to false to opt out of automounting API credentials for the service account
automountServiceAccountToken: true
# -- Configuration for the bloom-builder
bloomBuilder:
# -- Number of replicas for the bloom-builder
replicas: 0
# -- hostAliases to add
hostAliases: []
# - ip: 1.2.3.4
# hostnames:
# - domain.tld
autoscaling:
# -- Enable autoscaling for the bloom-builder
enabled: false
# -- Minimum autoscaling replicas for the bloom-builder
minReplicas: 1
# -- Maximum autoscaling replicas for the bloom-builder
maxReplicas: 3
# -- Target CPU utilisation percentage for the bloom-builder
targetCPUUtilizationPercentage: 60
# -- Target memory utilisation percentage for the bloom-builder
targetMemoryUtilizationPercentage: null
# -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
customMetrics: []
# - type: Pods
# pods:
# metric:
# name: loki_query_rate
# target:
# type: AverageValue
# averageValue: 100
behavior:
# -- Enable autoscaling behaviours
enabled: false
# -- define scale down policies, must conform to HPAScalingRules
scaleDown: {}
# -- define scale up policies, must conform to HPAScalingRules
scaleUp: {}
image:
# -- The Docker registry for the bloom-builder image. Overrides `loki.image.registry`
registry: null
# -- Docker image repository for the bloom-builder image. Overrides `loki.image.repository`
repository: null
# -- Docker image tag for the bloom-builder image. Overrides `loki.image.tag`
tag: null
# -- Command to execute instead of defined in Docker image
command: null
# -- The name of the PriorityClass for bloom-builder pods
priorityClassName: null
# -- Labels for bloom-builder pods
podLabels: {}
# -- Annotations for bloom-builder pods
podAnnotations: {}
# -- Labels for bloom-builder service
serviceLabels: {}
# -- Additional CLI args for the bloom-builder
extraArgs: []
# -- Environment variables to add to the bloom-builder pods
extraEnv: []
# -- Environment variables from secrets or configmaps to add to the bloom-builder pods
extraEnvFrom: []
# -- Volume mounts to add to the bloom-builder pods
extraVolumeMounts: []
# -- Volumes to add to the bloom-builder pods
extraVolumes: []
# -- Resource requests and limits for the bloom-builder
resources: {}
# -- Containers to add to the bloom-builder pods
extraContainers: []
# -- Grace period to allow the bloom-builder to shutdown before it is killed
terminationGracePeriodSeconds: 30
# -- Affinity for bloom-builder pods.
# @default -- Hard node anti-affinity
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchLabels:
app.kubernetes.io/component: bloom-builder
topologyKey: kubernetes.io/hostname
# -- Pod Disruption Budget maxUnavailable
maxUnavailable: null
# -- Node selector for bloom-builder pods
nodeSelector: {}
# -- Tolerations for bloom-builder pods
tolerations: []
# -- Adds the appProtocol field to the queryFrontend service. This allows bloomBuilder to work with istio protocol selection.
appProtocol:
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
grpc: ""
# -- Configuration for the pattern ingester
patternIngester:
# -- Number of replicas for the pattern ingester

Loading…
Cancel
Save