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

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.