DirectorySecurity AdvisoriesPricing
Sign in
Directory
community-loki logoHELM

community-loki

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# $schema: ./values.schema.json
2
3
# -- Overrides the version used to determine compatibility of resources with the target Kubernetes cluster.
4
# This is useful when using `helm template`, because then helm will use the client version of kubectl as the Kubernetes version,
5
# which may or may not match your cluster's server version. Example: 'v1.24.4'. Set to null to use the version that helm
6
# devises.
7
kubeVersionOverride: ""
8
global:
9
# @schema type:[string, null]
10
# -- Overrides the Docker registry globally for all images (standard format).
11
# This has the highest precedence and overrides every component-level image.registry value.
12
imageRegistry: null
13
image:
14
# @schema type:[string, null]
15
# -- Overrides the Docker registry globally for all images (deprecated, use global.imageRegistry).
16
# This has lower precedence than global.imageRegistry, but higher precedence than component-level image.registry values.
17
registry: null
18
# @schema type:[string, null]
19
# -- Overrides the priorityClassName for all pods
20
priorityClassName: null
21
# -- configures cluster domain ("cluster.local" by default)
22
clusterDomain: "cluster.local"
23
# -- configures DNS service name
24
dnsService: "kube-dns"
25
# -- configures DNS service namespace
26
dnsNamespace: "kube-system"
27
# -- Common additional CLI arguments for all jobs (that is, -log.level debug, -config.expand-env=true or -log-config-reverse-order)
28
# (deprecated, use defaults.extraArgs)
29
# scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write.
30
extraArgs: []
31
# -- Common environment variables to add to all pods directly managed by this chart.
32
# (deprecated, use defaults.extraEnv)
33
# scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write.
34
extraEnv: []
35
# -- Common source of environment injections to add to all pods directly managed by this chart.
36
# (deprecated, use defaults.extraEnvFrom)
37
# scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write.
38
# For example to inject values from a Secret, use:
39
# extraEnvFrom:
40
# - secretRef:
41
# name: mysecret
42
extraEnvFrom: []
43
# -- Common volumes to add to all pods directly managed by this chart.
44
# (deprecated, use defaults.extraVolumes)
45
# scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write.
46
extraVolumes: []
47
# -- Common mount points to add to all pods directly managed by this chart.
48
# (deprecated, use defaults.extraVolumeMounts)
49
# scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write.
50
extraVolumeMounts: []
51
# -- Overrides the chart's name
52
nameOverride: ""
53
# -- Overrides the chart's computed fullname
54
fullnameOverride: ""
55
# -- Overrides the chart's namespace
56
namespaceOverride: ""
57
# -- Image pull secrets for Docker images
58
imagePullSecrets: []
59
# -- Deployment mode lets you specify how to deploy Loki.
60
# There are 3 options:
61
# - Monolithic (deprecated: SingleBinary): Loki is deployed as a single binary, useful for small installs typically without HA, up to a few tens of GB/day.
62
# - SimpleScalable (deprecated, removed in Loki 4): Loki is deployed as 3 targets: read, write, and backend. Useful for medium installs easier to manage than distributed, up to a about 1TB/day.
63
# - Distributed: Loki is deployed as individual microservices. The most complicated but most capable, useful for large installs, typically over 1TB/day.
64
# There are also 2 additional modes used for migrating between deployment modes:
65
# - Monolithic<->SimpleScalable (deprecated: SingleBinary<->SimpleScalable): Migrate from SingleBinary to SimpleScalable (or vice versa)
66
# - SimpleScalable<->Distributed: Migrate from SimpleScalable to Distributed (or vice versa)
67
# Note: SimpleScalable and Distributed REQUIRE the use of object storage.
68
# Ref: https://grafana.com/docs/loki/latest/get-started/deployment-modes/
69
deploymentMode: Monolithic
70
# @schema additionalProperties:{"type":"string"}
71
# -- Labels to be added to resources
72
commonLabels: {}
73
######################################################################################################################
74
#
75
# Defaults applied to loki components only. Not applied to loki-canary, memcache, gateway/nginx or other components.
76
#
77
######################################################################################################################
78
defaults:
79
goSettings:
80
# -- Fraction of the container memory limit used to compute GOMEMLIMIT (e.g. 0.85 = 85%).
81
# Set to 0 to disable automatic GOMEMLIMIT injection.
82
goMemLimitFactor: 0.85
83
# -- Value to set for GOGC alongside GOMEMLIMIT. Lowering below the default of 100 reduces
84
# heap growth between GC cycles, working in tandem with GOMEMLIMIT to smooth memory usage.
85
# Set to 0 to disable automatic GOGC injection.
86
gogc: 80
87
# @schema additionalProperties:true
88
# -- DNSConfig for loki pods
89
dnsConfig: {}
90
# -- hostAliases for loki pods
91
hostAliases: []
92
# @schema type:[boolean, null]
93
# - ip: 1.2.3.4
94
# hostnames:
95
# - domain.tld
96
# -- Use the host's user namespace for loki pods
97
hostUsers: null
98
# @schema type:[string, null]
99
# -- The name of the PriorityClass for loki pods
100
priorityClassName: ""
101
# @schema skipProperties:true;additionalProperties:true
102
# -- The SecurityContext for loki pods
103
podSecurityContext: {}
104
# -- Grace period to allow the gateway to shutdown before it is killed
105
terminationGracePeriodSeconds: 30
106
# @schema type:[string, null]
107
# -- Command to execute instead of defined in Docker image
108
command: null
109
# -- Common additional CLI arguments for loki pods
110
extraArgs: []
111
# -- Common environment variables to add to all pods directly managed by this chart.
112
extraEnv: []
113
# -- Common source of environment injections to add to all pods directly managed by this chart.
114
# For example to inject values from a Secret, use:
115
# extraEnvFrom:
116
# - secretRef:
117
# name: mysecret
118
extraEnvFrom: []
119
# -- Common volumes to add to all pods directly managed by this chart.
120
extraVolumes: []
121
# -- Common mount points to add to all pods directly managed by this chart.
122
extraVolumeMounts: []
123
# @schema skipProperties:true;additionalProperties:true
124
# -- The SecurityContext for Loki containers for loki pods
125
containerSecurityContext: {}
126
# @schema skipProperties:true;additionalProperties:true
127
# -- Configures the liveness probe for loki pods
128
livenessProbe: {}
129
# @schema skipProperties:true;additionalProperties:true
130
# -- Configures the readiness probe for loki pods
131
readinessProbe: {}
132
# @schema skipProperties:true;additionalProperties:true
133
# -- Configures the startup probe for loki pods
134
startupProbe: {}
135
# @schema additionalProperties:true
136
# -- Node selector for loki pods
137
nodeSelector: {}
138
# -- Tolerations for loki pods
139
tolerations: []
140
# -- Set this toggle to false to opt out of automounting API credentials for the service account
141
automountServiceAccountToken: true
142
# @schema additionalProperties:{"type":"string"}
143
# -- Annotations for loki Deployments/StatefulSets
144
annotations: {}
145
# @schema additionalProperties:{"type":"string"}
146
# -- Additional labels for loki Deployments/StatefulSets
147
labels: {}
148
# @schema additionalProperties:{"type":"string"}
149
# -- Annotations for loki pods
150
podAnnotations: {}
151
# @schema additionalProperties:{"type":"string"}
152
# -- Additional labels for loki pod
153
podLabels: {}
154
# -- Should enableServiceLinks be enabled. Default to enable
155
enableServiceLinks: true
156
service:
157
# @schema additionalProperties:{"type":"string"}
158
# -- Common annotations for all non-headless services
159
annotations: {}
160
# @schema additionalProperties:{"type":"string"}
161
# -- Common labels for all non-headless services
162
labels: {}
163
# -- trafficDistribution for services
164
# Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
165
trafficDistribution: ""
166
# -- ipFamilyPolicy for all services
167
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
168
ipFamilyPolicy: ""
169
# -- ipFamilies for all services
170
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
171
ipFamilies: []
172
# -- publishNotReadyAddresses for all services. Set to false so a pod's Service endpoint is
173
# withdrawn as soon as it becomes unready, instead of staying routable for the full termination
174
# window. Overridable per component via <component>.service.publishNotReadyAddresses.
175
publishNotReadyAddresses: true
176
headlessService:
177
# @schema additionalProperties:{"type":"string"}
178
# -- Common annotations for all headless services
179
annotations: {}
180
# @schema additionalProperties:{"type":"string"}
181
# -- Common labels for all headless services
182
labels: {}
183
# -- KEDA autoscaling shared configuration for all components that support KEDA
184
kedaAutoscaling:
185
# -- Prometheus server address for KEDA triggers
186
prometheusAddress: ""
187
# -- Whether to skip SSL verification when connecting to Prometheus
188
unsafeSsl: false
189
# -- Whether to ignore null values from Prometheus queries
190
ignoreNullValues: true
191
# -- Custom HTTP headers to include in Prometheus requests. Useful for multi-tenant setups (e.g. "X-Scope-OrgID=tenant1")
192
customHeaders: ""
193
# -- Interval (seconds) to poll each trigger. Overridable per component.
194
pollingInterval: 30
195
# -- Period (seconds) to wait after the last trigger reported active before scaling back to 0. Overridable per component.
196
cooldownPeriod: 300
197
# -- KEDA trigger authentication settings. Ref: https://keda.sh/docs/latest/concepts/authentication/
198
authentication:
199
# -- Enable TriggerAuthentication for KEDA triggers
200
enabled: false
201
# -- Authentication modes for the trigger (e.g. "bearer", "basic")
202
authModes: ""
203
# -- Secret key references for TriggerAuthentication
204
secretTargetRef: []
205
statefulSetRecreateJob:
206
# -- When a component sets `*.statefulSetRecreateJob.enabled`, the pre-upgrade Job can patch PVC storage requests and recreate the StatefulSet for podManagementPolicy, serviceName, or volumeClaimTemplates count/name/size changes. It does not migrate storageClass, accessModes, selectors, or VCT labels. See the chart README section StatefulSet immutability.
207
patchPVC: true
208
image:
209
registry: cgr.dev
210
repository: chainguard-private/kubectl
211
# -- Overrides the image tag. Defaults to .Capabilities.KubeVersion.Version
212
tag: 1.36.5-r4@sha256:53d07ca0a9898bfd22a2628a32313cb92383a512096377d1bcdb4da6415c52cd
213
######################################################################################################################
214
#
215
# Base Loki Configs including kubernetes configurations and configurations for Loki itself,
216
# see below for more specifics on Loki's configuration.
217
#
218
######################################################################################################################
219
# -- Configuration for running Loki
220
# @default -- See values.yaml
221
loki:
222
# @schema skipProperties:true;additionalProperties:true
223
# Configures the liveness probe for all of the Loki pods
224
livenessProbe:
225
httpGet:
226
path: /loki/api/v1/status/buildinfo
227
port: http-metrics
228
periodSeconds: 30
229
successThreshold: 1
230
failureThreshold: 10
231
timeoutSeconds: 1
232
# @schema skipProperties:true;additionalProperties:true
233
# Configures the readiness probe for all of the Loki pods
234
readinessProbe:
235
httpGet:
236
path: /ready
237
port: http-metrics
238
periodSeconds: 10
239
initialDelaySeconds: 15
240
successThreshold: 1
241
failureThreshold: 3
242
timeoutSeconds: 1
243
# @schema skipProperties:true;additionalProperties:true
244
# Configures the startup probe for all of the Loki pods
245
startupProbe: {}
246
image:
247
# -- The Docker registry
248
registry: cgr.dev
249
# -- Docker image repository
250
repository: chainguard-private/loki
251
# @schema type:[string, null]
252
# -- Overrides the image tag whose default is the chart's appVersion
253
tag: 3.7.9-r0
254
# @schema type:[string, null]
255
# -- Overrides the image tag with an image digest
256
digest: sha256:7f1d82be2eb068d9929d9d14d4eb16f1137f1cb0de5a5239e199e0813e256e35
257
# -- Docker image pull policy
258
pullPolicy: IfNotPresent
259
# @schema additionalProperties:{"type":"string"}
260
# -- Common annotations for all deployments/StatefulSets
261
annotations: {}
262
# @schema additionalProperties:{"type":"string"}
263
# -- Common annotations for all pods
264
podAnnotations: {}
265
# @schema additionalProperties:{"type":"string"}
266
# -- Common labels for all pods
267
podLabels: {}
268
# @schema additionalProperties:{"type":"string"}
269
# -- Common annotations for all non-headless services
270
serviceAnnotations: {}
271
# @schema additionalProperties:{"type":"string"}
272
# -- Common labels for all non-headless services
273
serviceLabels: {}
274
# -- The number of old ReplicaSets to retain to allow rollback
275
revisionHistoryLimit: 10
276
# @schema skipProperties:true;additionalProperties:true
277
# -- The SecurityContext for Loki pods
278
podSecurityContext:
279
fsGroup: 10001
280
fsGroupChangePolicy: OnRootMismatch
281
runAsGroup: 10001
282
runAsNonRoot: true
283
runAsUser: 10001
284
seccompProfile:
285
type: RuntimeDefault
286
# @schema skipProperties:true;additionalProperties:true
287
# -- The SecurityContext for Loki containers
288
containerSecurityContext:
289
readOnlyRootFilesystem: true
290
capabilities:
291
drop:
292
- ALL
293
allowPrivilegeEscalation: false
294
seccompProfile:
295
type: RuntimeDefault
296
# -- Should enableServiceLinks be enabled. Default to enable
297
enableServiceLinks: true
298
# @schema additionalProperties:true
299
# -- DNS config for Loki pods
300
dnsConfig: {}
301
######################################################################################################################
302
#
303
# Loki Configuration
304
#
305
# There are several ways to pass configuration to Loki, listing them here in order of our preference for how
306
# you should use this chart.
307
# 1. Use the templated value of loki.config below and the corresponding override sections which follow.
308
# This allows us to set a lot of important Loki configurations and defaults and also allows us to maintain them
309
# over time as Loki changes and evolves.
310
# 2. Use the loki.structuredConfig section.
311
# This will completely override the templated value of loki.config, so you MUST provide the entire Loki config
312
# including any configuration that we set in loki.config unless you explicitly are trying to change one of those
313
# values and are not able to do so with the templated sections.
314
# If you choose this approach the burden is on you to maintain any changes we make to the templated config.
315
# 3. Use an existing secret or configmap to provide the configuration.
316
# This option is mostly provided for folks who have external processes which provide or modify the configuration.
317
# When using this option you can specify a different name for loki.generatedConfigObjectName and configObjectName
318
# if you have a process which takes the generated config and modifies it, or you can stop the chart from generating
319
# a config entirely by setting loki.generatedConfigObjectName to
320
#
321
######################################################################################################################
322
323
# -- Defines what kind of object stores the configuration, a ConfigMap or a Secret.
324
# In order to move sensitive information (such as credentials) from the ConfigMap/Secret to a more secure location (e.g. vault), it is possible to use [environment variables in the configuration](https://grafana.com/docs/loki/latest/configuration/#use-environment-variables-in-the-configuration).
325
# Such environment variables can be then stored in a separate Secret and injected via the global.extraEnvFrom value. For details about environment injection from a Secret please see [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables).
326
configStorageType: ConfigMap
327
# -- The name of the object which Loki will mount as a volume containing the config.
328
# If the configStorageType is Secret, this will be the name of the Secret, if it is ConfigMap, this will be the name of the ConfigMap.
329
# The value will be passed through tpl.
330
configObjectName: '{{ include "loki.name" . }}'
331
# -- The name of the Secret or ConfigMap that will be created by this chart.
332
# If empty, no configmap or secret will be created.
333
# The value will be passed through tpl.
334
generatedConfigObjectName: '{{ include "loki.name" . }}'
335
# -- Config file contents for Loki
336
# @default -- See values.yaml
337
config: |
338
auth_enabled: {{ .Values.loki.auth_enabled }}
339
340
{{- with .Values.loki.server }}
341
server:
342
{{- toYaml . | nindent 2}}
343
{{- end}}
344
345
{{- with .Values.loki.pattern_ingester }}
346
pattern_ingester:
347
{{- tpl (. | toYaml) $ | nindent 4 }}
348
{{- end }}
349
350
memberlist:
351
{{- if .Values.loki.memberlistConfig }}
352
{{- toYaml .Values.loki.memberlistConfig | nindent 2 }}
353
{{- else }}
354
{{- if .Values.loki.extraMemberlistConfig}}
355
{{- toYaml .Values.loki.extraMemberlistConfig | nindent 2}}
356
{{- end }}
357
join_members:
358
- {{ include "loki.memberlist" . }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
359
{{- with .Values.migrate.fromDistributed }}
360
{{- if .enabled }}
361
- {{ .memberlistService }}
362
{{- end }}
363
{{- end }}
364
{{- end }}
365
366
{{- with .Values.loki.ingester }}
367
ingester:
368
{{- tpl (. | toYaml) $ | nindent 4 }}
369
{{- end }}
370
371
{{- with .Values.loki.ingester_client }}
372
ingester_client:
373
{{- tpl (. | toYaml) $ | nindent 4 }}
374
{{- end }}
375
376
{{- with .Values.loki.block_builder }}
377
block_builder:
378
{{- tpl (. | toYaml) $ | nindent 4 }}
379
{{- end }}
380
381
{{- if .Values.loki.commonConfig}}
382
common:
383
{{- toYaml .Values.loki.commonConfig | nindent 2}}
384
storage:
385
{{- include "loki.commonStorageConfig" . | nindent 4}}
386
{{- end}}
387
388
{{- with .Values.loki.limits_config }}
389
limits_config:
390
{{- tpl (. | toYaml) $ | nindent 4 }}
391
{{- end }}
392
393
runtime_config:
394
file: /etc/loki/runtime-config/runtime-config.yaml
395
396
{{- if .Values.chunksCache.enabled }}
397
{{- with .Values.chunksCache }}
398
chunk_store_config:
399
chunk_cache_config:
400
default_validity: {{ .defaultValidity }}
401
background:
402
writeback_goroutines: {{ .writebackParallelism }}
403
writeback_buffer: {{ .writebackBuffer }}
404
writeback_size_limit: {{ .writebackSizeLimit }}
405
memcached:
406
batch_size: {{ .batchSize }}
407
parallelism: {{ .parallelism }}
408
memcached_client:
409
addresses: {{ .addresses }}
410
consistent_hash: true
411
timeout: {{ .timeout }}
412
max_idle_conns: 72
413
{{- end }}
414
{{- with .Values.chunksCache.l2 }}
415
{{- if .enabled }}
416
l2_chunk_cache_handoff: {{ .l2ChunkCacheHandoff }}
417
chunk_cache_config_l2:
418
default_validity: {{ .defaultValidity }}
419
background:
420
writeback_goroutines: {{ .writebackParallelism }}
421
writeback_buffer: {{ .writebackBuffer }}
422
writeback_size_limit: {{ .writebackSizeLimit }}
423
memcached:
424
batch_size: {{ .batchSize }}
425
parallelism: {{ .parallelism }}
426
memcached_client:
427
addresses: {{ .addresses }}
428
consistent_hash: true
429
timeout: {{ .timeout }}
430
max_idle_conns: 72
431
{{- end }}
432
{{- end }}
433
{{- end }}
434
435
{{- if .Values.loki.schemaConfig }}
436
schema_config:
437
{{- toYaml .Values.loki.schemaConfig | nindent 2}}
438
{{- end }}
439
440
{{- if .Values.loki.useTestSchema }}
441
schema_config:
442
{{- toYaml .Values.loki.testSchemaConfig | nindent 2}}
443
{{- end }}
444
445
{{- if .Values.ruler.enabled }}
446
{{ include "loki.rulerConfig" . }}
447
{{- end }}
448
449
{{- if and .Values.loki.storage.use_thanos_objstore .Values.ruler.enabled}}
450
ruler_storage:
451
{{- include "loki.rulerThanosStorageConfig" . | nindent 2 }}
452
{{- end }}
453
454
{{- if or .Values.tableManager.retention_deletes_enabled .Values.tableManager.retention_period }}
455
table_manager:
456
retention_deletes_enabled: {{ .Values.tableManager.retention_deletes_enabled }}
457
retention_period: {{ .Values.tableManager.retention_period }}
458
{{- end }}
459
460
query_range:
461
align_queries_with_step: true
462
{{- with .Values.loki.query_range }}
463
{{- tpl (. | toYaml) $ | nindent 2 }}
464
{{- end }}
465
{{- if .Values.resultsCache.enabled }}
466
{{- with .Values.resultsCache }}
467
cache_results: true
468
results_cache:
469
cache:
470
default_validity: {{ .defaultValidity }}
471
background:
472
writeback_goroutines: {{ .writebackParallelism }}
473
writeback_buffer: {{ .writebackBuffer }}
474
writeback_size_limit: {{ .writebackSizeLimit }}
475
memcached_client:
476
addresses: {{ .addresses }}
477
consistent_hash: true
478
timeout: {{ .timeout }}
479
update_interval: 1m
480
{{- end }}
481
{{- end }}
482
483
{{- with .Values.loki.storage_config }}
484
storage_config:
485
{{- if not (hasKey $.Values.loki.storage_config "use_thanos_objstore") }}
486
use_thanos_objstore: {{ $.Values.loki.storage.use_thanos_objstore }}
487
{{- end }}
488
{{- tpl (. | toYaml) $ | nindent 4 }}
489
{{- end }}
490
491
{{- with .Values.loki.query_scheduler }}
492
query_scheduler:
493
{{- tpl (. | toYaml) $ | nindent 4 }}
494
{{- end }}
495
496
{{- with .Values.loki.compactor }}
497
compactor:
498
{{- tpl (. | toYaml) $ | nindent 4 }}
499
{{- end }}
500
501
{{- with .Values.loki.compactor_grpc_client }}
502
compactor_grpc_client:
503
{{- tpl (. | toYaml) $ | nindent 4 }}
504
{{- end }}
505
506
{{- with .Values.loki.analytics }}
507
analytics:
508
{{- tpl (. | toYaml) $ | nindent 4 }}
509
{{- end }}
510
511
{{- if .Values.loki.ui.enabled }}
512
ui:
513
enabled: true
514
{{- end }}
515
{{- with .Values.loki.querier }}
516
querier:
517
{{- tpl (. | toYaml) $ | nindent 4 }}
518
{{- end }}
519
520
{{- with .Values.loki.index_gateway }}
521
index_gateway:
522
{{- tpl (. | toYaml) $ | nindent 4 }}
523
{{- end }}
524
525
{{- with .Values.loki.frontend }}
526
frontend:
527
{{- tpl (. | toYaml) $ | nindent 4 }}
528
{{- end }}
529
530
{{- with .Values.loki.frontend_worker }}
531
frontend_worker:
532
{{- tpl (. | toYaml) $ | nindent 4 }}
533
{{- end }}
534
535
{{- with .Values.loki.distributor }}
536
distributor:
537
{{- tpl (. | toYaml) $ | nindent 4 }}
538
{{- end }}
539
540
tracing:
541
enabled: {{ .Values.loki.tracing.enabled }}
542
543
{{- with .Values.loki.bloom_build }}
544
bloom_build:
545
{{- tpl (. | toYaml) $ | nindent 4 }}
546
{{- end }}
547
548
{{- with .Values.loki.bloom_gateway }}
549
bloom_gateway:
550
{{- tpl (. | toYaml) $ | nindent 4 }}
551
{{- end }}
552
553
{{- with .Values.loki.operational_config }}
554
operational_config:
555
{{- tpl (. | toYaml) $ | nindent 4 }}
556
{{- end }}
557
# Should authentication be enabled
558
auth_enabled: true
559
# @schema skipProperties:true;additionalProperties:true
560
# -- memberlist configuration (overrides embedded default)
561
memberlistConfig: {}
562
# @schema skipProperties:true;additionalProperties:true
563
# -- Extra memberlist configuration
564
extraMemberlistConfig:
565
abort_if_cluster_join_fails: true
566
advertise_port: 7946
567
bind_port: 7946
568
max_join_backoff: 1m
569
max_join_retries: 10
570
min_join_backoff: 1s
571
rejoin_interval: 90s
572
# -- Tenants list to be created on nginx htpasswd file, with name and password or passwordHash keys<br><br>
573
# Example:
574
# <pre>
575
# tenants:<br>
576
# - name: "test-user-1"<br>
577
# password: "test-password-1"<br>
578
# - name: "test-user-2"<br>
579
# passwordHash: "$2y$10$7O40CaY1yz7fu9O24k2/u.ct/wELYHRBsn25v/7AyuQ8E8hrLqpva" # generated using `htpasswd -nbBC10 test-user-2 test-password-2`
580
# </pre>
581
tenants: []
582
# @schema skipProperties:true;additionalProperties:true
583
# -- Check https://grafana.com/docs/loki/latest/configuration/#server for more info on the server configuration.
584
server:
585
graceful_shutdown_timeout: 5s
586
grpc_listen_port: 9095
587
grpc_server_min_time_between_pings: '10s'
588
grpc_server_ping_without_stream_allowed: true
589
grpc_server_max_concurrent_streams: 1000
590
grpc_server_max_recv_msg_size: 104857600
591
grpc_server_max_send_msg_size: 104857600
592
http_listen_port: 3100
593
http_server_idle_timeout: 30s
594
http_server_read_timeout: 10m0s
595
http_server_write_timeout: 10m0s
596
log_level: info
597
service:
598
# -- trafficDistribution for services
599
# Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
600
trafficDistribution: ""
601
# -- ipFamilyPolicy for all services
602
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
603
ipFamilyPolicy: ""
604
# -- ipFamilies for all services
605
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
606
ipFamilies: []
607
headlessService:
608
# @schema additionalProperties:{"type":"string"}
609
# -- Additional annotations for headless Loki services
610
annotations: {}
611
# @schema skipProperties:true;additionalProperties:true
612
# -- Limits config
613
limits_config:
614
reject_old_samples: true
615
reject_old_samples_max_age: 168h
616
max_cache_freshness_per_query: 10m
617
split_queries_by_interval: 15m
618
query_timeout: 300s
619
volume_enabled: true
620
# -- Provides a reloadable runtime configuration file for some specific configuration
621
runtimeConfig: {}
622
# @schema skipProperties:true;additionalProperties:true
623
# -- Check https://grafana.com/docs/loki/latest/configuration/#common_config for more info on how to provide a common configuration
624
commonConfig:
625
path_prefix: /var/loki
626
replication_factor: 3
627
# -- The gRPC address of the compactor. The use of compactor_grpc_address is preferred over compactor_address.
628
# If a customized compactor_address is set, compactor_grpc_address should be set to an empty string.
629
compactor_grpc_address: '{{ include "loki.compactorAddress" . }}'
630
# @schema skipProperties:true;additionalProperties:true
631
# -- Storage config. Providing this will automatically populate all necessary storage configs in the templated config.
632
# -- In case of using thanos storage, enable use_thanos_objstore and the configuration should be done inside the object_store section.
633
storage:
634
# Loki requires a bucket for chunks and the ruler.
635
# Please provide these values if you are using object storage.
636
# bucketNames:
637
# chunks: FIXME
638
# ruler: FIXME
639
type: s3
640
s3:
641
# @schema type:[string, null]
642
s3: null
643
# @schema type:[string, null]
644
endpoint: null
645
# @schema type:[string, null]
646
region: null
647
# @schema type:[string, null]
648
secretAccessKey: null
649
# @schema type:[string, null]
650
accessKeyId: null
651
# @schema type:[string, null]
652
signatureVersion: null
653
s3ForcePathStyle: false
654
insecure: false
655
http_config: {}
656
# -- Check https://grafana.com/docs/loki/latest/configure/#s3_storage_config for more info on how to provide a backoff_config
657
backoff_config: {}
658
disable_dualstack: false
659
gcs:
660
chunkBufferSize: 0
661
requestTimeout: "0s"
662
enableHttp2: true
663
azure:
664
# @schema type:[string, null]
665
accountName: null
666
# @schema type:[string, null]
667
accountKey: null
668
# @schema type:[string, null]
669
connectionString: null
670
useManagedIdentity: false
671
useFederatedToken: false
672
# @schema type:[string, null]
673
userAssignedId: null
674
# @schema type:[string, null]
675
requestTimeout: null
676
# @schema type:[string, null]
677
endpointSuffix: null
678
# @schema type:[string, null]
679
chunkDelimiter: null
680
swift:
681
# @schema type:[string, null]
682
auth_version: null
683
# @schema type:[string, null]
684
auth_url: null
685
# @schema type:[string, null]
686
internal: null
687
# @schema type:[string, null]
688
username: null
689
# @schema type:[string, null]
690
user_domain_name: null
691
# @schema type:[string, null]
692
user_domain_id: null
693
# @schema type:[string, null]
694
user_id: null
695
# @schema type:[string, null]
696
password: null
697
# @schema type:[string, null]
698
domain_id: null
699
# @schema type:[string, null]
700
domain_name: null
701
# @schema type:[string, null]
702
project_id: null
703
# @schema type:[string, null]
704
project_name: null
705
# @schema type:[string, null]
706
project_domain_id: null
707
# @schema type:[string, null]
708
project_domain_name: null
709
# @schema type:[string, null]
710
region_name: null
711
# @schema type:[string, null]
712
container_name: null
713
# @schema type:[string, null]
714
max_retries: null
715
# @schema type:[string, null]
716
connect_timeout: null
717
# @schema type:[string, null]
718
request_timeout: null
719
filesystem:
720
chunks_directory: /var/loki/chunks
721
rules_directory: /var/loki/rules
722
# Loki now supports using thanos storage clients for connecting to object storage backend.
723
# This will become the default way to configure storage in a future releases.
724
use_thanos_objstore: false
725
# @schema skipProperties:true;additionalProperties:true
726
object_store:
727
# Type of object store. Valid options are: s3, gcs, azure
728
type: s3
729
# @schema type:[string, null]
730
# Optional prefix for storage keys
731
storage_prefix: null
732
# S3 configuration (when type is "s3")
733
s3:
734
# @schema type:[string, null]
735
# S3 endpoint URL
736
endpoint: null
737
# @schema type:[string, null]
738
# Optional region
739
region: null
740
# @schema type:[string, null]
741
# Optional access key
742
access_key_id: null
743
# @schema type:[string, null]
744
# Optional secret key
745
secret_access_key: null
746
# Optional. Enable if using self-signed TLS
747
insecure: false
748
# Optional server-side encryption configuration
749
sse: {}
750
# Optional HTTP client configuration
751
http: {}
752
# GCS configuration (when type is "gcs")
753
gcs:
754
# @schema type:[string, null]
755
# Name of the bucket
756
bucket_name: null
757
# @schema type:[string, null]
758
# Optional service account JSON
759
service_account: null
760
# Azure configuration (when type is "azure")
761
azure:
762
# @schema type:[string, null]
763
# Storage account name
764
account_name: null
765
# @schema type:[string, null]
766
# Optional storage account key
767
account_key: null
768
# -- Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas
769
schemaConfig: {}
770
# -- a real Loki install requires a proper schemaConfig defined above this, however for testing or playing around
771
# you can enable useTestSchema
772
useTestSchema: false
773
# @schema skipProperties:true;additionalProperties:true
774
testSchemaConfig:
775
configs:
776
- from: 2024-04-01
777
store: tsdb
778
object_store: '{{ include "loki.testSchemaObjectStore" . }}'
779
schema: v13
780
index:
781
prefix: index_
782
period: 24h
783
# @schema skipProperties:true;additionalProperties:true
784
## A separate loki ruler storage configuration can be provided via rulerStorage.storage section:
785
## rulerConfig:
786
## storage:
787
## type: local
788
# -- Check https://grafana.com/docs/loki/latest/configuration/#ruler for more info on configuring ruler
789
rulerConfig:
790
wal:
791
dir: /var/loki/ruler-wal
792
# -- Storage for the ruler. If defining rules in `ruler.directories`, this must be configured to use local storage as shown below.
793
# storage:
794
# type: local
795
# local:
796
# directory: /etc/loki/rules
797
# @schema skipProperties:true;additionalProperties:true
798
# -- Structured loki configuration, takes precedence over `loki.config`, `loki.schemaConfig`, `loki.storageConfig`
799
structuredConfig: {}
800
# @schema skipProperties:true;additionalProperties:true
801
# -- Additional query scheduler config
802
query_scheduler: {}
803
# @schema skipProperties:true;additionalProperties:true
804
# -- Additional storage config
805
storage_config:
806
boltdb_shipper:
807
index_gateway_client:
808
server_address: '{{ include "loki.indexGatewayAddress" . }}'
809
tsdb_shipper:
810
index_gateway_client:
811
server_address: '{{ include "loki.indexGatewayAddress" . }}'
812
bloom_shipper:
813
working_directory: /var/loki/data/bloomshipper
814
hedging:
815
at: "250ms"
816
max_per_second: 20
817
up_to: 3
818
# @schema skipProperties:true;additionalProperties:true
819
# -- Optional compactor configuration
820
compactor: {}
821
# @schema skipProperties:true;additionalProperties:true
822
# -- Optional compactor grpc client configuration
823
compactor_grpc_client: {}
824
# @schema skipProperties:true;additionalProperties:true
825
# -- Optional pattern ingester configuration
826
pattern_ingester:
827
enabled: false
828
# @schema skipProperties:true;additionalProperties:true
829
# -- Optional analytics configuration
830
analytics: {}
831
# @schema skipProperties:true;additionalProperties:true
832
# -- Optional Loki UI: Provides access to a operators UI for Loki distributed. When enabled UI will be available at /ui/ of loki-gateway
833
ui:
834
# Disabled by default for backwards compatibility. Enable to use the Loki UI.
835
enabled: false
836
gateway:
837
# enable gateway proxying to UI under /ui
838
enabled: true
839
# @schema skipProperties:true;additionalProperties:true
840
# -- Optional querier configuration
841
query_range: {}
842
# @schema skipProperties:true;additionalProperties:true
843
# -- Optional querier configuration
844
querier: {}
845
# @schema skipProperties:true;additionalProperties:true
846
# -- Optional ingester configuration
847
ingester:
848
wal:
849
flush_on_shutdown: true
850
# @schema skipProperties:true;additionalProperties:true
851
# -- Optional ingester client configuration
852
ingester_client: {}
853
# @schema skipProperties:true;additionalProperties:true
854
# -- Optional block builder configuration
855
block_builder: {}
856
# @schema skipProperties:true;additionalProperties:true
857
# -- Optional index gateway configuration
858
index_gateway:
859
mode: simple
860
# @schema skipProperties:true;additionalProperties:true
861
frontend:
862
scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
863
tail_proxy_url: '{{ include "loki.querierAddress" . }}'
864
# @schema skipProperties:true;additionalProperties:true
865
frontend_worker:
866
scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
867
# @schema skipProperties:true;additionalProperties:true
868
# -- Optional distributor configuration
869
distributor: {}
870
# @schema skipProperties:true;additionalProperties:true
871
# -- Enable tracing
872
tracing:
873
enabled: false
874
# @schema skipProperties:true;additionalProperties:true
875
bloom_build:
876
enabled: false
877
builder:
878
planner_address: '{{ include "loki.bloomPlannerAddress" . }}'
879
# @schema skipProperties:true;additionalProperties:true
880
bloom_gateway:
881
enabled: false
882
client:
883
addresses: '{{ include "loki.bloomGatewayAddresses" . }}'
884
# @schema skipProperties:true;additionalProperties:true
885
# -- Optional operational configuration
886
operational_config: {}
887
######################################################################################################################
888
#
889
# Chart Testing
890
#
891
######################################################################################################################
892
893
# -- Section for configuring optional Helm test
894
test:
895
enabled: true
896
# -- Used to directly query the metrics endpoint of the canary for testing, this approach avoids needing prometheus for testing.
897
# This in a newer approach to using prometheusAddress such that tests do not have a dependency on prometheus
898
canaryServiceAddress: 'http://{{ include "loki.resourceName" (dict "ctx" $ "component" "canary") }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}:3500/metrics'
899
# -- Address of the prometheus server to query for the test. This overrides any value set for canaryServiceAddress.
900
# This is kept for backward compatibility and may be removed in future releases. Previous value was 'http://prometheus:9090'
901
prometheusAddress: ""
902
# -- Number of times to retry the test before failing
903
timeout: 1m
904
# @schema additionalProperties:{"type":"string"}
905
# -- Additional labels for the test pods
906
labels: {}
907
# @schema additionalProperties:{"type":"string"}
908
# -- Additional annotations for test pods
909
annotations: {}
910
# -- Image to use for loki canary
911
image:
912
# -- The Docker registry
913
registry: docker.io
914
# -- Docker image repository
915
repository: grafana/loki-helm-test
916
# -- Overrides the image tag whose default is the chart's appVersion
917
tag: "latest"
918
# @schema type:[string, null]
919
# -- Overrides the image tag with an image digest
920
digest: null
921
# -- Docker image pull policy
922
pullPolicy: IfNotPresent
923
# @schema type:[boolean, null]
924
# -- Use the host's user namespace in test pods
925
hostUsers: null
926
# The Loki canary pushes logs to and queries from this loki installation to test
927
# that it's working correctly
928
lokiCanary:
929
enabled: true
930
# -- The type of the loki canary k8s rollout. This can be a DaemonSet or Deployment.
931
kind: DaemonSet
932
# -- If true, the canary will send directly to Loki via the address configured for verification --
933
# -- If false, it will write to stdout and an Agent will be needed to scrape and send the logs --
934
push: true
935
# @schema type:[string, null]
936
# -- If set overwrites the default value set by loki.host helper function. Use this if gateway not enabled.
937
lokiurl: null
938
# -- The name of the label to look for at loki when doing the checks.
939
labelname: pod
940
# @schema additionalProperties:{"type":"string"}
941
# -- Additional annotations for the `loki-canary` Daemonset
942
annotations: {}
943
# @schema additionalProperties:{"type":"string"}
944
# -- Additional labels for the `loki-canary` Daemonset
945
labels: {}
946
# @schema additionalProperties:{"type":"string"}
947
# -- Additional annotations for each `loki-canary` pod
948
podAnnotations: {}
949
# @schema additionalProperties:{"type":"string"}
950
# -- Additional labels for each `loki-canary` pod
951
podLabels: {}
952
# -- The number of old ReplicaSets to retain to allow rollback
953
revisionHistoryLimit: 10
954
service:
955
# @schema additionalProperties:{"type":"string"}
956
# -- Annotations for loki-canary Service
957
annotations: {}
958
# @schema additionalProperties:{"type":"string"}
959
# -- Additional labels for loki-canary Service
960
labels: {}
961
# -- Additional CLI arguments for the 'loki-canary' command
962
extraArgs: []
963
# -- Environment variables to add to the canary pods
964
extraEnv: []
965
# -- Environment variables from secrets or configmaps to add to the canary pods
966
extraEnvFrom: []
967
# -- Volume mounts to add to the canary pods
968
extraVolumeMounts: []
969
# -- Volumes to add to the canary pods
970
extraVolumes: []
971
# @schema additionalProperties:true
972
# -- Resource requests and limits for the canary
973
resources: {}
974
# -- Container resize policy for the canary
975
# Example:
976
# resizePolicy:
977
# - resourceName: cpu
978
# restartPolicy: NotRequired
979
# - resourceName: memory
980
# restartPolicy: RestartContainer
981
resizePolicy: []
982
# @schema additionalProperties:true
983
# -- DNS config for canary pods
984
dnsConfig: {}
985
# @schema additionalProperties:true
986
# -- Node selector for canary pods
987
nodeSelector: {}
988
# -- Tolerations for canary pods
989
tolerations: []
990
# @schema type:[object, null];skipProperties:true;additionalProperties:true
991
# -- Affinity for canary pods
992
affinity: {}
993
# -- Set this toggle to false to opt out of automounting API credentials for the service account
994
automountServiceAccountToken: false
995
# @schema type:[string, null]
996
# -- The name of the PriorityClass for loki-canary pods
997
priorityClassName: null
998
# @schema type:[boolean, null]
999
# -- Use the host's user namespace in loki-canary pods
1000
hostUsers: null
1001
podDisruptionBudget:
1002
# -- Enable Pod Disruption Budget
1003
enabled: true
1004
# @schema additionalProperties:{"type":"string"}
1005
# -- Annotations for Pod Disruption Budget
1006
annotations: {}
1007
# @schema additionalProperties:{"type":"string"}
1008
# -- Labels for Pod Disruption Budget
1009
labels: {}
1010
# @schema type:[string, integer, null]
1011
# -- Pod Disruption Budget minAvailable
1012
minAvailable: null
1013
# @schema type:[string, integer, null]
1014
# -- Pod Disruption Budget maxUnavailable
1015
maxUnavailable: null
1016
# @schema type:[string, null]
1017
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
1018
unhealthyPodEvictionPolicy: null
1019
# @schema skipProperties:true;additionalProperties:true
1020
# -- The SecurityContext for loki-canary pods
1021
podSecurityContext:
1022
fsGroup: 10001
1023
fsGroupChangePolicy: OnRootMismatch
1024
runAsGroup: 10001
1025
runAsNonRoot: true
1026
runAsUser: 10001
1027
seccompProfile:
1028
type: RuntimeDefault
1029
# @schema skipProperties:true;additionalProperties:true
1030
# -- The SecurityContext for loki-canary containers
1031
containerSecurityContext:
1032
readOnlyRootFilesystem: true
1033
capabilities:
1034
drop:
1035
- ALL
1036
allowPrivilegeEscalation: false
1037
seccompProfile:
1038
type: RuntimeDefault
1039
# -- Image to use for loki canary
1040
image:
1041
# -- The Docker registry
1042
registry: cgr.dev
1043
# -- Docker image repository
1044
repository: chainguard-private/loki-canary
1045
# @schema type:[string, null]
1046
# -- Overrides the image tag whose default is the chart's appVersion
1047
tag: 3.7.9-r0
1048
# @schema type:[string, null]
1049
# -- Overrides the image tag with an image digest
1050
digest: sha256:603cbef54cb399cb7a9ccd106fff4c31251a3b27a96821b0e15b9f48a39b29b1
1051
# -- Docker image pull policy
1052
pullPolicy: IfNotPresent
1053
# @schema skipProperties:true;additionalProperties:true
1054
# -- Liveness probe
1055
livenessProbe:
1056
httpGet:
1057
path: /metrics
1058
port: http-metrics
1059
initialDelaySeconds: 15
1060
timeoutSeconds: 1
1061
# @schema skipProperties:true;additionalProperties:true
1062
# -- Readiness probe
1063
readinessProbe:
1064
httpGet:
1065
path: /metrics
1066
port: http-metrics
1067
initialDelaySeconds: 15
1068
timeoutSeconds: 1
1069
# @schema skipProperties:true;additionalProperties:true
1070
# -- Startup probe
1071
startupProbe: {}
1072
# @schema skipProperties:true;additionalProperties:true
1073
# -- Update strategy for the `loki-canary` Daemonset pods
1074
updateStrategy:
1075
type: RollingUpdate
1076
rollingUpdate:
1077
# @schema type:[string, integer, null]
1078
# -- Pod Disruption Budget maxUnavailable
1079
maxUnavailable: 1
1080
# -- Replicas for `loki-canary` when using a Deployment
1081
replicas: 1
1082
# -- Tenant to use for loki-canary
1083
tenant:
1084
# -- Name of the tenant for loki-canary
1085
name: "self-monitoring"
1086
# @schema type:[string, null]
1087
# -- Password of the gateway for Basic auth for loki-canary
1088
password: null
1089
serviceAccount:
1090
# -- Specifies whether a ServiceAccount should be created
1091
create: true
1092
# @schema type:[string, null]
1093
# -- The name of the ServiceAccount to use.
1094
# If not set and create is true, a name is generated using the fullname template
1095
name: null
1096
# @schema item:object;itemProperties:{"name": {"type": "string"}}
1097
# -- Image pull secrets for the service account
1098
imagePullSecrets: []
1099
# @schema additionalProperties:{"type":"string"}
1100
# -- Annotations for the service account
1101
annotations: {}
1102
# @schema additionalProperties:{"type":"string"}
1103
# -- Labels for the service account
1104
labels: {}
1105
# -- Set this toggle to false to opt out of automounting API credentials for the service account
1106
automountServiceAccountToken: false
1107
######################################################################################################################
1108
#
1109
# Service Accounts and Kubernetes RBAC
1110
#
1111
######################################################################################################################
1112
serviceAccount:
1113
# -- Specifies whether a ServiceAccount should be created
1114
create: true
1115
# @schema type:[string, null]
1116
# -- The name of the ServiceAccount to use.
1117
# If not set and create is true, a name is generated using the fullname template
1118
name: null
1119
# @schema item:object;itemProperties:{"name": {"type": "string"}}
1120
# -- Image pull secrets for the service account
1121
imagePullSecrets: []
1122
# @schema additionalProperties:{"type":"string"}
1123
# -- Annotations for the service account
1124
annotations: {}
1125
# @schema additionalProperties:{"type":"string"}
1126
# -- Labels for the service account
1127
labels: {}
1128
# -- Set this toggle to false to opt out of automounting API credentials for the service account
1129
automountServiceAccountToken: true
1130
# RBAC configuration
1131
rbac:
1132
# -- For OpenShift set sccEnabled to 'true' to use the SecurityContextConstraints.
1133
sccEnabled: false
1134
# -- Toggle this to true to allow the use of hostPath volumes on OpenShift
1135
sccAllowHostDirVolumePlugin: false
1136
# -- Whether to install RBAC in the namespace only or cluster-wide. Useful if you want to watch ConfigMap globally.
1137
namespaced: false
1138
######################################################################################################################
1139
#
1140
# Network Policy configuration
1141
#
1142
######################################################################################################################
1143
networkPolicy:
1144
# -- Specifies whether Network Policies should be created
1145
enabled: false
1146
metrics:
1147
# -- Specifies the Pods which are allowed to access the metrics port.
1148
# As this is cross-namespace communication, you also need the namespaceSelector.
1149
podSelector: {}
1150
# -- Specifies the namespaces which are allowed to access the metrics port
1151
namespaceSelector: {}
1152
# -- Specifies specific network CIDRs which are allowed to access the metrics port.
1153
# In case you use namespaceSelector, you also have to specify your kubelet networks here.
1154
# The metrics ports are also used for probes.
1155
cidrs: []
1156
ingress:
1157
# -- Specifies the Pods which are allowed to access the http port.
1158
# As this is cross-namespace communication, you also need the namespaceSelector.
1159
podSelector: {}
1160
# -- Specifies the namespaces which are allowed to access the http port
1161
namespaceSelector: {}
1162
alertmanager:
1163
# @schema type:[string, integer]
1164
# -- Specify the Alertmanager port used for alerting
1165
port: 9093
1166
# -- Specifies the Alertmanager Pods.
1167
# As this is cross-namespace communication, you also need the namespaceSelector.
1168
podSelector: {}
1169
# -- Specifies the namespace the Alertmanager is running in
1170
namespaceSelector: {}
1171
externalStorage:
1172
# -- Specify the port used for external storage, e.g. AWS S3
1173
ports: []
1174
# -- Specifies specific network CIDRs you want to limit access to
1175
cidrs: []
1176
discovery:
1177
# @schema type:[string, integer, null]
1178
# -- (int) Specify the port used for discovery
1179
port: null
1180
# -- Specifies the Pods labels used for discovery.
1181
# As this is cross-namespace communication, you also need the namespaceSelector.
1182
podSelector: {}
1183
# -- Specifies the namespace the discovery Pods are running in
1184
namespaceSelector: {}
1185
######################################################################################################################
1186
#
1187
# Global memberlist configuration
1188
#
1189
######################################################################################################################
1190
1191
# Configuration for the memberlist service
1192
memberlist:
1193
service:
1194
publishNotReadyAddresses: false
1195
# @schema additionalProperties:{"type":"string"}
1196
annotations: {}
1197
######################################################################################################################
1198
#
1199
# Gateway and Ingress
1200
#
1201
# By default this chart will deploy a Nginx container to act as a gateway which handles routing of traffic
1202
# and can also do auth.
1203
#
1204
# If you would prefer you can optionally disable this and enable using k8s ingress to do the incoming routing.
1205
#
1206
######################################################################################################################
1207
1208
# Configuration for the gateway
1209
gateway:
1210
# -- Specifies whether the gateway should be enabled
1211
enabled: true
1212
# -- Number of replicas for the gateway
1213
replicas: 1
1214
# -- Default container port
1215
containerPort: 8080
1216
# -- Enable logging of 2xx and 3xx HTTP requests
1217
verboseLogging: true
1218
autoscaling:
1219
# -- Enable autoscaling for the gateway
1220
enabled: false
1221
# -- Minimum autoscaling replicas for the gateway
1222
minReplicas: 1
1223
# -- Maximum autoscaling replicas for the gateway
1224
maxReplicas: 3
1225
# @schema type:[integer, null]
1226
# -- Target CPU utilisation percentage for the gateway
1227
targetCPUUtilizationPercentage: 60
1228
# @schema type:[integer, null]
1229
# -- Target memory utilisation percentage for the gateway
1230
targetMemoryUtilizationPercentage: null
1231
# @schema skipProperties:true;additionalProperties:true
1232
# -- See `kubectl explain deployment.spec.strategy` for more
1233
# -- ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1234
# -- Behavior policies while scaling.
1235
behavior: {}
1236
# scaleUp:
1237
# stabilizationWindowSeconds: 300
1238
# policies:
1239
# - type: Pods
1240
# value: 1
1241
# periodSeconds: 60
1242
# scaleDown:
1243
# stabilizationWindowSeconds: 300
1244
# policies:
1245
# - type: Pods
1246
# value: 1
1247
# periodSeconds: 180
1248
kedaAutoscaling:
1249
# -- Enable KEDA autoscaling for the gateway. Mutually exclusive with autoscaling.enabled
1250
enabled: false
1251
# @schema type:[integer, null]
1252
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
1253
pollingInterval: null
1254
# -- Minimum replicas for KEDA autoscaling
1255
minReplicas: 1
1256
# -- Maximum replicas for KEDA autoscaling
1257
maxReplicas: 3
1258
# @schema type:[integer, null]
1259
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
1260
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
1261
cooldownPeriod: null
1262
# @schema additionalProperties:true
1263
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
1264
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
1265
fallback: {}
1266
# @schema skipProperties:true;additionalProperties:true
1267
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
1268
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
1269
behavior: {}
1270
# -- KEDA triggers for the gateway.
1271
# Ref: https://keda.sh/docs/latest/scalers/
1272
triggers: []
1273
deploymentStrategy:
1274
type: RollingUpdate
1275
image:
1276
# -- The Docker registry for the gateway image
1277
registry: cgr.dev
1278
# -- The gateway image repository
1279
repository: chainguard-private/nginx
1280
# -- The gateway image tag
1281
tag: mainline
1282
# @schema type:[string, null]
1283
# -- Overrides the gateway image tag with an image digest
1284
digest: sha256:236d94f6ce0dcab6a3eb0a3c03f9acad382879c32947d78caa1d3dbfd49a354b
1285
# -- The gateway image pull policy
1286
pullPolicy: IfNotPresent
1287
# @schema type:[string, null]
1288
# -- The name of the PriorityClass for gateway pods
1289
priorityClassName: null
1290
# @schema additionalProperties:{"type":"string"}
1291
# -- Annotations for gateway deployment
1292
annotations: {}
1293
# @schema additionalProperties:{"type":"string"}
1294
# -- Annotations for gateway pods
1295
podAnnotations: {}
1296
# @schema additionalProperties:{"type":"string"}
1297
# -- Additional labels for gateway pods
1298
podLabels: {}
1299
# -- Additional CLI args for the gateway
1300
extraArgs: []
1301
# -- Environment variables to add to the gateway pods
1302
extraEnv: []
1303
# -- Environment variables from secrets or configmaps to add to the gateway pods
1304
extraEnvFrom: []
1305
# -- Lifecycle for the gateway container
1306
lifecycle: {}
1307
# -- Volumes to add to the gateway pods
1308
extraVolumes: []
1309
# -- Volume mounts to add to the gateway pods
1310
extraVolumeMounts: []
1311
# @schema skipProperties:true;additionalProperties:true
1312
# -- The SecurityContext for gateway containers
1313
podSecurityContext:
1314
fsGroup: 101
1315
runAsGroup: 101
1316
runAsNonRoot: true
1317
runAsUser: 101
1318
seccompProfile:
1319
type: RuntimeDefault
1320
# @schema skipProperties:true;additionalProperties:true
1321
# -- The SecurityContext for gateway containers
1322
containerSecurityContext:
1323
readOnlyRootFilesystem: true
1324
capabilities:
1325
drop: ["ALL"]
1326
seccompProfile:
1327
type: "RuntimeDefault"
1328
allowPrivilegeEscalation: false
1329
# @schema type:[boolean, null]
1330
# -- Use the host's user namespace in the gateway
1331
hostUsers: null
1332
# @schema additionalProperties:true
1333
# -- Resource requests and limits for the gateway
1334
resources: {}
1335
# -- Container resize policy for the gateway
1336
# Example:
1337
# resizePolicy:
1338
# - resourceName: cpu
1339
# restartPolicy: NotRequired
1340
# - resourceName: memory
1341
# restartPolicy: RestartContainer
1342
resizePolicy: []
1343
# @schema type:[array, null]
1344
# -- Containers to add to the gateway pods
1345
extraContainers: []
1346
# -- Grace period to allow the gateway to shutdown before it is killed
1347
terminationGracePeriodSeconds: 30
1348
podDisruptionBudget:
1349
# -- Enable Pod Disruption Budget
1350
enabled: true
1351
# @schema additionalProperties:{"type":"string"}
1352
# -- Annotations for Pod Disruption Budget
1353
annotations: {}
1354
# @schema additionalProperties:{"type":"string"}
1355
# -- Labels for Pod Disruption Budget
1356
labels: {}
1357
# @schema type:[string, integer, null]
1358
# -- Pod Disruption Budget minAvailable
1359
minAvailable: null
1360
# @schema type:[string, integer, null]
1361
# -- Pod Disruption Budget maxUnavailable
1362
maxUnavailable: null
1363
# @schema type:[string, null]
1364
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
1365
unhealthyPodEvictionPolicy: null
1366
# @schema type:[object, null];skipProperties:true;additionalProperties:true
1367
# -- Affinity for gateway pods.
1368
# @default -- Hard node anti-affinity
1369
# The value will be passed through tpl.
1370
affinity:
1371
podAntiAffinity:
1372
requiredDuringSchedulingIgnoredDuringExecution:
1373
- labelSelector:
1374
matchLabels:
1375
app.kubernetes.io/component: gateway
1376
app.kubernetes.io/name: '{{ include "loki.name" . }}'
1377
app.kubernetes.io/instance: '{{ .Release.Name }}'
1378
topologyKey: kubernetes.io/hostname
1379
# @schema additionalProperties:true
1380
# -- DNS config for gateway pods
1381
dnsConfig: {}
1382
# @schema additionalProperties:true
1383
# -- Node selector for gateway pods
1384
nodeSelector: {}
1385
# -- Set this toggle to false to opt out of automounting API credentials for the service account
1386
automountServiceAccountToken: false
1387
# @schema item:object
1388
# -- Topology Spread Constraints for gateway pods
1389
# The value will be passed through tpl.
1390
topologySpreadConstraints: []
1391
tolerations: []
1392
# Gateway service configuration
1393
service:
1394
# -- Port of the gateway service
1395
port: 80
1396
# -- Type of the gateway service
1397
type: ClusterIP
1398
# @schema type:[string, null]
1399
# -- ClusterIP of the gateway service
1400
clusterIP: null
1401
# @schema type:[integer, null]
1402
# -- (int) Node port if service type is NodePort
1403
nodePort: null
1404
# @schema type:[string, null]
1405
# -- Load balancer IPO address if service type is LoadBalancer
1406
loadBalancerIP: null
1407
# @schema additionalProperties:{"type":"string"}
1408
# -- Annotations for the gateway service
1409
annotations: {}
1410
# @schema additionalProperties:{"type":"string"}
1411
# -- Labels for gateway service
1412
labels: {}
1413
# -- trafficDistribution for gateway Service
1414
trafficDistribution: ""
1415
# -- Session affinity for gateway Service
1416
sessionAffinity: ""
1417
# @schema additionalProperties:true
1418
# -- Session affinity config for gateway Service
1419
sessionAffinityConfig: {}
1420
# -- ipFamilyPolicy for gateway Service
1421
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1422
ipFamilyPolicy: ""
1423
# -- ipFamilies for gateway Service
1424
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1425
ipFamilies: []
1426
serviceAccount:
1427
# -- Specifies whether a ServiceAccount should be created
1428
create: true
1429
# @schema type:[string, null]
1430
# -- The name of the ServiceAccount to use.
1431
# If not set and create is true, a name is generated using the fullname template
1432
name: null
1433
# @schema item:object;itemProperties:{"name": {"type": "string"}}
1434
# -- Image pull secrets for the service account
1435
imagePullSecrets: []
1436
# @schema additionalProperties:{"type":"string"}
1437
# -- Annotations for the service account
1438
annotations: {}
1439
# @schema additionalProperties:{"type":"string"}
1440
# -- Labels for the service account
1441
labels: {}
1442
# -- Set this toggle to false to opt out of automounting API credentials for the service account
1443
automountServiceAccountToken: false
1444
# Gateway ingress configuration
1445
ingress:
1446
# -- Specifies whether an ingress for the gateway should be created
1447
enabled: false
1448
# -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
1449
ingressClassName: ""
1450
# @schema additionalProperties:{"type":"string"}
1451
# -- Annotations for the gateway ingress
1452
annotations: {}
1453
# @schema additionalProperties:{"type":"string"}
1454
# -- Labels for the gateway ingress
1455
labels: {}
1456
# -- Hosts configuration for the gateway ingress, passed through the `tpl` function to allow templating
1457
hosts:
1458
- host: gateway.loki.example.com
1459
paths:
1460
- path: /
1461
# -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
1462
# pathType: Prefix
1463
# -- TLS configuration for the gateway ingress. Hosts passed through the `tpl` function to allow templating
1464
tls:
1465
- secretName: loki-gateway-tls
1466
hosts:
1467
- gateway.loki.example.com
1468
# Basic auth configuration
1469
basicAuth:
1470
# -- Enables basic authentication for the gateway
1471
enabled: false
1472
# @schema type:[string, null]
1473
# -- The basic auth username for the gateway
1474
username: null
1475
# @schema type:[string, null]
1476
# -- The basic auth password for the gateway
1477
password: null
1478
# -- Uses the specified users from the `loki.tenants` list to create the htpasswd file.
1479
# if `loki.tenants` is not set, the `gateway.basicAuth.username` and `gateway.basicAuth.password` are used.
1480
# The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
1481
# high CPU load.
1482
# @default -- Either `loki.tenants` or `gateway.basicAuth.username` and `gateway.basicAuth.password`.
1483
htpasswd: |
1484
{{- with $tenants := .Values.loki.tenants }}
1485
{{- range $t := $tenants }}
1486
{{- $username := required "All tenants must have a 'name' set" $t.name }}
1487
{{- if $passwordHash := $t.passwordHash }}
1488
{{- printf "%s:%s\n" $username $passwordHash }}
1489
{{- else if $password := $t.password }}
1490
{{- printf "%s\n" (htpasswd $username $password) }}
1491
{{- else }}
1492
{{- fail "All tenants must have a 'password' or 'passwordHash' set" }}
1493
{{- end }}
1494
{{- end }}
1495
{{- else }}
1496
{{- printf "%s\n" (htpasswd (required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username) (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password)) }}
1497
{{- end }}
1498
# @schema type:[string, null]
1499
# -- Existing basic auth secret to use. Must contain '.htpasswd'
1500
existingSecret: null
1501
# -- Gateway API routes configuration. Mutually exclusive with gateway.ingress.
1502
# Use either ingress or route, but not both at once.
1503
# Each entry in the map creates a separate HTTPRoute resource. The key "main" produces
1504
# a route named after the gateway fullname; any other key appends the key as a suffix.
1505
# This allows defining multiple routes, e.g. one HTTPRoute and one GRPCRoute.
1506
route:
1507
main:
1508
# -- Specifies whether this Gateway API route should be created
1509
enabled: false
1510
# -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1beta1.
1511
# If not set, the latest available version will be auto-detected.
1512
apiVersion: ""
1513
# -- Set the route kind. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
1514
kind: HTTPRoute
1515
# @schema additionalProperties:{"type":"string"}
1516
# -- Additional annotations for the route
1517
annotations: {}
1518
# @schema additionalProperties:{"type":"string"}
1519
# -- Additional labels for the route
1520
labels: {}
1521
# -- Hostnames for the route
1522
hostnames: []
1523
# - gateway.loki.example.com
1524
# -- Parent gateway references to attach the route to
1525
parentRefs: []
1526
# - name: my-gateway
1527
# namespace: gateway-namespace
1528
# -- Additional rules to prepend before the default catch-all rule.
1529
# Each entry is rendered into spec.rules as written (templating is supported),
1530
# so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules
1531
# with no backendRefs (e.g. RequestRedirect, URLRewrite).
1532
# Useful for advanced routing logic (e.g. header-based routing, auth policies, redirects).
1533
# Note: the chart-generated rule that points at the gateway service is always rendered
1534
# for this route — additionalRules are prepended, not a replacement.
1535
# Example HTTP-to-HTTPS redirect:
1536
# additionalRules:
1537
# - filters:
1538
# - type: RequestRedirect
1539
# requestRedirect:
1540
# scheme: https
1541
# statusCode: 301
1542
# matches:
1543
# - path: { type: PathPrefix, value: / }
1544
additionalRules: []
1545
# -- Matches for the default rule. Defaults to match all paths.
1546
matches:
1547
- path:
1548
type: PathPrefix
1549
value: /
1550
# -- Filters for the default rule
1551
filters: []
1552
# -- Timeouts for the default rule
1553
timeouts: {}
1554
# @schema skipProperties:true;additionalProperties:true
1555
# -- liveness probe for the nginx container in the gateway pods.
1556
livenessProbe: {}
1557
# @schema skipProperties:true;additionalProperties:true
1558
# Configures the readiness probe for the gateway
1559
readinessProbe:
1560
httpGet:
1561
path: /
1562
port: http
1563
initialDelaySeconds: 15
1564
timeoutSeconds: 1
1565
# @schema skipProperties:true;additionalProperties:true
1566
# -- startup probe for the nginx container in the gateway pods.
1567
startupProbe: {}
1568
nginxConfig:
1569
# -- Which schema to be used when building URLs. Can be 'http' or 'https'.
1570
schema: http
1571
# -- Enable listener for IPv6, disable on IPv4-only systems
1572
enableIPv6: true
1573
# -- NGINX log format
1574
logFormat: |-
1575
main '$remote_addr - $remote_user [$time_local] $status '
1576
'"$request" $body_bytes_sent "$http_referer" '
1577
'"$http_user_agent" "$http_x_forwarded_for"';
1578
# -- Allows appending custom configuration to the server block
1579
serverSnippet: ""
1580
# -- Allows appending custom configuration to the http block, passed through the `tpl` function to allow templating
1581
httpSnippet: ""
1582
# -- Allows appending custom configuration inside every location block, useful for authentication or setting headers that are not inherited from the server block, passed through the `tpl` function to allow templating.
1583
locationSnippet: >-
1584
{{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}
1585
# -- Allows customizing the `client_max_body_size` directive
1586
clientMaxBodySize: 4M
1587
# -- Whether ssl should be appended to the listen directive of the server block or not.
1588
ssl: false
1589
# @schema type:[string, null]
1590
# -- Override Read URL
1591
customReadUrl: null
1592
# @schema type:[string, null]
1593
# -- Override Write URL
1594
customWriteUrl: null
1595
# @schema type:[string, null]
1596
# -- Override Backend URL
1597
customBackendUrl: null
1598
# -- Allows overriding the DNS resolver address nginx will use.
1599
resolver: ""
1600
# -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
1601
# @default -- See values.yaml
1602
file: |
1603
{{- include "loki.nginxFile" . -}}
1604
metrics:
1605
# -- Whether gateway metrics should be exported
1606
enabled: true
1607
image:
1608
registry: cgr.dev
1609
repository: chainguard-private/access-log-exporter
1610
tag: 0.5.1-r1@sha256:1efae15625b89b54a32ddf87b6d0bd360717654126f3445560fffe402693e255
1611
pullPolicy: IfNotPresent
1612
# @schema additionalProperties:true
1613
resources:
1614
requests: {}
1615
limits: {}
1616
# -- Container resize policy for the gateway metrics exporter
1617
# Example:
1618
# resizePolicy:
1619
# - resourceName: cpu
1620
# restartPolicy: NotRequired
1621
# - resourceName: memory
1622
# restartPolicy: RestartContainer
1623
resizePolicy: []
1624
# @schema skipProperties:true;additionalProperties:true
1625
# -- The SecurityContext for memcached exporter containers
1626
containerSecurityContext:
1627
allowPrivilegeEscalation: false
1628
readOnlyRootFilesystem: true
1629
capabilities:
1630
drop: ["ALL"]
1631
seccompProfile:
1632
type: RuntimeDefault
1633
privileged: false
1634
runAsNonRoot: true
1635
runAsUser: 65532
1636
runAsGroup: 65532
1637
# -- Extra args to add to the exporter container.
1638
extraArgs: []
1639
# @schema skipProperties:true;additionalProperties:true
1640
# -- Liveness probe for memcached exporter
1641
livenessProbe:
1642
httpGet:
1643
path: /health
1644
port: http-metrics
1645
initialDelaySeconds: 30
1646
periodSeconds: 10
1647
timeoutSeconds: 5
1648
failureThreshold: 3
1649
# @schema skipProperties:true;additionalProperties:true
1650
# -- Readiness probe for memcached exporter
1651
readinessProbe:
1652
httpGet:
1653
path: /health
1654
port: http-metrics
1655
initialDelaySeconds: 5
1656
periodSeconds: 5
1657
timeoutSeconds: 3
1658
failureThreshold: 3
1659
# @schema skipProperties:true;additionalProperties:true
1660
# -- Startup probe for memcached exporter
1661
startupProbe: {}
1662
service:
1663
# @schema additionalProperties:{"type":"string"}
1664
# -- Annotations for the gateway metrics exporter service.
1665
# Use this instead of gateway.service.annotations to avoid propagating
1666
# annotations (e.g. external-dns) to the exporter ClusterIP service.
1667
annotations: {}
1668
# @schema additionalProperties:{"type":"string"}
1669
# -- Labels for the gateway metrics exporter service.
1670
labels: {}
1671
# -- Ingress configuration Use either this ingress or the gateway, but not both at once.
1672
# If you enable this, make sure to disable the gateway.
1673
# You'll need to supply authn configuration for your ingress controller.
1674
ingress:
1675
enabled: false
1676
ingressClassName: ""
1677
# @schema additionalProperties:{"type":"string"}
1678
annotations: {}
1679
# @schema additionalProperties:{"type":"string"}
1680
# nginx.ingress.kubernetes.io/auth-type: basic
1681
# nginx.ingress.kubernetes.io/auth-secret: loki-distributed-basic-auth
1682
# nginx.ingress.kubernetes.io/auth-secret-type: auth-map
1683
# nginx.ingress.kubernetes.io/configuration-snippet: |
1684
# proxy_set_header X-Scope-OrgID $remote_user;
1685
labels: {}
1686
# blackbox.monitoring.exclude: "true"
1687
paths:
1688
# -- Paths that are exposed by Loki Distributor.
1689
# If deployment mode is Distributed, the requests are forwarded to the service:.
1690
# If deployment mode is SimpleScalable, the requests are forwarded to write k8s service:.
1691
# If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service:
1692
distributor:
1693
- /api/prom/push
1694
- /loki/api/v1/push
1695
- /otlp/v1/logs
1696
# -- Paths that are exposed by Loki Query Frontend.
1697
# If deployment mode is Distributed, the requests are forwarded to the service.
1698
# If deployment mode is SimpleScalable, the requests are forwarded to write k8s service`.
1699
# If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1700
queryFrontend:
1701
- /api/prom/query
1702
# this path covers labels and labelValues endpoints
1703
- /api/prom/label
1704
- /api/prom/series
1705
- /api/prom/tail
1706
- /loki/api/v1/query
1707
- /loki/api/v1/query_range
1708
- /loki/api/v1/tail
1709
# this path covers labels and labelValues endpoints
1710
- /loki/api/v1/label
1711
- /loki/api/v1/labels
1712
- /loki/api/v1/series
1713
- /loki/api/v1/index/stats
1714
- /loki/api/v1/index/volume
1715
- /loki/api/v1/index/volume_range
1716
- /loki/api/v1/format_query
1717
- /loki/api/v1/detected_field
1718
- /loki/api/v1/detected_fields
1719
- /loki/api/v1/detected_labels
1720
- /loki/api/v1/patterns
1721
# this path covers UI API
1722
- /ui
1723
# -- Paths that are exposed by Loki Ruler.
1724
# If deployment mode is Distributed, the requests are forwarded to the service.
1725
# If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1726
# If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service
1727
ruler:
1728
- /api/prom/rules
1729
- /api/prom/api/v1/rules
1730
- /api/prom/api/v1/alerts
1731
- /loki/api/v1/rules
1732
- /prometheus/api/v1/rules
1733
- /prometheus/api/v1/alerts
1734
# -- Paths that are exposed by Loki Compactor.
1735
# If deployment mode is Distributed, the requests are forwarded to the service.
1736
# If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1737
# If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1738
compactor:
1739
- /loki/api/v1/delete
1740
# -- Hosts configuration for the ingress, passed through the `tpl` function to allow templating
1741
hosts:
1742
- loki.example.com
1743
# -- TLS configuration for the ingress. Hosts passed through the `tpl` function to allow templating
1744
tls: []
1745
# - hosts:
1746
# - loki.example.com
1747
# secretName: loki-distributed-tls
1748
1749
# -- Gateway API routes for direct routing to Loki services, bypassing the nginx gateway.
1750
# Use either this or the top-level ingress, but not both at once.
1751
# Each entry in the map creates a separate HTTPRoute resource. The key "main" produces
1752
# a route named after the loki fullname; any other key appends the key as a suffix.
1753
# This allows defining multiple routes, e.g. one HTTPRoute and one GRPCRoute.
1754
route:
1755
main:
1756
# -- Specifies whether this Gateway API route should be created
1757
enabled: false
1758
# -- Gateway API version to use. Auto-detected from cluster capabilities if empty.
1759
apiVersion: ""
1760
# -- Kind of the route resource. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
1761
kind: HTTPRoute
1762
# @schema additionalProperties:{"type":"string"}
1763
# -- Annotations for the route
1764
annotations: {}
1765
# @schema additionalProperties:{"type":"string"}
1766
# -- Labels for the route
1767
labels: {}
1768
# -- Hostnames for the route
1769
hostnames: []
1770
# -- Parent references for the route (required for Gateway API)
1771
parentRefs: []
1772
# -- Additional rules to prepend before the generated path-routing rules.
1773
# Each entry is rendered into spec.rules as written (templating is supported),
1774
# so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules
1775
# with no backendRefs (e.g. RequestRedirect, URLRewrite).
1776
additionalRules: []
1777
# @schema type:[integer, null]
1778
# -- Backend port override for all generated rules.
1779
# When unset, GRPCRoute automatically uses loki.server.grpc_listen_port (default 9095)
1780
# and all other kinds use loki.server.http_listen_port (default 3100).
1781
backendPort: null
1782
# -- Paths routed to each Loki service group. The target service depends on the deployment mode.
1783
# To produce a route that contains only `additionalRules` and no chart-generated path rules
1784
# (for example, a dedicated HTTP-to-HTTPS redirect route), set every entry below to an empty
1785
# list — e.g. `distributor: []`, `queryFrontend: []`, `ruler: []`, `compactor: []`.
1786
paths:
1787
# -- Paths that are exposed by Loki Distributor.
1788
# If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.distributorFullname"}}`.
1789
# If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.writeFullname"}}`.
1790
# If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.fullname"}}`
1791
distributor:
1792
- /api/prom/push
1793
- /loki/api/v1/push
1794
- /otlp/v1/logs
1795
# -- Paths that are exposed by Loki Query Frontend.
1796
# If deployment mode is Distributed, the requests are forwarded to the service.
1797
# If deployment mode is SimpleScalable, the requests are forwarded to read k8s service.
1798
# If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1799
queryFrontend:
1800
- /api/prom/query
1801
# this path covers labels and labelValues endpoints
1802
- /api/prom/label
1803
- /api/prom/series
1804
- /api/prom/tail
1805
- /loki/api/v1/query
1806
- /loki/api/v1/query_range
1807
- /loki/api/v1/tail
1808
# this path covers labels and labelValues endpoints
1809
- /loki/api/v1/label
1810
- /loki/api/v1/labels
1811
- /loki/api/v1/series
1812
- /loki/api/v1/index/stats
1813
- /loki/api/v1/index/volume
1814
- /loki/api/v1/index/volume_range
1815
- /loki/api/v1/format_query
1816
- /loki/api/v1/detected_field
1817
- /loki/api/v1/detected_fields
1818
- /loki/api/v1/detected_labels
1819
- /loki/api/v1/patterns
1820
# this path covers UI API
1821
- /ui
1822
# -- Paths that are exposed by Loki Ruler.
1823
# If deployment mode is Distributed, the requests are forwarded to the service.
1824
# If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1825
# If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service.
1826
ruler:
1827
- /api/prom/rules
1828
- /api/prom/api/v1/rules
1829
- /api/prom/api/v1/alerts
1830
- /loki/api/v1/rules
1831
- /prometheus/api/v1/rules
1832
- /prometheus/api/v1/alerts
1833
# -- Paths that are exposed by Loki Compactor.
1834
# If deployment mode is Distributed, the requests are forwarded to the service.
1835
# If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1836
# If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service.
1837
compactor:
1838
- /loki/api/v1/delete
1839
######################################################################################################################
1840
#
1841
# Migration
1842
#
1843
######################################################################################################################
1844
1845
# -- Options that may be necessary when performing a migration from another helm chart
1846
migrate:
1847
# -- When migrating from a distributed chart like loki-distributed or enterprise-logs
1848
fromDistributed:
1849
# -- Set to true if migrating from a distributed helm chart
1850
enabled: false
1851
# -- If migrating from a distributed service, provide the distributed deployment's
1852
# memberlist service DNS so the new deployment can join its ring.
1853
memberlistService: ""
1854
######################################################################################################################
1855
#
1856
# Single Binary Deployment
1857
#
1858
# For small Loki installations up to a few 10's of GB per day, or for testing and development.
1859
#
1860
######################################################################################################################
1861
1862
# -- Pod Disruption Budget for single binary deployment. Deprecated in favor of `singleBinary.podDisruptionBudget`
1863
podDisruptionBudget:
1864
enabled: true
1865
# Configuration for the single binary node(s)
1866
singleBinary:
1867
# -- Enable the single binary component. Requires `loki.deploymentMode` to be set to `SingleBinary`.
1868
enabled: true
1869
# -- Kind of read deployment. StatefulSet and Deployment are supported.
1870
kind: StatefulSet
1871
# @schema type:[integer, null]
1872
# -- Number of replicas for the single binary. Set to null to omit spec.replicas from the workload,
1873
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
1874
replicas: 0
1875
# -- EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed.
1876
## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
1877
statefulSetRecreateJob:
1878
enabled: false
1879
# @schema skipProperties:true;additionalProperties:true
1880
# -- UpdateStrategy or Strategy for single binary.
1881
strategy:
1882
rollingUpdate:
1883
partition: 0
1884
# -- Whether to enable the rules sidecar
1885
sidecar: true
1886
autoscaling:
1887
# -- Enable autoscaling
1888
enabled: false
1889
# -- Minimum autoscaling replicas for the single binary
1890
minReplicas: 1
1891
# -- Maximum autoscaling replicas for the single binary
1892
maxReplicas: 3
1893
# @schema type:[integer, null]
1894
# -- Target CPU utilisation percentage for the single binary
1895
targetCPUUtilizationPercentage: 60
1896
# @schema type:[integer, null]
1897
# -- Target memory utilisation percentage for the single binary
1898
targetMemoryUtilizationPercentage: null
1899
# -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
1900
customMetrics: []
1901
# - type: Pods
1902
# pods:
1903
# metric:
1904
# name: loki_lines_total
1905
# target:
1906
# type: AverageValue
1907
# averageValue: 10k
1908
# @schema skipProperties:true;additionalProperties:true
1909
# -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
1910
behavior:
1911
# -- Enable autoscaling behaviours
1912
enabled: false
1913
# -- define scale down policies, must conform to HPAScalingRules
1914
scaleDown: {}
1915
# -- define scale up policies, must conform to HPAScalingRules
1916
scaleUp: {}
1917
kedaAutoscaling:
1918
# -- Enable KEDA autoscaling for the single binary. Mutually exclusive with autoscaling.enabled
1919
enabled: false
1920
# @schema type:[integer, null]
1921
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
1922
pollingInterval: null
1923
# -- Minimum replicas for KEDA autoscaling
1924
minReplicas: 1
1925
# -- Maximum replicas for KEDA autoscaling
1926
maxReplicas: 3
1927
# @schema type:[integer, null]
1928
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
1929
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
1930
cooldownPeriod: null
1931
# @schema additionalProperties:true
1932
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
1933
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
1934
fallback: {}
1935
# @schema skipProperties:true;additionalProperties:true
1936
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
1937
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
1938
behavior: {}
1939
# -- KEDA triggers for the single binary.
1940
# Ref: https://keda.sh/docs/latest/scalers/
1941
triggers: []
1942
image:
1943
# @schema type:[string, null]
1944
# -- The Docker registry for the single binary image. Overrides `loki.image.registry`
1945
registry: null
1946
# @schema type:[string, null]
1947
# -- Docker image repository for the single binary image. Overrides `loki.image.repository`
1948
repository: null
1949
# @schema type:[string, null]
1950
# -- Docker image tag for the single binary image. Overrides `loki.image.tag`
1951
tag: null
1952
# @schema type:[string, null]
1953
# -- The name of the PriorityClass for single binary pods
1954
priorityClassName: null
1955
# @schema additionalProperties:{"type":"string"}
1956
# -- Annotations for single binary StatefulSet
1957
annotations: {}
1958
# @schema additionalProperties:{"type":"string"}
1959
# -- Additional labels for single binary StatefulSet
1960
labels: {}
1961
# @schema additionalProperties:{"type":"string"}
1962
# -- Annotations for single binary pods
1963
podAnnotations: {}
1964
# @schema additionalProperties:{"type":"string"}
1965
# -- Additional labels for each `single binary` pod
1966
podLabels: {}
1967
# @schema additionalProperties:{"type":"string"}
1968
# -- Additional selector labels for each `single binary` pod
1969
selectorLabels: {}
1970
podDisruptionBudget:
1971
# -- Enable Pod Disruption Budget
1972
enabled: true
1973
# @schema additionalProperties:{"type":"string"}
1974
# -- Annotations for Pod Disruption Budget
1975
annotations: {}
1976
# @schema additionalProperties:{"type":"string"}
1977
# -- Labels for Pod Disruption Budget
1978
labels: {}
1979
# @schema type:[string, integer, null]
1980
# -- Pod Disruption Budget minAvailable
1981
minAvailable: null
1982
# @schema type:[string, integer, null]
1983
# -- Pod Disruption Budget maxUnavailable
1984
maxUnavailable: null
1985
# @schema type:[string, null]
1986
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
1987
unhealthyPodEvictionPolicy: null
1988
service:
1989
# @schema additionalProperties:{"type":"string"}
1990
# -- Annotations for single binary Service
1991
annotations: {}
1992
# @schema additionalProperties:{"type":"string"}
1993
# -- Additional labels for single binary Service
1994
labels: {}
1995
# -- Service Type for single binary Service
1996
type: "ClusterIP"
1997
# -- trafficDistribution single binary Service
1998
trafficDistribution: ""
1999
# -- Session affinity for single binary Service
2000
sessionAffinity: ""
2001
# @schema additionalProperties:true
2002
# -- Session affinity config for single binary Service
2003
sessionAffinityConfig: {}
2004
# -- ipFamilyPolicy for single binary Service
2005
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2006
ipFamilyPolicy: ""
2007
# -- ipFamilies for single binary Service
2008
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2009
ipFamilies: []
2010
# -- Adds the appProtocol field to the single binary service. This allows single binary to work with istio protocol selection.
2011
appProtocol:
2012
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2013
grpc: ""
2014
headlessService:
2015
# @schema additionalProperties:{"type":"string"}
2016
# -- Additional annotations for headless single binary Service
2017
annotations: {}
2018
# @schema additionalProperties:{"type":"string"}
2019
# -- Additional labels for single binary Service
2020
labels: {}
2021
# -- Comma-separated list of Loki modules to load for the single binary
2022
targetModule: "all"
2023
# -- Labels for single binary service
2024
extraArgs: []
2025
# -- Environment variables to add to the single binary pods
2026
extraEnv: []
2027
# -- Environment variables from secrets or configmaps to add to the single binary pods
2028
extraEnvFrom: []
2029
# @schema type:[string, array, null]
2030
# -- Extra containers to add to the single binary loki pod
2031
extraContainers: []
2032
# @schema type:[string, array, null]
2033
# -- Init containers to add to the single binary pods
2034
initContainers: []
2035
# -- Volume mounts to add to the single binary pods
2036
extraVolumeMounts: []
2037
# -- Volumes to add to the single binary pods
2038
extraVolumes: []
2039
# @schema additionalProperties:true
2040
# -- Resource requests and limits for the single binary
2041
resources: {}
2042
# -- Container resize policy for the single binary
2043
# Example:
2044
# resizePolicy:
2045
# - resourceName: cpu
2046
# restartPolicy: NotRequired
2047
# - resourceName: memory
2048
# restartPolicy: RestartContainer
2049
resizePolicy: []
2050
# -- Grace period to allow the single binary to shutdown before it is killed
2051
terminationGracePeriodSeconds: 30
2052
# @schema type:[boolean, null]
2053
# -- Use the host's user namespace in the single binary pods
2054
hostUsers: null
2055
# @schema type:[object, null];skipProperties:true;additionalProperties:true
2056
# -- Affinity for single binary pods.
2057
# @default -- Hard node anti-affinity
2058
# The value will be passed through tpl.
2059
affinity:
2060
podAntiAffinity:
2061
requiredDuringSchedulingIgnoredDuringExecution:
2062
- labelSelector:
2063
matchLabels:
2064
app.kubernetes.io/component: single-binary
2065
app.kubernetes.io/name: '{{ include "loki.name" . }}'
2066
app.kubernetes.io/instance: '{{ .Release.Name }}'
2067
topologyKey: kubernetes.io/hostname
2068
# @schema item:object
2069
# -- Topology Spread Constraints for single binary pods
2070
# The value will be passed through tpl.
2071
topologySpreadConstraints: []
2072
# @schema additionalProperties:true
2073
dnsConfig: {}
2074
# @schema additionalProperties:true
2075
# -- Node selector for single binary pods
2076
nodeSelector: {}
2077
# -- Tolerations for single binary pods
2078
tolerations: []
2079
# -- The default is to deploy all pods in parallel.
2080
podManagementPolicy: "Parallel"
2081
persistence:
2082
# -- What to do with the volume when the StatefulSet is scaled down.
2083
whenScaled: Delete
2084
# -- What to do with the volumes when the StatefulSet is deleted.
2085
whenDeleted: Delete
2086
# -- Enable StatefulSetAutoDeletePVC feature
2087
enableStatefulSetAutoDeletePVC: false
2088
# -- Enable persistent disk
2089
enabled: true
2090
# -- Set access modes on the PersistentVolumeClaim
2091
accessModes:
2092
- ReadWriteOnce
2093
# -- Size of persistent disk
2094
size: 10Gi
2095
# @schema type:[string, null]
2096
# -- Storage class to be used.
2097
# If defined, storageClassName: <storageClass>.
2098
# If set to "-", storageClassName: "", which disables dynamic provisioning.
2099
# If empty or set to null, no storageClassName spec is
2100
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2101
storageClass: null
2102
# @schema type:[object, null]
2103
# -- Selector for persistent disk
2104
selector: null
2105
# @schema additionalProperties:{"type":"string"}
2106
# -- Annotations for volume claim
2107
annotations: {}
2108
# @schema additionalProperties:{"type":"string"}
2109
# -- Labels for volume claim
2110
labels: {}
2111
# @schema skipProperties:true;additionalProperties:true
2112
# -- Parameters used for the `storage` volume when persistence.enabled is false.
2113
# Allows replacing the default emptyDir volume with a custom volume definition.
2114
# For example, to use an existing PVC:
2115
# dataVolumeParameters:
2116
# persistentVolumeClaim:
2117
# claimName: my-existing-pvc
2118
dataVolumeParameters: {}
2119
######################################################################################################################
2120
#
2121
# Simple Scalable Deployment (SSD) Mode
2122
#
2123
# For small to medium size Loki deployments up to around 1 TB/day, this is the default mode for this helm chart
2124
#
2125
######################################################################################################################
2126
2127
# Configuration for the write pod(s)
2128
write:
2129
# -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2130
enabled: true
2131
# -- Kind of write workload. StatefulSet and Deployment are supported.
2132
kind: StatefulSet
2133
# -- Override for the write fullname. By default, this is generated using the fullname template with "-backend"
2134
fullnameOverride: '{{ include "loki.name" . }}-write'
2135
# -- EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed.
2136
## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2137
statefulSetRecreateJob:
2138
enabled: false
2139
# @schema type:[integer, null]
2140
# -- Number of replicas for the write. Set to null to omit spec.replicas from the workload,
2141
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2142
replicas: 3
2143
# @schema skipProperties:true;additionalProperties:true
2144
# -- UpdateStrategy or Strategy for the write.
2145
strategy:
2146
rollingUpdate:
2147
partition: 0
2148
autoscaling:
2149
# -- Enable autoscaling for the write.
2150
enabled: false
2151
# -- Minimum autoscaling replicas for the write.
2152
minReplicas: 2
2153
# -- Maximum autoscaling replicas for the write.
2154
maxReplicas: 6
2155
# @schema type:[integer, null]
2156
# -- Target CPU utilisation percentage for the write.
2157
targetCPUUtilizationPercentage: 60
2158
# @schema type:[integer, null]
2159
# -- Target memory utilization percentage for the write.
2160
targetMemoryUtilizationPercentage: null
2161
# @schema skipProperties:true;additionalProperties:true
2162
# -- Behavior policies while scaling.
2163
behavior:
2164
# -- see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details
2165
scaleUp:
2166
policies:
2167
- type: Pods
2168
value: 1
2169
periodSeconds: 900
2170
scaleDown:
2171
policies:
2172
- type: Pods
2173
value: 1
2174
periodSeconds: 1800
2175
stabilizationWindowSeconds: 3600
2176
kedaAutoscaling:
2177
# -- Enable KEDA autoscaling for the write. Mutually exclusive with autoscaling.enabled
2178
enabled: false
2179
# @schema type:[integer, null]
2180
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2181
pollingInterval: null
2182
# -- Minimum replicas for KEDA autoscaling
2183
minReplicas: 2
2184
# -- Maximum replicas for KEDA autoscaling
2185
maxReplicas: 6
2186
# @schema type:[integer, null]
2187
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2188
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2189
cooldownPeriod: null
2190
# @schema additionalProperties:true
2191
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2192
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2193
fallback: {}
2194
# @schema skipProperties:true;additionalProperties:true
2195
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2196
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2197
behavior: {}
2198
# -- KEDA triggers for the write.
2199
# Ref: https://keda.sh/docs/latest/scalers/
2200
triggers: []
2201
image:
2202
# @schema type:[string, null]
2203
# -- The Docker registry for the write image. Overrides `loki.image.registry`
2204
registry: null
2205
# @schema type:[string, null]
2206
# -- Docker image repository for the write image. Overrides `loki.image.repository`
2207
repository: null
2208
# @schema type:[string, null]
2209
# -- Docker image tag for the write image. Overrides `loki.image.tag`
2210
tag: null
2211
# @schema type:[string, null]
2212
# -- The name of the PriorityClass for write pods
2213
priorityClassName: null
2214
# @schema additionalProperties:{"type":"string"}
2215
# -- Annotations for write StatefulSet
2216
annotations: {}
2217
# @schema additionalProperties:{"type":"string"}
2218
# -- Additional labels for write StatefulSet
2219
labels: {}
2220
# @schema additionalProperties:{"type":"string"}
2221
# -- Annotations for write pods
2222
podAnnotations: {}
2223
# @schema additionalProperties:{"type":"string"}
2224
# -- Additional labels for each `write` pod
2225
podLabels: {}
2226
# @schema additionalProperties:{"type":"string"}
2227
# -- Additional selector labels for each `write` pod
2228
selectorLabels: {}
2229
service:
2230
# @schema additionalProperties:{"type":"string"}
2231
# -- Annotations for write Service
2232
annotations: {}
2233
# @schema additionalProperties:{"type":"string"}
2234
# -- Additional labels for write Service
2235
labels: {}
2236
# -- Service Type for write Service
2237
type: "ClusterIP"
2238
# -- trafficDistribution for write Service
2239
trafficDistribution: ""
2240
# -- Session affinity for write Service
2241
sessionAffinity: ""
2242
# @schema additionalProperties:true
2243
# -- Session affinity config for write Service
2244
sessionAffinityConfig: {}
2245
# -- ipFamilyPolicy for write Service
2246
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2247
ipFamilyPolicy: ""
2248
# -- ipFamilies for write Service
2249
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2250
ipFamilies: []
2251
# -- Adds the appProtocol field to the write service. This allows write to work with istio protocol selection.
2252
appProtocol:
2253
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2254
grpc: ""
2255
headlessService:
2256
# @schema additionalProperties:{"type":"string"}
2257
# -- Additional annotations for headless SimpleScalable write Service
2258
annotations: {}
2259
# @schema additionalProperties:{"type":"string"}
2260
# -- Additional labels for headless SimpleScalable write Service
2261
labels: {}
2262
# -- Additional CLI args for the write
2263
extraArgs: []
2264
# -- Environment variables to add to the write pods
2265
extraEnv: []
2266
# -- Environment variables from secrets or configmaps to add to the write pods
2267
extraEnvFrom: []
2268
# -- Lifecycle for the write container
2269
lifecycle: {}
2270
# @schema type:[string, array, null]
2271
# -- Init containers to add to the write pods
2272
initContainers: []
2273
# @schema type:[string, array, null]
2274
# -- Containers to add to the write pods
2275
extraContainers: []
2276
# -- Volume mounts to add to the write pods
2277
extraVolumeMounts: []
2278
# -- Volumes to add to the write pods
2279
extraVolumes: []
2280
# -- volumeClaimTemplates to add to StatefulSet
2281
extraVolumeClaimTemplates: []
2282
# @schema additionalProperties:true
2283
# -- Resource requests and limits for the write
2284
resources: {}
2285
# -- Container resize policy for the write
2286
# Example:
2287
# resizePolicy:
2288
# - resourceName: cpu
2289
# restartPolicy: NotRequired
2290
# - resourceName: memory
2291
# restartPolicy: RestartContainer
2292
resizePolicy: []
2293
# -- Grace period to allow the write to shutdown before it is killed. Especially for the ingester,
2294
# this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring
2295
# all data and to successfully leave the member ring on shutdown.
2296
terminationGracePeriodSeconds: 300
2297
# @schema type:[boolean, null]
2298
# -- Use the host's user namespace in the write pods.
2299
hostUsers: null
2300
# @schema type:[object, null];skipProperties:true;additionalProperties:true
2301
# -- Affinity for write pods.
2302
# @default -- Hard node anti-affinity
2303
# The value will be passed through tpl.
2304
affinity:
2305
podAntiAffinity:
2306
requiredDuringSchedulingIgnoredDuringExecution:
2307
- labelSelector:
2308
matchLabels:
2309
app.kubernetes.io/component: write
2310
app.kubernetes.io/name: '{{ include "loki.name" . }}'
2311
app.kubernetes.io/instance: '{{ .Release.Name }}'
2312
topologyKey: kubernetes.io/hostname
2313
# @schema additionalProperties:true
2314
# -- DNS config for write pods
2315
dnsConfig: {}
2316
# @schema type:[string, integer, null];deprecated:true
2317
# -- Pod Disruption Budget maxUnavailable
2318
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2319
maxUnavailable: 1
2320
podDisruptionBudget:
2321
# -- Enable Pod Disruption Budget
2322
enabled: true
2323
# @schema additionalProperties:{"type":"string"}
2324
# -- Annotations for Pod Disruption Budget
2325
annotations: {}
2326
# @schema additionalProperties:{"type":"string"}
2327
# -- Labels for Pod Disruption Budget
2328
labels: {}
2329
# @schema type:[string, integer, null]
2330
# -- Pod Disruption Budget minAvailable
2331
minAvailable: null
2332
# @schema type:[string, integer, null]
2333
# -- Pod Disruption Budget maxUnavailable
2334
maxUnavailable: null
2335
# @schema type:[string, null]
2336
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
2337
unhealthyPodEvictionPolicy: null
2338
# @schema additionalProperties:true
2339
# -- Node selector for write pods
2340
nodeSelector: {}
2341
# @schema item:object
2342
# -- Topology Spread Constraints for write pods
2343
# The value will be passed through tpl.
2344
topologySpreadConstraints: []
2345
tolerations: []
2346
# -- The default is to deploy all pods in parallel.
2347
podManagementPolicy: "Parallel"
2348
persistence:
2349
# -- Enable volume claims in pod spec
2350
volumeClaimsEnabled: true
2351
# -- Set access modes on the PersistentVolumeClaim
2352
accessModes:
2353
- ReadWriteOnce
2354
# @schema skipProperties:true;additionalProperties:true
2355
# -- Parameters used for the `data` volume when volumeClaimEnabled if false
2356
dataVolumeParameters:
2357
emptyDir: {}
2358
# -- What to do with the volume when the StatefulSet is scaled down.
2359
whenScaled: Delete
2360
# -- What to do with the volumes when the StatefulSet is deleted.
2361
whenDeleted: Delete
2362
# -- Enable StatefulSetAutoDeletePVC feature
2363
enableStatefulSetAutoDeletePVC: false
2364
# -- Size of persistent disk
2365
size: 10Gi
2366
# @schema type:[string, null]
2367
# -- Storage class to be used.
2368
# If defined, storageClassName: <storageClass>.
2369
# If set to "-", storageClassName: "", which disables dynamic provisioning.
2370
# If empty or set to null, no storageClassName spec is
2371
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2372
storageClass: null
2373
# @schema type:[string, null]
2374
# -- Volume attributes class name to be used.
2375
# If empty or set to null, no volumeAttributesClassName spec is set.
2376
# Requires Kubernetes 1.31
2377
volumeAttributesClassName: null
2378
# @schema type:[object, null]
2379
# -- Selector for persistent disk
2380
selector: null
2381
# @schema additionalProperties:{"type":"string"}
2382
# -- Annotations for volume claim
2383
annotations: {}
2384
# @schema additionalProperties:{"type":"string"}
2385
# -- Labels for volume claim
2386
labels: {}
2387
serviceAccount:
2388
# -- Specifies whether a ServiceAccount should be created
2389
create: false
2390
# @schema type:[string, null]
2391
# -- The name of the ServiceAccount to use.
2392
# If not set and create is true, a name is generated using the fullname template
2393
name: null
2394
# @schema item:object;itemProperties:{"name": {"type": "string"}}
2395
# -- Image pull secrets for the service account
2396
imagePullSecrets: []
2397
# @schema additionalProperties:{"type":"string"}
2398
# -- Annotations for the service account
2399
annotations: {}
2400
# @schema additionalProperties:{"type":"string"}
2401
# -- Labels for the service account
2402
labels: {}
2403
# -- Set this toggle to false to opt out of automounting API credentials for the service account
2404
automountServiceAccountToken: true
2405
# -- Configuration for the read pod(s)
2406
read:
2407
# -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2408
enabled: true
2409
# -- Kind of read deployment. StatefulSet and Deployment are supported.
2410
kind: Deployment
2411
# -- Override for the read fullname. By default, this is generated using the fullname template with "-backend"
2412
fullnameOverride: '{{ include "loki.name" . }}-read'
2413
# @schema type:[integer, null]
2414
# -- Number of replicas for the read. Set to null to omit spec.replicas from the workload,
2415
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2416
replicas: 3
2417
# @schema skipProperties:true;additionalProperties:true
2418
# -- UpdateStrategy or Strategy for the read.
2419
strategy:
2420
rollingUpdate:
2421
maxSurge: 0
2422
# @schema type:[string, integer, null]
2423
# -- Pod Disruption Budget maxUnavailable
2424
maxUnavailable: 1
2425
autoscaling:
2426
# -- Enable autoscaling for the read, this is only used if `queryIndex.enabled: true`
2427
enabled: false
2428
# -- Minimum autoscaling replicas for the read
2429
minReplicas: 2
2430
# -- Maximum autoscaling replicas for the read
2431
maxReplicas: 6
2432
# @schema type:[integer, null]
2433
# -- Target CPU utilisation percentage for the read
2434
targetCPUUtilizationPercentage: 60
2435
# @schema type:[integer, null]
2436
# -- Target memory utilisation percentage for the read
2437
targetMemoryUtilizationPercentage: null
2438
# @schema skipProperties:true;additionalProperties:true
2439
# -- Behavior policies while scaling.
2440
behavior: {}
2441
# scaleUp:
2442
# stabilizationWindowSeconds: 300
2443
# policies:
2444
# - type: Pods
2445
# value: 1
2446
# periodSeconds: 60
2447
# scaleDown:
2448
# stabilizationWindowSeconds: 300
2449
# policies:
2450
# - type: Pods
2451
# value: 1
2452
# periodSeconds: 180
2453
kedaAutoscaling:
2454
# -- Enable KEDA autoscaling for the read. Mutually exclusive with autoscaling.enabled
2455
enabled: false
2456
# @schema type:[integer, null]
2457
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2458
pollingInterval: null
2459
# -- Minimum replicas for KEDA autoscaling
2460
minReplicas: 2
2461
# -- Maximum replicas for KEDA autoscaling
2462
maxReplicas: 6
2463
# @schema type:[integer, null]
2464
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2465
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2466
cooldownPeriod: null
2467
# @schema additionalProperties:true
2468
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2469
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2470
fallback: {}
2471
# @schema skipProperties:true;additionalProperties:true
2472
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2473
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2474
behavior: {}
2475
# -- KEDA triggers for the read.
2476
# Ref: https://keda.sh/docs/latest/scalers/
2477
triggers: []
2478
image:
2479
# @schema type:[string, null]
2480
# -- The Docker registry for the read image. Overrides `loki.image.registry`
2481
registry: null
2482
# @schema type:[string, null]
2483
# -- Docker image repository for the read image. Overrides `loki.image.repository`
2484
repository: null
2485
# @schema type:[string, null]
2486
# -- Docker image tag for the read image. Overrides `loki.image.tag`
2487
tag: null
2488
# @schema type:[string, null]
2489
# -- The name of the PriorityClass for read pods
2490
priorityClassName: null
2491
# @schema additionalProperties:{"type":"string"}
2492
# -- Annotations for read deployment
2493
annotations: {}
2494
# @schema additionalProperties:{"type":"string"}
2495
# -- Additional labels for read deployment
2496
labels: {}
2497
# @schema additionalProperties:{"type":"string"}
2498
# -- Annotations for read pods
2499
podAnnotations: {}
2500
# @schema additionalProperties:{"type":"string"}
2501
# -- Additional labels for each `read` pod
2502
podLabels: {}
2503
# @schema additionalProperties:{"type":"string"}
2504
# -- Additional selector labels for each `read` pod
2505
selectorLabels: {}
2506
service:
2507
# @schema additionalProperties:{"type":"string"}
2508
# -- Annotations for read Service
2509
annotations: {}
2510
# @schema additionalProperties:{"type":"string"}
2511
# -- Additional labels for read Service
2512
labels: {}
2513
# -- Service Type for read Service
2514
type: ClusterIP
2515
# -- trafficDistribution for read Service
2516
trafficDistribution: ""
2517
# -- Session affinity for read Service
2518
sessionAffinity: ""
2519
# @schema additionalProperties:true
2520
# -- Session affinity config for read Service
2521
sessionAffinityConfig: {}
2522
# -- ipFamilyPolicy for read Service
2523
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2524
ipFamilyPolicy: ""
2525
# -- ipFamilies for read Service
2526
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2527
ipFamilies: []
2528
# -- Adds the appProtocol field to the read service. This allows read to work with istio protocol selection.
2529
appProtocol:
2530
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2531
grpc: ""
2532
headlessService:
2533
# @schema additionalProperties:{"type":"string"}
2534
# -- Additional annotations for headless SimpleScalable read Service
2535
annotations: {}
2536
# @schema additionalProperties:{"type":"string"}
2537
# -- Additional labels for headless SimpleScalable read Service
2538
labels: {}
2539
# -- Additional CLI args for the read
2540
extraArgs: []
2541
# @schema type:[string, array, null]
2542
# -- init containers to add to the read pods
2543
initContainers: []
2544
# @schema type:[string, array, null]
2545
# -- Containers to add to the read pods
2546
extraContainers: []
2547
# -- Environment variables to add to the read pods
2548
extraEnv: []
2549
# -- Environment variables from secrets or configmaps to add to the read pods
2550
extraEnvFrom: []
2551
# -- Lifecycle for the read container
2552
lifecycle: {}
2553
# -- Volume mounts to add to the read pods
2554
extraVolumeMounts: []
2555
# -- Volumes to add to the read pods
2556
extraVolumes: []
2557
# @schema additionalProperties:true
2558
# -- Resource requests and limits for the read
2559
resources: {}
2560
# -- Container resize policy for the read
2561
# Example:
2562
# resizePolicy:
2563
# - resourceName: cpu
2564
# restartPolicy: NotRequired
2565
# - resourceName: memory
2566
# restartPolicy: RestartContainer
2567
resizePolicy: []
2568
# @schema skipProperties:true;additionalProperties:true
2569
# -- liveness probe settings for read pods. If empty, applies no livenessProbe
2570
livenessProbe: {}
2571
# @schema skipProperties:true;additionalProperties:true
2572
# -- startup probe for the read pods. If empty, applies no startupProbe
2573
startupProbe: {}
2574
# -- Grace period to allow the read to shutdown before it is killed
2575
terminationGracePeriodSeconds: 30
2576
# @schema type:[boolean, null]
2577
# -- Use the host's user namespace in the read pods.
2578
hostUsers: null
2579
# @schema type:[object, null];skipProperties:true;additionalProperties:true
2580
# -- Affinity for read pods.
2581
# @default -- Hard node anti-affinity
2582
# The value will be passed through tpl.
2583
affinity:
2584
podAntiAffinity:
2585
requiredDuringSchedulingIgnoredDuringExecution:
2586
- labelSelector:
2587
matchLabels:
2588
app.kubernetes.io/component: read
2589
app.kubernetes.io/name: '{{ include "loki.name" . }}'
2590
app.kubernetes.io/instance: '{{ .Release.Name }}'
2591
topologyKey: kubernetes.io/hostname
2592
# @schema additionalProperties:true
2593
# -- DNS config for read pods
2594
dnsConfig: {}
2595
# @schema type:[string, integer, null];deprecated:true
2596
# -- Pod Disruption Budget maxUnavailable
2597
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2598
maxUnavailable: 1
2599
podDisruptionBudget:
2600
# -- Enable Pod Disruption Budget for read pods
2601
enabled: true
2602
# @schema additionalProperties:{"type":"string"}
2603
# -- Annotations for read Pod Disruption Budget
2604
annotations: {}
2605
# @schema additionalProperties:{"type":"string"}
2606
# -- Labels for read Pod Disruption Budget
2607
labels: {}
2608
# @schema type:[string, integer, null]
2609
# -- Pod Disruption Budget minAvailable
2610
minAvailable: null
2611
# @schema type:[string, integer, null]
2612
# -- Pod Disruption Budget maxUnavailable
2613
maxUnavailable: null
2614
# @schema type:[string, null]
2615
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
2616
unhealthyPodEvictionPolicy: null
2617
# @schema additionalProperties:true
2618
# -- Node selector for read pods
2619
nodeSelector: {}
2620
# @schema item:object
2621
# -- Topology Spread Constraints for read pods
2622
# The value will be passed through tpl.
2623
topologySpreadConstraints: []
2624
tolerations: []
2625
# -- The default is to deploy all pods in parallel.
2626
serviceAccount:
2627
# -- Specifies whether a ServiceAccount should be created
2628
create: false
2629
# @schema type:[string, null]
2630
# -- The name of the ServiceAccount to use.
2631
# If not set and create is true, a name is generated using the fullname template
2632
name: null
2633
# @schema item:object;itemProperties:{"name": {"type": "string"}}
2634
# -- Image pull secrets for the service account
2635
imagePullSecrets: []
2636
# @schema additionalProperties:{"type":"string"}
2637
# -- Annotations for the service account
2638
annotations: {}
2639
# @schema additionalProperties:{"type":"string"}
2640
# -- Labels for the service account
2641
labels: {}
2642
# -- Set this toggle to false to opt out of automounting API credentials for the service account
2643
automountServiceAccountToken: true
2644
# -- Configuration for the backend pod(s)
2645
backend:
2646
# -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2647
enabled: true
2648
# -- Kind of backend workload. StatefulSet and Deployment are supported.
2649
kind: StatefulSet
2650
# -- Override for the backend fullname. By default, this is generated using the fullname template with "-backend"
2651
fullnameOverride: '{{ include "loki.name" . }}-backend'
2652
# -- EXPERIMENTAL: Enable creating a Job to recreate the backend StatefulSet when the compactor configuration is changed.
2653
## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2654
statefulSetRecreateJob:
2655
enabled: false
2656
# @schema type:[integer, null]
2657
# -- Number of replicas for the backend. Set to null to omit spec.replicas from the workload,
2658
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2659
replicas: 3
2660
# @schema skipProperties:true;additionalProperties:true
2661
# -- UpdateStrategy or Strategy for the backend.
2662
strategy:
2663
rollingUpdate:
2664
partition: 0
2665
# -- Whether to enable the rules sidecar
2666
sidecar: true
2667
# -- Set this toggle to false to opt out of automounting API credentials for the service account
2668
automountServiceAccountToken: true
2669
autoscaling:
2670
# -- Enable autoscaling for the backend.
2671
enabled: false
2672
# -- Minimum autoscaling replicas for the backend.
2673
minReplicas: 3
2674
# -- Maximum autoscaling replicas for the backend.
2675
maxReplicas: 6
2676
# @schema type:[integer, null]
2677
# -- Target CPU utilization percentage for the backend.
2678
targetCPUUtilizationPercentage: 60
2679
# @schema type:[integer, null]
2680
# -- Target memory utilization percentage for the backend.
2681
targetMemoryUtilizationPercentage: null
2682
# @schema skipProperties:true;additionalProperties:true
2683
# -- Behavior policies while scaling.
2684
behavior: {}
2685
# scaleUp:
2686
# stabilizationWindowSeconds: 300
2687
# policies:
2688
# - type: Pods
2689
# value: 1
2690
# periodSeconds: 60
2691
# scaleDown:
2692
# stabilizationWindowSeconds: 300
2693
# policies:
2694
# - type: Pods
2695
# value: 1
2696
# periodSeconds: 180
2697
kedaAutoscaling:
2698
# -- Enable KEDA autoscaling for the backend. Mutually exclusive with autoscaling.enabled
2699
enabled: false
2700
# @schema type:[integer, null]
2701
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2702
pollingInterval: null
2703
# -- Minimum replicas for KEDA autoscaling
2704
minReplicas: 3
2705
# -- Maximum replicas for KEDA autoscaling
2706
maxReplicas: 6
2707
# @schema type:[integer, null]
2708
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2709
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2710
cooldownPeriod: null
2711
# @schema additionalProperties:true
2712
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2713
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2714
fallback: {}
2715
# @schema skipProperties:true;additionalProperties:true
2716
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2717
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2718
behavior: {}
2719
# -- KEDA triggers for the backend.
2720
# Ref: https://keda.sh/docs/latest/scalers/
2721
triggers: []
2722
image:
2723
# @schema type:[string, null]
2724
# -- The Docker registry for the backend image. Overrides `loki.image.registry`
2725
registry: null
2726
# @schema type:[string, null]
2727
# -- Docker image repository for the backend image. Overrides `loki.image.repository`
2728
repository: null
2729
# @schema type:[string, null]
2730
# -- Docker image tag for the backend image. Overrides `loki.image.tag`
2731
tag: null
2732
# @schema type:[string, null]
2733
# -- The name of the PriorityClass for backend pods
2734
priorityClassName: null
2735
# @schema additionalProperties:{"type":"string"}
2736
# -- Annotations for backend StatefulSet
2737
annotations: {}
2738
# @schema additionalProperties:{"type":"string"}
2739
# -- Additional labels for backend StatefulSet
2740
labels: {}
2741
# @schema additionalProperties:{"type":"string"}
2742
# -- Annotations for backend pods
2743
podAnnotations: {}
2744
# @schema additionalProperties:{"type":"string"}
2745
# -- Additional labels for each `backend` pod
2746
podLabels: {}
2747
# @schema additionalProperties:{"type":"string"}
2748
# -- Additional selector labels for each `backend` pod
2749
selectorLabels: {}
2750
service:
2751
# @schema additionalProperties:{"type":"string"}
2752
# -- Annotations for backend Service
2753
annotations: {}
2754
# @schema additionalProperties:{"type":"string"}
2755
# -- Additional labels for backend Service
2756
labels: {}
2757
# -- Service type for backend Service
2758
type: ClusterIP
2759
# -- trafficDistribution for backend Service
2760
trafficDistribution: ""
2761
# -- Session affinity for backend Service
2762
sessionAffinity: ""
2763
# @schema additionalProperties:true
2764
# -- Session affinity config for backend Service
2765
sessionAffinityConfig: {}
2766
# -- ipFamilyPolicy for backend Service
2767
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2768
ipFamilyPolicy: ""
2769
# -- ipFamilies for backend Service
2770
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2771
ipFamilies: []
2772
# -- Adds the appProtocol field to the backend service. This allows backend to work with istio protocol selection.
2773
appProtocol:
2774
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2775
grpc: ""
2776
headlessService:
2777
# @schema additionalProperties:{"type":"string"}
2778
# -- Additional annotations for headless Distributed compactor Service
2779
annotations: {}
2780
# @schema additionalProperties:{"type":"string"}
2781
# -- Additional labels for headless Distributed compactor Service
2782
labels: {}
2783
# -- Additional CLI args for the backend
2784
extraArgs: []
2785
# -- Environment variables to add to the backend pods
2786
extraEnv: []
2787
# -- Environment variables from secrets or configmaps to add to the backend pods
2788
extraEnvFrom: []
2789
# @schema type:[string, array, null]
2790
# -- Init containers to add to the backend pods
2791
initContainers: []
2792
# @schema type:[string, array, null]
2793
# -- Containers to add to the backend pods
2794
extraContainers: []
2795
# -- Volume mounts to add to the backend pods
2796
extraVolumeMounts: []
2797
# -- Volumes to add to the backend pods
2798
extraVolumes: []
2799
# @schema additionalProperties:true
2800
# -- Resource requests and limits for the backend
2801
resources: {}
2802
# -- Container resize policy for the backend
2803
# Example:
2804
# resizePolicy:
2805
# - resourceName: cpu
2806
# restartPolicy: NotRequired
2807
# - resourceName: memory
2808
# restartPolicy: RestartContainer
2809
resizePolicy: []
2810
# -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingester,
2811
# this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring
2812
# all data and to successfully leave the member ring on shutdown.
2813
terminationGracePeriodSeconds: 300
2814
# @schema type:[boolean, null]
2815
# -- Use the host's user namespace in the backend pods.
2816
hostUsers: null
2817
# @schema type:[object, null];skipProperties:true;additionalProperties:true
2818
# -- Affinity for backend pods.
2819
# @default -- Hard node anti-affinity
2820
# The value will be passed through tpl.
2821
affinity:
2822
podAntiAffinity:
2823
requiredDuringSchedulingIgnoredDuringExecution:
2824
- labelSelector:
2825
matchLabels:
2826
app.kubernetes.io/component: backend
2827
app.kubernetes.io/name: '{{ include "loki.name" . }}'
2828
app.kubernetes.io/instance: '{{ .Release.Name }}'
2829
topologyKey: kubernetes.io/hostname
2830
# @schema additionalProperties:true
2831
# -- DNS config for backend pods
2832
dnsConfig: {}
2833
# @schema type:[string, integer, null];deprecated:true
2834
# -- Pod Disruption Budget maxUnavailable
2835
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2836
maxUnavailable: 1
2837
podDisruptionBudget:
2838
# -- Enable Pod Disruption Budget
2839
enabled: true
2840
# @schema additionalProperties:{"type":"string"}
2841
# -- Annotations for Pod Disruption Budget
2842
annotations: {}
2843
# @schema additionalProperties:{"type":"string"}
2844
# -- Labels for Pod Disruption Budget
2845
labels: {}
2846
# @schema type:[string, integer, null]
2847
# -- Pod Disruption Budget minAvailable
2848
minAvailable: null
2849
# @schema type:[string, integer, null]
2850
# -- Pod Disruption Budget maxUnavailable
2851
maxUnavailable: null
2852
# @schema type:[string, null]
2853
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
2854
unhealthyPodEvictionPolicy: null
2855
# @schema additionalProperties:true
2856
# -- Node selector for backend pods
2857
nodeSelector: {}
2858
# @schema item:object
2859
# -- Topology Spread Constraints for backend pods
2860
# The value will be passed through tpl.
2861
topologySpreadConstraints: []
2862
tolerations: []
2863
# -- The default is to deploy all pods in parallel.
2864
podManagementPolicy: "Parallel"
2865
persistence:
2866
# -- Enable volume claims in pod spec
2867
enabled: false
2868
# -- Enable volume claims in pod spec. Deprecated in favor of `persistence.enabled`.
2869
volumeClaimsEnabled: true
2870
# -- Set access modes on the PersistentVolumeClaim
2871
accessModes:
2872
- ReadWriteOnce
2873
# @schema skipProperties:true;additionalProperties:true
2874
# -- Parameters used for the `data` volume when volumeClaimEnabled if false
2875
dataVolumeParameters:
2876
emptyDir: {}
2877
# -- What to do with the volume when the StatefulSet is scaled down.
2878
whenScaled: Delete
2879
# -- What to do with the volumes when the StatefulSet is deleted.
2880
whenDeleted: Delete
2881
# -- Enable StatefulSetAutoDeletePVC feature
2882
enableStatefulSetAutoDeletePVC: true
2883
# -- Size of persistent disk
2884
size: 10Gi
2885
# @schema type:[string, null]
2886
# -- Storage class to be used.
2887
# If defined, storageClassName: <storageClass>.
2888
# If set to "-", storageClassName: "", which disables dynamic provisioning.
2889
# If empty or set to null, no storageClassName spec is
2890
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2891
storageClass: null
2892
# @schema type:[string, null]
2893
# -- Volume attributes class name to be used.
2894
# If empty or set to null, no volumeAttributesClassName spec is set.
2895
# Requires Kubernetes 1.31
2896
volumeAttributesClassName: null
2897
# @schema type:[object, null]
2898
# -- Selector for persistent disk
2899
selector: null
2900
# @schema additionalProperties:{"type":"string"}
2901
# -- Annotations for volume claim
2902
annotations: {}
2903
# @schema additionalProperties:{"type":"string"}
2904
# -- Labels for volume claim
2905
labels: {}
2906
serviceAccount:
2907
# -- Specifies whether a ServiceAccount should be created
2908
create: false
2909
# @schema type:[string, null]
2910
# -- The name of the ServiceAccount to use.
2911
# If not set and create is true, a name is generated using the fullname template
2912
name: null
2913
# @schema item:object;itemProperties:{"name": {"type": "string"}}
2914
# -- Image pull secrets for the service account
2915
imagePullSecrets: []
2916
# @schema additionalProperties:{"type":"string"}
2917
# -- Annotations for the service account
2918
annotations: {}
2919
# @schema additionalProperties:{"type":"string"}
2920
# -- Labels for the service account
2921
labels: {}
2922
# -- Set this toggle to false to opt out of automounting API credentials for the service account
2923
automountServiceAccountToken: true
2924
######################################################################################################################
2925
#
2926
# Microservices Mode
2927
#
2928
# For large Loki deployments ingesting more than 1 TB/day
2929
#
2930
######################################################################################################################
2931
2932
# -- Configuration for the ingester
2933
ingester:
2934
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
2935
enabled: true
2936
# -- Kind of compactor deployment. StatefulSet and Deployment are supported.
2937
kind: StatefulSet
2938
# -- EXPERIMENTAL: Enable creating a Job to recreate the ingester StatefulSet
2939
## Only applicable if `ingester.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2940
statefulSetRecreateJob:
2941
enabled: false
2942
# @schema skipProperties:true;additionalProperties:true
2943
# -- UpdateStrategy or Strategy for the ingester.
2944
strategy:
2945
type: RollingUpdate
2946
# -- PodManagementPolicy for the ingester StatefulSet. Only applicable if `compactor.kind` is StatefulSet.
2947
## OrderedReady and Parallel are supported.
2948
podManagementPolicy: Parallel
2949
# @schema type:[integer, null]
2950
# -- Number of replicas for the ingester, when zoneAwareReplication.enabled is true, the total
2951
# number of replicas will match this value with each zone having 1/3rd of the total replicas.
2952
# Set to null to omit spec.replicas from the StatefulSet, allowing an external controller
2953
# (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2954
replicas: 0
2955
# @schema additionalProperties:true
2956
# -- DNSConfig for ingester pods
2957
dnsConfig: {}
2958
# -- hostAliases to add
2959
hostAliases: []
2960
# @schema type:[boolean, null]
2961
# - ip: 1.2.3.4
2962
# hostnames:
2963
# - domain.tld
2964
# -- Use the host's user namespace in the ingester
2965
hostUsers: null
2966
autoscaling:
2967
# -- Enable autoscaling for the ingester
2968
enabled: false
2969
# -- Minimum autoscaling replicas for the ingester
2970
minReplicas: 1
2971
# -- Maximum autoscaling replicas for the ingester
2972
maxReplicas: 3
2973
# @schema type:[integer, null]
2974
# -- Target CPU utilisation percentage for the ingester
2975
targetCPUUtilizationPercentage: 60
2976
# @schema type:[integer, null]
2977
# -- Target memory utilisation percentage for the ingester
2978
targetMemoryUtilizationPercentage: null
2979
# -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2980
customMetrics: []
2981
# - type: Pods
2982
# pods:
2983
# metric:
2984
# name: loki_lines_total
2985
# target:
2986
# type: AverageValue
2987
# averageValue: 10k
2988
# @schema skipProperties:true;additionalProperties:true
2989
# -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
2990
behavior:
2991
# -- Enable autoscaling behaviours
2992
enabled: false
2993
# -- define scale down policies, must conform to HPAScalingRules
2994
scaleDown: {}
2995
# -- define scale up policies, must conform to HPAScalingRules
2996
scaleUp: {}
2997
kedaAutoscaling:
2998
# -- Enable KEDA autoscaling for the ingester. Mutually exclusive with autoscaling.enabled
2999
enabled: false
3000
# @schema type:[integer, null]
3001
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3002
pollingInterval: null
3003
# -- Minimum replicas for KEDA autoscaling
3004
minReplicas: 1
3005
# -- Maximum replicas for KEDA autoscaling
3006
maxReplicas: 3
3007
# @schema type:[integer, null]
3008
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3009
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3010
cooldownPeriod: null
3011
# @schema additionalProperties:true
3012
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3013
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3014
fallback: {}
3015
# @schema skipProperties:true;additionalProperties:true
3016
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3017
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3018
behavior: {}
3019
# -- KEDA triggers for the ingester.
3020
# Ref: https://keda.sh/docs/latest/scalers/
3021
triggers: []
3022
image:
3023
# @schema type:[string, null]
3024
# -- The Docker registry for the ingester image. Overrides `loki.image.registry`
3025
registry: null
3026
# @schema type:[string, null]
3027
# -- Docker image repository for the ingester image. Overrides `loki.image.repository`
3028
repository: null
3029
# @schema type:[string, null]
3030
# -- Docker image tag for the ingester image. Overrides `loki.image.tag`
3031
tag: null
3032
# @schema type:[string, null]
3033
# -- Command to execute instead of defined in Docker image
3034
command: null
3035
# @schema additionalProperties:{"type":"string"}
3036
# -- Labels for ingester
3037
labels: {}
3038
# @schema additionalProperties:{"type":"string"}
3039
# -- Annotations for ingester
3040
annotations: {}
3041
# @schema additionalProperties:{"type":"string"}
3042
# -- Labels for ingester pods. Keys used by the workload selectors
3043
# (`app.kubernetes.io/name`, `app.kubernetes.io/instance`, `app.kubernetes.io/component`
3044
# and, with zoneAwareReplication, `name` and `rollout-group`) are reserved and
3045
# ignored here: the latter are also used by the per-zone headless Services and
3046
# grafana/rollout-operator.
3047
podLabels: {}
3048
# @schema additionalProperties:{"type":"string"}
3049
# -- Annotations for ingester pods
3050
podAnnotations: {}
3051
# @schema type:[string, null]
3052
# -- The name of the PriorityClass for ingester pods
3053
priorityClassName: null
3054
# @schema additionalProperties:{"type":"string"};deprecated:true
3055
# -- Labels for ingester service
3056
# @deprecated -- This option is deprecated in favor of `ingester.service.labels`
3057
serviceLabels: {}
3058
# @schema additionalProperties:{"type":"string"};deprecated:true
3059
# -- Annotations for ingester service
3060
# @deprecated -- This option is deprecated in favor of `ingester.service.annotations`
3061
serviceAnnotations: {}
3062
# @schema type:string;deprecated:true
3063
# -- Service type for ingester service
3064
# @deprecated -- This option is deprecated in favor of `ingester.service.type`
3065
serviceType: "ClusterIP"
3066
service:
3067
# @schema additionalProperties:{"type":"string"}
3068
# -- Annotations for ingester Service
3069
annotations: {}
3070
# @schema additionalProperties:{"type":"string"}
3071
# -- Additional labels for ingester Service
3072
labels: {}
3073
# -- Service Type for ingester Service
3074
type: "ClusterIP"
3075
# -- trafficDistribution for ingester Service
3076
trafficDistribution: ""
3077
# -- Session affinity for ingester Service
3078
sessionAffinity: ""
3079
# @schema additionalProperties:true
3080
# -- Session affinity config for ingester Service
3081
sessionAffinityConfig: {}
3082
# -- ipFamilyPolicy for ingester Service
3083
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3084
ipFamilyPolicy: ""
3085
# -- ipFamilies for ingester Service
3086
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3087
ipFamilies: []
3088
# -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
3089
appProtocol:
3090
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3091
grpc: ""
3092
headlessService:
3093
# @schema additionalProperties:{"type":"string"}
3094
# -- Additional annotations for headless Distributed ingester Service
3095
annotations: {}
3096
# @schema additionalProperties:{"type":"string"}
3097
# -- Additional labels for headless Distributed ingester Service
3098
labels: {}
3099
# -- Additional CLI args for the ingester
3100
extraArgs: []
3101
# -- Environment variables to add to the ingester pods
3102
extraEnv: []
3103
# -- Environment variables from secrets or configmaps to add to the ingester pods
3104
extraEnvFrom: []
3105
# -- Volume mounts to add to the ingester pods
3106
extraVolumeMounts: []
3107
# -- Volumes to add to the ingester pods
3108
extraVolumes: []
3109
# @schema additionalProperties:true
3110
# -- Resource requests and limits for the ingester
3111
resources: {}
3112
# -- Container resize policy for the ingester
3113
# Example:
3114
# resizePolicy:
3115
# - resourceName: cpu
3116
# restartPolicy: NotRequired
3117
# - resourceName: memory
3118
# restartPolicy: RestartContainer
3119
resizePolicy: []
3120
# @schema type:[string, array, null]
3121
# -- Containers to add to the ingester pods
3122
extraContainers: []
3123
# @schema type:[string, array, null]
3124
# -- Init containers to add to the ingester pods
3125
initContainers: []
3126
# -- Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor,
3127
# this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring
3128
# all data and to successfully leave the member ring on shutdown.
3129
terminationGracePeriodSeconds: 300
3130
# -- Lifecycle for the ingester container
3131
lifecycle: {}
3132
# @schema item:object
3133
# -- topologySpread for ingester pods.
3134
# @default -- Defaults to allow skew no more than 1 node
3135
# The value will be passed through tpl.
3136
topologySpreadConstraints:
3137
- maxSkew: 1
3138
topologyKey: kubernetes.io/hostname
3139
whenUnsatisfiable: ScheduleAnyway
3140
labelSelector:
3141
matchLabels:
3142
app.kubernetes.io/component: ingester
3143
app.kubernetes.io/name: '{{ include "loki.name" . }}'
3144
app.kubernetes.io/instance: '{{ .Release.Name }}'
3145
# @schema type:[object, null];skipProperties:true;additionalProperties:true
3146
# -- Affinity for ingester pods. Ignored if zoneAwareReplication is enabled.
3147
# @default -- Hard node anti-affinity
3148
# The value will be passed through tpl.
3149
affinity:
3150
podAntiAffinity:
3151
requiredDuringSchedulingIgnoredDuringExecution:
3152
- labelSelector:
3153
matchLabels:
3154
app.kubernetes.io/component: ingester
3155
app.kubernetes.io/name: '{{ include "loki.name" . }}'
3156
app.kubernetes.io/instance: '{{ .Release.Name }}'
3157
topologyKey: kubernetes.io/hostname
3158
# @schema type:[string, integer, null];deprecated:true
3159
# -- Pod Disruption Budget maxUnavailable
3160
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3161
maxUnavailable: 1
3162
podDisruptionBudget:
3163
# -- Enable Pod Disruption Budget
3164
enabled: true
3165
# @schema additionalProperties:{"type":"string"}
3166
# -- Annotations for Pod Disruption Budget
3167
annotations: {}
3168
# @schema additionalProperties:{"type":"string"}
3169
# -- Labels for Pod Disruption Budget
3170
labels: {}
3171
# @schema type:[string, integer, null]
3172
# -- Pod Disruption Budget minAvailable
3173
minAvailable: null
3174
# @schema type:[string, integer, null]
3175
# -- Pod Disruption Budget maxUnavailable
3176
maxUnavailable: null
3177
# @schema type:[string, null]
3178
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
3179
unhealthyPodEvictionPolicy: null
3180
# @schema additionalProperties:true
3181
# -- Node selector for ingester pods
3182
nodeSelector: {}
3183
# -- Tolerations for ingester pods
3184
tolerations: []
3185
# @schema skipProperties:true;additionalProperties:true
3186
# -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
3187
readinessProbe: {}
3188
# @schema skipProperties:true;additionalProperties:true
3189
# -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
3190
livenessProbe: {}
3191
# @schema skipProperties:true;additionalProperties:true
3192
# -- startup probe settings for ingester pods. If empty use `loki.startupProbe`
3193
startupProbe: {}
3194
# @schema skipProperties:true;additionalProperties:true
3195
# -- UpdateStrategy for the ingester StatefulSets.
3196
updateStrategy:
3197
# -- One of 'OnDelete' or 'RollingUpdate'
3198
type: RollingUpdate
3199
# -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
3200
# rollingUpdate:
3201
# partition: 0
3202
persistence:
3203
# -- Enable creating PVCs which is required when using boltdb-shipper
3204
enabled: false
3205
# -- Use emptyDir with ramdisk for storage. **Please note that all data in ingester will be lost on pod restart**
3206
inMemory: false
3207
# -- List of the ingester PVCs
3208
# @notationType -- list
3209
claims:
3210
- name: data
3211
# -- Set access modes on the PersistentVolumeClaim
3212
accessModes:
3213
- ReadWriteOnce
3214
size: 10Gi
3215
# @schema type:[string, null]
3216
# -- Storage class to be used.
3217
# If defined, storageClassName: <storageClass>.
3218
# If set to "-", storageClassName: "", which disables dynamic provisioning.
3219
# If empty or set to null, no storageClassName spec is
3220
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3221
storageClass: null
3222
# @schema type:[string, null]
3223
# -- Volume attributes class name to be used.
3224
# If empty or set to null, no volumeAttributesClassName spec is set.
3225
# Requires Kubernetes 1.31
3226
volumeAttributesClassName: null
3227
# - name: wal
3228
# size: 150Gi
3229
# -- Enable StatefulSetAutoDeletePVC feature
3230
enableStatefulSetAutoDeletePVC: false
3231
whenDeleted: Retain
3232
whenScaled: Retain
3233
serviceAccount:
3234
# -- Specifies whether a ServiceAccount should be created
3235
create: false
3236
# @schema type:[string, null]
3237
# -- The name of the ServiceAccount to use.
3238
# If not set and create is true, a name is generated using the fullname template
3239
name: null
3240
# @schema item:object;itemProperties:{"name": {"type": "string"}}
3241
# -- Image pull secrets for the service account
3242
imagePullSecrets: []
3243
# @schema additionalProperties:{"type":"string"}
3244
# -- Annotations for the service account
3245
annotations: {}
3246
# @schema additionalProperties:{"type":"string"}
3247
# -- Labels for the service account
3248
labels: {}
3249
# -- Set this toggle to false to opt out of automounting API credentials for the service account
3250
automountServiceAccountToken: true
3251
# @schema additionalProperties:true;deprecated:true
3252
# -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
3253
# @deprecated -- This option is deprecated in favor of `ingester.service.appProtocol`
3254
appProtocol:
3255
# @schema type:string;deprecated:true
3256
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3257
# @deprecated -- This option is deprecated in favor of `ingester.service.appProtocol.grpc`
3258
grpc: ""
3259
# -- trafficDistribution for ingester service
3260
trafficDistribution: ""
3261
# -- Enabling zone awareness on ingesters will create 3 statefulests where all writes will send a replica to each zone.
3262
# This is primarily intended to accelerate rollout operations by allowing for multiple ingesters within a single
3263
# zone to be shutdown and restart simultaneously (the remaining 2 zones will be guaranteed to have at least one copy
3264
# of the data).
3265
# Note: This can be used to run Loki over multiple cloud provider availability zones however this is not currently
3266
# recommended as Loki is not optimized for this and cross zone network traffic costs can become extremely high
3267
# extremely quickly. Even with zone awareness enabled, it is recommended to run Loki in a single availability zone.
3268
zoneAwareReplication:
3269
# -- Enable zone awareness.
3270
enabled: true
3271
# -- The percent of replicas in each zone that will be restarted at once. In a value of 0-100
3272
maxUnavailablePct: 33
3273
# -- zoneA configuration
3274
zoneA:
3275
# @schema type:[object, null]
3276
# @schema additionalProperties:true
3277
# -- optionally define a node selector for this zone
3278
nodeSelector: null
3279
# -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3280
# The value will be passed through tpl.
3281
extraAffinity: {}
3282
# @schema additionalProperties:{"type":"string"}
3283
# -- Specific annotations to add to zone A statefulset
3284
annotations: {}
3285
# @schema additionalProperties:{"type":"string"}
3286
# -- Specific annotations to add to zone A pods
3287
podAnnotations: {}
3288
# -- Persistence overrides applied only to the zone A StatefulSet.
3289
persistence:
3290
# @schema type:[string, null]
3291
# -- Storage class to use for every PVC in zone A. Overrides the `storageClass` of each entry in
3292
# `ingester.persistence.claims` for this zone only. Use this when you have one StorageClass per
3293
# availability zone (for example a topology-pinned EBS/PD StorageClass). If null, the
3294
# claim-level `storageClass` is used as before, preserving existing behavior.
3295
# If set to "-", `storageClassName: ""` is rendered, which disables dynamic provisioning.
3296
storageClass: null
3297
zoneB:
3298
# @schema type:[object, null]
3299
# @schema additionalProperties:true
3300
# -- optionally define a node selector for this zone
3301
nodeSelector: null
3302
# -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3303
# The value will be passed through tpl.
3304
extraAffinity: {}
3305
# @schema additionalProperties:{"type":"string"}
3306
# -- Specific annotations to add to zone B statefulset
3307
annotations: {}
3308
# @schema additionalProperties:{"type":"string"}
3309
# -- Specific annotations to add to zone B pods
3310
podAnnotations: {}
3311
# -- Persistence overrides applied only to the zone B StatefulSet.
3312
persistence:
3313
# @schema type:[string, null]
3314
# -- Storage class to use for every PVC in zone B. See
3315
# `ingester.zoneAwareReplication.zoneA.persistence.storageClass` for details. If null, the
3316
# claim-level `storageClass` is used as before.
3317
storageClass: null
3318
zoneC:
3319
# @schema type:[object, null]
3320
# @schema additionalProperties:true
3321
# -- optionally define a node selector for this zone
3322
nodeSelector: null
3323
# -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3324
# The value will be passed through tpl.
3325
extraAffinity: {}
3326
# @schema additionalProperties:{"type":"string"}
3327
# -- Specific annotations to add to zone C statefulset
3328
annotations: {}
3329
# @schema additionalProperties:{"type":"string"}
3330
# -- Specific annotations to add to zone C pods
3331
podAnnotations: {}
3332
# -- Persistence overrides applied only to the zone C StatefulSet.
3333
persistence:
3334
# @schema type:[string, null]
3335
# -- Storage class to use for every PVC in zone C. See
3336
# `ingester.zoneAwareReplication.zoneA.persistence.storageClass` for details. If null, the
3337
# claim-level `storageClass` is used as before.
3338
storageClass: null
3339
# -- The migration block allows migrating non zone aware ingesters to zone aware ingesters.
3340
migration:
3341
enabled: false
3342
excludeDefaultZone: false
3343
readPath: false
3344
writePath: false
3345
# @schema type:[string, null]
3346
# optionally allow adding arbitrary prefix to the ingester rollout-group label
3347
rolloutGroupPrefix: null
3348
# optionally allow adding 'loki-' prefix to ingester name label
3349
addIngesterNamePrefix: false
3350
# -- Configuration for the distributor
3351
distributor:
3352
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3353
enabled: true
3354
# @schema type:[integer, null]
3355
# -- Number of replicas for the distributor. Set to null to omit spec.replicas from the workload,
3356
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3357
replicas: 0
3358
# -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3359
kind: Deployment
3360
# @schema skipProperties:true;additionalProperties:true
3361
# -- UpdateStrategy or Strategy for the distributor.
3362
strategy:
3363
rollingUpdate:
3364
maxSurge: 0
3365
# @schema type:[string, integer, null]
3366
# -- Pod Disruption Budget maxUnavailable
3367
maxUnavailable: 1
3368
# -- hostAliases to add
3369
hostAliases: []
3370
# @schema type:[boolean, null]
3371
# - ip: 1.2.3.4
3372
# hostnames:
3373
# - domain.tld
3374
# -- Use the host's user namespace in the distributor
3375
hostUsers: null
3376
# @schema additionalProperties:true
3377
# -- DNSConfig for distributor pods
3378
dnsConfig: {}
3379
autoscaling:
3380
# -- Enable autoscaling for the distributor
3381
enabled: false
3382
# -- Minimum autoscaling replicas for the distributor
3383
minReplicas: 1
3384
# -- Maximum autoscaling replicas for the distributor
3385
maxReplicas: 3
3386
# @schema type:[integer, null]
3387
# -- Target CPU utilisation percentage for the distributor
3388
targetCPUUtilizationPercentage: 60
3389
# @schema type:[integer, null]
3390
# -- Target memory utilisation percentage for the distributor
3391
targetMemoryUtilizationPercentage: null
3392
# -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3393
customMetrics: []
3394
# - type: Pods
3395
# pods:
3396
# metric:
3397
# name: loki_lines_total
3398
# target:
3399
# type: AverageValue
3400
# averageValue: 10k
3401
# @schema skipProperties:true;additionalProperties:true
3402
# -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3403
behavior:
3404
# -- Enable autoscaling behaviours
3405
enabled: false
3406
# -- define scale down policies, must conform to HPAScalingRules
3407
scaleDown: {}
3408
# -- define scale up policies, must conform to HPAScalingRules
3409
scaleUp: {}
3410
kedaAutoscaling:
3411
# -- Enable KEDA autoscaling for the distributor. Mutually exclusive with autoscaling.enabled
3412
enabled: false
3413
# @schema type:[integer, null]
3414
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3415
pollingInterval: null
3416
# -- Minimum replicas for KEDA autoscaling
3417
minReplicas: 1
3418
# -- Maximum replicas for KEDA autoscaling
3419
maxReplicas: 3
3420
# @schema type:[integer, null]
3421
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3422
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3423
cooldownPeriod: null
3424
# @schema additionalProperties:true
3425
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3426
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3427
fallback: {}
3428
# @schema skipProperties:true;additionalProperties:true
3429
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3430
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3431
behavior: {}
3432
# -- KEDA triggers for the distributor.
3433
# Ref: https://keda.sh/docs/latest/scalers/
3434
triggers: []
3435
image:
3436
# @schema type:[string, null]
3437
# -- The Docker registry for the distributor image. Overrides `loki.image.registry`
3438
registry: null
3439
# @schema type:[string, null]
3440
# -- Docker image repository for the distributor image. Overrides `loki.image.repository`
3441
repository: null
3442
# @schema type:[string, null]
3443
# -- Docker image tag for the distributor image. Overrides `loki.image.tag`
3444
tag: null
3445
# @schema type:[string, null]
3446
# -- Command to execute instead of defined in Docker image
3447
command: null
3448
# @schema type:[string, null]
3449
# -- The name of the PriorityClass for distributor pods
3450
priorityClassName: null
3451
# @schema additionalProperties:{"type":"string"}
3452
# -- Labels for distributor
3453
labels: {}
3454
# @schema additionalProperties:{"type":"string"}
3455
# -- Annotations for distributor
3456
annotations: {}
3457
# @schema additionalProperties:{"type":"string"}
3458
# -- Labels for distributor pods
3459
podLabels: {}
3460
# @schema additionalProperties:{"type":"string"}
3461
# -- Annotations for distributor pods
3462
podAnnotations: {}
3463
# @schema additionalProperties:{"type":"string"};deprecated:true
3464
# -- Labels for distributor service
3465
# @deprecated -- This option is deprecated in favor of `ingester.service.labels`
3466
serviceLabels: {}
3467
# @schema additionalProperties:{"type":"string"};deprecated:true
3468
# -- Annotations for distributor service
3469
# @deprecated -- This option is deprecated in favor of `ingester.service.annotations`
3470
serviceAnnotations: {}
3471
# @schema type:string;deprecated:true
3472
# -- Service type for distributor service
3473
# @deprecated -- This option is deprecated in favor of `ingester.service.type`
3474
serviceType: "ClusterIP"
3475
service:
3476
# @schema additionalProperties:{"type":"string"}
3477
# -- Annotations for distributor Service
3478
annotations: {}
3479
# @schema additionalProperties:{"type":"string"}
3480
# -- Additional labels for distributor Service
3481
labels: {}
3482
# -- Service Type for distributor Service
3483
type: "ClusterIP"
3484
# -- trafficDistribution for distributor Service
3485
trafficDistribution: ""
3486
# -- Session affinity for distributor Service
3487
sessionAffinity: ""
3488
# @schema additionalProperties:true
3489
# -- Session affinity config for distributor Service
3490
sessionAffinityConfig: {}
3491
# -- ipFamilyPolicy for distributor Service
3492
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3493
ipFamilyPolicy: ""
3494
# -- ipFamilies for distributor Service
3495
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3496
ipFamilies: []
3497
# -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
3498
appProtocol:
3499
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3500
grpc: ""
3501
headlessService:
3502
# @schema additionalProperties:{"type":"string"}
3503
# -- Additional annotations for headless Distributed compactor Service
3504
annotations: {}
3505
# @schema additionalProperties:{"type":"string"}
3506
# -- Additional labels for headless Distributed compactor Service
3507
labels: {}
3508
# -- Additional CLI args for the distributor
3509
extraArgs: []
3510
# -- Environment variables to add to the distributor pods
3511
extraEnv: []
3512
# -- Environment variables from secrets or configmaps to add to the distributor pods
3513
extraEnvFrom: []
3514
# -- Volume mounts to add to the distributor pods
3515
extraVolumeMounts: []
3516
# -- Volumes to add to the distributor pods
3517
extraVolumes: []
3518
# @schema additionalProperties:true
3519
# -- Resource requests and limits for the distributor
3520
resources: {}
3521
# -- Container resize policy for the distributor
3522
# Example:
3523
# resizePolicy:
3524
# - resourceName: cpu
3525
# restartPolicy: NotRequired
3526
# - resourceName: memory
3527
# restartPolicy: RestartContainer
3528
resizePolicy: []
3529
# @schema type:[string, array, null]
3530
# -- Init containers to add to the distributor pods
3531
initContainers: []
3532
# @schema type:[string, array, null]
3533
# -- Containers to add to the distributor pods
3534
extraContainers: []
3535
# @schema type:[string, null]
3536
# -- On SIGTERM, report 503 on /ready and wait this long before shutdown so the LB drains the pod before connections are cut.
3537
# "0s" (default) disables. When enabling, keep terminationGracePeriodSeconds above shutdownDelay + server.graceful_shutdown_timeout.
3538
shutdownDelay: 0s
3539
# -- Grace period to allow the distributor to shutdown before it is killed
3540
terminationGracePeriodSeconds: 30
3541
podDisruptionBudget:
3542
# -- Enable Pod Disruption Budget
3543
enabled: true
3544
# @schema additionalProperties:{"type":"string"}
3545
# -- Annotations for Pod Disruption Budget
3546
annotations: {}
3547
# @schema additionalProperties:{"type":"string"}
3548
# -- Labels for Pod Disruption Budget
3549
labels: {}
3550
# @schema type:[string, integer, null]
3551
# -- Pod Disruption Budget minAvailable
3552
minAvailable: null
3553
# @schema type:[string, integer, null]
3554
# -- Pod Disruption Budget maxUnavailable
3555
maxUnavailable: null
3556
# @schema type:[string, null]
3557
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
3558
unhealthyPodEvictionPolicy: null
3559
# @schema type:[object, null];skipProperties:true;additionalProperties:true
3560
# -- Affinity for distributor pods.
3561
# @default -- Hard node anti-affinity
3562
# The value will be passed through tpl.
3563
affinity:
3564
podAntiAffinity:
3565
requiredDuringSchedulingIgnoredDuringExecution:
3566
- labelSelector:
3567
matchLabels:
3568
app.kubernetes.io/component: distributor
3569
app.kubernetes.io/name: '{{ include "loki.name" . }}'
3570
app.kubernetes.io/instance: '{{ .Release.Name }}'
3571
topologyKey: kubernetes.io/hostname
3572
# @schema type:[string, integer, null];deprecated:true
3573
# -- Pod Disruption Budget maxUnavailable
3574
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3575
maxUnavailable: null
3576
# @schema type:[string, integer]
3577
# -- Max Surge for distributor pods
3578
maxSurge: 0
3579
# @schema additionalProperties:true
3580
# -- Node selector for distributor pods
3581
nodeSelector: {}
3582
# @schema item:object
3583
# -- Topology Spread Constraints for distributor pods
3584
# The value will be passed through tpl.
3585
topologySpreadConstraints: []
3586
tolerations: []
3587
# @schema additionalProperties:true;deprecated:true
3588
# -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
3589
# @deprecated -- This option is deprecated in favor of `distributor.service.appProtocol`
3590
appProtocol:
3591
# @schema type:string;deprecated:true
3592
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3593
# @deprecated -- This option is deprecated in favor of `distributor.service.appProtocol.grpc`
3594
grpc: ""
3595
# -- trafficDistribution for distributor service
3596
trafficDistribution: ""
3597
serviceAccount:
3598
# -- Specifies whether a ServiceAccount should be created
3599
create: false
3600
# @schema type:[string, null]
3601
# -- The name of the ServiceAccount to use.
3602
# If not set and create is true, a name is generated using the fullname template
3603
name: null
3604
# @schema item:object;itemProperties:{"name": {"type": "string"}}
3605
# -- Image pull secrets for the service account
3606
imagePullSecrets: []
3607
# @schema additionalProperties:{"type":"string"}
3608
# -- Annotations for the service account
3609
annotations: {}
3610
# @schema additionalProperties:{"type":"string"}
3611
# -- Labels for the service account
3612
labels: {}
3613
# -- Set this toggle to false to opt out of automounting API credentials for the service account
3614
automountServiceAccountToken: true
3615
# -- Configuration for the querier
3616
querier:
3617
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3618
enabled: true
3619
# -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3620
kind: Deployment
3621
# @schema type:[integer, null]
3622
# -- Number of replicas for the querier. Set to null to omit spec.replicas from the workload,
3623
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3624
replicas: 0
3625
# @schema skipProperties:true;additionalProperties:true
3626
# -- Strategy for the querier.
3627
strategy:
3628
type: RollingUpdate
3629
rollingUpdate:
3630
maxSurge: 0
3631
# @schema type:[string, integer, null]
3632
# -- Pod Disruption Budget maxUnavailable
3633
maxUnavailable: 1
3634
# -- hostAliases to add
3635
hostAliases: []
3636
# @schema type:[boolean, null]
3637
# - ip: 1.2.3.4
3638
# hostnames:
3639
# - domain.tld
3640
# -- Use the host's user namespace in the querier
3641
hostUsers: null
3642
autoscaling:
3643
# -- Enable autoscaling for the querier, this is only used if `indexGateway.enabled: true`
3644
enabled: false
3645
# -- Minimum autoscaling replicas for the querier
3646
minReplicas: 1
3647
# -- Maximum autoscaling replicas for the querier
3648
maxReplicas: 3
3649
# @schema type:[integer, null]
3650
# -- Target CPU utilisation percentage for the querier
3651
targetCPUUtilizationPercentage: 60
3652
# @schema type:[integer, null]
3653
# -- Target memory utilisation percentage for the querier
3654
targetMemoryUtilizationPercentage: null
3655
# -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3656
customMetrics: []
3657
# - type: External
3658
# external:
3659
# metric:
3660
# name: loki_inflight_queries
3661
# target:
3662
# type: AverageValue
3663
# averageValue: 12
3664
# @schema skipProperties:true;additionalProperties:true
3665
# -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3666
behavior:
3667
# -- Enable autoscaling behaviours
3668
enabled: false
3669
# -- define scale down policies, must conform to HPAScalingRules
3670
scaleDown: {}
3671
# -- define scale up policies, must conform to HPAScalingRules
3672
scaleUp: {}
3673
kedaAutoscaling:
3674
# -- Enable KEDA autoscaling for the querier. Mutually exclusive with autoscaling.enabled
3675
enabled: false
3676
# @schema type:[integer, null]
3677
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3678
pollingInterval: null
3679
# -- Minimum replicas for KEDA autoscaling
3680
minReplicas: 1
3681
# -- Maximum replicas for KEDA autoscaling
3682
maxReplicas: 10
3683
# @schema type:[integer, null]
3684
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3685
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3686
cooldownPeriod: null
3687
# @schema additionalProperties:true
3688
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3689
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3690
fallback: {}
3691
# @schema skipProperties:true;additionalProperties:true
3692
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3693
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3694
behavior: {}
3695
# -- KEDA triggers for the querier. Defaults to a Prometheus trigger using inflight requests.
3696
triggers:
3697
- type: prometheus
3698
name: querier_autoscaling_metric
3699
metadata:
3700
serverAddress: "{{ .Values.defaults.kedaAutoscaling.prometheusAddress }}"
3701
query: sum(max_over_time(loki_query_scheduler_inflight_requests{quantile="0.75"}[2m]))
3702
threshold: "4"
3703
unsafeSsl: "{{ .Values.defaults.kedaAutoscaling.unsafeSsl }}"
3704
ignoreNullValues: "{{ .Values.defaults.kedaAutoscaling.ignoreNullValues }}"
3705
customHeaders: "{{ .Values.defaults.kedaAutoscaling.customHeaders }}"
3706
authModes: "{{ .Values.defaults.kedaAutoscaling.authentication.authModes }}"
3707
image:
3708
# @schema type:[string, null]
3709
# -- The Docker registry for the querier image. Overrides `loki.image.registry`
3710
registry: null
3711
# @schema type:[string, null]
3712
# -- Docker image repository for the querier image. Overrides `loki.image.repository`
3713
repository: null
3714
# @schema type:[string, null]
3715
# -- Docker image tag for the querier image. Overrides `loki.image.tag`
3716
tag: null
3717
# @schema type:[string, null]
3718
# -- Command to execute instead of defined in Docker image
3719
command: null
3720
# @schema type:[string, null]
3721
# -- The name of the PriorityClass for querier pods
3722
priorityClassName: null
3723
# @schema additionalProperties:{"type":"string"}
3724
# -- Labels for querier
3725
labels: {}
3726
# @schema additionalProperties:{"type":"string"}
3727
# -- Annotations for querier
3728
annotations: {}
3729
# @schema additionalProperties:{"type":"string"}
3730
# -- Labels for querier pods
3731
podLabels: {}
3732
# @schema additionalProperties:{"type":"string"}
3733
# -- Annotations for querier pods
3734
podAnnotations: {}
3735
# @schema additionalProperties:{"type":"string"};deprecated:true
3736
# -- Labels for querier service
3737
# @deprecated -- This option is deprecated in favor of `querier.service.labels`
3738
serviceLabels: {}
3739
# @schema additionalProperties:{"type":"string"};deprecated:true
3740
# -- Annotations for querier service
3741
# @deprecated -- This option is deprecated in favor of `querier.service.annotations`
3742
serviceAnnotations: {}
3743
# @schema type:string;deprecated:true
3744
# -- Service type for querier service
3745
# @deprecated -- This option is deprecated in favor of `querier.service.type`
3746
serviceType: "ClusterIP"
3747
service:
3748
# @schema additionalProperties:{"type":"string"}
3749
# -- Annotations for querier Service
3750
annotations: {}
3751
# @schema additionalProperties:{"type":"string"}
3752
# -- Additional labels for querier Service
3753
labels: {}
3754
# -- Service Type for querier Service
3755
type: "ClusterIP"
3756
# -- trafficDistribution for querier Service
3757
trafficDistribution: ""
3758
# -- Session affinity for querier Service
3759
sessionAffinity: ""
3760
# @schema additionalProperties:true
3761
# -- Session affinity config for querier Service
3762
sessionAffinityConfig: {}
3763
# -- ipFamilyPolicy for querier Service
3764
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3765
ipFamilyPolicy: ""
3766
# -- ipFamilies for querier Service
3767
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3768
ipFamilies: []
3769
# -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
3770
appProtocol:
3771
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3772
grpc: ""
3773
headlessService:
3774
# @schema additionalProperties:{"type":"string"}
3775
# -- Additional annotations for headless Distributed compactor Service
3776
annotations: {}
3777
# @schema additionalProperties:{"type":"string"}
3778
# -- Additional labels for headless Distributed compactor Service
3779
labels: {}
3780
# -- Additional CLI args for the querier
3781
extraArgs: []
3782
# -- Environment variables to add to the querier pods
3783
extraEnv: []
3784
# -- Environment variables from secrets or configmaps to add to the querier pods
3785
extraEnvFrom: []
3786
# -- Volume mounts to add to the querier pods
3787
extraVolumeMounts: []
3788
# -- Volumes to add to the querier pods
3789
extraVolumes: []
3790
# @schema additionalProperties:true
3791
# -- Resource requests and limits for the querier
3792
resources: {}
3793
# -- Container resize policy for the querier
3794
# Example:
3795
# resizePolicy:
3796
# - resourceName: cpu
3797
# restartPolicy: NotRequired
3798
# - resourceName: memory
3799
# restartPolicy: RestartContainer
3800
resizePolicy: []
3801
# @schema type:[string, array, null]
3802
# -- Containers to add to the querier pods
3803
extraContainers: []
3804
# @schema type:[string, array, null]
3805
# -- Init containers to add to the querier pods
3806
initContainers: []
3807
# -- Grace period to allow the querier to shutdown before it is killed
3808
terminationGracePeriodSeconds: 30
3809
podDisruptionBudget:
3810
# -- Enable Pod Disruption Budget
3811
enabled: true
3812
# @schema additionalProperties:{"type":"string"}
3813
# -- Annotations for Pod Disruption Budget
3814
annotations: {}
3815
# @schema additionalProperties:{"type":"string"}
3816
# -- Labels for Pod Disruption Budget
3817
labels: {}
3818
# @schema type:[string, integer, null]
3819
# -- Pod Disruption Budget minAvailable
3820
minAvailable: null
3821
# @schema type:[string, integer, null]
3822
# -- Pod Disruption Budget maxUnavailable
3823
maxUnavailable: null
3824
# @schema type:[string, null]
3825
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
3826
unhealthyPodEvictionPolicy: null
3827
# @schema item:object
3828
# -- topologySpread for querier pods.
3829
# @default -- Defaults to allow skew no more then 1 node
3830
# The value will be passed through tpl.
3831
topologySpreadConstraints:
3832
- maxSkew: 1
3833
topologyKey: kubernetes.io/hostname
3834
whenUnsatisfiable: ScheduleAnyway
3835
labelSelector:
3836
matchLabels:
3837
app.kubernetes.io/component: querier
3838
app.kubernetes.io/name: '{{ include "loki.name" . }}'
3839
app.kubernetes.io/instance: '{{ .Release.Name }}'
3840
# @schema type:[object, null];skipProperties:true;additionalProperties:true
3841
# -- Affinity for querier pods.
3842
# @default -- Hard node anti-affinity
3843
# The value will be passed through tpl.
3844
affinity:
3845
podAntiAffinity:
3846
requiredDuringSchedulingIgnoredDuringExecution:
3847
- labelSelector:
3848
matchLabels:
3849
app.kubernetes.io/component: querier
3850
app.kubernetes.io/name: '{{ include "loki.name" . }}'
3851
app.kubernetes.io/instance: '{{ .Release.Name }}'
3852
topologyKey: kubernetes.io/hostname
3853
# @schema type:[string, integer, null];deprecated:true
3854
# -- Pod Disruption Budget maxUnavailable
3855
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3856
maxUnavailable: null
3857
# @schema type:[string, integer]
3858
# -- Max Surge for querier pods
3859
maxSurge: 0
3860
# @schema additionalProperties:true
3861
# -- Node selector for querier pods
3862
nodeSelector: {}
3863
# -- Tolerations for querier pods
3864
tolerations: []
3865
# @schema additionalProperties:true
3866
# -- DNSConfig for querier pods
3867
dnsConfig: {}
3868
# @schema additionalProperties:true;deprecated:true
3869
# -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
3870
# @deprecated -- This option is deprecated in favor of `querier.service.appProtocol`
3871
appProtocol:
3872
# @schema type:string;deprecated:true
3873
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3874
# @deprecated -- This option is deprecated in favor of `querier.service.appProtocol.grpc`
3875
grpc: ""
3876
# -- trafficDistribution for querier service
3877
trafficDistribution: ""
3878
serviceAccount:
3879
# -- Specifies whether a ServiceAccount should be created
3880
create: false
3881
# @schema type:[string, null]
3882
# -- The name of the ServiceAccount to use.
3883
# If not set and create is true, a name is generated using the fullname template
3884
name: null
3885
# @schema item:object;itemProperties:{"name": {"type": "string"}}
3886
# -- Image pull secrets for the service account
3887
imagePullSecrets: []
3888
# @schema additionalProperties:{"type":"string"}
3889
# -- Annotations for the service account
3890
annotations: {}
3891
# @schema additionalProperties:{"type":"string"}
3892
# -- Labels for the service account
3893
labels: {}
3894
# -- Set this toggle to false to opt out of automounting API credentials for the service account
3895
automountServiceAccountToken: true
3896
# -- Configuration for the query-frontend
3897
queryFrontend:
3898
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3899
enabled: true
3900
# -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3901
kind: Deployment
3902
# @schema type:[integer, null]
3903
# -- Number of replicas for the query-frontend. Set to null to omit spec.replicas from the workload,
3904
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3905
replicas: 0
3906
# @schema skipProperties:true;additionalProperties:true
3907
# -- Strategy for the querier.
3908
strategy:
3909
type: RollingUpdate
3910
rollingUpdate:
3911
maxSurge: 0
3912
# @schema type:[string, integer, null]
3913
# -- Pod Disruption Budget maxUnavailable
3914
maxUnavailable: 1
3915
# -- hostAliases to add
3916
hostAliases: []
3917
# @schema type:[boolean, null]
3918
# - ip: 1.2.3.4
3919
# hostnames:
3920
# - domain.tld
3921
# -- Use the host's user namespace in the query-frontend
3922
hostUsers: null
3923
autoscaling:
3924
# -- Enable autoscaling for the query-frontend
3925
enabled: false
3926
# -- Minimum autoscaling replicas for the query-frontend
3927
minReplicas: 1
3928
# -- Maximum autoscaling replicas for the query-frontend
3929
maxReplicas: 3
3930
# @schema type:[integer, null]
3931
# -- Target CPU utilisation percentage for the query-frontend
3932
targetCPUUtilizationPercentage: 60
3933
# @schema type:[integer, null]
3934
# -- Target memory utilisation percentage for the query-frontend
3935
targetMemoryUtilizationPercentage: null
3936
# -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3937
customMetrics: []
3938
# - type: Pods
3939
# pods:
3940
# metric:
3941
# name: loki_query_rate
3942
# target:
3943
# type: AverageValue
3944
# averageValue: 100
3945
# @schema skipProperties:true;additionalProperties:true
3946
# -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3947
behavior:
3948
# -- Enable autoscaling behaviours
3949
enabled: false
3950
# -- define scale down policies, must conform to HPAScalingRules
3951
scaleDown: {}
3952
# -- define scale up policies, must conform to HPAScalingRules
3953
scaleUp: {}
3954
kedaAutoscaling:
3955
# -- Enable KEDA autoscaling for the query-frontend. Mutually exclusive with autoscaling.enabled
3956
enabled: false
3957
# @schema type:[integer, null]
3958
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3959
pollingInterval: null
3960
# -- Minimum replicas for KEDA autoscaling
3961
minReplicas: 1
3962
# -- Maximum replicas for KEDA autoscaling
3963
maxReplicas: 3
3964
# @schema type:[integer, null]
3965
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3966
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3967
cooldownPeriod: null
3968
# @schema additionalProperties:true
3969
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3970
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3971
fallback: {}
3972
# @schema skipProperties:true;additionalProperties:true
3973
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3974
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3975
behavior: {}
3976
# -- KEDA triggers for the query-frontend.
3977
# Ref: https://keda.sh/docs/latest/scalers/
3978
triggers: []
3979
image:
3980
# @schema type:[string, null]
3981
# -- The Docker registry for the query-frontend image. Overrides `loki.image.registry`
3982
registry: null
3983
# @schema type:[string, null]
3984
# -- Docker image repository for the query-frontend image. Overrides `loki.image.repository`
3985
repository: null
3986
# @schema type:[string, null]
3987
# -- Docker image tag for the query-frontend image. Overrides `loki.image.tag`
3988
tag: null
3989
# @schema type:[string, null]
3990
# -- Command to execute instead of defined in Docker image
3991
command: null
3992
# @schema type:[string, null]
3993
# -- The name of the PriorityClass for query-frontend pods
3994
priorityClassName: null
3995
# @schema additionalProperties:{"type":"string"}
3996
# -- Labels for query-frontend
3997
labels: {}
3998
# @schema additionalProperties:{"type":"string"}
3999
# -- Annotations for query-frontend
4000
annotations: {}
4001
# @schema additionalProperties:{"type":"string"}
4002
# -- Labels for query-frontend pods
4003
podLabels: {}
4004
# @schema additionalProperties:{"type":"string"}
4005
# -- Annotations for query-frontend pods
4006
podAnnotations: {}
4007
# @schema additionalProperties:{"type":"string"};deprecated:true
4008
# -- Labels for query-frontend service
4009
# @deprecated -- This option is deprecated in favor of `queryFrontend.service.labels`
4010
serviceLabels: {}
4011
# @schema additionalProperties:{"type":"string"};deprecated:true
4012
# -- Annotations for query-frontend service
4013
# @deprecated -- This option is deprecated in favor of `queryFrontend.service.annotations`
4014
serviceAnnotations: {}
4015
# @schema type:string;deprecated:true
4016
# -- Service type for query-frontend service
4017
# @deprecated -- This option is deprecated in favor of `queryFrontend.service.type`
4018
serviceType: "ClusterIP"
4019
service:
4020
# @schema additionalProperties:{"type":"string"}
4021
# -- Annotations for query-frontend Service
4022
annotations: {}
4023
# @schema additionalProperties:{"type":"string"}
4024
# -- Additional labels for query-frontend Service
4025
labels: {}
4026
# -- Service Type for query-frontend Service
4027
type: "ClusterIP"
4028
# -- trafficDistribution for query-frontend Service
4029
trafficDistribution: ""
4030
# -- Session affinity for query-frontend Service
4031
sessionAffinity: ""
4032
# @schema additionalProperties:true
4033
# -- Session affinity config for query-frontend Service
4034
sessionAffinityConfig: {}
4035
# -- ipFamilyPolicy for query-frontend Service
4036
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4037
ipFamilyPolicy: ""
4038
# -- ipFamilies for query-frontend Service
4039
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4040
ipFamilies: []
4041
# -- Adds the appProtocol field to the query-frontend service. This allows query-frontend to work with istio protocol selection.
4042
appProtocol:
4043
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4044
grpc: ""
4045
headlessService:
4046
# @schema additionalProperties:{"type":"string"}
4047
# -- Additional annotations for headless Distributed compactor Service
4048
annotations: {}
4049
# @schema additionalProperties:{"type":"string"}
4050
# -- Additional labels for headless Distributed compactor Service
4051
labels: {}
4052
# -- Additional CLI args for the query-frontend
4053
extraArgs: []
4054
# -- Environment variables to add to the query-frontend pods
4055
extraEnv: []
4056
# -- Environment variables from secrets or configmaps to add to the query-frontend pods
4057
extraEnvFrom: []
4058
# -- Volume mounts to add to the query-frontend pods
4059
extraVolumeMounts: []
4060
# -- Volumes to add to the query-frontend pods
4061
extraVolumes: []
4062
# @schema additionalProperties:true
4063
# -- Resource requests and limits for the query-frontend
4064
resources: {}
4065
# -- Container resize policy for the query-frontend
4066
# Example:
4067
# resizePolicy:
4068
# - resourceName: cpu
4069
# restartPolicy: NotRequired
4070
# - resourceName: memory
4071
# restartPolicy: RestartContainer
4072
resizePolicy: []
4073
# @schema type:[string, array, null]
4074
# -- init containers to add to the query-frontend pods
4075
initContainers: []
4076
# @schema type:[string, array, null]
4077
# -- Containers to add to the query-frontend pods
4078
extraContainers: []
4079
# -- Grace period to allow the query-frontend to shutdown before it is killed
4080
terminationGracePeriodSeconds: 30
4081
podDisruptionBudget:
4082
# -- Enable Pod Disruption Budget
4083
enabled: true
4084
# @schema additionalProperties:{"type":"string"}
4085
# -- Annotations for Pod Disruption Budget
4086
annotations: {}
4087
# @schema additionalProperties:{"type":"string"}
4088
# -- Labels for Pod Disruption Budget
4089
labels: {}
4090
# @schema type:[string, integer, null]
4091
# -- Pod Disruption Budget minAvailable
4092
minAvailable: null
4093
# @schema type:[string, integer, null]
4094
# -- Pod Disruption Budget maxUnavailable
4095
maxUnavailable: null
4096
# @schema type:[string, null]
4097
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
4098
unhealthyPodEvictionPolicy: null
4099
# @schema type:[object, null];skipProperties:true;additionalProperties:true
4100
# -- Affinity for query-frontend pods.
4101
# @default -- Hard node anti-affinity
4102
# The value will be passed through tpl.
4103
affinity:
4104
podAntiAffinity:
4105
requiredDuringSchedulingIgnoredDuringExecution:
4106
- labelSelector:
4107
matchLabels:
4108
app.kubernetes.io/component: query-frontend
4109
app.kubernetes.io/name: '{{ include "loki.name" . }}'
4110
app.kubernetes.io/instance: '{{ .Release.Name }}'
4111
topologyKey: kubernetes.io/hostname
4112
# @schema type:[string, integer, null];deprecated:true
4113
# -- Pod Disruption Budget maxUnavailable
4114
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4115
maxUnavailable: null
4116
# @schema additionalProperties:true
4117
# -- Node selector for query-frontend pods
4118
nodeSelector: {}
4119
# @schema item:object
4120
# -- Topology Spread Constraints for query-frontend pods
4121
# The value will be passed through tpl.
4122
topologySpreadConstraints: []
4123
tolerations: []
4124
# @schema additionalProperties:true;deprecated:true
4125
# -- Adds the appProtocol field to the queryFrontend service. This allows queryFrontend to work with istio protocol selection.
4126
# @deprecated -- This option is deprecated in favor of `queryFrontend.service.appProtocol`
4127
appProtocol:
4128
# @schema type:string;deprecated:true
4129
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4130
# @deprecated -- This option is deprecated in favor of `queryFrontend.service.appProtocol.grpc`
4131
grpc: ""
4132
# -- Enable load balancer port for query-frontend
4133
loadBalancer:
4134
enabled: true
4135
# -- trafficDistribution for query-frontend service
4136
trafficDistribution: ""
4137
serviceAccount:
4138
# -- Specifies whether a ServiceAccount should be created
4139
create: false
4140
# @schema type:[string, null]
4141
# -- The name of the ServiceAccount to use.
4142
# If not set and create is true, a name is generated using the fullname template
4143
name: null
4144
# @schema item:object;itemProperties:{"name": {"type": "string"}}
4145
# -- Image pull secrets for the service account
4146
imagePullSecrets: []
4147
# @schema additionalProperties:{"type":"string"}
4148
# -- Annotations for the service account
4149
annotations: {}
4150
# @schema additionalProperties:{"type":"string"}
4151
# -- Labels for the service account
4152
labels: {}
4153
# -- Set this toggle to false to opt out of automounting API credentials for the service account
4154
automountServiceAccountToken: true
4155
# -- Configuration for the query-scheduler
4156
queryScheduler:
4157
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4158
enabled: true
4159
# -- Kind of query-scheduler deployment. StatefulSet and Deployment are supported.
4160
kind: Deployment
4161
# @schema type:[integer, null]
4162
# -- Number of replicas for the query-scheduler.
4163
# It should be lower than `-querier.max-concurrent` to avoid generating back-pressure in queriers;
4164
# it's also recommended that this value evenly divides the latter
4165
# Set to null to omit spec.replicas from the workload, allowing an external controller
4166
# (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4167
replicas: 0
4168
# @schema skipProperties:true;additionalProperties:true
4169
# -- Strategy for the query-scheduler.
4170
strategy:
4171
type: RollingUpdate
4172
rollingUpdate:
4173
maxSurge: 0
4174
# @schema type:[string, integer, null]
4175
# -- Pod Disruption Budget maxUnavailable
4176
maxUnavailable: 1
4177
# @schema additionalProperties:true
4178
# -- DNSConfig for query-scheduler
4179
dnsConfig: {}
4180
# -- hostAliases to add
4181
hostAliases: []
4182
# @schema type:[boolean, null]
4183
# - ip: 1.2.3.4
4184
# hostnames:
4185
# - domain.tld
4186
# -- Use the host's user namespace in the query-scheduler
4187
hostUsers: null
4188
image:
4189
# @schema type:[string, null]
4190
# -- The Docker registry for the query-scheduler image. Overrides `loki.image.registry`
4191
registry: null
4192
# @schema type:[string, null]
4193
# -- Docker image repository for the query-scheduler image. Overrides `loki.image.repository`
4194
repository: null
4195
# @schema type:[string, null]
4196
# -- Docker image tag for the query-scheduler image. Overrides `loki.image.tag`
4197
tag: null
4198
# @schema type:[string, null]
4199
# -- The name of the PriorityClass for query-scheduler pods
4200
priorityClassName: null
4201
# @schema additionalProperties:{"type":"string"}
4202
# -- Labels for query-scheduler
4203
labels: {}
4204
# @schema additionalProperties:{"type":"string"}
4205
# -- Annotations for query-scheduler
4206
annotations: {}
4207
# @schema additionalProperties:{"type":"string"}
4208
# -- Labels for query-scheduler pods
4209
podLabels: {}
4210
# @schema additionalProperties:{"type":"string"}
4211
# -- Annotations for query-scheduler pods
4212
podAnnotations: {}
4213
# @schema additionalProperties:{"type":"string"};deprecated:true
4214
# -- Labels for query-scheduler service
4215
# @deprecated -- This option is deprecated in favor of `queryScheduler.service.labels`
4216
serviceLabels: {}
4217
# @schema additionalProperties:{"type":"string"};deprecated:true
4218
# -- Annotations for query-scheduler service
4219
# @deprecated -- This option is deprecated in favor of `queryScheduler.service.annotations`
4220
serviceAnnotations: {}
4221
# @schema type:string;deprecated:true
4222
# -- Service type for query-scheduler service
4223
# @deprecated -- This option is deprecated in favor of `queryScheduler.service.type`
4224
serviceType: "ClusterIP"
4225
service:
4226
# @schema additionalProperties:{"type":"string"}
4227
# -- Annotations for query-scheduler Service
4228
annotations: {}
4229
# @schema additionalProperties:{"type":"string"}
4230
# -- Additional labels for query-scheduler Service
4231
labels: {}
4232
# -- Service Type for query-scheduler Service
4233
type: "ClusterIP"
4234
# -- trafficDistribution for query-scheduler Service
4235
trafficDistribution: ""
4236
# -- Session affinity for query-scheduler Service
4237
sessionAffinity: ""
4238
# @schema additionalProperties:true
4239
# -- Session affinity config for query-scheduler Service
4240
sessionAffinityConfig: {}
4241
# -- ipFamilyPolicy for query-scheduler Service
4242
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4243
ipFamilyPolicy: ""
4244
# -- ipFamilies for query-scheduler Service
4245
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4246
ipFamilies: []
4247
# -- Adds the appProtocol field to the query-scheduler service. This allows query-scheduler to work with istio protocol selection.
4248
appProtocol:
4249
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4250
grpc: ""
4251
headlessService:
4252
# @schema additionalProperties:{"type":"string"}
4253
# -- Additional annotations for headless Distributed compactor Service
4254
annotations: {}
4255
# @schema additionalProperties:{"type":"string"}
4256
# -- Additional labels for headless Distributed compactor Service
4257
labels: {}
4258
# -- Additional CLI args for the query-scheduler
4259
extraArgs: []
4260
# -- Environment variables to add to the query-scheduler pods
4261
extraEnv: []
4262
# -- Environment variables from secrets or configmaps to add to the query-scheduler pods
4263
extraEnvFrom: []
4264
# -- Volume mounts to add to the query-scheduler pods
4265
extraVolumeMounts: []
4266
# -- Volumes to add to the query-scheduler pods
4267
extraVolumes: []
4268
# @schema additionalProperties:true
4269
# -- Resource requests and limits for the query-scheduler
4270
resources: {}
4271
# -- Container resize policy for the query-scheduler
4272
# Example:
4273
# resizePolicy:
4274
# - resourceName: cpu
4275
# restartPolicy: NotRequired
4276
# - resourceName: memory
4277
# restartPolicy: RestartContainer
4278
resizePolicy: []
4279
# @schema type:[string, array, null]
4280
# -- init containers to add to the query-scheduler pods
4281
initContainers: []
4282
# @schema type:[string, array, null]
4283
# -- Containers to add to the query-scheduler pods
4284
extraContainers: []
4285
# -- Grace period to allow the query-scheduler to shutdown before it is killed
4286
terminationGracePeriodSeconds: 30
4287
# @schema type:[object, null];skipProperties:true;additionalProperties:true
4288
# -- Affinity for query-scheduler pods.
4289
# @default -- Hard node anti-affinity
4290
# The value will be passed through tpl.
4291
affinity:
4292
podAntiAffinity:
4293
requiredDuringSchedulingIgnoredDuringExecution:
4294
- labelSelector:
4295
matchLabels:
4296
app.kubernetes.io/component: query-scheduler
4297
app.kubernetes.io/name: '{{ include "loki.name" . }}'
4298
app.kubernetes.io/instance: '{{ .Release.Name }}'
4299
topologyKey: kubernetes.io/hostname
4300
# @schema type:[string, integer, null];deprecated:true
4301
# -- Pod Disruption Budget maxUnavailable
4302
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4303
maxUnavailable: 1
4304
podDisruptionBudget:
4305
# -- Enable Pod Disruption Budget
4306
enabled: true
4307
# @schema additionalProperties:{"type":"string"}
4308
# -- Annotations for Pod Disruption Budget
4309
annotations: {}
4310
# @schema additionalProperties:{"type":"string"}
4311
# -- Labels for Pod Disruption Budget
4312
labels: {}
4313
# @schema type:[string, integer, null]
4314
# -- Pod Disruption Budget minAvailable
4315
minAvailable: null
4316
# @schema type:[string, integer, null]
4317
# -- Pod Disruption Budget maxUnavailable
4318
maxUnavailable: null
4319
# @schema type:[string, null]
4320
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
4321
unhealthyPodEvictionPolicy: null
4322
# @schema additionalProperties:true
4323
# -- Node selector for query-scheduler pods
4324
nodeSelector: {}
4325
# @schema item:object
4326
# -- Topology Spread Constraints for query-scheduler pods
4327
# The value will be passed through tpl.
4328
topologySpreadConstraints: []
4329
tolerations: []
4330
# @schema additionalProperties:true;deprecated:true
4331
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4332
# @deprecated -- This option is deprecated in favor of `queryScheduler.service.appProtocol`
4333
appProtocol:
4334
grpc: ""
4335
# -- trafficDistribution for query-scheduler service
4336
trafficDistribution: ""
4337
serviceAccount:
4338
# -- Specifies whether a ServiceAccount should be created
4339
create: false
4340
# @schema type:[string, null]
4341
# -- The name of the ServiceAccount to use.
4342
# If not set and create is true, a name is generated using the fullname template
4343
name: null
4344
# @schema item:object;itemProperties:{"name": {"type": "string"}}
4345
# -- Image pull secrets for the service account
4346
imagePullSecrets: []
4347
# @schema additionalProperties:{"type":"string"}
4348
# -- Annotations for the service account
4349
annotations: {}
4350
# @schema additionalProperties:{"type":"string"}
4351
# -- Labels for the service account
4352
labels: {}
4353
# -- Set this toggle to false to opt out of automounting API credentials for the service account
4354
automountServiceAccountToken: true
4355
# -- Configuration for the index-gateway
4356
indexGateway:
4357
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4358
enabled: true
4359
# -- Kind of index-gateway deployment. StatefulSet and Deployment are supported.
4360
kind: StatefulSet
4361
# -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
4362
## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4363
statefulSetRecreateJob:
4364
enabled: false
4365
# @schema type:[integer, null]
4366
# -- Number of replicas for the index-gateway. Set to null to omit spec.replicas from the workload,
4367
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4368
replicas: 0
4369
# -- Whether the index gateway should join the memberlist hashring
4370
joinMemberlist: true
4371
# @schema additionalProperties:true
4372
# -- DNSConfig for index-gateway pods
4373
dnsConfig: {}
4374
# -- hostAliases to add
4375
hostAliases: []
4376
# @schema type:[boolean, null]
4377
# - ip: 1.2.3.4
4378
# hostnames:
4379
# - domain.tld
4380
# -- Use the host's user namespace in the index-gateway
4381
hostUsers: null
4382
image:
4383
# @schema type:[string, null]
4384
# -- The Docker registry for the index-gateway image. Overrides `loki.image.registry`
4385
registry: null
4386
# @schema type:[string, null]
4387
# -- Docker image repository for the index-gateway image. Overrides `loki.image.repository`
4388
repository: null
4389
# @schema type:[string, null]
4390
# -- Docker image tag for the index-gateway image. Overrides `loki.image.tag`
4391
tag: null
4392
# @schema type:[string, null]
4393
# -- The name of the PriorityClass for index-gateway pods
4394
priorityClassName: null
4395
# @schema additionalProperties:{"type":"string"}
4396
# -- Labels for index-gateway
4397
labels: {}
4398
# @schema additionalProperties:{"type":"string"}
4399
# -- Annotations for index-gateway
4400
annotations: {}
4401
# @schema additionalProperties:{"type":"string"}
4402
# -- Labels for index-gateway pods
4403
podLabels: {}
4404
# @schema additionalProperties:{"type":"string"}
4405
# -- Annotations for index-gateway pods
4406
podAnnotations: {}
4407
# @schema additionalProperties:{"type":"string"};deprecated:true
4408
# -- Labels for index-gateway service
4409
# @deprecated -- This option is deprecated in favor of `indexGateway.service.labels`
4410
serviceLabels: {}
4411
# @schema additionalProperties:{"type":"string"};deprecated:true
4412
# -- Annotations for index-gateway service
4413
# @deprecated -- This option is deprecated in favor of `indexGateway.service.annotations`
4414
serviceAnnotations: {}
4415
# @schema type:string;deprecated:true
4416
# -- Service type for index-gateway service
4417
# @deprecated -- This option is deprecated in favor of `indexGateway.service.type`
4418
serviceType: "ClusterIP"
4419
service:
4420
# @schema additionalProperties:{"type":"string"}
4421
# -- Annotations for index-gateway Service
4422
annotations: {}
4423
# @schema additionalProperties:{"type":"string"}
4424
# -- Additional labels for index-gateway Service
4425
labels: {}
4426
# -- Service Type for index-gateway Service
4427
type: "ClusterIP"
4428
# -- trafficDistribution for index-gateway Service
4429
trafficDistribution: ""
4430
# -- Session affinity for index-gateway Service
4431
sessionAffinity: ""
4432
# @schema additionalProperties:true
4433
# -- Session affinity config for index-gateway Service
4434
sessionAffinityConfig: {}
4435
# -- ipFamilyPolicy for index-gateway Service
4436
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4437
ipFamilyPolicy: ""
4438
# -- ipFamilies for index-gateway Service
4439
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4440
ipFamilies: []
4441
# -- Adds the appProtocol field to the index-gateway service. This allows index-gateway to work with istio protocol selection.
4442
appProtocol:
4443
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4444
grpc: ""
4445
headlessService:
4446
# @schema additionalProperties:{"type":"string"}
4447
# -- Additional annotations for headless Distributed compactor Service
4448
annotations: {}
4449
# @schema additionalProperties:{"type":"string"}
4450
# -- Additional labels for headless Distributed compactor Service
4451
labels: {}
4452
# -- Additional CLI args for the index-gateway
4453
extraArgs: []
4454
# -- Environment variables to add to the index-gateway pods
4455
extraEnv: []
4456
# -- Environment variables from secrets or configmaps to add to the index-gateway pods
4457
extraEnvFrom: []
4458
# -- Volume mounts to add to the index-gateway pods
4459
extraVolumeMounts: []
4460
# -- Volumes to add to the index-gateway pods
4461
extraVolumes: []
4462
# @schema additionalProperties:true
4463
# -- Resource requests and limits for the index-gateway
4464
resources: {}
4465
# -- Container resize policy for the index-gateway
4466
# Example:
4467
# resizePolicy:
4468
# - resourceName: cpu
4469
# restartPolicy: NotRequired
4470
# - resourceName: memory
4471
# restartPolicy: RestartContainer
4472
resizePolicy: []
4473
# @schema type:[string, array, null]
4474
# -- Containers to add to the index-gateway pods
4475
extraContainers: []
4476
# @schema type:[string, array, null]
4477
# -- Init containers to add to the index-gateway pods
4478
initContainers: []
4479
# -- Grace period to allow the index-gateway to shutdown before it is killed.
4480
terminationGracePeriodSeconds: 300
4481
podDisruptionBudget:
4482
# -- Enable Pod Disruption Budget
4483
enabled: true
4484
# @schema additionalProperties:{"type":"string"}
4485
# -- Annotations for Pod Disruption Budget
4486
annotations: {}
4487
# @schema additionalProperties:{"type":"string"}
4488
# -- Labels for Pod Disruption Budget
4489
labels: {}
4490
# @schema type:[string, integer, null]
4491
# -- Pod Disruption Budget minAvailable
4492
minAvailable: null
4493
# @schema type:[string, integer, null]
4494
# -- Pod Disruption Budget maxUnavailable
4495
maxUnavailable: null
4496
# @schema type:[string, null]
4497
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
4498
unhealthyPodEvictionPolicy: null
4499
# -- Lifecycle for the index-gateway container
4500
lifecycle: {}
4501
# @schema type:[object, null];skipProperties:true;additionalProperties:true
4502
# -- Affinity for index-gateway pods.
4503
# @default -- Hard node anti-affinity
4504
# The value will be passed through tpl.
4505
affinity:
4506
podAntiAffinity:
4507
requiredDuringSchedulingIgnoredDuringExecution:
4508
- labelSelector:
4509
matchLabels:
4510
app.kubernetes.io/component: index-gateway
4511
app.kubernetes.io/name: '{{ include "loki.name" . }}'
4512
app.kubernetes.io/instance: '{{ .Release.Name }}'
4513
topologyKey: kubernetes.io/hostname
4514
# @schema type:[string, integer, null];deprecated:true
4515
# -- Pod Disruption Budget maxUnavailable
4516
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4517
maxUnavailable: null
4518
# @schema additionalProperties:true
4519
# -- Node selector for index-gateway pods
4520
nodeSelector: {}
4521
# @schema item:object
4522
# -- Topology Spread Constraints for index-gateway pods
4523
# The value will be passed through tpl.
4524
topologySpreadConstraints: []
4525
tolerations: []
4526
persistence:
4527
# -- Enable creating PVCs which is required when using boltdb-shipper
4528
enabled: false
4529
# -- Set access modes on the PersistentVolumeClaim
4530
accessModes:
4531
- ReadWriteOnce
4532
# @schema skipProperties:true;additionalProperties:true
4533
# -- Parameters used for the `data` volume when volumeClaimEnabled if false
4534
dataVolumeParameters:
4535
emptyDir: {}
4536
# -- Size of persistent disk
4537
size: 10Gi
4538
# @schema type:[string, null]
4539
# -- Storage class to be used.
4540
# If defined, storageClassName: <storageClass>.
4541
# If set to "-", storageClassName: "", which disables dynamic provisioning.
4542
# If empty or set to null, no storageClassName spec is
4543
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4544
storageClass: null
4545
# @schema type:[string, null]
4546
# -- Volume attributes class name to be used.
4547
# If empty or set to null, no volumeAttributesClassName spec is set.
4548
# Requires Kubernetes 1.31
4549
volumeAttributesClassName: null
4550
# @schema additionalProperties:{"type":"string"}
4551
# -- Annotations for index gateway PVCs
4552
annotations: {}
4553
# @schema additionalProperties:{"type":"string"}
4554
# -- Labels for index gateway PVCs
4555
labels: {}
4556
# -- Enable StatefulSetAutoDeletePVC feature
4557
enableStatefulSetAutoDeletePVC: false
4558
whenDeleted: Retain
4559
whenScaled: Retain
4560
# @schema additionalProperties:true;deprecated:true
4561
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4562
# @deprecated -- This option is deprecated in favor of `indexGateway.service.appProtocol`
4563
appProtocol:
4564
grpc: ""
4565
# -- trafficDistribution for index-gateway service
4566
trafficDistribution: ""
4567
# @schema skipProperties:true;additionalProperties:true
4568
# -- UpdateStrategy for the index-gateway workload.
4569
strategy:
4570
# -- One of 'OnDelete' or 'RollingUpdate'
4571
type: RollingUpdate
4572
# -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
4573
# rollingUpdate:
4574
# partition: 0
4575
serviceAccount:
4576
# -- Specifies whether a ServiceAccount should be created
4577
create: false
4578
# @schema type:[string, null]
4579
# -- The name of the ServiceAccount to use.
4580
# If not set and create is true, a name is generated using the fullname template
4581
name: null
4582
# @schema item:object;itemProperties:{"name": {"type": "string"}}
4583
# -- Image pull secrets for the service account
4584
imagePullSecrets: []
4585
# @schema additionalProperties:{"type":"string"}
4586
# -- Annotations for the service account
4587
annotations: {}
4588
# @schema additionalProperties:{"type":"string"}
4589
# -- Labels for the service account
4590
labels: {}
4591
# -- Set this toggle to false to opt out of automounting API credentials for the service account
4592
automountServiceAccountToken: true
4593
# -- Configuration for the compactor
4594
compactor:
4595
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4596
enabled: true
4597
# -- Kind of compactor deployment. StatefulSet and Deployment are supported.
4598
kind: StatefulSet
4599
# -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
4600
## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4601
statefulSetRecreateJob:
4602
enabled: false
4603
# @schema type:[integer, null]
4604
# -- Number of replicas for the compactor. Set to null to omit spec.replicas from the workload,
4605
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4606
replicas: 0
4607
# @schema skipProperties:true;additionalProperties:true
4608
# -- UpdateStrategy or Strategy for the compactor.
4609
strategy:
4610
rollingUpdate:
4611
partition: 0
4612
# -- PodManagementPolicy for the compactor StatefulSet. Only applicable if `compactor.kind` is StatefulSet.
4613
## OrderedReady and Parallel are supported.
4614
podManagementPolicy: Parallel
4615
# -- hostAliases to add
4616
hostAliases: []
4617
# @schema type:[boolean, null]
4618
# - ip: 1.2.3.4
4619
# hostnames:
4620
# - domain.tld
4621
# -- Use the host's user namespace in the compactor
4622
hostUsers: null
4623
# @schema additionalProperties:true
4624
# -- DNSConfig for compactor pods
4625
dnsConfig: {}
4626
image:
4627
# @schema type:[string, null]
4628
# -- The Docker registry for the compactor image. Overrides `loki.image.registry`
4629
registry: null
4630
# @schema type:[string, null]
4631
# -- Docker image repository for the compactor image. Overrides `loki.image.repository`
4632
repository: null
4633
# @schema type:[string, null]
4634
# -- Docker image tag for the compactor image. Overrides `loki.image.tag`
4635
tag: null
4636
# @schema type:[string, null]
4637
# -- Command to execute instead of defined in Docker image
4638
command: null
4639
# @schema type:[string, null]
4640
# -- The name of the PriorityClass for compactor pods
4641
priorityClassName: null
4642
# @schema additionalProperties:{"type":"string"}
4643
# -- Labels for compactor
4644
labels: {}
4645
# @schema additionalProperties:{"type":"string"}
4646
# -- Annotations for compactor
4647
annotations: {}
4648
# @schema additionalProperties:{"type":"string"}
4649
# -- Labels for compactor pods
4650
podLabels: {}
4651
# @schema additionalProperties:{"type":"string"}
4652
# -- Annotations for compactor pods
4653
podAnnotations: {}
4654
# @schema type:[object, null];skipProperties:true;additionalProperties:true
4655
# -- Affinity for compactor pods.
4656
# @default -- Hard node anti-affinity
4657
# The value will be passed through tpl.
4658
affinity:
4659
podAntiAffinity:
4660
requiredDuringSchedulingIgnoredDuringExecution:
4661
- labelSelector:
4662
matchLabels:
4663
app.kubernetes.io/component: compactor
4664
app.kubernetes.io/name: '{{ include "loki.name" . }}'
4665
app.kubernetes.io/instance: '{{ .Release.Name }}'
4666
topologyKey: kubernetes.io/hostname
4667
# @schema additionalProperties:{"type":"string"};deprecated:true
4668
# -- Labels for compactor service
4669
# @deprecated -- This option is deprecated in favor of `compactor.service.labels`
4670
serviceLabels: {}
4671
# @schema additionalProperties:{"type":"string"};deprecated:true
4672
# -- Annotations for compactor service
4673
# @deprecated -- This option is deprecated in favor of `compactor.service.annotations`
4674
serviceAnnotations: {}
4675
# @schema type:string;deprecated:true
4676
# -- Service type for compactor service
4677
# @deprecated -- This option is deprecated in favor of `compactor.service.type`
4678
serviceType: "ClusterIP"
4679
service:
4680
# @schema additionalProperties:{"type":"string"}
4681
# -- Annotations for compactor Service
4682
annotations: {}
4683
# @schema additionalProperties:{"type":"string"}
4684
# -- Additional labels for compactor Service
4685
labels: {}
4686
# -- Service Type for compactor Service
4687
type: "ClusterIP"
4688
# -- trafficDistribution for compactor Service
4689
trafficDistribution: ""
4690
# -- Session affinity for compactor Service
4691
sessionAffinity: ""
4692
# @schema additionalProperties:true
4693
# -- Session affinity config for compactor Service
4694
sessionAffinityConfig: {}
4695
# -- ipFamilyPolicy for compactor Service
4696
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4697
ipFamilyPolicy: ""
4698
# -- ipFamilies for compactor Service
4699
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4700
ipFamilies: []
4701
# -- Adds the appProtocol field to the compactor service. This allows compactor to work with istio protocol selection.
4702
appProtocol:
4703
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4704
grpc: ""
4705
headlessService:
4706
# @schema additionalProperties:{"type":"string"}
4707
# -- Additional annotations for headless Distributed compactor Service
4708
annotations: {}
4709
# @schema additionalProperties:{"type":"string"}
4710
# -- Additional labels for headless Distributed compactor Service
4711
labels: {}
4712
# -- Additional CLI args for the compactor
4713
extraArgs: []
4714
# -- Environment variables to add to the compactor pods
4715
extraEnv: []
4716
# -- Environment variables from secrets or configmaps to add to the compactor pods
4717
extraEnvFrom: []
4718
# -- Volume mounts to add to the compactor pods
4719
extraVolumeMounts: []
4720
# -- Volumes to add to the compactor pods
4721
extraVolumes: []
4722
# @schema skipProperties:true;additionalProperties:true
4723
# -- readiness probe settings for compactor pods. If empty, use `loki.readinessProbe`
4724
readinessProbe: {}
4725
# @schema skipProperties:true;additionalProperties:true
4726
# -- liveness probe settings for compactor pods. If empty use `loki.livenessProbe`
4727
livenessProbe: {}
4728
# @schema skipProperties:true;additionalProperties:true
4729
# -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
4730
startupProbe: {}
4731
# @schema additionalProperties:true
4732
# -- Resource requests and limits for the compactor
4733
resources: {}
4734
# -- Container resize policy for the compactor
4735
# Example:
4736
# resizePolicy:
4737
# - resourceName: cpu
4738
# restartPolicy: NotRequired
4739
# - resourceName: memory
4740
# restartPolicy: RestartContainer
4741
resizePolicy: []
4742
# @schema type:[string, array, null]
4743
# -- Containers to add to the compactor pods
4744
extraContainers: []
4745
# @schema type:[string, array, null]
4746
# -- Init containers to add to the compactor pods
4747
initContainers: []
4748
# -- Grace period to allow the compactor to shutdown before it is killed
4749
terminationGracePeriodSeconds: 30
4750
# @schema additionalProperties:true
4751
# -- Node selector for compactor pods
4752
nodeSelector: {}
4753
# -- Tolerations for compactor pods
4754
tolerations: []
4755
# @schema additionalProperties:true;deprecated:true
4756
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4757
# @deprecated -- This option is deprecated in favor of `compactor.service.appProtocol`
4758
appProtocol:
4759
grpc: ""
4760
persistence:
4761
# -- Enable creating PVCs for the compactor
4762
enabled: false
4763
# -- Storage type for the compactor. pvc and ephemeral are supported.
4764
type: pvc
4765
# @schema type:[string, null]
4766
# -- Storage class to be used.
4767
# If defined, storageClassName: <storageClass>.
4768
# If set to "-", storageClassName: "", which disables dynamic provisioning.
4769
# If empty or set to null, no storageClassName spec is
4770
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4771
storageClass: null
4772
# -- Set access modes on the PersistentVolumeClaim
4773
accessModes:
4774
- ReadWriteOnce
4775
# -- Size of persistent disk
4776
size: 10Gi
4777
# @schema type:[string, null]
4778
# -- Size of persistent disk
4779
# -- Volume attributes class name to be used.
4780
# If empty or set to null, no volumeAttributesClassName spec is set.
4781
# Requires Kubernetes 1.31
4782
volumeAttributesClassName: null
4783
# @schema additionalProperties:{"type":"string"}
4784
# -- Annotations for the generated volumeClaimTemplate.
4785
annotations: {}
4786
# @schema additionalProperties:{"type":"string"}
4787
# -- Labels for the generated volumeClaimTemplate.
4788
labels: {}
4789
# @schema type:[object, null]
4790
# -- Selector for the generated volumeClaimTemplate.
4791
selector: null
4792
# @schema skipProperties:true;additionalProperties:true
4793
# -- Parameters used for the `data` volume when volumeClaimEnabled if false
4794
dataVolumeParameters:
4795
emptyDir: {}
4796
# -- List of the compactor PVCs. Deprecated in favor of `compactor.persistence.dataVolumeParameters` and `compactor.persistence.size`.
4797
# @notationType -- list
4798
claims:
4799
- name: data
4800
# -- Set access modes on the PersistentVolumeClaim
4801
accessModes:
4802
- ReadWriteOnce
4803
size: 10Gi
4804
# @schema type:[string, null]
4805
# -- Storage class to be used.
4806
# If defined, storageClassName: <storageClass>.
4807
# If set to "-", storageClassName: "", which disables dynamic provisioning.
4808
# If empty or set to null, no storageClassName spec is
4809
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4810
storageClass: null
4811
# @schema type:[string, null]
4812
# -- Volume attributes class name to be used.
4813
# If empty or set to null, no volumeAttributesClassName spec is set.
4814
# Requires Kubernetes 1.31
4815
volumeAttributesClassName: null
4816
# @schema additionalProperties:{"type":"string"}
4817
# -- Annotations for compactor PVCs
4818
annotations: {}
4819
# @schema additionalProperties:{"type":"string"}
4820
# -- Labels for compactor PVCs
4821
labels: {}
4822
# - name: wal
4823
# size: 150Gi
4824
# -- Enable StatefulSetAutoDeletePVC feature
4825
enableStatefulSetAutoDeletePVC: false
4826
whenDeleted: Retain
4827
whenScaled: Retain
4828
serviceAccount:
4829
create: false
4830
# @schema type:[string, null]
4831
# -- The name of the ServiceAccount to use for the compactor.
4832
# If not set and create is true, a name is generated by appending
4833
# "-compactor" to the common ServiceAccount.
4834
name: null
4835
# @schema item:object;itemProperties:{"name": {"type": "string"}}
4836
# -- Image pull secrets for the compactor service account
4837
imagePullSecrets: []
4838
# @schema additionalProperties:{"type":"string"}
4839
# -- Annotations for the compactor service account
4840
annotations: {}
4841
# -- Set this toggle to false to opt out of automounting API credentials for the service account
4842
automountServiceAccountToken: true
4843
# -- Configuration for the bloom-gateway
4844
bloomGateway:
4845
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4846
enabled: false
4847
# -- Kind of compactor deployment. StatefulSet and Deployment are supported.
4848
kind: StatefulSet
4849
# -- Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed.
4850
## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4851
statefulSetRecreateJob:
4852
enabled: false
4853
# -- Number of replicas for the bloom-gateway
4854
replicas: 0
4855
# -- hostAliases to add
4856
hostAliases: []
4857
# @schema type:[boolean, null]
4858
# - ip: 1.2.3.4
4859
# hostnames:
4860
# - domain.tld
4861
# -- Use the host's user namespace in the bloom-gateway
4862
hostUsers: null
4863
# @schema skipProperties:true;additionalProperties:true
4864
# -- UpdateStrategy or Strategy for the pattern ingester.
4865
strategy:
4866
rollingUpdate:
4867
partition: 0
4868
# @schema additionalProperties:true
4869
# -- DNSConfig for bloom-gateway pods
4870
dnsConfig: {}
4871
image:
4872
# @schema type:[string, null]
4873
# -- The Docker registry for the bloom-gateway image. Overrides `loki.image.registry`
4874
registry: null
4875
# @schema type:[string, null]
4876
# -- Docker image repository for the bloom-gateway image. Overrides `loki.image.repository`
4877
repository: null
4878
# @schema type:[string, null]
4879
# -- Docker image tag for the bloom-gateway image. Overrides `loki.image.tag`
4880
tag: null
4881
# @schema type:[string, null]
4882
# -- Command to execute instead of defined in Docker image
4883
command: null
4884
# @schema type:[string, null]
4885
# -- The name of the PriorityClass for bloom-gateway pods
4886
priorityClassName: null
4887
# @schema additionalProperties:{"type":"string"}
4888
# -- Labels for bloom-builder
4889
labels: {}
4890
# @schema additionalProperties:{"type":"string"}
4891
# -- Annotations for bloom-builder
4892
annotations: {}
4893
# @schema additionalProperties:{"type":"string"}
4894
# -- Labels for bloom-gateway pods
4895
podLabels: {}
4896
# @schema additionalProperties:{"type":"string"}
4897
# -- Annotations for bloom-gateway pods
4898
podAnnotations: {}
4899
# @schema type:[object, null];skipProperties:true;additionalProperties:true
4900
# -- Affinity for bloom-gateway pods.
4901
# @default -- Hard node anti-affinity
4902
# The value will be passed through tpl.
4903
affinity:
4904
podAntiAffinity:
4905
requiredDuringSchedulingIgnoredDuringExecution:
4906
- labelSelector:
4907
matchLabels:
4908
app.kubernetes.io/component: bloom-gateway
4909
app.kubernetes.io/name: '{{ include "loki.name" . }}'
4910
app.kubernetes.io/instance: '{{ .Release.Name }}'
4911
topologyKey: kubernetes.io/hostname
4912
# @schema additionalProperties:{"type":"string"};deprecated:true
4913
# -- Labels for bloom-gateway service
4914
# @deprecated -- This option is deprecated in favor of `bloomGateway.service.labels`
4915
serviceLabels: {}
4916
# @schema additionalProperties:{"type":"string"};deprecated:true
4917
# -- Annotations for bloom-gateway service
4918
# @deprecated -- This option is deprecated in favor of `bloomGateway.service.annotations`
4919
serviceAnnotations: {}
4920
service:
4921
# @schema additionalProperties:{"type":"string"}
4922
# -- Annotations for bloom-gateway Service
4923
annotations: {}
4924
# @schema additionalProperties:{"type":"string"}
4925
# -- Additional labels for bloom-gateway Service
4926
labels: {}
4927
# -- Service Type for bloom-gateway Service
4928
type: "ClusterIP"
4929
# -- trafficDistribution for bloom-gateway Service
4930
trafficDistribution: ""
4931
# -- Session affinity for bloom-gateway Service
4932
sessionAffinity: ""
4933
# @schema additionalProperties:true
4934
# -- Session affinity config for bloom-gateway Service
4935
sessionAffinityConfig: {}
4936
# -- ipFamilyPolicy for bloom-gateway Service
4937
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4938
ipFamilyPolicy: ""
4939
# -- ipFamilies for bloom-gateway Service
4940
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4941
ipFamilies: []
4942
# -- Adds the appProtocol field to the bloom-gateway service. This allows bloom-gateway to work with istio protocol selection.
4943
appProtocol:
4944
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4945
grpc: ""
4946
headlessService:
4947
# @schema additionalProperties:{"type":"string"}
4948
# -- Additional annotations for headless Distributed compactor Service
4949
annotations: {}
4950
# @schema additionalProperties:{"type":"string"}
4951
# -- Additional labels for headless Distributed compactor Service
4952
labels: {}
4953
# -- Additional CLI args for the bloom-gateway
4954
extraArgs: []
4955
# -- Environment variables to add to the bloom-gateway pods
4956
extraEnv: []
4957
# -- Environment variables from secrets or configmaps to add to the bloom-gateway pods
4958
extraEnvFrom: []
4959
# -- Volume mounts to add to the bloom-gateway pods
4960
extraVolumeMounts: []
4961
# -- Volumes to add to the bloom-gateway pods
4962
extraVolumes: []
4963
# @schema skipProperties:true;additionalProperties:true
4964
# -- readiness probe settings for bloom-gateway pods. If empty, use `loki.readinessProbe`
4965
readinessProbe: {}
4966
# @schema skipProperties:true;additionalProperties:true
4967
# -- liveness probe settings for bloom-gateway pods. If empty use `loki.livenessProbe`
4968
livenessProbe: {}
4969
# @schema skipProperties:true;additionalProperties:true
4970
# -- startup probe settings for bloom-gateway pods. If empty, use `loki.startupProbe`
4971
startupProbe: {}
4972
# @schema additionalProperties:true
4973
# -- Resource requests and limits for the bloom-gateway
4974
resources: {}
4975
# -- Container resize policy for the bloom-gateway
4976
# Example:
4977
# resizePolicy:
4978
# - resourceName: cpu
4979
# restartPolicy: NotRequired
4980
# - resourceName: memory
4981
# restartPolicy: RestartContainer
4982
resizePolicy: []
4983
# @schema type:[string, array, null]
4984
# -- Containers to add to the bloom-gateway pods
4985
extraContainers: []
4986
# @schema type:[string, array, null]
4987
# -- Init containers to add to the bloom-gateway pods
4988
initContainers: []
4989
# -- Grace period to allow the bloom-gateway to shutdown before it is killed
4990
terminationGracePeriodSeconds: 30
4991
podDisruptionBudget:
4992
# -- Enable Pod Disruption Budget
4993
enabled: true
4994
# @schema additionalProperties:{"type":"string"}
4995
# -- Annotations for Pod Disruption Budget
4996
annotations: {}
4997
# @schema additionalProperties:{"type":"string"}
4998
# -- Labels for Pod Disruption Budget
4999
labels: {}
5000
# @schema type:[string, integer, null]
5001
# -- Pod Disruption Budget minAvailable
5002
minAvailable: null
5003
# @schema type:[string, integer, null]
5004
# -- Pod Disruption Budget maxUnavailable
5005
maxUnavailable: null
5006
# @schema type:[string, null]
5007
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
5008
unhealthyPodEvictionPolicy: null
5009
# @schema additionalProperties:true
5010
# -- Node selector for bloom-gateway pods
5011
nodeSelector: {}
5012
# -- Tolerations for bloom-gateway pods
5013
tolerations: []
5014
# @schema additionalProperties:true;deprecated:true
5015
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5016
# @deprecated -- This option is deprecated in favor of `bloomGateway.service.appProtocol`
5017
appProtocol:
5018
grpc: ""
5019
# -- The default is to deploy all pods in parallel.
5020
podManagementPolicy: "Parallel"
5021
persistence:
5022
# -- Enable creating PVCs for the bloom-gateway
5023
enabled: false
5024
# @schema additionalProperties:{"type":"string"}
5025
# -- Annotations for bloom-gateway PVCs
5026
annotations: {}
5027
# @schema additionalProperties:{"type":"string"}
5028
# -- Labels for bloom gateway PVCs
5029
labels: {}
5030
# -- List of the bloom-gateway PVCs
5031
# @notationType -- list
5032
claims:
5033
- name: data
5034
# -- Set access modes on the PersistentVolumeClaim
5035
accessModes:
5036
- ReadWriteOnce
5037
# -- Size of persistent disk
5038
size: 10Gi
5039
# @schema type:[string, null]
5040
# -- Storage class to be used.
5041
# If defined, storageClassName: <storageClass>.
5042
# If set to "-", storageClassName: "", which disables dynamic provisioning.
5043
# If empty or set to null, no storageClassName spec is
5044
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5045
storageClass: null
5046
# @schema type:[string, null]
5047
# -- Volume attributes class name to be used.
5048
# If empty or set to null, no volumeAttributesClassName spec is set.
5049
# Requires Kubernetes 1.31
5050
volumeAttributesClassName: null
5051
# -- Enable StatefulSetAutoDeletePVC feature
5052
enableStatefulSetAutoDeletePVC: false
5053
whenDeleted: Retain
5054
whenScaled: Retain
5055
serviceAccount:
5056
# -- Specifies whether a ServiceAccount should be created
5057
create: false
5058
# @schema type:[string, null]
5059
# -- The name of the ServiceAccount to use.
5060
# If not set and create is true, a name is generated using the fullname template
5061
name: null
5062
# @schema item:object;itemProperties:{"name": {"type": "string"}}
5063
# -- Image pull secrets for the service account
5064
imagePullSecrets: []
5065
# @schema additionalProperties:{"type":"string"}
5066
# -- Annotations for the service account
5067
annotations: {}
5068
# @schema additionalProperties:{"type":"string"}
5069
# -- Labels for the service account
5070
labels: {}
5071
# -- Set this toggle to false to opt out of automounting API credentials for the service account
5072
automountServiceAccountToken: true
5073
# -- Configuration for the bloom-planner
5074
bloomPlanner:
5075
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5076
enabled: false
5077
# -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5078
kind: StatefulSet
5079
# -- Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed.
5080
## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5081
statefulSetRecreateJob:
5082
enabled: false
5083
# -- Number of replicas for the bloom-planner
5084
replicas: 0
5085
# -- hostAliases to add
5086
hostAliases: []
5087
# @schema type:[boolean, null]
5088
# - ip: 1.2.3.4
5089
# hostnames:
5090
# - domain.tld
5091
# -- Use the host's user namespace in the bloom-planner
5092
hostUsers: null
5093
# @schema additionalProperties:true
5094
# -- DNSConfig for bloom-planner pods
5095
dnsConfig: {}
5096
# @schema skipProperties:true;additionalProperties:true
5097
# -- UpdateStrategy or Strategy for the pattern ingester.
5098
strategy:
5099
rollingUpdate:
5100
partition: 0
5101
image:
5102
# @schema type:[string, null]
5103
# -- The Docker registry for the bloom-planner image. Overrides `loki.image.registry`
5104
registry: null
5105
# @schema type:[string, null]
5106
# -- Docker image repository for the bloom-planner image. Overrides `loki.image.repository`
5107
repository: null
5108
# @schema type:[string, null]
5109
# -- Docker image tag for the bloom-planner image. Overrides `loki.image.tag`
5110
tag: null
5111
# @schema type:[string, null]
5112
# -- Command to execute instead of defined in Docker image
5113
command: null
5114
# @schema type:[string, null]
5115
# -- The name of the PriorityClass for bloom-planner pods
5116
priorityClassName: null
5117
# @schema additionalProperties:{"type":"string"}
5118
# -- Labels for bloom-builder
5119
labels: {}
5120
# @schema additionalProperties:{"type":"string"}
5121
# -- Annotations for bloom-builder
5122
annotations: {}
5123
# @schema additionalProperties:{"type":"string"}
5124
# -- Labels for bloom-planner pods
5125
podLabels: {}
5126
# @schema additionalProperties:{"type":"string"}
5127
# -- Annotations for bloom-planner pods
5128
podAnnotations: {}
5129
# @schema type:[object, null];skipProperties:true;additionalProperties:true
5130
# -- Affinity for bloom-planner pods.
5131
# @default -- Hard node anti-affinity
5132
# The value will be passed through tpl.
5133
affinity:
5134
podAntiAffinity:
5135
requiredDuringSchedulingIgnoredDuringExecution:
5136
- labelSelector:
5137
matchLabels:
5138
app.kubernetes.io/component: bloom-planner
5139
app.kubernetes.io/name: '{{ include "loki.name" . }}'
5140
app.kubernetes.io/instance: '{{ .Release.Name }}'
5141
topologyKey: kubernetes.io/hostname
5142
# @schema additionalProperties:{"type":"string"};deprecated:true
5143
# -- Labels for bloom-planner service
5144
# @deprecated -- This option is deprecated in favor of `bloomPlanner.service.labels`
5145
serviceLabels: {}
5146
# @schema additionalProperties:{"type":"string"};deprecated:true
5147
# -- Annotations for bloom-planner service
5148
# @deprecated -- This option is deprecated in favor of `bloomPlanner.service.annotations`
5149
serviceAnnotations: {}
5150
service:
5151
# @schema additionalProperties:{"type":"string"}
5152
# -- Annotations for bloom-planner Service
5153
annotations: {}
5154
# @schema additionalProperties:{"type":"string"}
5155
# -- Additional labels for bloom-planner Service
5156
labels: {}
5157
# -- Service Type for bloom-planner Service
5158
type: "ClusterIP"
5159
# -- trafficDistribution for bloom-planner Service
5160
trafficDistribution: ""
5161
# -- Session affinity for bloom-planner Service
5162
sessionAffinity: ""
5163
# @schema additionalProperties:true
5164
# -- Session affinity config for bloom-planner Service
5165
sessionAffinityConfig: {}
5166
# -- ipFamilyPolicy for bloom-planner Service
5167
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5168
ipFamilyPolicy: ""
5169
# -- ipFamilies for bloom-planner Service
5170
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5171
ipFamilies: []
5172
# -- Adds the appProtocol field to the bloom-planner service. This allows bloom-planner to work with istio protocol selection.
5173
appProtocol:
5174
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5175
grpc: ""
5176
headlessService:
5177
# @schema additionalProperties:{"type":"string"}
5178
# -- Additional annotations for headless Distributed compactor Service
5179
annotations: {}
5180
# @schema additionalProperties:{"type":"string"}
5181
# -- Additional labels for headless Distributed compactor Service
5182
labels: {}
5183
# -- Additional CLI args for the bloom-planner
5184
extraArgs: []
5185
# -- Environment variables to add to the bloom-planner pods
5186
extraEnv: []
5187
# -- Environment variables from secrets or configmaps to add to the bloom-planner pods
5188
extraEnvFrom: []
5189
# -- Volume mounts to add to the bloom-planner pods
5190
extraVolumeMounts: []
5191
# -- Volumes to add to the bloom-planner pods
5192
extraVolumes: []
5193
# @schema skipProperties:true;additionalProperties:true
5194
# -- readiness probe settings for bloom-planner pods. If empty, use `loki.readinessProbe`
5195
readinessProbe: {}
5196
# @schema skipProperties:true;additionalProperties:true
5197
# -- liveness probe settings for bloom-planner pods. If empty use `loki.livenessProbe`
5198
livenessProbe: {}
5199
# @schema skipProperties:true;additionalProperties:true
5200
# -- startup probe settings for bloom-planner pods. If empty use `loki.startupProbe`
5201
startupProbe: {}
5202
# @schema additionalProperties:true
5203
# -- Resource requests and limits for the bloom-planner
5204
resources: {}
5205
# -- Container resize policy for the bloom-planner
5206
# Example:
5207
# resizePolicy:
5208
# - resourceName: cpu
5209
# restartPolicy: NotRequired
5210
# - resourceName: memory
5211
# restartPolicy: RestartContainer
5212
resizePolicy: []
5213
# @schema type:[string, array, null]
5214
# -- Containers to add to the bloom-planner pods
5215
extraContainers: []
5216
# @schema type:[string, array, null]
5217
# -- Init containers to add to the bloom-planner pods
5218
initContainers: []
5219
# -- Grace period to allow the bloom-planner to shutdown before it is killed
5220
terminationGracePeriodSeconds: 30
5221
podDisruptionBudget:
5222
# -- Enable Pod Disruption Budget
5223
enabled: true
5224
# @schema additionalProperties:{"type":"string"}
5225
# -- Annotations for Pod Disruption Budget
5226
annotations: {}
5227
# @schema additionalProperties:{"type":"string"}
5228
# -- Labels for Pod Disruption Budget
5229
labels: {}
5230
# @schema type:[string, integer, null]
5231
# -- Pod Disruption Budget minAvailable
5232
minAvailable: null
5233
# @schema type:[string, integer, null]
5234
# -- Pod Disruption Budget maxUnavailable
5235
maxUnavailable: null
5236
# @schema type:[string, null]
5237
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
5238
unhealthyPodEvictionPolicy: null
5239
# @schema additionalProperties:true
5240
# -- Node selector for bloom-planner pods
5241
nodeSelector: {}
5242
# -- Tolerations for bloom-planner pods
5243
tolerations: []
5244
# @schema additionalProperties:true;deprecated:true
5245
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5246
# @deprecated -- This option is deprecated in favor of `bloomPlanner.service.appProtocol`
5247
appProtocol:
5248
grpc: ""
5249
# -- The default is to deploy all pods in parallel.
5250
podManagementPolicy: "Parallel"
5251
persistence:
5252
# -- Enable creating PVCs for the bloom-planner
5253
enabled: false
5254
# -- List of the bloom-planner PVCs
5255
# @notationType -- list
5256
claims:
5257
- name: data
5258
# -- Set access modes on the PersistentVolumeClaim
5259
accessModes:
5260
- ReadWriteOnce
5261
# -- Size of persistent disk
5262
size: 10Gi
5263
# @schema type:[string, null]
5264
# -- Storage class to be used.
5265
# If defined, storageClassName: <storageClass>.
5266
# If set to "-", storageClassName: "", which disables dynamic provisioning.
5267
# If empty or set to null, no storageClassName spec is
5268
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5269
storageClass: null
5270
# @schema type:[string, null]
5271
# -- Volume attributes class name to be used.
5272
# If empty or set to null, no volumeAttributesClassName spec is set.
5273
# Requires Kubernetes 1.31
5274
volumeAttributesClassName: null
5275
# @schema additionalProperties:{"type":"string"}
5276
# -- Annotations for bloom-planner PVCs
5277
annotations: {}
5278
# @schema additionalProperties:{"type":"string"}
5279
# -- Labels for bloom planner PVCs
5280
labels: {}
5281
# -- Enable StatefulSetAutoDeletePVC feature
5282
enableStatefulSetAutoDeletePVC: false
5283
whenDeleted: Retain
5284
whenScaled: Retain
5285
serviceAccount:
5286
# -- Specifies whether a ServiceAccount should be created
5287
create: false
5288
# @schema type:[string, null]
5289
# -- The name of the ServiceAccount to use.
5290
# If not set and create is true, a name is generated using the fullname template
5291
name: null
5292
# @schema item:object;itemProperties:{"name": {"type": "string"}}
5293
# -- Image pull secrets for the service account
5294
imagePullSecrets: []
5295
# @schema additionalProperties:{"type":"string"}
5296
# -- Annotations for the service account
5297
annotations: {}
5298
# @schema additionalProperties:{"type":"string"}
5299
# -- Labels for the service account
5300
labels: {}
5301
# -- Set this toggle to false to opt out of automounting API credentials for the service account
5302
automountServiceAccountToken: true
5303
# -- Configuration for the bloom-builder
5304
bloomBuilder:
5305
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5306
enabled: false
5307
# -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5308
kind: Deployment
5309
# -- Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
5310
## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5311
statefulSetRecreateJob:
5312
enabled: false
5313
# @schema type:[integer, null]
5314
# -- Number of replicas for the bloom-builder. Set to null to omit spec.replicas from the workload,
5315
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5316
replicas: 0
5317
# -- hostAliases to add
5318
hostAliases: []
5319
# @schema type:[boolean, null]
5320
# - ip: 1.2.3.4
5321
# hostnames:
5322
# - domain.tld
5323
# -- Use the host's user namespace in the boom-builder
5324
hostUsers: null
5325
# @schema additionalProperties:true
5326
# -- DNSConfig for bloom-builder pods
5327
dnsConfig: {}
5328
autoscaling:
5329
# -- Enable autoscaling for the bloom-builder
5330
enabled: false
5331
# -- Minimum autoscaling replicas for the bloom-builder
5332
minReplicas: 1
5333
# -- Maximum autoscaling replicas for the bloom-builder
5334
maxReplicas: 3
5335
# @schema type:[integer, null]
5336
# -- Target CPU utilisation percentage for the bloom-builder
5337
targetCPUUtilizationPercentage: 60
5338
# @schema type:[integer, null]
5339
# -- Target memory utilisation percentage for the bloom-builder
5340
targetMemoryUtilizationPercentage: null
5341
# -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
5342
customMetrics: []
5343
# - type: Pods
5344
# pods:
5345
# metric:
5346
# name: loki_query_rate
5347
# target:
5348
# type: AverageValue
5349
# averageValue: 100
5350
# @schema skipProperties:true;additionalProperties:true
5351
# -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
5352
behavior:
5353
# -- Enable autoscaling behaviours
5354
enabled: false
5355
# -- define scale down policies, must conform to HPAScalingRules
5356
scaleDown: {}
5357
# -- define scale up policies, must conform to HPAScalingRules
5358
scaleUp: {}
5359
kedaAutoscaling:
5360
# -- Enable KEDA autoscaling for the bloom-builder. Mutually exclusive with autoscaling.enabled
5361
enabled: false
5362
# @schema type:[integer, null]
5363
# -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
5364
pollingInterval: null
5365
# -- Minimum replicas for KEDA autoscaling
5366
minReplicas: 1
5367
# -- Maximum replicas for KEDA autoscaling
5368
maxReplicas: 3
5369
# @schema type:[integer, null]
5370
# -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
5371
# Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
5372
cooldownPeriod: null
5373
# @schema additionalProperties:true
5374
# -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
5375
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
5376
fallback: {}
5377
# @schema skipProperties:true;additionalProperties:true
5378
# -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
5379
# Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
5380
behavior: {}
5381
# -- KEDA triggers for the bloom-builder.
5382
# Ref: https://keda.sh/docs/latest/scalers/
5383
triggers: []
5384
image:
5385
# @schema type:[string, null]
5386
# -- The Docker registry for the bloom-builder image. Overrides `loki.image.registry`
5387
registry: null
5388
# @schema type:[string, null]
5389
# -- Docker image repository for the bloom-builder image. Overrides `loki.image.repository`
5390
repository: null
5391
# @schema type:[string, null]
5392
# -- Docker image tag for the bloom-builder image. Overrides `loki.image.tag`
5393
tag: null
5394
# @schema type:[string, null]
5395
# -- Command to execute instead of defined in Docker image
5396
command: null
5397
# @schema type:[string, null]
5398
# -- The name of the PriorityClass for bloom-builder pods
5399
priorityClassName: null
5400
# @schema additionalProperties:{"type":"string"}
5401
# -- Labels for bloom-builder
5402
labels: {}
5403
# @schema additionalProperties:{"type":"string"}
5404
# -- Annotations for bloom-builder
5405
annotations: {}
5406
# @schema additionalProperties:{"type":"string"}
5407
# -- Labels for bloom-builder pods
5408
podLabels: {}
5409
# @schema additionalProperties:{"type":"string"}
5410
# -- Annotations for bloom-builder pods
5411
podAnnotations: {}
5412
# @schema additionalProperties:{"type":"string"};deprecated:true
5413
# -- Labels for bloom-builder service
5414
# @deprecated -- This option is deprecated in favor of `bloomBuilder.service.labels`
5415
serviceLabels: {}
5416
# @schema additionalProperties:{"type":"string"};deprecated:true
5417
# -- Annotations for bloom-builder service
5418
# @deprecated -- This option is deprecated in favor of `bloomBuilder.service.annotations`
5419
serviceAnnotations: {}
5420
service:
5421
# @schema additionalProperties:{"type":"string"}
5422
# -- Annotations for bloom-builder Service
5423
annotations: {}
5424
# @schema additionalProperties:{"type":"string"}
5425
# -- Additional labels for bloom-builder Service
5426
labels: {}
5427
# -- Service Type for bloom-builder Service
5428
type: "ClusterIP"
5429
# -- trafficDistribution for bloom-builder Service
5430
trafficDistribution: ""
5431
# -- Session affinity for bloom-builder Service
5432
sessionAffinity: ""
5433
# @schema additionalProperties:true
5434
# -- Session affinity config for bloom-builder Service
5435
sessionAffinityConfig: {}
5436
# -- ipFamilyPolicy for bloom-builder Service
5437
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5438
ipFamilyPolicy: ""
5439
# -- ipFamilies for bloom-builder Service
5440
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5441
ipFamilies: []
5442
# -- Adds the appProtocol field to the bloom-builder service. This allows bloom-builder to work with istio protocol selection.
5443
appProtocol:
5444
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5445
grpc: ""
5446
headlessService:
5447
# @schema additionalProperties:{"type":"string"}
5448
# -- Additional annotations for headless Distributed compactor Service
5449
annotations: {}
5450
# @schema additionalProperties:{"type":"string"}
5451
# -- Additional labels for headless Distributed compactor Service
5452
labels: {}
5453
# -- Additional CLI args for the bloom-builder
5454
extraArgs: []
5455
# -- Environment variables to add to the bloom-builder pods
5456
extraEnv: []
5457
# -- Environment variables from secrets or configmaps to add to the bloom-builder pods
5458
extraEnvFrom: []
5459
# -- Volume mounts to add to the bloom-builder pods
5460
extraVolumeMounts: []
5461
# -- Volumes to add to the bloom-builder pods
5462
extraVolumes: []
5463
# @schema additionalProperties:true
5464
# -- Resource requests and limits for the bloom-builder
5465
resources: {}
5466
# -- Container resize policy for the bloom-builder
5467
# Example:
5468
# resizePolicy:
5469
# - resourceName: cpu
5470
# restartPolicy: NotRequired
5471
# - resourceName: memory
5472
# restartPolicy: RestartContainer
5473
resizePolicy: []
5474
# @schema type:[string, array, null]
5475
# -- Init containers to add to the bloom-builder pods
5476
initContainers: []
5477
# @schema type:[string, array, null]
5478
# -- Containers to add to the bloom-builder pods
5479
extraContainers: []
5480
# -- Grace period to allow the bloom-builder to shutdown before it is killed
5481
terminationGracePeriodSeconds: 30
5482
podDisruptionBudget:
5483
# -- Enable Pod Disruption Budget
5484
enabled: true
5485
# @schema additionalProperties:{"type":"string"}
5486
# -- Annotations for Pod Disruption Budget
5487
annotations: {}
5488
# @schema additionalProperties:{"type":"string"}
5489
# -- Labels for Pod Disruption Budget
5490
labels: {}
5491
# @schema type:[string, integer, null]
5492
# -- Pod Disruption Budget minAvailable
5493
minAvailable: null
5494
# @schema type:[string, integer, null]
5495
# -- Pod Disruption Budget maxUnavailable
5496
maxUnavailable: null
5497
# @schema type:[string, null]
5498
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
5499
unhealthyPodEvictionPolicy: null
5500
# @schema type:[object, null];skipProperties:true;additionalProperties:true
5501
# -- Affinity for bloom-builder pods.
5502
# @default -- Hard node anti-affinity
5503
# The value will be passed through tpl.
5504
affinity:
5505
podAntiAffinity:
5506
requiredDuringSchedulingIgnoredDuringExecution:
5507
- labelSelector:
5508
matchLabels:
5509
app.kubernetes.io/component: bloom-builder
5510
app.kubernetes.io/name: '{{ include "loki.name" . }}'
5511
app.kubernetes.io/instance: '{{ .Release.Name }}'
5512
topologyKey: kubernetes.io/hostname
5513
# @schema type:[string, integer, null];deprecated:true
5514
# -- Pod Disruption Budget maxUnavailable
5515
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5516
maxUnavailable: null
5517
# @schema additionalProperties:true
5518
# -- Node selector for bloom-builder pods
5519
nodeSelector: {}
5520
# -- Tolerations for bloom-builder pods
5521
tolerations: []
5522
# @schema additionalProperties:true;deprecated:true
5523
# -- Adds the appProtocol field to the queryFrontend service. This allows bloomBuilder to work with istio protocol selection.
5524
# @deprecated -- This option is deprecated in favor of `bloomBuilder.service.appProtocol`
5525
appProtocol:
5526
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5527
grpc: ""
5528
# @schema skipProperties:true;additionalProperties:true
5529
# -- Update strategy for bloom-builder deployment
5530
strategy:
5531
rollingUpdate:
5532
maxSurge: 0
5533
# @schema type:[string, integer, null]
5534
# -- Pod Disruption Budget maxUnavailable
5535
maxUnavailable: 1
5536
persistence:
5537
# -- Enable generic ephemeral volume-backed storage for the bloom-builder `data` volume.
5538
enabled: false
5539
# -- Storage type for the bloom-builder. pvc and ephemeral are supported.
5540
type: ephemeral
5541
# -- Set access modes on the generated volumeClaimTemplate.
5542
accessModes:
5543
- ReadWriteOnce
5544
# -- Size of the generated volumeClaimTemplate.
5545
size: 10Gi
5546
# @schema type:[string, null]
5547
# -- Storage class to be used for the generated volumeClaimTemplate.
5548
# If defined, storageClassName: <storageClass>.
5549
# If set to "-", storageClassName: "", which disables dynamic provisioning.
5550
# If empty or set to null, no storageClassName spec is set, choosing the default provisioner.
5551
storageClass: null
5552
# @schema type:[string, null]
5553
# -- Volume attributes class name to be used for the generated volumeClaimTemplate.
5554
# If empty or set to null, no volumeAttributesClassName spec is set.
5555
# Requires Kubernetes 1.31
5556
volumeAttributesClassName: null
5557
# @schema type:[object, null]
5558
# -- Selector for the generated volumeClaimTemplate.
5559
selector: null
5560
# @schema additionalProperties:{"type":"string"}
5561
# -- Annotations for the generated volumeClaimTemplate.
5562
annotations: {}
5563
# @schema additionalProperties:{"type":"string"}
5564
# -- Labels for the generated volumeClaimTemplate.
5565
labels: {}
5566
serviceAccount:
5567
# -- Specifies whether a ServiceAccount should be created
5568
create: false
5569
# @schema type:[string, null]
5570
# -- The name of the ServiceAccount to use.
5571
# If not set and create is true, a name is generated using the fullname template
5572
name: null
5573
# @schema item:object;itemProperties:{"name": {"type": "string"}}
5574
# -- Image pull secrets for the service account
5575
imagePullSecrets: []
5576
# @schema additionalProperties:{"type":"string"}
5577
# -- Annotations for the service account
5578
annotations: {}
5579
# @schema additionalProperties:{"type":"string"}
5580
# -- Labels for the service account
5581
labels: {}
5582
# -- Set this toggle to false to opt out of automounting API credentials for the service account
5583
automountServiceAccountToken: true
5584
# -- Configuration for the pattern ingester
5585
patternIngester:
5586
# -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5587
enabled: false
5588
# -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5589
kind: StatefulSet
5590
# -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
5591
## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5592
statefulSetRecreateJob:
5593
enabled: false
5594
# @schema type:[integer, null]
5595
# -- Number of replicas for the pattern ingester. Set to null to omit spec.replicas from the workload,
5596
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5597
replicas: 0
5598
# @schema skipProperties:true;additionalProperties:true
5599
# -- UpdateStrategy or Strategy for the pattern ingester.
5600
strategy:
5601
rollingUpdate:
5602
partition: 0
5603
# @schema additionalProperties:true
5604
# -- DNSConfig for pattern ingester pods
5605
dnsConfig: {}
5606
# -- hostAliases to add
5607
hostAliases: []
5608
# @schema type:[boolean, null]
5609
# - ip: 1.2.3.4
5610
# hostnames:
5611
# - domain.tld
5612
# -- Use the host's user namespace in the pattern ingester
5613
hostUsers: null
5614
image:
5615
# @schema type:[string, null]
5616
# -- The Docker registry for the pattern ingester image. Overrides `loki.image.registry`
5617
registry: null
5618
# @schema type:[string, null]
5619
# -- Docker image repository for the pattern ingester image. Overrides `loki.image.repository`
5620
repository: null
5621
# @schema type:[string, null]
5622
# -- Docker image tag for the pattern ingester image. Overrides `loki.image.tag`
5623
tag: null
5624
# @schema type:[string, null]
5625
# -- Command to execute instead of defined in Docker image
5626
command: null
5627
# @schema type:[string, null]
5628
# -- The name of the PriorityClass for pattern ingester pods
5629
priorityClassName: null
5630
# @schema additionalProperties:{"type":"string"}
5631
# -- Labels for pattern ingester
5632
labels: {}
5633
# @schema additionalProperties:{"type":"string"}
5634
# -- Annotations for pattern ingester
5635
annotations: {}
5636
# @schema additionalProperties:{"type":"string"}
5637
# -- Labels for pattern ingester pods
5638
podLabels: {}
5639
# @schema additionalProperties:{"type":"string"}
5640
# -- Annotations for pattern ingester pods
5641
podAnnotations: {}
5642
# @schema type:[object, null];skipProperties:true;additionalProperties:true
5643
# -- Affinity for pattern ingester pods.
5644
# @default -- Hard node anti-affinity
5645
# The value will be passed through tpl.
5646
affinity:
5647
podAntiAffinity:
5648
requiredDuringSchedulingIgnoredDuringExecution:
5649
- labelSelector:
5650
matchLabels:
5651
app.kubernetes.io/component: pattern-ingester
5652
app.kubernetes.io/name: '{{ include "loki.name" . }}'
5653
app.kubernetes.io/instance: '{{ .Release.Name }}'
5654
topologyKey: kubernetes.io/hostname
5655
# @schema type:[string, integer, null];deprecated:true
5656
# -- Pod Disruption Budget maxUnavailable
5657
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5658
maxUnavailable: null
5659
# -- Additional CLI args for the pattern ingester
5660
extraArgs: []
5661
# -- Environment variables to add to the pattern ingester pods
5662
extraEnv: []
5663
# -- Environment variables from secrets or configmaps to add to the pattern ingester pods
5664
extraEnvFrom: []
5665
# -- Volume mounts to add to the pattern ingester pods
5666
extraVolumeMounts: []
5667
# -- Volumes to add to the pattern ingester pods
5668
extraVolumes: []
5669
# @schema skipProperties:true;additionalProperties:true
5670
# -- readiness probe settings for pattern ingester pods. If empty, use `loki.readinessProbe`
5671
readinessProbe: {}
5672
# @schema skipProperties:true;additionalProperties:true
5673
# -- liveness probe settings for pattern ingester pods. If empty use `loki.livenessProbe`
5674
livenessProbe: {}
5675
# @schema skipProperties:true;additionalProperties:true
5676
# -- startup probe settings for pattern ingester pods. If empty use `loki.startupProbe`
5677
startupProbe: {}
5678
# @schema additionalProperties:true
5679
# -- Resource requests and limits for the pattern ingester
5680
resources: {}
5681
# -- Container resize policy for the pattern ingester
5682
# Example:
5683
# resizePolicy:
5684
# - resourceName: cpu
5685
# restartPolicy: NotRequired
5686
# - resourceName: memory
5687
# restartPolicy: RestartContainer
5688
resizePolicy: []
5689
# @schema type:[string, array, null]
5690
# -- Containers to add to the pattern ingester pods
5691
extraContainers: []
5692
# @schema type:[string, array, null]
5693
# -- Init containers to add to the pattern ingester pods
5694
initContainers: []
5695
# -- Grace period to allow the pattern ingester to shutdown before it is killed
5696
terminationGracePeriodSeconds: 30
5697
podDisruptionBudget:
5698
# -- Enable Pod Disruption Budget
5699
enabled: true
5700
# @schema additionalProperties:{"type":"string"}
5701
# -- Annotations for Pod Disruption Budget
5702
annotations: {}
5703
# @schema additionalProperties:{"type":"string"}
5704
# -- Labels for Pod Disruption Budget
5705
labels: {}
5706
# @schema type:[string, integer, null]
5707
# -- Pod Disruption Budget minAvailable
5708
minAvailable: null
5709
# @schema type:[string, integer, null]
5710
# -- Pod Disruption Budget maxUnavailable
5711
maxUnavailable: null
5712
# @schema type:[string, null]
5713
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
5714
unhealthyPodEvictionPolicy: null
5715
# @schema additionalProperties:true
5716
# -- Node selector for pattern ingester pods
5717
nodeSelector: {}
5718
# @schema item:object
5719
# -- Topology Spread Constraints for pattern ingester pods
5720
# The value will be passed through tpl.
5721
topologySpreadConstraints: []
5722
tolerations: []
5723
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5724
appProtocol:
5725
grpc: ""
5726
persistence:
5727
# -- Enable creating PVCs for the pattern ingester
5728
enabled: false
5729
# -- Size of persistent disk
5730
size: 10Gi
5731
# @schema type:[string, null]
5732
# -- Storage class to be used.
5733
# If defined, storageClassName: <storageClass>.
5734
# If set to "-", storageClassName: "", which disables dynamic provisioning.
5735
# If empty or set to null, no storageClassName spec is
5736
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5737
storageClass: null
5738
# -- List of the pattern ingester PVCs
5739
# @notationType -- list
5740
claims:
5741
- name: data
5742
# -- Set access modes on the PersistentVolumeClaim
5743
accessModes:
5744
- ReadWriteOnce
5745
size: 10Gi
5746
# @schema type:[string, null]
5747
# -- Storage class to be used.
5748
# If defined, storageClassName: <storageClass>.
5749
# If set to "-", storageClassName: "", which disables dynamic provisioning.
5750
# If empty or set to null, no storageClassName spec is
5751
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5752
storageClass: null
5753
# @schema type:[string, null]
5754
# -- Volume attributes class name to be used.
5755
# If empty or set to null, no volumeAttributesClassName spec is set.
5756
# Requires Kubernetes 1.31
5757
volumeAttributesClassName: null
5758
# @schema additionalProperties:{"type":"string"}
5759
# -- Annotations for pattern ingester PVCs
5760
annotations: {}
5761
# @schema additionalProperties:{"type":"string"}
5762
# -- Labels for pattern ingester PVCs
5763
labels: {}
5764
# - name: wal
5765
# size: 150Gi
5766
# -- Enable StatefulSetAutoDeletePVC feature
5767
enableStatefulSetAutoDeletePVC: false
5768
whenDeleted: Retain
5769
whenScaled: Retain
5770
serviceAccount:
5771
# -- Specifies whether a ServiceAccount should be created
5772
create: false
5773
# @schema type:[string, null]
5774
# -- The name of the ServiceAccount to use.
5775
# If not set and create is true, a name is generated using the fullname template
5776
name: null
5777
# @schema item:object;itemProperties:{"name": {"type": "string"}}
5778
# -- Image pull secrets for the service account
5779
imagePullSecrets: []
5780
# @schema additionalProperties:{"type":"string"}
5781
# -- Annotations for the service account
5782
annotations: {}
5783
# @schema additionalProperties:{"type":"string"}
5784
# -- Labels for the service account
5785
labels: {}
5786
# -- Set this toggle to false to opt out of automounting API credentials for the service account
5787
automountServiceAccountToken: true
5788
# -- Configuration for the ruler
5789
ruler:
5790
# -- The ruler component is optional and can be disabled if desired.
5791
enabled: true
5792
# -- Kind of ruler deployment. StatefulSet and Deployment are supported.
5793
kind: StatefulSet
5794
# -- EXPERIMENTAL: Enable creating a Job to recreate the ruler StatefulSet when the ruler configuration is changed.
5795
## Only applicable if `ruler.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5796
statefulSetRecreateJob:
5797
enabled: false
5798
# -- Whether to enable the rules sidecar
5799
sidecar: false
5800
# @schema type:[integer, null]
5801
# -- Number of replicas for the ruler. Set to null to omit spec.replicas from the workload,
5802
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5803
replicas: 0
5804
# -- hostAliases to add
5805
hostAliases: []
5806
# @schema type:[boolean, null]
5807
# - ip: 1.2.3.4
5808
# hostnames:
5809
# - domain.tld
5810
# -- Use the host's user namespace in the ruler
5811
hostUsers: null
5812
image:
5813
# @schema type:[string, null]
5814
# -- The Docker registry for the ruler image. Overrides `loki.image.registry`
5815
registry: null
5816
# @schema type:[string, null]
5817
# -- Docker image repository for the ruler image. Overrides `loki.image.repository`
5818
repository: null
5819
# @schema type:[string, null]
5820
# -- Docker image tag for the ruler image. Overrides `loki.image.tag`
5821
tag: null
5822
# @schema type:[string, null]
5823
# -- Command to execute instead of defined in Docker image
5824
command: null
5825
# @schema type:[string, null]
5826
# -- The name of the PriorityClass for ruler pods
5827
priorityClassName: null
5828
# @schema additionalProperties:{"type":"string"}
5829
# -- Labels for ruler
5830
labels: {}
5831
# @schema additionalProperties:{"type":"string"}
5832
# -- Annotations for ruler
5833
annotations: {}
5834
# @schema additionalProperties:{"type":"string"}
5835
# -- Labels for ruler pods
5836
podLabels: {}
5837
# @schema additionalProperties:{"type":"string"}
5838
# -- Annotations for ruler pods
5839
podAnnotations: {}
5840
# @schema additionalProperties:{"type":"string"};deprecated:true
5841
# -- Labels for ruler service
5842
# @deprecated -- This option is deprecated in favor of `ruler.service.labels`
5843
serviceLabels: {}
5844
# @schema additionalProperties:{"type":"string"};deprecated:true
5845
# -- Annotations for ruler service
5846
# @deprecated -- This option is deprecated in favor of `ruler.service.annotations`
5847
serviceAnnotations: {}
5848
service:
5849
# @schema additionalProperties:{"type":"string"}
5850
# -- Annotations for ruler Service
5851
annotations: {}
5852
# @schema additionalProperties:{"type":"string"}
5853
# -- Additional labels for ruler Service
5854
labels: {}
5855
# -- Service Type for ruler Service
5856
type: "ClusterIP"
5857
# -- trafficDistribution for ruler Service
5858
trafficDistribution: ""
5859
# -- Session affinity for ruler Service
5860
sessionAffinity: ""
5861
# @schema additionalProperties:true
5862
# -- Session affinity config for ruler Service
5863
sessionAffinityConfig: {}
5864
# -- ipFamilyPolicy for ruler Service
5865
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5866
ipFamilyPolicy: ""
5867
# -- ipFamilies for ruler Service
5868
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5869
ipFamilies: []
5870
# -- Adds the appProtocol field to the ruler service. This allows ruler to work with istio protocol selection.
5871
appProtocol:
5872
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5873
grpc: ""
5874
headlessService:
5875
# @schema additionalProperties:{"type":"string"}
5876
# -- Additional annotations for headless Distributed compactor Service
5877
annotations: {}
5878
# @schema additionalProperties:{"type":"string"}
5879
# -- Additional labels for headless Distributed compactor Service
5880
labels: {}
5881
# -- Additional CLI args for the ruler
5882
extraArgs: []
5883
# -- Environment variables to add to the ruler pods
5884
extraEnv: []
5885
# -- Environment variables from secrets or configmaps to add to the ruler pods
5886
extraEnvFrom: []
5887
# -- Volume mounts to add to the ruler pods
5888
extraVolumeMounts: []
5889
# -- Volumes to add to the ruler pods
5890
extraVolumes: []
5891
# @schema additionalProperties:true
5892
# -- Resource requests and limits for the ruler
5893
resources: {}
5894
# -- Container resize policy for the ruler
5895
# Example:
5896
# resizePolicy:
5897
# - resourceName: cpu
5898
# restartPolicy: NotRequired
5899
# - resourceName: memory
5900
# restartPolicy: RestartContainer
5901
resizePolicy: []
5902
# @schema type:[string, array, null]
5903
# -- Containers to add to the ruler pods
5904
extraContainers: []
5905
# @schema type:[string, array, null]
5906
# -- Init containers to add to the ruler pods
5907
initContainers: []
5908
# -- Grace period to allow the ruler to shutdown before it is killed
5909
terminationGracePeriodSeconds: 300
5910
podDisruptionBudget:
5911
# -- Enable Pod Disruption Budget
5912
enabled: true
5913
# @schema additionalProperties:{"type":"string"}
5914
# -- Annotations for Pod Disruption Budget
5915
annotations: {}
5916
# @schema additionalProperties:{"type":"string"}
5917
# -- Labels for Pod Disruption Budget
5918
labels: {}
5919
# @schema type:[string, integer, null]
5920
# -- Pod Disruption Budget minAvailable
5921
minAvailable: null
5922
# @schema type:[string, integer, null]
5923
# -- Pod Disruption Budget maxUnavailable
5924
maxUnavailable: null
5925
# @schema type:[string, null]
5926
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
5927
unhealthyPodEvictionPolicy: null
5928
# @schema type:[object, null];skipProperties:true;additionalProperties:true
5929
# -- Affinity for ruler pods.
5930
# @default -- Hard node anti-affinity
5931
# The value will be passed through tpl.
5932
affinity:
5933
podAntiAffinity:
5934
requiredDuringSchedulingIgnoredDuringExecution:
5935
- labelSelector:
5936
matchLabels:
5937
app.kubernetes.io/component: ruler
5938
app.kubernetes.io/name: '{{ include "loki.name" . }}'
5939
app.kubernetes.io/instance: '{{ .Release.Name }}'
5940
topologyKey: kubernetes.io/hostname
5941
# @schema type:[string, integer, null];deprecated:true
5942
# -- Pod Disruption Budget maxUnavailable
5943
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5944
maxUnavailable: null
5945
# @schema additionalProperties:true
5946
# -- Node selector for ruler pods
5947
nodeSelector: {}
5948
# @schema item:object
5949
# -- Topology Spread Constraints for ruler pods
5950
# The value will be passed through tpl.
5951
topologySpreadConstraints: []
5952
tolerations: []
5953
# @schema additionalProperties:true
5954
# -- DNSConfig for ruler pods
5955
dnsConfig: {}
5956
persistence:
5957
# -- Enable creating PVCs which is required when using recording rules
5958
enabled: false
5959
# -- Set access modes on the PersistentVolumeClaim
5960
accessModes:
5961
- ReadWriteOnce
5962
# -- Size of persistent disk
5963
size: 10Gi
5964
# @schema type:[string, null]
5965
# -- Storage class to be used.
5966
# If defined, storageClassName: <storageClass>.
5967
# If set to "-", storageClassName: "", which disables dynamic provisioning.
5968
# If empty or set to null, no storageClassName spec is
5969
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5970
storageClass: null
5971
# @schema type:[string, null]
5972
# -- Volume attributes class name to be used.
5973
# If empty or set to null, no volumeAttributesClassName spec is set.
5974
# Requires Kubernetes 1.31
5975
volumeAttributesClassName: null
5976
# @schema additionalProperties:{"type":"string"}
5977
# -- Annotations for ruler PVCs
5978
annotations: {}
5979
# @schema additionalProperties:{"type":"string"}
5980
# -- Labels for ruler PVCs
5981
labels: {}
5982
# @schema additionalProperties:true;deprecated:true
5983
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5984
# @deprecated -- This option is deprecated in favor of `ruler.service.appProtocol`
5985
appProtocol:
5986
grpc: ""
5987
# -- Directories containing rules files. If used, you must also configure `loki.rulerConfig.storage` to use local storage.
5988
directories: {}
5989
# tenant_foo:
5990
# rules1.txt: |
5991
# groups:
5992
# - name: should_fire
5993
# rules:
5994
# - alert: HighPercentageError
5995
# expr: |
5996
# sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
5997
# /
5998
# sum(rate({app="foo", env="production"}[5m])) by (job)
5999
# > 0.05
6000
# for: 10m
6001
# labels:
6002
# severity: warning
6003
# annotations:
6004
# summary: High error rate
6005
# - name: credentials_leak
6006
# rules:
6007
# - alert: http-credentials-leaked
6008
# annotations:
6009
# message: "{{ $labels.job }} is leaking http basic auth credentials."
6010
# expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
6011
# for: 10m
6012
# labels:
6013
# severity: critical
6014
# rules2.txt: |
6015
# groups:
6016
# - name: example
6017
# rules:
6018
# - alert: HighThroughputLogStreams
6019
# expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
6020
# for: 2m
6021
# tenant_bar:
6022
# rules1.txt: |
6023
# groups:
6024
# - name: should_fire
6025
# rules:
6026
# - alert: HighPercentageError
6027
# expr: |
6028
# sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
6029
# /
6030
# sum(rate({app="foo", env="production"}[5m])) by (job)
6031
# > 0.05
6032
# for: 10m
6033
# labels:
6034
# severity: warning
6035
# annotations:
6036
# summary: High error rate
6037
# - name: credentials_leak
6038
# rules:
6039
# - alert: http-credentials-leaked
6040
# annotations:
6041
# message: "{{ $labels.job }} is leaking http basic auth credentials."
6042
# expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
6043
# for: 10m
6044
# labels:
6045
# severity: critical
6046
# rules2.txt: |
6047
# groups:
6048
# - name: example
6049
# rules:
6050
# - alert: HighThroughputLogStreams
6051
# expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
6052
# for: 2m
6053
6054
serviceAccount:
6055
# -- Specifies whether a ServiceAccount should be created
6056
create: false
6057
# @schema type:[string, null]
6058
# -- The name of the ServiceAccount to use.
6059
# If not set and create is true, a name is generated using the fullname template
6060
name: null
6061
# @schema item:object;itemProperties:{"name": {"type": "string"}}
6062
# -- Image pull secrets for the service account
6063
imagePullSecrets: []
6064
# @schema additionalProperties:{"type":"string"}
6065
# -- Annotations for the service account
6066
annotations: {}
6067
# @schema additionalProperties:{"type":"string"}
6068
# -- Labels for the service account
6069
labels: {}
6070
# -- Set this toggle to false to opt out of automounting API credentials for the service account
6071
automountServiceAccountToken: true
6072
# -- Configuration for the overrides-exporter
6073
overridesExporter:
6074
# -- The overrides-exporter component is optional and can be disabled if desired.
6075
enabled: false
6076
# -- Kind of backend workload. StatefulSet and Deployment are supported.
6077
kind: Deployment
6078
# @schema type:[integer, null]
6079
# -- Number of replicas for the overrides-exporter. Set to null to omit spec.replicas from the workload,
6080
# allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
6081
replicas: 0
6082
# @schema additionalProperties:true
6083
# -- DNSConfig for overrides-exporter
6084
dnsConfig: {}
6085
# -- hostAliases to add
6086
hostAliases: []
6087
# @schema type:[boolean, null]
6088
# - ip: 1.2.3.4
6089
# hostnames:
6090
# - domain.tld
6091
# -- Use the host's user namespace in the overrides-exporter
6092
hostUsers: null
6093
image:
6094
# @schema type:[string, null]
6095
# -- The Docker registry for the overrides-exporter image. Overrides `loki.image.registry`
6096
registry: null
6097
# @schema type:[string, null]
6098
# -- Docker image repository for the overrides-exporter image. Overrides `loki.image.repository`
6099
repository: null
6100
# @schema type:[string, null]
6101
# -- Docker image tag for the overrides-exporter image. Overrides `loki.image.tag`
6102
tag: null
6103
# @schema type:[string, null]
6104
# -- Command to execute instead of defined in Docker image
6105
command: null
6106
# @schema type:[string, null]
6107
# -- The name of the PriorityClass for overrides-exporter pods
6108
priorityClassName: null
6109
# @schema additionalProperties:{"type":"string"}
6110
# -- Labels for overrides-exporter
6111
labels: {}
6112
# @schema additionalProperties:{"type":"string"}
6113
# -- Annotations for overrides-exporter
6114
annotations: {}
6115
# @schema additionalProperties:{"type":"string"}
6116
# -- Labels for overrides-exporter pods
6117
podLabels: {}
6118
# @schema additionalProperties:{"type":"string"}
6119
# -- Annotations for overrides-exporter pods
6120
podAnnotations: {}
6121
# @schema additionalProperties:{"type":"string"};deprecated:true
6122
# -- Labels for overrides-exporter service
6123
# @deprecated -- This option is deprecated in favor of `overridesExporter.service.labels`
6124
serviceLabels: {}
6125
# @schema additionalProperties:{"type":"string"};deprecated:true
6126
# -- Annotations for overrides-exporter service
6127
# @deprecated -- This option is deprecated in favor of `overridesExporter.service.annotations`
6128
serviceAnnotations: {}
6129
service:
6130
# @schema additionalProperties:{"type":"string"}
6131
# -- Annotations for overrides-exporter Service
6132
annotations: {}
6133
# @schema additionalProperties:{"type":"string"}
6134
# -- Additional labels for overrides-exporter Service
6135
labels: {}
6136
# -- Service Type for overrides-exporter Service
6137
type: "ClusterIP"
6138
# -- trafficDistribution for overrides-exporter Service
6139
trafficDistribution: ""
6140
# -- Session affinity for overrides-exporter Service
6141
sessionAffinity: ""
6142
# @schema additionalProperties:true
6143
# -- Session affinity config for overrides-exporter Service
6144
sessionAffinityConfig: {}
6145
# -- ipFamilyPolicy for overrides-exporter Service
6146
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6147
ipFamilyPolicy: ""
6148
# -- ipFamilies for overrides-exporter Service
6149
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6150
ipFamilies: []
6151
# -- Adds the appProtocol field to the overrides-exporter service. This allows overrides-exporter to work with istio protocol selection.
6152
appProtocol:
6153
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
6154
grpc: ""
6155
headlessService:
6156
# @schema additionalProperties:{"type":"string"}
6157
# -- Additional annotations for headless overridesExporter service
6158
annotations: {}
6159
# @schema additionalProperties:{"type":"string"}
6160
# -- Additional labels for headless overridesExporter Service
6161
labels: {}
6162
# -- Additional CLI args for the overrides-exporter
6163
extraArgs: []
6164
# -- Environment variables to add to the overrides-exporter pods
6165
extraEnv: []
6166
# -- Environment variables from secrets or configmaps to add to the overrides-exporter pods
6167
extraEnvFrom: []
6168
# -- Volume mounts to add to the overrides-exporter pods
6169
extraVolumeMounts: []
6170
# -- Volumes to add to the overrides-exporter pods
6171
extraVolumes: []
6172
# @schema additionalProperties:true
6173
# -- Resource requests and limits for the overrides-exporter
6174
resources: {}
6175
# -- Container resize policy for the overrides-exporter
6176
# Example:
6177
# resizePolicy:
6178
# - resourceName: cpu
6179
# restartPolicy: NotRequired
6180
# - resourceName: memory
6181
# restartPolicy: RestartContainer
6182
resizePolicy: []
6183
# @schema type:[string, array, null]
6184
# -- Containers to add to the overrides-exporter pods
6185
extraContainers: []
6186
# @schema type:[string, array, null]
6187
# -- Init containers to add to the overrides-exporter pods
6188
initContainers: []
6189
# -- Grace period to allow the overrides-exporter to shutdown before it is killed
6190
terminationGracePeriodSeconds: 300
6191
podDisruptionBudget:
6192
# -- Enable Pod Disruption Budget
6193
enabled: true
6194
# @schema additionalProperties:{"type":"string"}
6195
# -- Annotations for Pod Disruption Budget
6196
annotations: {}
6197
# @schema additionalProperties:{"type":"string"}
6198
# -- Labels for Pod Disruption Budget
6199
labels: {}
6200
# @schema type:[string, integer, null]
6201
# -- Pod Disruption Budget minAvailable
6202
minAvailable: null
6203
# @schema type:[string, integer, null]
6204
# -- Pod Disruption Budget maxUnavailable
6205
maxUnavailable: null
6206
# @schema type:[string, null]
6207
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
6208
unhealthyPodEvictionPolicy: null
6209
# @schema type:[object, null];skipProperties:true;additionalProperties:true
6210
# -- Affinity for overrides-exporter pods.
6211
# @default -- Hard node anti-affinity
6212
# The value will be passed through tpl.
6213
affinity:
6214
podAntiAffinity:
6215
requiredDuringSchedulingIgnoredDuringExecution:
6216
- labelSelector:
6217
matchLabels:
6218
app.kubernetes.io/component: overrides-exporter
6219
app.kubernetes.io/name: '{{ include "loki.name" . }}'
6220
app.kubernetes.io/instance: '{{ .Release.Name }}'
6221
topologyKey: kubernetes.io/hostname
6222
# @schema type:[string, integer, null];deprecated:true
6223
# -- Pod Disruption Budget maxUnavailable
6224
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6225
maxUnavailable: null
6226
# @schema additionalProperties:true
6227
# -- Node selector for overrides-exporter pods
6228
nodeSelector: {}
6229
# @schema item:object
6230
# -- Topology Spread Constraints for overrides-exporter pods
6231
# The value will be passed through tpl.
6232
topologySpreadConstraints: []
6233
tolerations: []
6234
# @schema additionalProperties:true;deprecated:true
6235
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
6236
# @deprecated -- This option is deprecated in favor of `overridesExporter.service.appProtocol`
6237
appProtocol:
6238
grpc: ""
6239
serviceAccount:
6240
# -- Specifies whether a ServiceAccount should be created
6241
create: false
6242
# @schema type:[string, null]
6243
# -- The name of the ServiceAccount to use.
6244
# If not set and create is true, a name is generated using the fullname template
6245
name: null
6246
# @schema item:object;itemProperties:{"name": {"type": "string"}}
6247
# -- Image pull secrets for the service account
6248
imagePullSecrets: []
6249
# @schema additionalProperties:{"type":"string"}
6250
# -- Annotations for the service account
6251
annotations: {}
6252
# @schema additionalProperties:{"type":"string"}
6253
# -- Labels for the service account
6254
labels: {}
6255
# -- Set this toggle to false to opt out of automounting API credentials for the service account
6256
automountServiceAccountToken: true
6257
# You can use a self hosted memcached by setting enabled to false and providing addresses.
6258
memcached:
6259
# -- Enable the built in memcached server provided by the chart
6260
enabled: true
6261
image:
6262
# -- Memcached Docker image registry
6263
registry: cgr.dev
6264
# -- Memcached Docker image repository
6265
repository: chainguard-private/memcached
6266
# -- Memcached Docker image tag
6267
tag: 1.6.45-r5@sha256:698e1e9fc39d7be386e70d6ebfb4348833d3f3aa3329d8b253368b84d14cb068
6268
# -- Memcached Docker image pull policy
6269
pullPolicy: IfNotPresent
6270
# @schema skipProperties:true;additionalProperties:true
6271
# -- The SecurityContext override for memcached pods
6272
podSecurityContext:
6273
runAsNonRoot: true
6274
runAsUser: 11211
6275
runAsGroup: 11211
6276
fsGroup: 11211
6277
seccompProfile:
6278
type: RuntimeDefault
6279
# @schema type:[string, null]
6280
# -- The name of the PriorityClass for memcached pods
6281
priorityClassName: null
6282
# @schema skipProperties:true;additionalProperties:true
6283
# -- The SecurityContext for memcached containers
6284
containerSecurityContext:
6285
readOnlyRootFilesystem: true
6286
capabilities:
6287
drop: [ALL]
6288
allowPrivilegeEscalation: false
6289
runAsNonRoot: true
6290
seccompProfile:
6291
type: RuntimeDefault
6292
# @schema skipProperties:true;additionalProperties:true
6293
# -- Readiness probe for memcached pods (probe port defaults to container port)
6294
readinessProbe:
6295
tcpSocket:
6296
port: client
6297
initialDelaySeconds: 5
6298
periodSeconds: 5
6299
timeoutSeconds: 3
6300
failureThreshold: 6
6301
# @schema skipProperties:true;additionalProperties:true
6302
# -- Liveness probe for memcached pods
6303
livenessProbe:
6304
tcpSocket:
6305
port: client
6306
initialDelaySeconds: 30
6307
periodSeconds: 10
6308
timeoutSeconds: 5
6309
failureThreshold: 3
6310
# @schema skipProperties:true;additionalProperties:true
6311
# -- Startup probe for memcached pods
6312
startupProbe: {}
6313
serviceAccount:
6314
# -- Specifies whether a ServiceAccount should be created
6315
create: true
6316
# @schema type:[string, null]
6317
# -- The name of the ServiceAccount to use.
6318
# If not set and create is true, a name is generated using the fullname template
6319
name: null
6320
# @schema item:object;itemProperties:{"name": {"type": "string"}}
6321
# -- Image pull secrets for the service account
6322
imagePullSecrets: []
6323
# @schema additionalProperties:{"type":"string"}
6324
# -- Annotations for the service account
6325
annotations: {}
6326
# @schema additionalProperties:{"type":"string"}
6327
# -- Labels for the service account
6328
labels: {}
6329
# -- Set this toggle to false to opt out of automounting API credentials for the service account
6330
automountServiceAccountToken: false
6331
memcachedExporter:
6332
# -- Whether memcached metrics should be exported
6333
enabled: true
6334
image:
6335
# -- Memcached exporter Docker image registry
6336
registry: cgr.dev
6337
# -- Memcached exporter Docker image repository
6338
repository: chainguard-private/memcached-exporter
6339
# -- Memcached exporter Docker image tag
6340
tag: 0.18.0-r0@sha256:fb9b52c200114c623352d5af48b0fdc0620ce514d550800d30b35b090d66357d
6341
# -- Memcached exporter Docker image pull policy
6342
pullPolicy: IfNotPresent
6343
# @schema additionalProperties:true
6344
resources:
6345
requests: {}
6346
limits: {}
6347
# -- Container resize policy for the memcached exporter
6348
# Example:
6349
# resizePolicy:
6350
# - resourceName: cpu
6351
# restartPolicy: NotRequired
6352
# - resourceName: memory
6353
# restartPolicy: RestartContainer
6354
resizePolicy: []
6355
# @schema skipProperties:true;additionalProperties:true
6356
# -- The SecurityContext for memcached exporter containers
6357
containerSecurityContext:
6358
readOnlyRootFilesystem: true
6359
capabilities:
6360
drop: [ALL]
6361
allowPrivilegeEscalation: false
6362
runAsNonRoot: true
6363
seccompProfile:
6364
type: RuntimeDefault
6365
# -- Extra args to add to the exporter container.
6366
# Example:
6367
# extraArgs:
6368
# memcached.tls.enable: true
6369
# memcached.tls.cert-file: /certs/cert.crt
6370
# memcached.tls.key-file: /certs/cert.key
6371
# memcached.tls.ca-file: /certs/ca.crt
6372
# memcached.tls.insecure-skip-verify: false
6373
# memcached.tls.server-name: memcached
6374
extraArgs: {}
6375
# @schema skipProperties:true;additionalProperties:true
6376
# -- Liveness probe for memcached exporter
6377
livenessProbe:
6378
httpGet:
6379
path: /metrics
6380
port: http-metrics
6381
initialDelaySeconds: 30
6382
periodSeconds: 10
6383
timeoutSeconds: 5
6384
failureThreshold: 3
6385
# @schema skipProperties:true;additionalProperties:true
6386
# -- Readiness probe for memcached exporter
6387
readinessProbe:
6388
httpGet:
6389
path: /metrics
6390
port: http-metrics
6391
initialDelaySeconds: 5
6392
periodSeconds: 5
6393
timeoutSeconds: 3
6394
failureThreshold: 3
6395
# @schema skipProperties:true;additionalProperties:true
6396
# -- Startup probe for memcached exporter
6397
startupProbe: {}
6398
resultsCache:
6399
# -- Specifies whether memcached based results-cache should be enabled
6400
enabled: true
6401
# -- Comma separated addresses list in DNS Service Discovery format
6402
addresses: dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "results-cache") }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
6403
# -- Specify how long cached results should be stored in the results-cache before being expired
6404
defaultValidity: 12h
6405
# -- Memcached operation timeout
6406
timeout: 500ms
6407
# -- Total number of results-cache replicas
6408
replicas: 1
6409
# -- Port of the results-cache service
6410
port: 11211
6411
# -- Amount of memory allocated to results-cache for object storage (in MB).
6412
allocatedMemory: 1024
6413
# -- Amount of cpu allocated to results-cache for object storage (in integer or millicores).
6414
allocatedCPU: 500m
6415
# -- Maximum item results-cache for memcached (in MB).
6416
maxItemMemory: 5
6417
# -- Maximum number of connections allowed
6418
connectionLimit: 16384
6419
# -- Max memory to use for cache write back
6420
writebackSizeLimit: 500MB
6421
# -- Max number of objects to use for cache write back
6422
writebackBuffer: 500000
6423
# -- Number of parallel threads for cache write back
6424
writebackParallelism: 1
6425
# -- Extra init containers for results-cache pods
6426
initContainers: []
6427
# @schema additionalProperties:{"type":"string"}
6428
# -- Annotations for the results-cache pods
6429
annotations: {}
6430
# @schema additionalProperties:true
6431
# -- Node selector for results-cache pods
6432
nodeSelector: {}
6433
# @schema type:[object, null];skipProperties:true;additionalProperties:true
6434
# -- Affinity for results-cache pods
6435
affinity: {}
6436
# @schema item:object
6437
# -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
6438
# labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
6439
topologySpreadConstraints: []
6440
# topologyKey: kubernetes.io/hostname
6441
# whenUnsatisfiable: ScheduleAnyway
6442
# -- Tolerations for results-cache pods
6443
tolerations: []
6444
# @schema type:[string, integer, null];deprecated:true
6445
# -- Pod Disruption Budget maxUnavailable
6446
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6447
maxUnavailable: 1
6448
podDisruptionBudget:
6449
# -- Enable Pod Disruption Budget
6450
enabled: true
6451
# @schema additionalProperties:{"type":"string"}
6452
# -- Annotations for Pod Disruption Budget
6453
annotations: {}
6454
# @schema additionalProperties:{"type":"string"}
6455
# -- Labels for Pod Disruption Budget
6456
labels: {}
6457
# @schema type:[string, integer, null]
6458
# -- Pod Disruption Budget minAvailable
6459
minAvailable: null
6460
# @schema type:[string, integer, null]
6461
# -- Pod Disruption Budget maxUnavailable
6462
maxUnavailable: null
6463
# @schema type:[string, null]
6464
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
6465
unhealthyPodEvictionPolicy: null
6466
# @schema additionalProperties:true
6467
# -- DNSConfig for results-cache
6468
dnsConfig: {}
6469
# @schema type:[string, null]
6470
# -- The name of the PriorityClass for results-cache pods
6471
priorityClassName: null
6472
# @schema type:[boolean, null]
6473
# -- Use the host's user namespace in results-cache pods
6474
hostUsers: null
6475
# @schema additionalProperties:{"type":"string"}
6476
# -- Labels for results-cache pods
6477
podLabels: {}
6478
# @schema additionalProperties:{"type":"string"}
6479
# -- Annotations for results-cache pods
6480
podAnnotations: {}
6481
# -- Management policy for results-cache pods
6482
podManagementPolicy: Parallel
6483
# -- Grace period to allow the results-cache to shutdown before it is killed
6484
terminationGracePeriodSeconds: 60
6485
# @schema skipProperties:true;additionalProperties:true
6486
# -- Stateful results-cache strategy
6487
statefulStrategy:
6488
type: RollingUpdate
6489
# -- Add extended options for results-cache memcached container. The format is the same as for the memcached -o/--extend flag.
6490
# Example:
6491
# extraExtendedOptions: 'tls,modern,track_sizes'
6492
extraExtendedOptions: ""
6493
# -- Additional CLI args for results-cache
6494
extraArgs: {}
6495
# @schema type:[array, null]
6496
# -- Additional containers to be added to the results-cache pod.
6497
extraContainers: []
6498
# -- Additional volumes to be added to the results-cache pod (applies to both memcached and exporter containers).
6499
# Example:
6500
# extraVolumes:
6501
# - name: extra-volume
6502
# secret:
6503
# secretName: extra-volume-secret
6504
extraVolumes: []
6505
# -- Additional volume mounts to be added to the results-cache pod (applies to both memcached and exporter containers).
6506
# Example:
6507
# extraVolumeMounts:
6508
# - name: extra-volume
6509
# mountPath: /etc/extra-volume
6510
# readOnly: true
6511
extraVolumeMounts: []
6512
# @schema additionalProperties:true
6513
# -- Resource requests and limits for the results-cache
6514
# By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
6515
resources: {}
6516
# -- Container resize policy for the results-cache
6517
# Example:
6518
# resizePolicy:
6519
# - resourceName: cpu
6520
# restartPolicy: NotRequired
6521
# - resourceName: memory
6522
# restartPolicy: RestartContainer
6523
resizePolicy: []
6524
# -- Service annotations and labels
6525
service:
6526
# @schema additionalProperties:{"type":"string"}
6527
annotations: {}
6528
# @schema additionalProperties:{"type":"string"}
6529
labels: {}
6530
# -- Persistence settings for the results-cache
6531
persistence:
6532
# -- Enable creating PVCs for the results-cache
6533
enabled: false
6534
# -- Size of persistent disk, must be in G or Gi
6535
storageSize: 10G
6536
# @schema type:[string, null]
6537
# -- Storage class to be used.
6538
# If defined, storageClassName: <storageClass>.
6539
# If set to "-", storageClassName: "", which disables dynamic provisioning.
6540
# If empty or set to null, no storageClassName spec is
6541
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6542
storageClass: null
6543
# @schema type:[string, null]
6544
# -- Volume attributes class name to be used.
6545
# If empty or set to null, no volumeAttributesClassName spec is set.
6546
# Requires Kubernetes 1.31
6547
volumeAttributesClassName: null
6548
# -- Volume mount path
6549
mountPath: /data
6550
# @schema additionalProperties:{"type":"string"}
6551
# -- PVC additional labels
6552
labels: {}
6553
chunksCache:
6554
# -- Append to the name of the resources to make names different for l1 and l2
6555
suffix: ""
6556
# -- Specifies whether memcached based chunks-cache should be enabled
6557
enabled: true
6558
# -- Comma separated addresses list in DNS Service Discovery format
6559
addresses: 'dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "chunks-cache" "suffix" $.Values.chunksCache.suffix ) }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}'
6560
# -- Batchsize for sending and receiving chunks from chunks cache
6561
batchSize: 4
6562
# -- Parallel threads for sending and receiving chunks from chunks cache
6563
parallelism: 5
6564
# -- Memcached operation timeout
6565
timeout: 2000ms
6566
# -- Specify how long cached chunks should be stored in the chunks-cache before being expired
6567
defaultValidity: 0s
6568
# -- Total number of chunks-cache replicas
6569
replicas: 1
6570
# -- Port of the chunks-cache service
6571
port: 11211
6572
# -- Amount of memory allocated to chunks-cache for object storage (in MB).
6573
allocatedMemory: 8192
6574
# -- Amount of cpu allocated to chunks-cache for object storage (in integer or millicores).
6575
allocatedCPU: 500m
6576
# -- Maximum item memory for chunks-cache (in MB).
6577
maxItemMemory: 5
6578
# -- Maximum number of connections allowed
6579
connectionLimit: 16384
6580
# -- Max memory to use for cache write back
6581
writebackSizeLimit: 500MB
6582
# -- Max number of objects to use for cache write back
6583
writebackBuffer: 500000
6584
# -- Number of parallel threads for cache write back
6585
writebackParallelism: 1
6586
# -- Extra init containers for chunks-cache pods
6587
initContainers: []
6588
# @schema additionalProperties:{"type":"string"}
6589
# -- Annotations for the chunks-cache pods
6590
annotations: {}
6591
# @schema additionalProperties:true
6592
# -- Node selector for chunks-cache pods
6593
nodeSelector: {}
6594
# @schema type:[object, null];skipProperties:true;additionalProperties:true
6595
# -- Affinity for chunks-cache pods
6596
affinity: {}
6597
# @schema item:object
6598
# -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
6599
# labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
6600
topologySpreadConstraints: []
6601
# topologyKey: kubernetes.io/hostname
6602
# whenUnsatisfiable: ScheduleAnyway
6603
# -- Tolerations for chunks-cache pods
6604
tolerations: []
6605
# @schema type:[string, integer, null];deprecated:true
6606
# -- Pod Disruption Budget maxUnavailable
6607
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6608
maxUnavailable: 1
6609
podDisruptionBudget:
6610
# -- Enable Pod Disruption Budget
6611
enabled: true
6612
# @schema additionalProperties:{"type":"string"}
6613
# -- Annotations for Pod Disruption Budget
6614
annotations: {}
6615
# @schema additionalProperties:{"type":"string"}
6616
# -- Labels for Pod Disruption Budget
6617
labels: {}
6618
# @schema type:[string, integer, null]
6619
# -- Pod Disruption Budget minAvailable
6620
minAvailable: null
6621
# @schema type:[string, integer, null]
6622
# -- Pod Disruption Budget maxUnavailable
6623
maxUnavailable: null
6624
# @schema type:[string, null]
6625
# -- Pod Disruption Budget unhealthyPodEvictionPolicy
6626
unhealthyPodEvictionPolicy: null
6627
# @schema additionalProperties:true
6628
# -- DNSConfig for chunks-cache
6629
dnsConfig: {}
6630
# @schema type:[string, null]
6631
# -- The name of the PriorityClass for chunks-cache pods
6632
priorityClassName: null
6633
# @schema type:[boolean, null]
6634
# -- Use the host's user namespace in chunks-cache pods
6635
hostUsers: null
6636
# @schema additionalProperties:{"type":"string"}
6637
# -- Labels for chunks-cache pods
6638
podLabels: {}
6639
# @schema additionalProperties:{"type":"string"}
6640
# -- Annotations for chunks-cache pods
6641
podAnnotations: {}
6642
# -- Management policy for chunks-cache pods
6643
podManagementPolicy: Parallel
6644
# -- Grace period to allow the chunks-cache to shutdown before it is killed
6645
terminationGracePeriodSeconds: 60
6646
# @schema skipProperties:true;additionalProperties:true
6647
# -- Stateful chunks-cache strategy
6648
statefulStrategy:
6649
type: RollingUpdate
6650
# -- Add extended options for chunks-cache memcached container. The format is the same as for the memcached -o/--extend flag.
6651
# Example:
6652
# extraExtendedOptions: 'tls,no_hashexpand'
6653
extraExtendedOptions: ""
6654
# -- Additional CLI args for chunks-cache
6655
extraArgs: {}
6656
# @schema type:[array, null]
6657
# -- Additional containers to be added to the chunks-cache pod.
6658
extraContainers: []
6659
# -- Additional volumes to be added to the chunks-cache pod (applies to both memcached and exporter containers).
6660
# Example:
6661
# extraVolumes:
6662
# - name: extra-volume
6663
# secret:
6664
# secretName: extra-volume-secret
6665
extraVolumes: []
6666
# -- Additional volume mounts to be added to the chunks-cache pod (applies to both memcached and exporter containers).
6667
# Example:
6668
# extraVolumeMounts:
6669
# - name: extra-volume
6670
# mountPath: /etc/extra-volume
6671
# readOnly: true
6672
extraVolumeMounts: []
6673
# @schema additionalProperties:true
6674
# -- Resource requests and limits for the chunks-cache
6675
# By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
6676
resources: {}
6677
# -- Container resize policy for the chunks-cache
6678
# Example:
6679
# resizePolicy:
6680
# - resourceName: cpu
6681
# restartPolicy: NotRequired
6682
# - resourceName: memory
6683
# restartPolicy: RestartContainer
6684
resizePolicy: []
6685
# -- Service annotations and labels
6686
service:
6687
# @schema additionalProperties:{"type":"string"}
6688
annotations: {}
6689
# @schema additionalProperties:{"type":"string"}
6690
labels: {}
6691
# -- Persistence settings for the chunks-cache
6692
persistence:
6693
# -- Enable creating PVCs for the chunks-cache
6694
enabled: false
6695
# -- Size of persistent disk, must be in G or Gi
6696
storageSize: 10G
6697
# @schema type:[string, null]
6698
# -- Storage class to be used.
6699
# If defined, storageClassName: <storageClass>.
6700
# If set to "-", storageClassName: "", which disables dynamic provisioning.
6701
# If empty or set to null, no storageClassName spec is
6702
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6703
storageClass: null
6704
# @schema type:[string, null]
6705
# -- Volume attributes class name to be used.
6706
# If empty or set to null, no volumeAttributesClassName spec is set.
6707
# Requires Kubernetes 1.31
6708
volumeAttributesClassName: null
6709
# -- Volume mount path
6710
mountPath: /data
6711
# @schema additionalProperties:{"type":"string"}
6712
labels: {}
6713
# -- l2 memcache configuration
6714
l2:
6715
# -- Append to the name of the resources to make names different for l1 and l2
6716
suffix: "l2"
6717
# -- The age of chunks should be transferred from l1 cache to l2
6718
# 4 days
6719
l2ChunkCacheHandoff: 345600s
6720
# -- Specifies whether memcached based chunks-cache-l2 should be enabled
6721
enabled: false
6722
# -- Comma separated addresses list in DNS Service Discovery format
6723
addresses: 'dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "chunks-cache" "suffix" $.Values.chunksCache.l2.suffix ) }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}'
6724
# -- Batchsize for sending and receiving chunks from chunks cache
6725
batchSize: 4
6726
# -- Parallel threads for sending and receiving chunks from chunks cache
6727
parallelism: 5
6728
# -- Memcached operation timeout
6729
timeout: 2000ms
6730
# -- Specify how long cached chunks should be stored in the chunks-cache-l2 before being expired
6731
defaultValidity: 0s
6732
# -- Total number of chunks-cache-l2 replicas
6733
replicas: 1
6734
# -- Port of the chunks-cache-l2 service
6735
port: 11211
6736
# -- Amount of memory allocated to chunks-cache-l2 for object storage (in MB).
6737
allocatedMemory: 8192
6738
# -- Amount of cpu allocated to chunks-cache-l2 for object storage (in integer or millicores).
6739
allocatedCPU: 500m
6740
# -- Maximum item memory for chunks-cache-l2 (in MB).
6741
maxItemMemory: 5
6742
# -- Maximum number of connections allowed
6743
connectionLimit: 16384
6744
# -- Max memory to use for cache write back
6745
writebackSizeLimit: 500MB
6746
# -- Max number of objects to use for cache write back
6747
writebackBuffer: 500000
6748
# -- Number of parallel threads for cache write back
6749
writebackParallelism: 1
6750
# -- Extra init containers for chunks-cache-l2 pods
6751
initContainers: []
6752
# @schema additionalProperties:{"type":"string"}
6753
# -- Annotations for the chunks-cache-l2 pods
6754
annotations: {}
6755
# @schema additionalProperties:true
6756
# -- Node selector for chunks-cach-l2 pods
6757
nodeSelector: {}
6758
# @schema skipProperties:true;additionalProperties:true
6759
# -- Affinity for chunks-cache-l2 pods
6760
affinity: {}
6761
# @schema item:object
6762
# -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
6763
# labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
6764
topologySpreadConstraints: []
6765
# topologyKey: kubernetes.io/hostname
6766
# whenUnsatisfiable: ScheduleAnyway
6767
# -- Tolerations for chunks-cache-l2 pods
6768
tolerations: []
6769
# @schema type:[string, integer, null];deprecated:true
6770
# -- Pod Disruption Budget maxUnavailable
6771
# @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6772
maxUnavailable: 1
6773
podDisruptionBudget:
6774
# -- Enable Pod Disruption Budget
6775
enabled: true
6776
# @schema additionalProperties:{"type":"string"}
6777
# -- Annotations for Pod Disruption Budget
6778
annotations: {}
6779
# @schema additionalProperties:{"type":"string"}
6780
# -- Labels for Pod Disruption Budget
6781
labels: {}
6782
# minAvailable: 1
6783
# maxUnavailable: 1
6784
# unhealthyPodEvictionPolicy: IfHealthyBudget
6785
# @schema additionalProperties:true
6786
# -- DNSConfig for chunks-cache-l2
6787
dnsConfig: {}
6788
# @schema type:[string, null]
6789
# -- The name of the PriorityClass for chunks-cache-l2 pods
6790
priorityClassName: null
6791
# @schema type:[boolean, null]
6792
# -- Use the host's user namespace in chunks-cache-l2 pods
6793
hostUsers: null
6794
# @schema additionalProperties:{"type":"string"}
6795
# -- Labels for chunks-cache-l2 pods
6796
podLabels: {}
6797
# @schema additionalProperties:{"type":"string"}
6798
# -- Annotations for chunks-cache-l2 pods
6799
podAnnotations: {}
6800
# -- Management policy for chunks-cache-l2 pods
6801
podManagementPolicy: Parallel
6802
# -- Grace period to allow the chunks-cache-l2 to shutdown before it is killed
6803
terminationGracePeriodSeconds: 60
6804
# @schema skipProperties:true;additionalProperties:true
6805
# -- Stateful chunks-cache strategy
6806
statefulStrategy:
6807
type: RollingUpdate
6808
# -- Add extended options for chunks-cache-l2 memcached container. The format is the same as for the memcached -o/--extend flag.
6809
# Example:
6810
# extraExtendedOptions: 'tls,no_hashexpand'
6811
extraExtendedOptions: ""
6812
# -- Additional CLI args for chunks-cache-l2
6813
extraArgs: {}
6814
# @schema type:[array, null]
6815
# -- Additional containers to be added to the chunks-cache-l2 pod.
6816
extraContainers: []
6817
# -- Additional volumes to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
6818
# Example:
6819
# extraVolumes:
6820
# - name: extra-volume
6821
# secret:
6822
# secretName: extra-volume-secret
6823
extraVolumes: []
6824
# -- Additional volume mounts to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
6825
# Example:
6826
# extraVolumeMounts:
6827
# - name: extra-volume
6828
# mountPath: /etc/extra-volume
6829
# readOnly: true
6830
extraVolumeMounts: []
6831
# @schema additionalProperties:true
6832
# -- Resource requests and limits for the chunks-cache-l2
6833
# By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
6834
resources: {}
6835
# -- Container resize policy for the chunks-cache-l2
6836
# Example:
6837
# resizePolicy:
6838
# - resourceName: cpu
6839
# restartPolicy: NotRequired
6840
# - resourceName: memory
6841
# restartPolicy: RestartContainer
6842
resizePolicy: []
6843
# -- Service annotations and labels
6844
service:
6845
# @schema additionalProperties:{"type":"string"}
6846
annotations: {}
6847
# @schema additionalProperties:{"type":"string"}
6848
labels: {}
6849
# -- Persistence settings for the chunks-cache-l2
6850
persistence:
6851
# -- Enable creating PVCs for the chunks-cache-l2
6852
enabled: false
6853
# -- Size of persistent disk, must be in G or Gi
6854
storageSize: 10G
6855
# @schema type:[string, null]
6856
# -- Storage class to be used.
6857
# If defined, storageClassName: <storageClass>.
6858
# If set to "-", storageClassName: "", which disables dynamic provisioning.
6859
# If empty or set to null, no storageClassName spec is
6860
# set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6861
storageClass: null
6862
# @schema type:[string, null]
6863
# -- Volume attributes class name to be used.
6864
# If empty or set to null, no volumeAttributesClassName spec is set.
6865
# Requires Kubernetes 1.31
6866
volumeAttributesClassName: null
6867
# -- Volume mount path
6868
mountPath: /data
6869
# @schema additionalProperties:{"type":"string"}
6870
labels: {}
6871
######################################################################################################################
6872
#
6873
# Subchart configurations
6874
#
6875
######################################################################################################################
6876
6877
# @schema skipProperties:true;additionalProperties:true
6878
# -- Setting for the Grafana Rollout Operator https://github.com/grafana/helm-charts/tree/main/charts/rollout-operator
6879
rollout_operator:
6880
enabled: false
6881
# @schema skipProperties:true;additionalProperties:true
6882
# -- podSecurityContext is the pod security context for the rollout operator.
6883
# When installing on OpenShift, override podSecurityContext settings with
6884
#
6885
# rollout_operator:
6886
# podSecurityContext:
6887
# fsGroup: null
6888
# runAsGroup: null
6889
# runAsUser: null
6890
podSecurityContext:
6891
fsGroup: 10001
6892
runAsGroup: 10001
6893
runAsNonRoot: true
6894
runAsUser: 10001
6895
seccompProfile:
6896
type: RuntimeDefault
6897
# @schema skipProperties:true;additionalProperties:true
6898
# Set the container security context
6899
securityContext:
6900
readOnlyRootFilesystem: true
6901
capabilities:
6902
drop: [ALL]
6903
allowPrivilegeEscalation: false
6904
runAsNonRoot: true
6905
seccompProfile:
6906
type: RuntimeDefault
6907
webhooks:
6908
# -- Enable the rollout-operator webhooks. See https://github.com/grafana/rollout-operator/#webhooks.
6909
# Note that the webhooks require custom resource definitions. If upgrading, manually apply the files in the `crds` directory.
6910
enabled: true
6911
# -- Timeout in seconds for the prepare-downscale mutating webhook. Must be between 1 and 30.
6912
timeoutSeconds: 10
6913
# -- Validating and mutating webhook failure policy. `Ignore` or `Fail`.
6914
failurePolicy: "Ignore"
6915
# -- Ignore MinIO deprecation validation when `minio.enabled=true`. This is a temporary compatibility escape hatch.
6916
ignoreMinioDeprecation: false
6917
# @schema skipProperties:true;additionalProperties:true
6918
# -- Configuration for the minio subchart (deprecated)
6919
minio:
6920
enabled: false
6921
replicas: 1
6922
# Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
6923
# https://docs.min.io/docs/minio-erasure-code-quickstart-guide
6924
# Since we only have 1 replica, that means 2 drives must be used.
6925
drivesPerNode: 2
6926
# root user
6927
rootUser: root-user
6928
rootPassword: supersecretpassword
6929
# The first user in the list below is used for Loki authentication.
6930
# You can add additional users if desired; they will not impact Loki.
6931
# `accessKey` = username, `secretKey` = password
6932
users:
6933
- accessKey: logs-user
6934
secretKey: supersecretpassword
6935
policy: readwrite
6936
buckets:
6937
- name: chunks
6938
policy: none
6939
purge: false
6940
- name: ruler
6941
policy: none
6942
purge: false
6943
persistence:
6944
size: 5Gi
6945
# @schema additionalProperties:{"type":"string"}
6946
annotations: {}
6947
# @schema additionalProperties:true
6948
resources:
6949
requests:
6950
cpu: 100m
6951
memory: 128Mi
6952
# @schema type:[string, null]
6953
# Allow the address used by Loki to refer to Minio to be overridden
6954
address: null
6955
# @schema type:[array, object, string, null]
6956
# Create extra manifests via values
6957
# Can be a list or dictionary, both are passed through `tpl`. If dict, keys are ignored and only values are used.
6958
# Objects can also be defined as multiline strings, useful for templating field names
6959
extraObjects: null
6960
# - apiVersion: v1
6961
# kind: ConfigMap
6962
# metadata:
6963
# name: loki-alerting-rules
6964
# data:
6965
# loki-alerting-rules.yaml: |-
6966
# groups:
6967
# - name: example
6968
# rules:
6969
# - alert: example
6970
# expr: |
6971
# sum(count_over_time({app="loki"} |~ "error")) > 0
6972
# for: 3m
6973
# labels:
6974
# severity: warning
6975
# category: logs
6976
# annotations:
6977
# message: "loki has encountered errors"
6978
# - |
6979
# apiVersion: v1
6980
# kind: Secret
6981
# type: Opaque
6982
# metadata:
6983
# name: loki-distributed-basic-auth
6984
# data:
6985
# {{- range .Values.loki.tenants }}
6986
# {{ .name }}: {{ b64enc .password | quote }}
6987
# {{- end }}
6988
6989
sidecar:
6990
image:
6991
registry: cgr.dev
6992
# -- The Docker registry and image for the k8s sidecar
6993
repository: chainguard-private/k8s-sidecar
6994
# -- Docker image tag
6995
tag: 2.14.1-r1
6996
# -- Docker image sha. If empty, no sha will be used
6997
sha: sha256:60b17aa0968a174544c42649aa8dd41997e628fdfac2fd2252e17a80fbe1e7d9
6998
# -- Docker image pull policy
6999
pullPolicy: IfNotPresent
7000
# @schema additionalProperties:true
7001
# -- Resource requests and limits for the sidecar
7002
resources: {}
7003
# -- Container resize policy for the sidecar
7004
# Example:
7005
# resizePolicy:
7006
# - resourceName: cpu
7007
# restartPolicy: NotRequired
7008
# - resourceName: memory
7009
# restartPolicy: RestartContainer
7010
resizePolicy: []
7011
# limits:
7012
# cpu: 100m
7013
# memory: 100Mi
7014
# requests:
7015
# cpu: 50m
7016
# memory: 50Mi
7017
7018
# @schema skipProperties:true;additionalProperties:true
7019
# -- The SecurityContext for the sidecar.
7020
securityContext:
7021
readOnlyRootFilesystem: true
7022
capabilities:
7023
drop:
7024
- ALL
7025
allowPrivilegeEscalation: false
7026
seccompProfile:
7027
type: RuntimeDefault
7028
# -- Set to true to skip tls verification for kube api calls.
7029
skipTlsVerify: false
7030
# -- Set to true to disable strict x509 verification for kube api calls.
7031
disableX509StrictVerification: false
7032
# -- Ensure that rule files aren't conflicting and being overwritten by prefixing their name with the namespace they are defined in.
7033
enableUniqueFilenames: false
7034
# @schema skipProperties:true;additionalProperties:true
7035
# -- Readiness probe definition.
7036
readinessProbe:
7037
enabled: true
7038
httpGet:
7039
path: /healthz
7040
port: http-sidecar
7041
periodSeconds: 10
7042
initialDelaySeconds: 3
7043
successThreshold: 1
7044
failureThreshold: 3
7045
timeoutSeconds: 1
7046
# @schema skipProperties:true;additionalProperties:true
7047
# -- Liveness probe definition.
7048
livenessProbe:
7049
enabled: true
7050
httpGet:
7051
path: /healthz
7052
port: http-sidecar
7053
periodSeconds: 30
7054
initialDelaySeconds: 30
7055
successThreshold: 1
7056
failureThreshold: 3
7057
timeoutSeconds: 1
7058
# @schema skipProperties:true;additionalProperties:true
7059
# -- Startup probe definition.
7060
startupProbe:
7061
enabled: false
7062
rules:
7063
# -- Whether or not to create a sidecar to ingest rule from specific ConfigMaps and/or Secrets.
7064
enabled: true
7065
# -- Label that the configmaps/secrets with rules will be marked with.
7066
label: loki_rule
7067
# -- Label value that the configmaps/secrets with rules will be set to.
7068
labelValue: ""
7069
# -- Folder into which the rules will be placed.
7070
folder: /rules
7071
# @schema type:[string, null]
7072
# -- The annotation overwriting the folder value.
7073
# The annotation value can be either an absolute or a relative path. Relative paths will be relative to FOLDER.
7074
# Useful for multi-tenancy setups.
7075
folderAnnotation: null
7076
# @schema type:[string, null]
7077
# -- Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
7078
# Otherwise the namespace in which the sidecar is running will be used.
7079
# It's also possible to specify 'ALL' to search in all namespaces.
7080
searchNamespace: null
7081
# -- Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH request, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
7082
watchMethod: WATCH
7083
# -- Search in configmap, secret, or both.
7084
resource: both
7085
# @schema type:[string, null]
7086
# -- Absolute path to the shell script to execute after a configmap or secret has been reloaded.
7087
script: null
7088
# -- WatchServerTimeout: request to the server, asking it to cleanly close the connection after that.
7089
# defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S.
7090
watchServerTimeout: 60
7091
#
7092
# -- WatchClientTimeout: is a client-side timeout, configuring your local socket.
7093
# If you have a network outage dropping all packets with no RST/FIN,
7094
# this is how long your client waits before realizing & dropping the connection.
7095
# Defaults to 66sec.
7096
watchClientTimeout: 60
7097
# -- Log level of the sidecar container.
7098
logLevel: INFO
7099
# -- Health Server port of the sidecar container.
7100
healthPort: 8080
7101
# -- Monitoring section determines which monitoring features to enable
7102
monitoring:
7103
# @schema type:[string, null]
7104
# -- Alternative namespace to deploy all monitoring resources (ServiceMonitor, PrometheusRule, ConfigMap dashboards) in.
7105
# Defaults to the release namespace.
7106
namespace: null
7107
# -- Label name for the app_instance label injected into scraped metrics and recording rules.
7108
appInstanceLabelName: 'app_instance'
7109
# -- Value for the app_instance label injected into scraped metrics and recording rules.
7110
# Supports Helm templating.
7111
appInstanceLabelValue: '{{ include "loki.fullname" . }}'
7112
multiCluster:
7113
# -- When enabled, shows the cluster variable in dashboards.
7114
# If clusterName is also set, the chart adds 'cluster' labels to scraped
7115
# metrics, recording rules, and alerts, and includes 'cluster' in recording
7116
# rule aggregations. If clusterName is left empty, only dashboard changes
7117
# are applied — use this when an external tool (e.g. Grafana Alloy) manages
7118
# cluster label injection and PromQL rewriting.
7119
enabled: false
7120
# -- Value for the 'cluster' label. Supports Helm templating.
7121
# When empty, recording rules and alerts are not modified — only dashboards
7122
# show the cluster variable.
7123
# e.g. clusterName: '{{ .Values.global.clusterName }}'
7124
clusterName: ""
7125
# Dashboards for monitoring Loki
7126
dashboards:
7127
# -- If enabled, create configmap resources with dashboards for monitoring Loki
7128
enabled: false
7129
# @schema additionalProperties:{"type":"string"}
7130
# -- Additional annotations for the dashboards ConfigMap resources
7131
annotations: {}
7132
# @schema additionalProperties:{"type":"string"}
7133
# -- Labels for the dashboards ConfigMap resources
7134
labels:
7135
grafana_dashboard: "1"
7136
# -- Timezone for the default dashboards
7137
defaultDashboardsTimezone: utc
7138
# -- Editable flag for the default dashboards
7139
defaultDashboardsEditable: true
7140
# -- Default interval for Grafana dashboards
7141
defaultDashboardsInterval: 1m
7142
grafanaOperator:
7143
# -- If enabled, GrafanaOperator resources for Grafana Operator are created to deploy the dashboards.
7144
enabled: false
7145
# @schema additionalProperties:{"type":"string"}
7146
# -- Additional annotations for the GrafanaOperator resources
7147
annotations: {}
7148
# @schema additionalProperties:{"type":"string"}
7149
# -- Additional labels for the GrafanaOperator resources
7150
labels: {}
7151
# -- How frequently the operator should resync resources (in duration format)
7152
resyncPeriod: 10m
7153
# @schema type:[string, null]
7154
# -- Which folder contains all dashboards in Grafana
7155
## This folder will be created on the Root level
7156
## Only one of 'folder', 'folderUID' or 'folderRef' can be set
7157
##
7158
folder: General
7159
# @schema type:[string, null]
7160
# -- Which UID of the target folder contains all dashboards in Grafana
7161
## This allows you to use subfolder hierarchy
7162
## Only one of 'folder', 'folderUID' or 'folderRef' can be set
7163
##
7164
folderUID: null
7165
# @schema type:[string, null]
7166
# -- Which GrafanaFolder reference contains all dashboards in Grafana
7167
## This allows you to use subfolder hierarchy.
7168
## Only one of 'folder', 'folderUID' or 'folderRef' can be set
7169
##
7170
folderRef: null
7171
# @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector
7172
# -- instanceSelector for the GrafanaDashboard resources
7173
## The grafana-operator matches this against the labels on your Grafana CR
7174
## An empty selector (the default) matches every Grafana instance
7175
instanceSelector: {}
7176
# -- Recording rules for monitoring Loki, required for some dashboards
7177
rules:
7178
# -- If enabled, create a PrometheusRule resource with Loki recording rules
7179
enabled: false
7180
# @schema additionalProperties:{"type":"string"}
7181
# -- Additional labels for the PrometheusRule resource
7182
labels: {}
7183
# @schema additionalProperties:{"type":"string"}
7184
# -- Additional annotations for the PrometheusRule resource
7185
annotations: {}
7186
# -- Additional labels applied to all individual recording rules
7187
additionalRuleLabels: {}
7188
# -- Additional annotations applied to all individual recording rules
7189
additionalRuleAnnotations: {}
7190
# -- Extra label dimensions added to all by() aggregation clauses in recording rules
7191
additionalAggregationLabels: []
7192
# -- Alert rules for monitoring Loki
7193
alerts:
7194
# -- If enabled, create a PrometheusRule resource with Loki alert rules
7195
enabled: false
7196
# -- Additional labels for the alerts PrometheusRule resource
7197
labels: {}
7198
# -- Additional annotations for the alerts PrometheusRule resource
7199
annotations: {}
7200
# -- Selectively disable individual alerts by name.
7201
# e.g.: disabled: { LokiRequestErrors: true }
7202
disabled: {}
7203
# -- Override for/severity on individual alerts.
7204
# e.g.: overrides: { LokiRequestErrors: { for: 5m, severity: warning } }
7205
overrides: {}
7206
# -- Global keepFiringFor applied to all alert rules
7207
keepFiringFor: ""
7208
# -- Additional labels applied to all individual alert rules
7209
additionalRuleLabels: {}
7210
# -- Additional annotations applied to all individual alert rules
7211
additionalRuleAnnotations: {}
7212
# -- Extra label dimensions added to all by() aggregation clauses in alert expressions
7213
additionalAggregationLabels: []
7214
# -- Additional PrometheusRule objects to create alongside the chart-managed ones.
7215
# Each key becomes the resource name suffix; the value must contain a 'groups' key
7216
# with standard Prometheus rule groups. Can contain both recording rules and alerts.
7217
# e.g.:
7218
# additionalPrometheusRules:
7219
# my-alerts:
7220
# groups:
7221
# - name: my-loki-alerts
7222
# rules:
7223
# - alert: MyLokiAlert
7224
# expr: 'up{job="loki"} == 0'
7225
additionalPrometheusRules: {}
7226
# -- ServiceMonitor configuration
7227
serviceMonitor:
7228
# -- If enabled, ServiceMonitor resources for Prometheus Operator are created
7229
enabled: false
7230
# -- Namespace selector for ServiceMonitor resources
7231
namespaceSelector: {}
7232
# @schema additionalProperties:{"type":"string"}
7233
# -- ServiceMonitor annotations
7234
annotations: {}
7235
# @schema additionalProperties:{"type":"string"}
7236
# -- Additional ServiceMonitor labels
7237
labels: {}
7238
# -- ServiceMonitor scrape interval
7239
# Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at
7240
# least 1/4 rate interval.
7241
interval: 15s
7242
# @schema type:[string, null]
7243
# -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
7244
scrapeTimeout: null
7245
# -- ServiceMonitor relabel configs to apply to samples before scraping
7246
# https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
7247
relabelings: []
7248
# -- ServiceMonitor metric relabel configs to apply to samples before ingestion
7249
# https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
7250
metricRelabelings: []
7251
# -- ServiceMonitor will use http by default, but you can pick https as well
7252
scheme: http
7253
# @schema type:[object, null]
7254
# -- ServiceMonitor will use these tlsConfig settings to make the health check requests
7255
tlsConfig: null
7256
# -- ServiceMonitor job label prefix will be used to generate the job label for the scraped metrics.
7257
# -- The job label is required for the included dashboards to work.
7258
jobPrefix: '{{ include "loki.namespace" $ }}/'
7259
# @schema deprecated
7260
# -- DEPRECATED Configuration for the table-manager. The table-manager is only necessary when using a deprecated
7261
# index type such as Cassandra, Bigtable, or DynamoDB, it has not been necessary since loki introduced self-
7262
# contained index types like 'boltdb-shipper' and 'tsdb'. This will be removed in a future helm chart.
7263
tableManager:
7264
# -- Specifies whether the table-manager should be enabled
7265
enabled: false
7266
image:
7267
# @schema type:[string, null]
7268
# -- The Docker registry for the table-manager image. Overrides `loki.image.registry`
7269
registry: null
7270
# @schema type:[string, null]
7271
# -- Docker image repository for the table-manager image. Overrides `loki.image.repository`
7272
repository: null
7273
# @schema type:[string, null]
7274
# -- Docker image tag for the table-manager image. Overrides `loki.image.tag`
7275
tag: null
7276
# @schema type:[string, null]
7277
# -- Command to execute instead of defined in Docker image
7278
command: null
7279
# @schema type:[string, null]
7280
# -- The name of the PriorityClass for table-manager pods
7281
priorityClassName: null
7282
# @schema additionalProperties:{"type":"string"}
7283
# -- Labels for table-manager pods
7284
podLabels: {}
7285
# @schema additionalProperties:{"type":"string"}
7286
# -- Annotations for table-manager deployment
7287
annotations: {}
7288
# @schema additionalProperties:{"type":"string"}
7289
# -- Annotations for table-manager pods
7290
podAnnotations: {}
7291
service:
7292
# @schema additionalProperties:{"type":"string"}
7293
# -- Annotations for table-manager Service
7294
annotations: {}
7295
# @schema additionalProperties:{"type":"string"}
7296
# -- Additional labels for table-manager Service
7297
labels: {}
7298
# -- Service Type for table-manager Service
7299
type: "ClusterIP"
7300
# -- trafficDistribution for table-manager Service
7301
trafficDistribution: ""
7302
# -- Session affinity for table-manager Service
7303
sessionAffinity: ""
7304
# @schema additionalProperties:true
7305
# -- Session affinity config for table-manager Service
7306
sessionAffinityConfig: {}
7307
# -- ipFamilyPolicy for table-manager Service
7308
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
7309
ipFamilyPolicy: ""
7310
# -- ipFamilies for table-manager Service
7311
# Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
7312
ipFamilies: []
7313
# -- Adds the appProtocol field to the table-manager service. This allows table-manager to work with istio protocol selection.
7314
appProtocol:
7315
# -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
7316
grpc: ""
7317
headlessService:
7318
# @schema additionalProperties:{"type":"string"}
7319
# -- Additional annotations for headless tableManager Service
7320
annotations: {}
7321
# @schema additionalProperties:{"type":"string"}
7322
# -- Additional labels for headless tableManager compactor Service
7323
labels: {}
7324
# -- Additional CLI args for the table-manager
7325
extraArgs: []
7326
# -- Environment variables to add to the table-manager pods
7327
extraEnv: []
7328
# -- Environment variables from secrets or configmaps to add to the table-manager pods
7329
extraEnvFrom: []
7330
# -- Volume mounts to add to the table-manager pods
7331
extraVolumeMounts: []
7332
# -- Volumes to add to the table-manager pods
7333
extraVolumes: []
7334
# @schema additionalProperties:true
7335
# -- Resource requests and limits for the table-manager
7336
resources: {}
7337
# -- Container resize policy for the table-manager
7338
# Example:
7339
# resizePolicy:
7340
# - resourceName: cpu
7341
# restartPolicy: NotRequired
7342
# - resourceName: memory
7343
# restartPolicy: RestartContainer
7344
resizePolicy: []
7345
# @schema type:[string, array, null]
7346
# -- Containers to add to the table-manager pods
7347
extraContainers: []
7348
# -- Grace period to allow the table-manager to shutdown before it is killed
7349
terminationGracePeriodSeconds: 30
7350
# @schema type:[boolean, null]
7351
# -- Use the host's user namespace in table-manager pods
7352
hostUsers: null
7353
# @schema type:[object, null];skipProperties:true;additionalProperties:true
7354
# -- Affinity for table-manager pods.
7355
# @default -- Hard node and anti-affinity
7356
# The value will be passed through tpl.
7357
affinity:
7358
podAntiAffinity:
7359
requiredDuringSchedulingIgnoredDuringExecution:
7360
- labelSelector:
7361
matchLabels:
7362
app.kubernetes.io/component: table-manager
7363
app.kubernetes.io/name: '{{ include "loki.name" . }}'
7364
app.kubernetes.io/instance: '{{ .Release.Name }}'
7365
topologyKey: kubernetes.io/hostname
7366
# @schema additionalProperties:true
7367
# -- DNS config table-manager pods
7368
dnsConfig: {}
7369
# @schema additionalProperties:true
7370
# -- Node selector for table-manager pods
7371
nodeSelector: {}
7372
# -- Tolerations for table-manager pods
7373
tolerations: []
7374
# -- Enable deletes by retention
7375
retention_deletes_enabled: false
7376
# @schema type:[string, integer]
7377
# -- Set retention period
7378
retention_period: 0
7379
serviceAccount:
7380
# -- Specifies whether a ServiceAccount should be created
7381
create: false
7382
# @schema type:[string, null]
7383
# -- The name of the ServiceAccount to use.
7384
# If not set and create is true, a name is generated using the fullname template
7385
name: null
7386
# @schema item:object;itemProperties:{"name": {"type": "string"}}
7387
# -- Image pull secrets for the service account
7388
imagePullSecrets: []
7389
# @schema additionalProperties:{"type":"string"}
7390
# -- Annotations for the service account
7391
annotations: {}
7392
# @schema additionalProperties:{"type":"string"}
7393
# -- Labels for the service account
7394
labels: {}
7395
# -- Set this toggle to false to opt out of automounting API credentials for the service account
7396
automountServiceAccountToken: true
7397

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.