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:

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

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.