1# $schema: ./values.schema.json
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
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.
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.
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.
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.
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:
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.
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.
51# -- Overrides the chart's name
53# -- Overrides the chart's computed fullname
55# -- Overrides the chart's namespace
57# -- Image pull secrets for Docker images
59# -- Deployment mode lets you specify how to deploy Loki.
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/
69deploymentMode: Monolithic
70# @schema additionalProperties:{"type":"string"}
71# -- Labels to be added to resources
73######################################################################################################################
75# Defaults applied to loki components only. Not applied to loki-canary, memcache, gateway/nginx or other components.
77######################################################################################################################
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.
87 # @schema additionalProperties:true
88 # -- DNSConfig for loki pods
90 # -- hostAliases for loki pods
92 # @schema type:[boolean, null]
96 # -- Use the host's user namespace for loki pods
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
109 # -- Common additional CLI arguments for loki pods
111 # -- Common environment variables to add to all pods directly managed by this chart.
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:
119 # -- Common volumes to add to all pods directly managed by this chart.
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
129 # @schema skipProperties:true;additionalProperties:true
130 # -- Configures the readiness probe for loki pods
132 # @schema skipProperties:true;additionalProperties:true
133 # -- Configures the startup probe for loki pods
135 # @schema additionalProperties:true
136 # -- Node selector for loki pods
138 # -- Tolerations for loki pods
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
145 # @schema additionalProperties:{"type":"string"}
146 # -- Additional labels for loki Deployments/StatefulSets
148 # @schema additionalProperties:{"type":"string"}
149 # -- Annotations for loki pods
151 # @schema additionalProperties:{"type":"string"}
152 # -- Additional labels for loki pod
154 # -- Should enableServiceLinks be enabled. Default to enable
155 enableServiceLinks: true
157 # @schema additionalProperties:{"type":"string"}
158 # -- Common annotations for all services
160 # @schema additionalProperties:{"type":"string"}
161 # -- Common labels for all services
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
169 # -- ipFamilies for all services
170 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
172 # -- publishNotReadyAddresses for all services. Set to false so a pod's Service endpoint is
173 # withdrawn as soon as it becomes unready, instead of staying routable for the full termination
174 # window. Overridable per component via <component>.service.publishNotReadyAddresses.
175 publishNotReadyAddresses: true
176 # -- KEDA autoscaling shared configuration for all components that support KEDA
178 # -- Prometheus server address for KEDA triggers
179 prometheusAddress: ""
180 # -- Whether to skip SSL verification when connecting to Prometheus
182 # -- Whether to ignore null values from Prometheus queries
183 ignoreNullValues: true
184 # -- Custom HTTP headers to include in Prometheus requests. Useful for multi-tenant setups (e.g. "X-Scope-OrgID=tenant1")
186 # -- Interval (seconds) to poll each trigger. Overridable per component.
188 # -- Period (seconds) to wait after the last trigger reported active before scaling back to 0. Overridable per component.
190 # -- KEDA trigger authentication settings. Ref: https://keda.sh/docs/latest/concepts/authentication/
192 # -- Enable TriggerAuthentication for KEDA triggers
194 # -- Authentication modes for the trigger (e.g. "bearer", "basic")
196 # -- Secret key references for TriggerAuthentication
198 statefulSetRecreateJob:
199 # -- When a component sets `*.statefulSetRecreateJob.enabled`, the pre-upgrade Job can patch PVC storage requests and recreate the StatefulSet for podManagementPolicy, serviceName, or volumeClaimTemplates count/name/size changes. It does not migrate storageClass, accessModes, selectors, or VCT labels. See the chart README section StatefulSet immutability.
203 repository: scratch-images/test-tmp/kubectl
204 # -- Overrides the image tag. Defaults to .Capabilities.KubeVersion.Version
205 tag: 1.36.4-r7@sha256:a8bd37313032f36c16bff404fd4ae98247982f3f4e9c62e3c0f619b858513f61
206######################################################################################################################
208# Base Loki Configs including kubernetes configurations and configurations for Loki itself,
209# see below for more specifics on Loki's configuration.
211######################################################################################################################
212# -- Configuration for running Loki
213# @default -- See values.yaml
215 # @schema skipProperties:true;additionalProperties:true
216 # Configures the liveness probe for all of the Loki pods
219 path: /loki/api/v1/status/buildinfo
225 # @schema skipProperties:true;additionalProperties:true
226 # Configures the readiness probe for all of the Loki pods
232 initialDelaySeconds: 15
236 # @schema skipProperties:true;additionalProperties:true
237 # Configures the startup probe for all of the Loki pods
240 # -- The Docker registry
242 # -- Docker image repository
243 repository: scratch-images/test-tmp/loki
244 # @schema type:[string, null]
245 # -- Overrides the image tag whose default is the chart's appVersion
247 # @schema type:[string, null]
248 # -- Overrides the image tag with an image digest
249 digest: sha256:53a50f1f6abdefe819edcbd56ee6e5331ed4ab0138aba1520ba812f59a2e024a
250 # -- Docker image pull policy
251 pullPolicy: IfNotPresent
252 # @schema additionalProperties:{"type":"string"}
253 # -- Common annotations for all deployments/StatefulSets
255 # @schema additionalProperties:{"type":"string"}
256 # -- Common annotations for all pods
258 # @schema additionalProperties:{"type":"string"}
259 # -- Common labels for all pods
261 # @schema additionalProperties:{"type":"string"}
262 # -- Common annotations for all services
263 serviceAnnotations: {}
264 # @schema additionalProperties:{"type":"string"}
265 # -- Common labels for all services
267 # -- The number of old ReplicaSets to retain to allow rollback
268 revisionHistoryLimit: 10
269 # @schema skipProperties:true;additionalProperties:true
270 # -- The SecurityContext for Loki pods
273 fsGroupChangePolicy: OnRootMismatch
279 # @schema skipProperties:true;additionalProperties:true
280 # -- The SecurityContext for Loki containers
281 containerSecurityContext:
282 readOnlyRootFilesystem: true
286 allowPrivilegeEscalation: false
289 # -- Should enableServiceLinks be enabled. Default to enable
290 enableServiceLinks: true
291 # @schema additionalProperties:true
292 # -- DNS config for Loki pods
294 ######################################################################################################################
298 # There are several ways to pass configuration to Loki, listing them here in order of our preference for how
299 # you should use this chart.
300 # 1. Use the templated value of loki.config below and the corresponding override sections which follow.
301 # This allows us to set a lot of important Loki configurations and defaults and also allows us to maintain them
302 # over time as Loki changes and evolves.
303 # 2. Use the loki.structuredConfig section.
304 # This will completely override the templated value of loki.config, so you MUST provide the entire Loki config
305 # including any configuration that we set in loki.config unless you explicitly are trying to change one of those
306 # values and are not able to do so with the templated sections.
307 # If you choose this approach the burden is on you to maintain any changes we make to the templated config.
308 # 3. Use an existing secret or configmap to provide the configuration.
309 # This option is mostly provided for folks who have external processes which provide or modify the configuration.
310 # When using this option you can specify a different name for loki.generatedConfigObjectName and configObjectName
311 # if you have a process which takes the generated config and modifies it, or you can stop the chart from generating
312 # a config entirely by setting loki.generatedConfigObjectName to
314 ######################################################################################################################
316 # -- Defines what kind of object stores the configuration, a ConfigMap or a Secret.
317 # In order to move sensitive information (such as credentials) from the ConfigMap/Secret to a more secure location (e.g. vault), it is possible to use [environment variables in the configuration](https://grafana.com/docs/loki/latest/configuration/#use-environment-variables-in-the-configuration).
318 # Such environment variables can be then stored in a separate Secret and injected via the global.extraEnvFrom value. For details about environment injection from a Secret please see [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables).
319 configStorageType: ConfigMap
320 # -- The name of the object which Loki will mount as a volume containing the config.
321 # If the configStorageType is Secret, this will be the name of the Secret, if it is ConfigMap, this will be the name of the ConfigMap.
322 # The value will be passed through tpl.
323 configObjectName: '{{ include "loki.name" . }}'
324 # -- The name of the Secret or ConfigMap that will be created by this chart.
325 # If empty, no configmap or secret will be created.
326 # The value will be passed through tpl.
327 generatedConfigObjectName: '{{ include "loki.name" . }}'
328 # -- Config file contents for Loki
329 # @default -- See values.yaml
331 auth_enabled: {{ .Values.loki.auth_enabled }}
333 {{- with .Values.loki.server }}
335 {{- toYaml . | nindent 2}}
338 {{- with .Values.loki.pattern_ingester }}
340 {{- tpl (. | toYaml) $ | nindent 4 }}
344 {{- if .Values.loki.memberlistConfig }}
345 {{- toYaml .Values.loki.memberlistConfig | nindent 2 }}
347 {{- if .Values.loki.extraMemberlistConfig}}
348 {{- toYaml .Values.loki.extraMemberlistConfig | nindent 2}}
351 - {{ include "loki.memberlist" . }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
352 {{- with .Values.migrate.fromDistributed }}
354 - {{ .memberlistService }}
359 {{- with .Values.loki.ingester }}
361 {{- tpl (. | toYaml) $ | nindent 4 }}
364 {{- with .Values.loki.ingester_client }}
366 {{- tpl (. | toYaml) $ | nindent 4 }}
369 {{- with .Values.loki.block_builder }}
371 {{- tpl (. | toYaml) $ | nindent 4 }}
374 {{- if .Values.loki.commonConfig}}
376 {{- toYaml .Values.loki.commonConfig | nindent 2}}
378 {{- include "loki.commonStorageConfig" . | nindent 4}}
381 {{- with .Values.loki.limits_config }}
383 {{- tpl (. | toYaml) $ | nindent 4 }}
387 file: /etc/loki/runtime-config/runtime-config.yaml
389 {{- if .Values.chunksCache.enabled }}
390 {{- with .Values.chunksCache }}
393 default_validity: {{ .defaultValidity }}
395 writeback_goroutines: {{ .writebackParallelism }}
396 writeback_buffer: {{ .writebackBuffer }}
397 writeback_size_limit: {{ .writebackSizeLimit }}
399 batch_size: {{ .batchSize }}
400 parallelism: {{ .parallelism }}
402 addresses: {{ .addresses }}
403 consistent_hash: true
404 timeout: {{ .timeout }}
407 {{- with .Values.chunksCache.l2 }}
409 l2_chunk_cache_handoff: {{ .l2ChunkCacheHandoff }}
410 chunk_cache_config_l2:
411 default_validity: {{ .defaultValidity }}
413 writeback_goroutines: {{ .writebackParallelism }}
414 writeback_buffer: {{ .writebackBuffer }}
415 writeback_size_limit: {{ .writebackSizeLimit }}
417 batch_size: {{ .batchSize }}
418 parallelism: {{ .parallelism }}
420 addresses: {{ .addresses }}
421 consistent_hash: true
422 timeout: {{ .timeout }}
428 {{- if .Values.loki.schemaConfig }}
430 {{- toYaml .Values.loki.schemaConfig | nindent 2}}
433 {{- if .Values.loki.useTestSchema }}
435 {{- toYaml .Values.loki.testSchemaConfig | nindent 2}}
438 {{- if .Values.ruler.enabled }}
439 {{ include "loki.rulerConfig" . }}
442 {{- if and .Values.loki.storage.use_thanos_objstore .Values.ruler.enabled}}
444 {{- include "loki.rulerThanosStorageConfig" . | nindent 2 }}
447 {{- if or .Values.tableManager.retention_deletes_enabled .Values.tableManager.retention_period }}
449 retention_deletes_enabled: {{ .Values.tableManager.retention_deletes_enabled }}
450 retention_period: {{ .Values.tableManager.retention_period }}
454 align_queries_with_step: true
455 {{- with .Values.loki.query_range }}
456 {{- tpl (. | toYaml) $ | nindent 2 }}
458 {{- if .Values.resultsCache.enabled }}
459 {{- with .Values.resultsCache }}
463 default_validity: {{ .defaultValidity }}
465 writeback_goroutines: {{ .writebackParallelism }}
466 writeback_buffer: {{ .writebackBuffer }}
467 writeback_size_limit: {{ .writebackSizeLimit }}
469 addresses: {{ .addresses }}
470 consistent_hash: true
471 timeout: {{ .timeout }}
476 {{- with .Values.loki.storage_config }}
478 {{- if not (hasKey $.Values.loki.storage_config "use_thanos_objstore") }}
479 use_thanos_objstore: {{ $.Values.loki.storage.use_thanos_objstore }}
481 {{- tpl (. | toYaml) $ | nindent 4 }}
484 {{- with .Values.loki.query_scheduler }}
486 {{- tpl (. | toYaml) $ | nindent 4 }}
489 {{- with .Values.loki.compactor }}
491 {{- tpl (. | toYaml) $ | nindent 4 }}
494 {{- with .Values.loki.compactor_grpc_client }}
495 compactor_grpc_client:
496 {{- tpl (. | toYaml) $ | nindent 4 }}
499 {{- with .Values.loki.analytics }}
501 {{- tpl (. | toYaml) $ | nindent 4 }}
504 {{- if .Values.loki.ui.enabled }}
508 {{- with .Values.loki.querier }}
510 {{- tpl (. | toYaml) $ | nindent 4 }}
513 {{- with .Values.loki.index_gateway }}
515 {{- tpl (. | toYaml) $ | nindent 4 }}
518 {{- with .Values.loki.frontend }}
520 {{- tpl (. | toYaml) $ | nindent 4 }}
523 {{- with .Values.loki.frontend_worker }}
525 {{- tpl (. | toYaml) $ | nindent 4 }}
528 {{- with .Values.loki.distributor }}
530 {{- tpl (. | toYaml) $ | nindent 4 }}
534 enabled: {{ .Values.loki.tracing.enabled }}
536 {{- with .Values.loki.bloom_build }}
538 {{- tpl (. | toYaml) $ | nindent 4 }}
541 {{- with .Values.loki.bloom_gateway }}
543 {{- tpl (. | toYaml) $ | nindent 4 }}
546 {{- with .Values.loki.operational_config }}
548 {{- tpl (. | toYaml) $ | nindent 4 }}
550 # Should authentication be enabled
552 # @schema skipProperties:true;additionalProperties:true
553 # -- memberlist configuration (overrides embedded default)
555 # @schema skipProperties:true;additionalProperties:true
556 # -- Extra memberlist configuration
557 extraMemberlistConfig:
558 abort_if_cluster_join_fails: true
565 # -- Tenants list to be created on nginx htpasswd file, with name and password or passwordHash keys<br><br>
569 # - name: "test-user-1"<br>
570 # password: "test-password-1"<br>
571 # - name: "test-user-2"<br>
572 # passwordHash: "$2y$10$7O40CaY1yz7fu9O24k2/u.ct/wELYHRBsn25v/7AyuQ8E8hrLqpva" # generated using `htpasswd -nbBC10 test-user-2 test-password-2`
575 # @schema skipProperties:true;additionalProperties:true
576 # -- Check https://grafana.com/docs/loki/latest/configuration/#server for more info on the server configuration.
578 graceful_shutdown_timeout: 5s
579 grpc_listen_port: 9095
580 grpc_server_min_time_between_pings: '10s'
581 grpc_server_ping_without_stream_allowed: true
582 grpc_server_max_concurrent_streams: 1000
583 grpc_server_max_recv_msg_size: 104857600
584 grpc_server_max_send_msg_size: 104857600
585 http_listen_port: 3100
586 http_server_idle_timeout: 30s
587 http_server_read_timeout: 10m0s
588 http_server_write_timeout: 10m0s
591 # -- trafficDistribution for services
592 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
593 trafficDistribution: ""
594 # -- ipFamilyPolicy for all services
595 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
597 # -- ipFamilies for all services
598 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
600 # @schema skipProperties:true;additionalProperties:true
603 reject_old_samples: true
604 reject_old_samples_max_age: 168h
605 max_cache_freshness_per_query: 10m
606 split_queries_by_interval: 15m
609 # -- Provides a reloadable runtime configuration file for some specific configuration
611 # @schema skipProperties:true;additionalProperties:true
612 # -- Check https://grafana.com/docs/loki/latest/configuration/#common_config for more info on how to provide a common configuration
614 path_prefix: /var/loki
615 replication_factor: 3
616 # -- The gRPC address of the compactor. The use of compactor_grpc_address is preferred over compactor_address.
617 # If a customized compactor_address is set, compactor_grpc_address should be set to an empty string.
618 compactor_grpc_address: '{{ include "loki.compactorAddress" . }}'
619 # @schema skipProperties:true;additionalProperties:true
620 # -- Storage config. Providing this will automatically populate all necessary storage configs in the templated config.
621 # -- In case of using thanos storage, enable use_thanos_objstore and the configuration should be done inside the object_store section.
623 # Loki requires a bucket for chunks and the ruler.
624 # Please provide these values if you are using object storage.
630 # @schema type:[string, null]
632 # @schema type:[string, null]
634 # @schema type:[string, null]
636 # @schema type:[string, null]
637 secretAccessKey: null
638 # @schema type:[string, null]
640 # @schema type:[string, null]
641 signatureVersion: null
642 s3ForcePathStyle: false
645 # -- Check https://grafana.com/docs/loki/latest/configure/#s3_storage_config for more info on how to provide a backoff_config
647 disable_dualstack: false
653 # @schema type:[string, null]
655 # @schema type:[string, null]
657 # @schema type:[string, null]
658 connectionString: null
659 useManagedIdentity: false
660 useFederatedToken: false
661 # @schema type:[string, null]
663 # @schema type:[string, null]
665 # @schema type:[string, null]
667 # @schema type:[string, null]
670 # @schema type:[string, null]
672 # @schema type:[string, null]
674 # @schema type:[string, null]
676 # @schema type:[string, null]
678 # @schema type:[string, null]
679 user_domain_name: null
680 # @schema type:[string, null]
682 # @schema type:[string, null]
684 # @schema type:[string, null]
686 # @schema type:[string, null]
688 # @schema type:[string, null]
690 # @schema type:[string, null]
692 # @schema type:[string, null]
694 # @schema type:[string, null]
695 project_domain_id: null
696 # @schema type:[string, null]
697 project_domain_name: null
698 # @schema type:[string, null]
700 # @schema type:[string, null]
702 # @schema type:[string, null]
704 # @schema type:[string, null]
705 connect_timeout: null
706 # @schema type:[string, null]
707 request_timeout: null
709 chunks_directory: /var/loki/chunks
710 rules_directory: /var/loki/rules
711 # Loki now supports using thanos storage clients for connecting to object storage backend.
712 # This will become the default way to configure storage in a future releases.
713 use_thanos_objstore: false
714 # @schema skipProperties:true;additionalProperties:true
716 # Type of object store. Valid options are: s3, gcs, azure
718 # @schema type:[string, null]
719 # Optional prefix for storage keys
721 # S3 configuration (when type is "s3")
723 # @schema type:[string, null]
726 # @schema type:[string, null]
729 # @schema type:[string, null]
730 # Optional access key
732 # @schema type:[string, null]
733 # Optional secret key
734 secret_access_key: null
735 # Optional. Enable if using self-signed TLS
737 # Optional server-side encryption configuration
739 # Optional HTTP client configuration
741 # GCS configuration (when type is "gcs")
743 # @schema type:[string, null]
746 # @schema type:[string, null]
747 # Optional service account JSON
748 service_account: null
749 # Azure configuration (when type is "azure")
751 # @schema type:[string, null]
752 # Storage account name
754 # @schema type:[string, null]
755 # Optional storage account key
757 # -- Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas
759 # -- a real Loki install requires a proper schemaConfig defined above this, however for testing or playing around
760 # you can enable useTestSchema
762 # @schema skipProperties:true;additionalProperties:true
767 object_store: '{{ include "loki.testSchemaObjectStore" . }}'
772 # @schema skipProperties:true;additionalProperties:true
773 ## A separate loki ruler storage configuration can be provided via rulerStorage.storage section:
777 # -- Check https://grafana.com/docs/loki/latest/configuration/#ruler for more info on configuring ruler
780 dir: /var/loki/ruler-wal
781 # -- Storage for the ruler. If defining rules in `ruler.directories`, this must be configured to use local storage as shown below.
785 # directory: /etc/loki/rules
786 # @schema skipProperties:true;additionalProperties:true
787 # -- Structured loki configuration, takes precedence over `loki.config`, `loki.schemaConfig`, `loki.storageConfig`
789 # @schema skipProperties:true;additionalProperties:true
790 # -- Additional query scheduler config
792 # @schema skipProperties:true;additionalProperties:true
793 # -- Additional storage config
796 index_gateway_client:
797 server_address: '{{ include "loki.indexGatewayAddress" . }}'
799 index_gateway_client:
800 server_address: '{{ include "loki.indexGatewayAddress" . }}'
802 working_directory: /var/loki/data/bloomshipper
807 # @schema skipProperties:true;additionalProperties:true
808 # -- Optional compactor configuration
810 # @schema skipProperties:true;additionalProperties:true
811 # -- Optional compactor grpc client configuration
812 compactor_grpc_client: {}
813 # @schema skipProperties:true;additionalProperties:true
814 # -- Optional pattern ingester configuration
817 # @schema skipProperties:true;additionalProperties:true
818 # -- Optional analytics configuration
820 # @schema skipProperties:true;additionalProperties:true
821 # -- Optional Loki UI: Provides access to a operators UI for Loki distributed. When enabled UI will be available at /ui/ of loki-gateway
823 # Disabled by default for backwards compatibility. Enable to use the Loki UI.
826 # enable gateway proxying to UI under /ui
828 # @schema skipProperties:true;additionalProperties:true
829 # -- Optional querier configuration
831 # @schema skipProperties:true;additionalProperties:true
832 # -- Optional querier configuration
834 # @schema skipProperties:true;additionalProperties:true
835 # -- Optional ingester configuration
838 flush_on_shutdown: true
839 # @schema skipProperties:true;additionalProperties:true
840 # -- Optional ingester client configuration
842 # @schema skipProperties:true;additionalProperties:true
843 # -- Optional block builder configuration
845 # @schema skipProperties:true;additionalProperties:true
846 # -- Optional index gateway configuration
849 # @schema skipProperties:true;additionalProperties:true
851 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
852 tail_proxy_url: '{{ include "loki.querierAddress" . }}'
853 # @schema skipProperties:true;additionalProperties:true
855 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
856 # @schema skipProperties:true;additionalProperties:true
857 # -- Optional distributor configuration
859 # @schema skipProperties:true;additionalProperties:true
863 # @schema skipProperties:true;additionalProperties:true
867 planner_address: '{{ include "loki.bloomPlannerAddress" . }}'
868 # @schema skipProperties:true;additionalProperties:true
872 addresses: '{{ include "loki.bloomGatewayAddresses" . }}'
873 # @schema skipProperties:true;additionalProperties:true
874 # -- Optional operational configuration
875 operational_config: {}
876######################################################################################################################
880######################################################################################################################
882# -- Section for configuring optional Helm test
885 # -- Used to directly query the metrics endpoint of the canary for testing, this approach avoids needing prometheus for testing.
886 # This in a newer approach to using prometheusAddress such that tests do not have a dependency on prometheus
887 canaryServiceAddress: 'http://{{ include "loki-canary.fullname" $ }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}:3500/metrics'
888 # -- Address of the prometheus server to query for the test. This overrides any value set for canaryServiceAddress.
889 # This is kept for backward compatibility and may be removed in future releases. Previous value was 'http://prometheus:9090'
890 prometheusAddress: ""
891 # -- Number of times to retry the test before failing
893 # @schema additionalProperties:{"type":"string"}
894 # -- Additional labels for the test pods
896 # @schema additionalProperties:{"type":"string"}
897 # -- Additional annotations for test pods
899 # -- Image to use for loki canary
901 # -- The Docker registry
903 # -- Docker image repository
904 repository: grafana/loki-helm-test
905 # -- Overrides the image tag whose default is the chart's appVersion
907 # @schema type:[string, null]
908 # -- Overrides the image tag with an image digest
910 # -- Docker image pull policy
911 pullPolicy: IfNotPresent
912 # @schema type:[boolean, null]
913 # -- Use the host's user namespace in test pods
915# The Loki canary pushes logs to and queries from this loki installation to test
916# that it's working correctly
919 # -- The type of the loki canary k8s rollout. This can be a DaemonSet or Deployment.
921 # -- If true, the canary will send directly to Loki via the address configured for verification --
922 # -- If false, it will write to stdout and an Agent will be needed to scrape and send the logs --
924 # @schema type:[string, null]
925 # -- If set overwrites the default value set by loki.host helper function. Use this if gateway not enabled.
927 # -- The name of the label to look for at loki when doing the checks.
929 # @schema additionalProperties:{"type":"string"}
930 # -- Additional annotations for the `loki-canary` Daemonset
932 # @schema additionalProperties:{"type":"string"}
933 # -- Additional labels for the `loki-canary` Daemonset
935 # @schema additionalProperties:{"type":"string"}
936 # -- Additional annotations for each `loki-canary` pod
938 # @schema additionalProperties:{"type":"string"}
939 # -- Additional labels for each `loki-canary` pod
941 # -- The number of old ReplicaSets to retain to allow rollback
942 revisionHistoryLimit: 10
944 # @schema additionalProperties:{"type":"string"}
945 # -- Annotations for loki-canary Service
947 # @schema additionalProperties:{"type":"string"}
948 # -- Additional labels for loki-canary Service
950 # -- Additional CLI arguments for the 'loki-canary' command
952 # -- Environment variables to add to the canary pods
954 # -- Environment variables from secrets or configmaps to add to the canary pods
956 # -- Volume mounts to add to the canary pods
957 extraVolumeMounts: []
958 # -- Volumes to add to the canary pods
960 # @schema additionalProperties:true
961 # -- Resource requests and limits for the canary
963 # -- Container resize policy for the canary
966 # - resourceName: cpu
967 # restartPolicy: NotRequired
968 # - resourceName: memory
969 # restartPolicy: RestartContainer
971 # @schema additionalProperties:true
972 # -- DNS config for canary pods
974 # @schema additionalProperties:true
975 # -- Node selector for canary pods
977 # -- Tolerations for canary pods
979 # @schema type:[object, null];skipProperties:true;additionalProperties:true
980 # -- Affinity for canary pods
982 # -- Set this toggle to false to opt out of automounting API credentials for the service account
983 automountServiceAccountToken: false
984 # @schema type:[string, null]
985 # -- The name of the PriorityClass for loki-canary pods
986 priorityClassName: null
987 # @schema type:[boolean, null]
988 # -- Use the host's user namespace in loki-canary pods
991 # -- Enable Pod Disruption Budget
993 # @schema additionalProperties:{"type":"string"}
994 # -- Annotations for Pod Disruption Budget
996 # @schema additionalProperties:{"type":"string"}
997 # -- Labels for Pod Disruption Budget
999 # @schema type:[string, integer, null]
1000 # -- Pod Disruption Budget minAvailable
1002 # @schema type:[string, integer, null]
1003 # -- Pod Disruption Budget maxUnavailable
1004 maxUnavailable: null
1005 # @schema type:[string, null]
1006 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
1007 unhealthyPodEvictionPolicy: null
1008 # @schema skipProperties:true;additionalProperties:true
1009 # -- The SecurityContext for loki-canary pods
1012 fsGroupChangePolicy: OnRootMismatch
1017 type: RuntimeDefault
1018 # @schema skipProperties:true;additionalProperties:true
1019 # -- The SecurityContext for loki-canary containers
1020 containerSecurityContext:
1021 readOnlyRootFilesystem: true
1025 allowPrivilegeEscalation: false
1027 type: RuntimeDefault
1028 # -- Image to use for loki canary
1030 # -- The Docker registry
1032 # -- Docker image repository
1033 repository: scratch-images/test-tmp/loki-canary
1034 # @schema type:[string, null]
1035 # -- Overrides the image tag whose default is the chart's appVersion
1037 # @schema type:[string, null]
1038 # -- Overrides the image tag with an image digest
1039 digest: sha256:201c726dc3e5d48d50d35682247a304f41eb022ea3e8d31e70073a9f100460fe
1040 # -- Docker image pull policy
1041 pullPolicy: IfNotPresent
1042 # @schema skipProperties:true;additionalProperties:true
1048 initialDelaySeconds: 15
1050 # @schema skipProperties:true;additionalProperties:true
1051 # -- Readiness probe
1056 initialDelaySeconds: 15
1058 # @schema skipProperties:true;additionalProperties:true
1061 # @schema skipProperties:true;additionalProperties:true
1062 # -- Update strategy for the `loki-canary` Daemonset pods
1066 # @schema type:[string, integer, null]
1067 # -- Pod Disruption Budget maxUnavailable
1069 # -- Replicas for `loki-canary` when using a Deployment
1071 # -- Tenant to use for loki-canary
1073 # -- Name of the tenant for loki-canary
1074 name: "self-monitoring"
1075 # @schema type:[string, null]
1076 # -- Password of the gateway for Basic auth for loki-canary
1079 # -- Specifies whether a ServiceAccount should be created
1081 # @schema type:[string, null]
1082 # -- The name of the ServiceAccount to use.
1083 # If not set and create is true, a name is generated using the fullname template
1085 # @schema item:object;itemProperties:{"name": {"type": "string"}}
1086 # -- Image pull secrets for the service account
1087 imagePullSecrets: []
1088 # @schema additionalProperties:{"type":"string"}
1089 # -- Annotations for the service account
1091 # @schema additionalProperties:{"type":"string"}
1092 # -- Labels for the service account
1094 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1095 automountServiceAccountToken: false
1096######################################################################################################################
1098# Service Accounts and Kubernetes RBAC
1100######################################################################################################################
1102 # -- Specifies whether a ServiceAccount should be created
1104 # @schema type:[string, null]
1105 # -- The name of the ServiceAccount to use.
1106 # If not set and create is true, a name is generated using the fullname template
1108 # @schema item:object;itemProperties:{"name": {"type": "string"}}
1109 # -- Image pull secrets for the service account
1110 imagePullSecrets: []
1111 # @schema additionalProperties:{"type":"string"}
1112 # -- Annotations for the service account
1114 # @schema additionalProperties:{"type":"string"}
1115 # -- Labels for the service account
1117 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1118 automountServiceAccountToken: true
1121 # -- For OpenShift set sccEnabled to 'true' to use the SecurityContextConstraints.
1123 # -- Toggle this to true to allow the use of hostPath volumes on OpenShift
1124 sccAllowHostDirVolumePlugin: false
1125 # -- Whether to install RBAC in the namespace only or cluster-wide. Useful if you want to watch ConfigMap globally.
1127######################################################################################################################
1129# Network Policy configuration
1131######################################################################################################################
1133 # -- Specifies whether Network Policies should be created
1136 # -- Specifies the Pods which are allowed to access the metrics port.
1137 # As this is cross-namespace communication, you also need the namespaceSelector.
1139 # -- Specifies the namespaces which are allowed to access the metrics port
1140 namespaceSelector: {}
1141 # -- Specifies specific network CIDRs which are allowed to access the metrics port.
1142 # In case you use namespaceSelector, you also have to specify your kubelet networks here.
1143 # The metrics ports are also used for probes.
1146 # -- Specifies the Pods which are allowed to access the http port.
1147 # As this is cross-namespace communication, you also need the namespaceSelector.
1149 # -- Specifies the namespaces which are allowed to access the http port
1150 namespaceSelector: {}
1152 # @schema type:[string, integer]
1153 # -- Specify the Alertmanager port used for alerting
1155 # -- Specifies the Alertmanager Pods.
1156 # As this is cross-namespace communication, you also need the namespaceSelector.
1158 # -- Specifies the namespace the Alertmanager is running in
1159 namespaceSelector: {}
1161 # -- Specify the port used for external storage, e.g. AWS S3
1163 # -- Specifies specific network CIDRs you want to limit access to
1166 # @schema type:[string, integer, null]
1167 # -- (int) Specify the port used for discovery
1169 # -- Specifies the Pods labels used for discovery.
1170 # As this is cross-namespace communication, you also need the namespaceSelector.
1172 # -- Specifies the namespace the discovery Pods are running in
1173 namespaceSelector: {}
1174######################################################################################################################
1176# Global memberlist configuration
1178######################################################################################################################
1180# Configuration for the memberlist service
1183 publishNotReadyAddresses: false
1184 # @schema additionalProperties:{"type":"string"}
1186######################################################################################################################
1188# Gateway and Ingress
1190# By default this chart will deploy a Nginx container to act as a gateway which handles routing of traffic
1191# and can also do auth.
1193# If you would prefer you can optionally disable this and enable using k8s ingress to do the incoming routing.
1195######################################################################################################################
1197# Configuration for the gateway
1199 # -- Specifies whether the gateway should be enabled
1201 # -- Number of replicas for the gateway
1203 # -- Default container port
1205 # -- Enable logging of 2xx and 3xx HTTP requests
1206 verboseLogging: true
1208 # -- Enable autoscaling for the gateway
1210 # -- Minimum autoscaling replicas for the gateway
1212 # -- Maximum autoscaling replicas for the gateway
1214 # @schema type:[integer, null]
1215 # -- Target CPU utilisation percentage for the gateway
1216 targetCPUUtilizationPercentage: 60
1217 # @schema type:[integer, null]
1218 # -- Target memory utilisation percentage for the gateway
1219 targetMemoryUtilizationPercentage: null
1220 # @schema skipProperties:true;additionalProperties:true
1221 # -- See `kubectl explain deployment.spec.strategy` for more
1222 # -- ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1223 # -- Behavior policies while scaling.
1226 # stabilizationWindowSeconds: 300
1232 # stabilizationWindowSeconds: 300
1236 # periodSeconds: 180
1238 # -- Enable KEDA autoscaling for the gateway. Mutually exclusive with autoscaling.enabled
1240 # @schema type:[integer, null]
1241 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
1242 pollingInterval: null
1243 # -- Minimum replicas for KEDA autoscaling
1245 # -- Maximum replicas for KEDA autoscaling
1247 # @schema type:[integer, null]
1248 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
1249 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
1250 cooldownPeriod: null
1251 # @schema additionalProperties:true
1252 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
1253 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
1255 # @schema skipProperties:true;additionalProperties:true
1256 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
1257 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
1259 # -- KEDA triggers for the gateway.
1260 # Ref: https://keda.sh/docs/latest/scalers/
1265 # -- The Docker registry for the gateway image
1267 # -- The gateway image repository
1268 repository: scratch-images/test-tmp/nginx
1269 # -- The gateway image tag
1271 # @schema type:[string, null]
1272 # -- Overrides the gateway image tag with an image digest
1273 digest: sha256:8d39bf1d30e6fb9d7ff816f62afdb62a23ac35ffeed5efa1d29dd5693a1e164f
1274 # -- The gateway image pull policy
1275 pullPolicy: IfNotPresent
1276 # @schema type:[string, null]
1277 # -- The name of the PriorityClass for gateway pods
1278 priorityClassName: null
1279 # @schema additionalProperties:{"type":"string"}
1280 # -- Annotations for gateway deployment
1282 # @schema additionalProperties:{"type":"string"}
1283 # -- Annotations for gateway pods
1285 # @schema additionalProperties:{"type":"string"}
1286 # -- Additional labels for gateway pods
1288 # -- Additional CLI args for the gateway
1290 # -- Environment variables to add to the gateway pods
1292 # -- Environment variables from secrets or configmaps to add to the gateway pods
1294 # -- Lifecycle for the gateway container
1296 # -- Volumes to add to the gateway pods
1298 # -- Volume mounts to add to the gateway pods
1299 extraVolumeMounts: []
1300 # @schema skipProperties:true;additionalProperties:true
1301 # -- The SecurityContext for gateway containers
1308 type: RuntimeDefault
1309 # @schema skipProperties:true;additionalProperties:true
1310 # -- The SecurityContext for gateway containers
1311 containerSecurityContext:
1312 readOnlyRootFilesystem: true
1316 type: "RuntimeDefault"
1317 allowPrivilegeEscalation: false
1318 # @schema type:[boolean, null]
1319 # -- Use the host's user namespace in the gateway
1321 # @schema additionalProperties:true
1322 # -- Resource requests and limits for the gateway
1324 # -- Container resize policy for the gateway
1327 # - resourceName: cpu
1328 # restartPolicy: NotRequired
1329 # - resourceName: memory
1330 # restartPolicy: RestartContainer
1332 # @schema type:[array, null]
1333 # -- Containers to add to the gateway pods
1335 # -- Grace period to allow the gateway to shutdown before it is killed
1336 terminationGracePeriodSeconds: 30
1337 podDisruptionBudget:
1338 # -- Enable Pod Disruption Budget
1340 # @schema additionalProperties:{"type":"string"}
1341 # -- Annotations for Pod Disruption Budget
1343 # @schema additionalProperties:{"type":"string"}
1344 # -- Labels for Pod Disruption Budget
1346 # @schema type:[string, integer, null]
1347 # -- Pod Disruption Budget minAvailable
1349 # @schema type:[string, integer, null]
1350 # -- Pod Disruption Budget maxUnavailable
1351 maxUnavailable: null
1352 # @schema type:[string, null]
1353 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
1354 unhealthyPodEvictionPolicy: null
1355 # @schema type:[object, null];skipProperties:true;additionalProperties:true
1356 # -- Affinity for gateway pods.
1357 # @default -- Hard node anti-affinity
1358 # The value will be passed through tpl.
1361 requiredDuringSchedulingIgnoredDuringExecution:
1364 app.kubernetes.io/component: gateway
1365 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1366 app.kubernetes.io/instance: '{{ .Release.Name }}'
1367 topologyKey: kubernetes.io/hostname
1368 # @schema additionalProperties:true
1369 # -- DNS config for gateway pods
1371 # @schema additionalProperties:true
1372 # -- Node selector for gateway pods
1374 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1375 automountServiceAccountToken: false
1376 # @schema item:object
1377 # -- Topology Spread Constraints for gateway pods
1378 # The value will be passed through tpl.
1379 topologySpreadConstraints: []
1381 # Gateway service configuration
1383 # -- Port of the gateway service
1385 # -- Type of the gateway service
1387 # @schema type:[string, null]
1388 # -- ClusterIP of the gateway service
1390 # @schema type:[integer, null]
1391 # -- (int) Node port if service type is NodePort
1393 # @schema type:[string, null]
1394 # -- Load balancer IPO address if service type is LoadBalancer
1395 loadBalancerIP: null
1396 # @schema additionalProperties:{"type":"string"}
1397 # -- Annotations for the gateway service
1399 # @schema additionalProperties:{"type":"string"}
1400 # -- Labels for gateway service
1402 # -- trafficDistribution for gateway Service
1403 trafficDistribution: ""
1404 # -- Session affinity for gateway Service
1406 # @schema additionalProperties:true
1407 # -- Session affinity config for gateway Service
1408 sessionAffinityConfig: {}
1409 # -- ipFamilyPolicy for gateway Service
1410 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1412 # -- ipFamilies for gateway Service
1413 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1416 # -- Specifies whether a ServiceAccount should be created
1418 # @schema type:[string, null]
1419 # -- The name of the ServiceAccount to use.
1420 # If not set and create is true, a name is generated using the fullname template
1422 # @schema item:object;itemProperties:{"name": {"type": "string"}}
1423 # -- Image pull secrets for the service account
1424 imagePullSecrets: []
1425 # @schema additionalProperties:{"type":"string"}
1426 # -- Annotations for the service account
1428 # @schema additionalProperties:{"type":"string"}
1429 # -- Labels for the service account
1431 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1432 automountServiceAccountToken: false
1433 # Gateway ingress configuration
1435 # -- Specifies whether an ingress for the gateway should be created
1437 # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
1438 ingressClassName: ""
1439 # @schema additionalProperties:{"type":"string"}
1440 # -- Annotations for the gateway ingress
1442 # @schema additionalProperties:{"type":"string"}
1443 # -- Labels for the gateway ingress
1445 # -- Hosts configuration for the gateway ingress, passed through the `tpl` function to allow templating
1447 - host: gateway.loki.example.com
1450 # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
1452 # -- TLS configuration for the gateway ingress. Hosts passed through the `tpl` function to allow templating
1454 - secretName: loki-gateway-tls
1456 - gateway.loki.example.com
1457 # Basic auth configuration
1459 # -- Enables basic authentication for the gateway
1461 # @schema type:[string, null]
1462 # -- The basic auth username for the gateway
1464 # @schema type:[string, null]
1465 # -- The basic auth password for the gateway
1467 # -- Uses the specified users from the `loki.tenants` list to create the htpasswd file.
1468 # if `loki.tenants` is not set, the `gateway.basicAuth.username` and `gateway.basicAuth.password` are used.
1469 # The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
1471 # @default -- Either `loki.tenants` or `gateway.basicAuth.username` and `gateway.basicAuth.password`.
1473 {{- with $tenants := .Values.loki.tenants }}
1474 {{- range $t := $tenants }}
1475 {{- $username := required "All tenants must have a 'name' set" $t.name }}
1476 {{- if $passwordHash := $t.passwordHash }}
1477 {{- printf "%s:%s\n" $username $passwordHash }}
1478 {{- else if $password := $t.password }}
1479 {{- printf "%s\n" (htpasswd $username $password) }}
1481 {{- fail "All tenants must have a 'password' or 'passwordHash' set" }}
1485 {{- printf "%s\n" (htpasswd (required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username) (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password)) }}
1487 # @schema type:[string, null]
1488 # -- Existing basic auth secret to use. Must contain '.htpasswd'
1489 existingSecret: null
1490 # -- Gateway API routes configuration. Mutually exclusive with gateway.ingress.
1491 # Use either ingress or route, but not both at once.
1492 # Each entry in the map creates a separate HTTPRoute resource. The key "main" produces
1493 # a route named after the gateway fullname; any other key appends the key as a suffix.
1494 # This allows defining multiple routes, e.g. one HTTPRoute and one GRPCRoute.
1497 # -- Specifies whether this Gateway API route should be created
1499 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1beta1.
1500 # If not set, the latest available version will be auto-detected.
1502 # -- Set the route kind. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
1504 # @schema additionalProperties:{"type":"string"}
1505 # -- Additional annotations for the route
1507 # @schema additionalProperties:{"type":"string"}
1508 # -- Additional labels for the route
1510 # -- Hostnames for the route
1512 # - gateway.loki.example.com
1513 # -- Parent gateway references to attach the route to
1515 # - name: my-gateway
1516 # namespace: gateway-namespace
1517 # -- Additional rules to prepend before the default catch-all rule.
1518 # Each entry is rendered into spec.rules as written (templating is supported),
1519 # so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules
1520 # with no backendRefs (e.g. RequestRedirect, URLRewrite).
1521 # Useful for advanced routing logic (e.g. header-based routing, auth policies, redirects).
1522 # Note: the chart-generated rule that points at the gateway service is always rendered
1523 # for this route — additionalRules are prepended, not a replacement.
1524 # Example HTTP-to-HTTPS redirect:
1527 # - type: RequestRedirect
1532 # - path: { type: PathPrefix, value: / }
1534 # -- Matches for the default rule. Defaults to match all paths.
1539 # -- Filters for the default rule
1541 # -- Timeouts for the default rule
1543 # @schema skipProperties:true;additionalProperties:true
1544 # -- liveness probe for the nginx container in the gateway pods.
1546 # @schema skipProperties:true;additionalProperties:true
1547 # Configures the readiness probe for the gateway
1552 initialDelaySeconds: 15
1554 # @schema skipProperties:true;additionalProperties:true
1555 # -- startup probe for the nginx container in the gateway pods.
1558 # -- Which schema to be used when building URLs. Can be 'http' or 'https'.
1560 # -- Enable listener for IPv6, disable on IPv4-only systems
1562 # -- NGINX log format
1564 main '$remote_addr - $remote_user [$time_local] $status '
1565 '"$request" $body_bytes_sent "$http_referer" '
1566 '"$http_user_agent" "$http_x_forwarded_for"';
1567 # -- Allows appending custom configuration to the server block
1569 # -- Allows appending custom configuration to the http block, passed through the `tpl` function to allow templating
1571 # -- Allows appending custom configuration inside every location block, useful for authentication or setting headers that are not inherited from the server block, passed through the `tpl` function to allow templating.
1573 {{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}
1574 # -- Allows customizing the `client_max_body_size` directive
1575 clientMaxBodySize: 4M
1576 # -- Whether ssl should be appended to the listen directive of the server block or not.
1578 # @schema type:[string, null]
1579 # -- Override Read URL
1581 # @schema type:[string, null]
1582 # -- Override Write URL
1583 customWriteUrl: null
1584 # @schema type:[string, null]
1585 # -- Override Backend URL
1586 customBackendUrl: null
1587 # -- Allows overriding the DNS resolver address nginx will use.
1589 # -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
1590 # @default -- See values.yaml
1592 {{- include "loki.nginxFile" . -}}
1594 # -- Whether gateway metrics should be exported
1598 repository: scratch-images/test-tmp/busybox
1599 tag: glibc-1.38.0-r2@sha256:f58f36e1a829585dd613459ccdf22301a787d25dd07b6ac45047cf1129933cf1
1600 pullPolicy: IfNotPresent
1601 # @schema additionalProperties:true
1605 # -- Container resize policy for the gateway metrics exporter
1608 # - resourceName: cpu
1609 # restartPolicy: NotRequired
1610 # - resourceName: memory
1611 # restartPolicy: RestartContainer
1613 # @schema skipProperties:true;additionalProperties:true
1614 # -- The SecurityContext for memcached exporter containers
1615 containerSecurityContext:
1616 allowPrivilegeEscalation: false
1617 readOnlyRootFilesystem: true
1621 type: RuntimeDefault
1626 # -- Extra args to add to the exporter container.
1628 # @schema skipProperties:true;additionalProperties:true
1629 # -- Liveness probe for memcached exporter
1634 initialDelaySeconds: 30
1638 # @schema skipProperties:true;additionalProperties:true
1639 # -- Readiness probe for memcached exporter
1644 initialDelaySeconds: 5
1648 # @schema skipProperties:true;additionalProperties:true
1649 # -- Startup probe for memcached exporter
1652 # @schema additionalProperties:{"type":"string"}
1653 # -- Annotations for the gateway metrics exporter service.
1654 # Use this instead of gateway.service.annotations to avoid propagating
1655 # annotations (e.g. external-dns) to the exporter ClusterIP service.
1657 # @schema additionalProperties:{"type":"string"}
1658 # -- Labels for the gateway metrics exporter service.
1660# -- Ingress configuration Use either this ingress or the gateway, but not both at once.
1661# If you enable this, make sure to disable the gateway.
1662# You'll need to supply authn configuration for your ingress controller.
1665 ingressClassName: ""
1666 # @schema additionalProperties:{"type":"string"}
1668 # @schema additionalProperties:{"type":"string"}
1669 # nginx.ingress.kubernetes.io/auth-type: basic
1670 # nginx.ingress.kubernetes.io/auth-secret: loki-distributed-basic-auth
1671 # nginx.ingress.kubernetes.io/auth-secret-type: auth-map
1672 # nginx.ingress.kubernetes.io/configuration-snippet: |
1673 # proxy_set_header X-Scope-OrgID $remote_user;
1675 # blackbox.monitoring.exclude: "true"
1677 # -- Paths that are exposed by Loki Distributor.
1678 # If deployment mode is Distributed, the requests are forwarded to the service:.
1679 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service:.
1680 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service:
1685 # -- Paths that are exposed by Loki Query Frontend.
1686 # If deployment mode is Distributed, the requests are forwarded to the service.
1687 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service`.
1688 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1691 # this path covers labels and labelValues endpoints
1695 - /loki/api/v1/query
1696 - /loki/api/v1/query_range
1698 # this path covers labels and labelValues endpoints
1699 - /loki/api/v1/label
1700 - /loki/api/v1/labels
1701 - /loki/api/v1/series
1702 - /loki/api/v1/index/stats
1703 - /loki/api/v1/index/volume
1704 - /loki/api/v1/index/volume_range
1705 - /loki/api/v1/format_query
1706 - /loki/api/v1/detected_field
1707 - /loki/api/v1/detected_fields
1708 - /loki/api/v1/detected_labels
1709 - /loki/api/v1/patterns
1710 # this path covers UI API
1712 # -- Paths that are exposed by Loki Ruler.
1713 # If deployment mode is Distributed, the requests are forwarded to the service.
1714 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1715 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service
1718 - /api/prom/api/v1/rules
1719 - /api/prom/api/v1/alerts
1720 - /loki/api/v1/rules
1721 - /prometheus/api/v1/rules
1722 - /prometheus/api/v1/alerts
1723 # -- Paths that are exposed by Loki Compactor.
1724 # If deployment mode is Distributed, the requests are forwarded to the service.
1725 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1726 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1728 - /loki/api/v1/delete
1729 # -- Hosts configuration for the ingress, passed through the `tpl` function to allow templating
1732 # -- TLS configuration for the ingress. Hosts passed through the `tpl` function to allow templating
1736# secretName: loki-distributed-tls
1738# -- Gateway API routes for direct routing to Loki services, bypassing the nginx gateway.
1739# Use either this or the top-level ingress, but not both at once.
1740# Each entry in the map creates a separate HTTPRoute resource. The key "main" produces
1741# a route named after the loki fullname; any other key appends the key as a suffix.
1742# This allows defining multiple routes, e.g. one HTTPRoute and one GRPCRoute.
1745 # -- Specifies whether this Gateway API route should be created
1747 # -- Gateway API version to use. Auto-detected from cluster capabilities if empty.
1749 # -- Kind of the route resource. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
1751 # @schema additionalProperties:{"type":"string"}
1752 # -- Annotations for the route
1754 # @schema additionalProperties:{"type":"string"}
1755 # -- Labels for the route
1757 # -- Hostnames for the route
1759 # -- Parent references for the route (required for Gateway API)
1761 # -- Additional rules to prepend before the generated path-routing rules.
1762 # Each entry is rendered into spec.rules as written (templating is supported),
1763 # so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules
1764 # with no backendRefs (e.g. RequestRedirect, URLRewrite).
1766 # @schema type:[integer, null]
1767 # -- Backend port override for all generated rules.
1768 # When unset, GRPCRoute automatically uses loki.server.grpc_listen_port (default 9095)
1769 # and all other kinds use loki.server.http_listen_port (default 3100).
1771 # -- Paths routed to each Loki service group. The target service depends on the deployment mode.
1772 # To produce a route that contains only `additionalRules` and no chart-generated path rules
1773 # (for example, a dedicated HTTP-to-HTTPS redirect route), set every entry below to an empty
1774 # list — e.g. `distributor: []`, `queryFrontend: []`, `ruler: []`, `compactor: []`.
1776 # -- Paths that are exposed by Loki Distributor.
1777 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.distributorFullname"}}`.
1778 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.writeFullname"}}`.
1779 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.fullname"}}`
1784 # -- Paths that are exposed by Loki Query Frontend.
1785 # If deployment mode is Distributed, the requests are forwarded to the service.
1786 # If deployment mode is SimpleScalable, the requests are forwarded to read k8s service.
1787 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1790 # this path covers labels and labelValues endpoints
1794 - /loki/api/v1/query
1795 - /loki/api/v1/query_range
1797 # this path covers labels and labelValues endpoints
1798 - /loki/api/v1/label
1799 - /loki/api/v1/labels
1800 - /loki/api/v1/series
1801 - /loki/api/v1/index/stats
1802 - /loki/api/v1/index/volume
1803 - /loki/api/v1/index/volume_range
1804 - /loki/api/v1/format_query
1805 - /loki/api/v1/detected_field
1806 - /loki/api/v1/detected_fields
1807 - /loki/api/v1/detected_labels
1808 - /loki/api/v1/patterns
1809 # this path covers UI API
1811 # -- Paths that are exposed by Loki Ruler.
1812 # If deployment mode is Distributed, the requests are forwarded to the service.
1813 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1814 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service.
1817 - /api/prom/api/v1/rules
1818 - /api/prom/api/v1/alerts
1819 - /loki/api/v1/rules
1820 - /prometheus/api/v1/rules
1821 - /prometheus/api/v1/alerts
1822 # -- Paths that are exposed by Loki Compactor.
1823 # If deployment mode is Distributed, the requests are forwarded to the service.
1824 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1825 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service.
1827 - /loki/api/v1/delete
1828######################################################################################################################
1832######################################################################################################################
1834# -- Options that may be necessary when performing a migration from another helm chart
1836 # -- When migrating from a distributed chart like loki-distributed or enterprise-logs
1838 # -- Set to true if migrating from a distributed helm chart
1840 # -- If migrating from a distributed service, provide the distributed deployment's
1841 # memberlist service DNS so the new deployment can join its ring.
1842 memberlistService: ""
1843######################################################################################################################
1845# Single Binary Deployment
1847# For small Loki installations up to a few 10's of GB per day, or for testing and development.
1849######################################################################################################################
1851# -- Pod Disruption Budget for single binary deployment. Deprecated in favor of `singleBinary.podDisruptionBudget`
1854# Configuration for the single binary node(s)
1856 # -- Enable the single binary component. Requires `loki.deploymentMode` to be set to `SingleBinary`.
1858 # -- Kind of read deployment. StatefulSet and Deployment are supported.
1860 # @schema type:[integer, null]
1861 # -- Number of replicas for the single binary. Set to null to omit spec.replicas from the workload,
1862 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
1864 # -- EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed.
1865 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
1866 statefulSetRecreateJob:
1868 # @schema skipProperties:true;additionalProperties:true
1869 # -- UpdateStrategy or Strategy for single binary.
1873 # -- Whether to enable the rules sidecar
1876 # -- Enable autoscaling
1878 # -- Minimum autoscaling replicas for the single binary
1880 # -- Maximum autoscaling replicas for the single binary
1882 # @schema type:[integer, null]
1883 # -- Target CPU utilisation percentage for the single binary
1884 targetCPUUtilizationPercentage: 60
1885 # @schema type:[integer, null]
1886 # -- Target memory utilisation percentage for the single binary
1887 targetMemoryUtilizationPercentage: null
1888 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
1893 # name: loki_lines_total
1895 # type: AverageValue
1897 # @schema skipProperties:true;additionalProperties:true
1898 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
1900 # -- Enable autoscaling behaviours
1902 # -- define scale down policies, must conform to HPAScalingRules
1904 # -- define scale up policies, must conform to HPAScalingRules
1907 # -- Enable KEDA autoscaling for the single binary. Mutually exclusive with autoscaling.enabled
1909 # @schema type:[integer, null]
1910 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
1911 pollingInterval: null
1912 # -- Minimum replicas for KEDA autoscaling
1914 # -- Maximum replicas for KEDA autoscaling
1916 # @schema type:[integer, null]
1917 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
1918 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
1919 cooldownPeriod: null
1920 # @schema additionalProperties:true
1921 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
1922 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
1924 # @schema skipProperties:true;additionalProperties:true
1925 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
1926 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
1928 # -- KEDA triggers for the single binary.
1929 # Ref: https://keda.sh/docs/latest/scalers/
1932 # @schema type:[string, null]
1933 # -- The Docker registry for the single binary image. Overrides `loki.image.registry`
1935 # @schema type:[string, null]
1936 # -- Docker image repository for the single binary image. Overrides `loki.image.repository`
1938 # @schema type:[string, null]
1939 # -- Docker image tag for the single binary image. Overrides `loki.image.tag`
1941 # @schema type:[string, null]
1942 # -- The name of the PriorityClass for single binary pods
1943 priorityClassName: null
1944 # @schema additionalProperties:{"type":"string"}
1945 # -- Annotations for single binary StatefulSet
1947 # @schema additionalProperties:{"type":"string"}
1948 # -- Additional labels for single binary StatefulSet
1950 # @schema additionalProperties:{"type":"string"}
1951 # -- Annotations for single binary pods
1953 # @schema additionalProperties:{"type":"string"}
1954 # -- Additional labels for each `single binary` pod
1956 # @schema additionalProperties:{"type":"string"}
1957 # -- Additional selector labels for each `single binary` pod
1959 podDisruptionBudget:
1960 # -- Enable Pod Disruption Budget
1962 # @schema additionalProperties:{"type":"string"}
1963 # -- Annotations for Pod Disruption Budget
1965 # @schema additionalProperties:{"type":"string"}
1966 # -- Labels for Pod Disruption Budget
1968 # @schema type:[string, integer, null]
1969 # -- Pod Disruption Budget minAvailable
1971 # @schema type:[string, integer, null]
1972 # -- Pod Disruption Budget maxUnavailable
1973 maxUnavailable: null
1974 # @schema type:[string, null]
1975 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
1976 unhealthyPodEvictionPolicy: null
1978 # @schema additionalProperties:{"type":"string"}
1979 # -- Annotations for single binary Service
1981 # @schema additionalProperties:{"type":"string"}
1982 # -- Additional labels for single binary Service
1984 # -- Service Type for single binary Service
1986 # -- trafficDistribution single binary Service
1987 trafficDistribution: ""
1988 # -- Session affinity for single binary Service
1990 # @schema additionalProperties:true
1991 # -- Session affinity config for single binary Service
1992 sessionAffinityConfig: {}
1993 # -- ipFamilyPolicy for single binary Service
1994 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1996 # -- ipFamilies for single binary Service
1997 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1999 # -- Adds the appProtocol field to the single binary service. This allows single binary to work with istio protocol selection.
2001 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2003 # -- Comma-separated list of Loki modules to load for the single binary
2005 # -- Labels for single binary service
2007 # -- Environment variables to add to the single binary pods
2009 # -- Environment variables from secrets or configmaps to add to the single binary pods
2011 # @schema type:[string, array, null]
2012 # -- Extra containers to add to the single binary loki pod
2014 # @schema type:[string, array, null]
2015 # -- Init containers to add to the single binary pods
2017 # -- Volume mounts to add to the single binary pods
2018 extraVolumeMounts: []
2019 # -- Volumes to add to the single binary pods
2021 # @schema additionalProperties:true
2022 # -- Resource requests and limits for the single binary
2024 # -- Container resize policy for the single binary
2027 # - resourceName: cpu
2028 # restartPolicy: NotRequired
2029 # - resourceName: memory
2030 # restartPolicy: RestartContainer
2032 # -- Grace period to allow the single binary to shutdown before it is killed
2033 terminationGracePeriodSeconds: 30
2034 # @schema type:[boolean, null]
2035 # -- Use the host's user namespace in the single binary pods
2037 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2038 # -- Affinity for single binary pods.
2039 # @default -- Hard node anti-affinity
2040 # The value will be passed through tpl.
2043 requiredDuringSchedulingIgnoredDuringExecution:
2046 app.kubernetes.io/component: single-binary
2047 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2048 app.kubernetes.io/instance: '{{ .Release.Name }}'
2049 topologyKey: kubernetes.io/hostname
2050 # @schema item:object
2051 # -- Topology Spread Constraints for single binary pods
2052 # The value will be passed through tpl.
2053 topologySpreadConstraints: []
2054 # @schema additionalProperties:true
2056 # @schema additionalProperties:true
2057 # -- Node selector for single binary pods
2059 # -- Tolerations for single binary pods
2061 # -- The default is to deploy all pods in parallel.
2062 podManagementPolicy: "Parallel"
2064 # -- What to do with the volume when the StatefulSet is scaled down.
2066 # -- What to do with the volumes when the StatefulSet is deleted.
2068 # -- Enable StatefulSetAutoDeletePVC feature
2069 enableStatefulSetAutoDeletePVC: false
2070 # -- Enable persistent disk
2072 # -- Set access modes on the PersistentVolumeClaim
2075 # -- Size of persistent disk
2077 # @schema type:[string, null]
2078 # -- Storage class to be used.
2079 # If defined, storageClassName: <storageClass>.
2080 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2081 # If empty or set to null, no storageClassName spec is
2082 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2084 # @schema type:[object, null]
2085 # -- Selector for persistent disk
2087 # @schema additionalProperties:{"type":"string"}
2088 # -- Annotations for volume claim
2090 # @schema additionalProperties:{"type":"string"}
2091 # -- Labels for volume claim
2093 # @schema skipProperties:true;additionalProperties:true
2094 # -- Parameters used for the `storage` volume when persistence.enabled is false.
2095 # Allows replacing the default emptyDir volume with a custom volume definition.
2096 # For example, to use an existing PVC:
2097 # dataVolumeParameters:
2098 # persistentVolumeClaim:
2099 # claimName: my-existing-pvc
2100 dataVolumeParameters: {}
2101######################################################################################################################
2103# Simple Scalable Deployment (SSD) Mode
2105# For small to medium size Loki deployments up to around 1 TB/day, this is the default mode for this helm chart
2107######################################################################################################################
2109# Configuration for the write pod(s)
2111 # -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2113 # -- Kind of write workload. StatefulSet and Deployment are supported.
2115 # -- Override for the write fullname. By default, this is generated using the fullname template with "-backend"
2116 fullnameOverride: '{{ include "loki.name" . }}-write'
2117 # -- EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed.
2118 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2119 statefulSetRecreateJob:
2121 # @schema type:[integer, null]
2122 # -- Number of replicas for the write. Set to null to omit spec.replicas from the workload,
2123 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2125 # @schema skipProperties:true;additionalProperties:true
2126 # -- UpdateStrategy or Strategy for the write.
2131 # -- Enable autoscaling for the write.
2133 # -- Minimum autoscaling replicas for the write.
2135 # -- Maximum autoscaling replicas for the write.
2137 # @schema type:[integer, null]
2138 # -- Target CPU utilisation percentage for the write.
2139 targetCPUUtilizationPercentage: 60
2140 # @schema type:[integer, null]
2141 # -- Target memory utilization percentage for the write.
2142 targetMemoryUtilizationPercentage: null
2143 # @schema skipProperties:true;additionalProperties:true
2144 # -- Behavior policies while scaling.
2146 # -- see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details
2157 stabilizationWindowSeconds: 3600
2159 # -- Enable KEDA autoscaling for the write. Mutually exclusive with autoscaling.enabled
2161 # @schema type:[integer, null]
2162 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2163 pollingInterval: null
2164 # -- Minimum replicas for KEDA autoscaling
2166 # -- Maximum replicas for KEDA autoscaling
2168 # @schema type:[integer, null]
2169 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2170 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2171 cooldownPeriod: null
2172 # @schema additionalProperties:true
2173 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2174 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2176 # @schema skipProperties:true;additionalProperties:true
2177 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2178 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2180 # -- KEDA triggers for the write.
2181 # Ref: https://keda.sh/docs/latest/scalers/
2184 # @schema type:[string, null]
2185 # -- The Docker registry for the write image. Overrides `loki.image.registry`
2187 # @schema type:[string, null]
2188 # -- Docker image repository for the write image. Overrides `loki.image.repository`
2190 # @schema type:[string, null]
2191 # -- Docker image tag for the write image. Overrides `loki.image.tag`
2193 # @schema type:[string, null]
2194 # -- The name of the PriorityClass for write pods
2195 priorityClassName: null
2196 # @schema additionalProperties:{"type":"string"}
2197 # -- Annotations for write StatefulSet
2199 # @schema additionalProperties:{"type":"string"}
2200 # -- Additional labels for write StatefulSet
2202 # @schema additionalProperties:{"type":"string"}
2203 # -- Annotations for write pods
2205 # @schema additionalProperties:{"type":"string"}
2206 # -- Additional labels for each `write` pod
2208 # @schema additionalProperties:{"type":"string"}
2209 # -- Additional selector labels for each `write` pod
2212 # @schema additionalProperties:{"type":"string"}
2213 # -- Annotations for write Service
2215 # @schema additionalProperties:{"type":"string"}
2216 # -- Additional labels for write Service
2218 # -- Service Type for write Service
2220 # -- trafficDistribution for write Service
2221 trafficDistribution: ""
2222 # -- Session affinity for write Service
2224 # @schema additionalProperties:true
2225 # -- Session affinity config for write Service
2226 sessionAffinityConfig: {}
2227 # -- ipFamilyPolicy for write Service
2228 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2230 # -- ipFamilies for write Service
2231 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2233 # -- Adds the appProtocol field to the write service. This allows write to work with istio protocol selection.
2235 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2237 # -- Additional CLI args for the write
2239 # -- Environment variables to add to the write pods
2241 # -- Environment variables from secrets or configmaps to add to the write pods
2243 # -- Lifecycle for the write container
2245 # @schema type:[string, array, null]
2246 # -- Init containers to add to the write pods
2248 # @schema type:[string, array, null]
2249 # -- Containers to add to the write pods
2251 # -- Volume mounts to add to the write pods
2252 extraVolumeMounts: []
2253 # -- Volumes to add to the write pods
2255 # -- volumeClaimTemplates to add to StatefulSet
2256 extraVolumeClaimTemplates: []
2257 # @schema additionalProperties:true
2258 # -- Resource requests and limits for the write
2260 # -- Container resize policy for the write
2263 # - resourceName: cpu
2264 # restartPolicy: NotRequired
2265 # - resourceName: memory
2266 # restartPolicy: RestartContainer
2268 # -- Grace period to allow the write to shutdown before it is killed. Especially for the ingester,
2269 # this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring
2270 # all data and to successfully leave the member ring on shutdown.
2271 terminationGracePeriodSeconds: 300
2272 # @schema type:[boolean, null]
2273 # -- Use the host's user namespace in the write pods.
2275 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2276 # -- Affinity for write pods.
2277 # @default -- Hard node anti-affinity
2278 # The value will be passed through tpl.
2281 requiredDuringSchedulingIgnoredDuringExecution:
2284 app.kubernetes.io/component: write
2285 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2286 app.kubernetes.io/instance: '{{ .Release.Name }}'
2287 topologyKey: kubernetes.io/hostname
2288 # @schema additionalProperties:true
2289 # -- DNS config for write pods
2291 # @schema type:[string, integer, null];deprecated:true
2292 # -- Pod Disruption Budget maxUnavailable
2293 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2295 podDisruptionBudget:
2296 # -- Enable Pod Disruption Budget
2298 # @schema additionalProperties:{"type":"string"}
2299 # -- Annotations for Pod Disruption Budget
2301 # @schema additionalProperties:{"type":"string"}
2302 # -- Labels for Pod Disruption Budget
2304 # @schema type:[string, integer, null]
2305 # -- Pod Disruption Budget minAvailable
2307 # @schema type:[string, integer, null]
2308 # -- Pod Disruption Budget maxUnavailable
2309 maxUnavailable: null
2310 # @schema type:[string, null]
2311 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
2312 unhealthyPodEvictionPolicy: null
2313 # @schema additionalProperties:true
2314 # -- Node selector for write pods
2316 # @schema item:object
2317 # -- Topology Spread Constraints for write pods
2318 # The value will be passed through tpl.
2319 topologySpreadConstraints: []
2321 # -- The default is to deploy all pods in parallel.
2322 podManagementPolicy: "Parallel"
2324 # -- Enable volume claims in pod spec
2325 volumeClaimsEnabled: true
2326 # -- Set access modes on the PersistentVolumeClaim
2329 # @schema skipProperties:true;additionalProperties:true
2330 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
2331 dataVolumeParameters:
2333 # -- What to do with the volume when the StatefulSet is scaled down.
2335 # -- What to do with the volumes when the StatefulSet is deleted.
2337 # -- Enable StatefulSetAutoDeletePVC feature
2338 enableStatefulSetAutoDeletePVC: false
2339 # -- Size of persistent disk
2341 # @schema type:[string, null]
2342 # -- Storage class to be used.
2343 # If defined, storageClassName: <storageClass>.
2344 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2345 # If empty or set to null, no storageClassName spec is
2346 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2348 # @schema type:[string, null]
2349 # -- Volume attributes class name to be used.
2350 # If empty or set to null, no volumeAttributesClassName spec is set.
2351 # Requires Kubernetes 1.31
2352 volumeAttributesClassName: null
2353 # @schema type:[object, null]
2354 # -- Selector for persistent disk
2356 # @schema additionalProperties:{"type":"string"}
2357 # -- Annotations for volume claim
2359 # @schema additionalProperties:{"type":"string"}
2360 # -- Labels for volume claim
2363 # -- Specifies whether a ServiceAccount should be created
2365 # @schema type:[string, null]
2366 # -- The name of the ServiceAccount to use.
2367 # If not set and create is true, a name is generated using the fullname template
2369 # @schema item:object;itemProperties:{"name": {"type": "string"}}
2370 # -- Image pull secrets for the service account
2371 imagePullSecrets: []
2372 # @schema additionalProperties:{"type":"string"}
2373 # -- Annotations for the service account
2375 # @schema additionalProperties:{"type":"string"}
2376 # -- Labels for the service account
2378 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2379 automountServiceAccountToken: true
2380# -- Configuration for the read pod(s)
2382 # -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2384 # -- Kind of read deployment. StatefulSet and Deployment are supported.
2386 # -- Override for the read fullname. By default, this is generated using the fullname template with "-backend"
2387 fullnameOverride: '{{ include "loki.name" . }}-read'
2388 # @schema type:[integer, null]
2389 # -- Number of replicas for the read. Set to null to omit spec.replicas from the workload,
2390 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2392 # @schema skipProperties:true;additionalProperties:true
2393 # -- UpdateStrategy or Strategy for the read.
2397 # @schema type:[string, integer, null]
2398 # -- Pod Disruption Budget maxUnavailable
2401 # -- Enable autoscaling for the read, this is only used if `queryIndex.enabled: true`
2403 # -- Minimum autoscaling replicas for the read
2405 # -- Maximum autoscaling replicas for the read
2407 # @schema type:[integer, null]
2408 # -- Target CPU utilisation percentage for the read
2409 targetCPUUtilizationPercentage: 60
2410 # @schema type:[integer, null]
2411 # -- Target memory utilisation percentage for the read
2412 targetMemoryUtilizationPercentage: null
2413 # @schema skipProperties:true;additionalProperties:true
2414 # -- Behavior policies while scaling.
2417 # stabilizationWindowSeconds: 300
2423 # stabilizationWindowSeconds: 300
2427 # periodSeconds: 180
2429 # -- Enable KEDA autoscaling for the read. Mutually exclusive with autoscaling.enabled
2431 # @schema type:[integer, null]
2432 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2433 pollingInterval: null
2434 # -- Minimum replicas for KEDA autoscaling
2436 # -- Maximum replicas for KEDA autoscaling
2438 # @schema type:[integer, null]
2439 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2440 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2441 cooldownPeriod: null
2442 # @schema additionalProperties:true
2443 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2444 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2446 # @schema skipProperties:true;additionalProperties:true
2447 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2448 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2450 # -- KEDA triggers for the read.
2451 # Ref: https://keda.sh/docs/latest/scalers/
2454 # @schema type:[string, null]
2455 # -- The Docker registry for the read image. Overrides `loki.image.registry`
2457 # @schema type:[string, null]
2458 # -- Docker image repository for the read image. Overrides `loki.image.repository`
2460 # @schema type:[string, null]
2461 # -- Docker image tag for the read image. Overrides `loki.image.tag`
2463 # @schema type:[string, null]
2464 # -- The name of the PriorityClass for read pods
2465 priorityClassName: null
2466 # @schema additionalProperties:{"type":"string"}
2467 # -- Annotations for read deployment
2469 # @schema additionalProperties:{"type":"string"}
2470 # -- Additional labels for read deployment
2472 # @schema additionalProperties:{"type":"string"}
2473 # -- Annotations for read pods
2475 # @schema additionalProperties:{"type":"string"}
2476 # -- Additional labels for each `read` pod
2478 # @schema additionalProperties:{"type":"string"}
2479 # -- Additional selector labels for each `read` pod
2482 # @schema additionalProperties:{"type":"string"}
2483 # -- Annotations for read Service
2485 # @schema additionalProperties:{"type":"string"}
2486 # -- Additional labels for read Service
2488 # -- Service Type for read Service
2490 # -- trafficDistribution for read Service
2491 trafficDistribution: ""
2492 # -- Session affinity for read Service
2494 # @schema additionalProperties:true
2495 # -- Session affinity config for read Service
2496 sessionAffinityConfig: {}
2497 # -- ipFamilyPolicy for read Service
2498 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2500 # -- ipFamilies for read Service
2501 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2503 # -- Adds the appProtocol field to the read service. This allows read to work with istio protocol selection.
2505 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2507 # -- Additional CLI args for the read
2509 # @schema type:[string, array, null]
2510 # -- init containers to add to the read pods
2512 # @schema type:[string, array, null]
2513 # -- Containers to add to the read pods
2515 # -- Environment variables to add to the read pods
2517 # -- Environment variables from secrets or configmaps to add to the read pods
2519 # -- Lifecycle for the read container
2521 # -- Volume mounts to add to the read pods
2522 extraVolumeMounts: []
2523 # -- Volumes to add to the read pods
2525 # @schema additionalProperties:true
2526 # -- Resource requests and limits for the read
2528 # -- Container resize policy for the read
2531 # - resourceName: cpu
2532 # restartPolicy: NotRequired
2533 # - resourceName: memory
2534 # restartPolicy: RestartContainer
2536 # @schema skipProperties:true;additionalProperties:true
2537 # -- liveness probe settings for read pods. If empty, applies no livenessProbe
2539 # @schema skipProperties:true;additionalProperties:true
2540 # -- startup probe for the read pods. If empty, applies no startupProbe
2542 # -- Grace period to allow the read to shutdown before it is killed
2543 terminationGracePeriodSeconds: 30
2544 # @schema type:[boolean, null]
2545 # -- Use the host's user namespace in the read pods.
2547 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2548 # -- Affinity for read pods.
2549 # @default -- Hard node anti-affinity
2550 # The value will be passed through tpl.
2553 requiredDuringSchedulingIgnoredDuringExecution:
2556 app.kubernetes.io/component: read
2557 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2558 app.kubernetes.io/instance: '{{ .Release.Name }}'
2559 topologyKey: kubernetes.io/hostname
2560 # @schema additionalProperties:true
2561 # -- DNS config for read pods
2563 # @schema type:[string, integer, null];deprecated:true
2564 # -- Pod Disruption Budget maxUnavailable
2565 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2567 podDisruptionBudget:
2568 # -- Enable Pod Disruption Budget for read pods
2570 # @schema additionalProperties:{"type":"string"}
2571 # -- Annotations for read Pod Disruption Budget
2573 # @schema additionalProperties:{"type":"string"}
2574 # -- Labels for read Pod Disruption Budget
2576 # @schema type:[string, integer, null]
2577 # -- Pod Disruption Budget minAvailable
2579 # @schema type:[string, integer, null]
2580 # -- Pod Disruption Budget maxUnavailable
2581 maxUnavailable: null
2582 # @schema type:[string, null]
2583 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
2584 unhealthyPodEvictionPolicy: null
2585 # @schema additionalProperties:true
2586 # -- Node selector for read pods
2588 # @schema item:object
2589 # -- Topology Spread Constraints for read pods
2590 # The value will be passed through tpl.
2591 topologySpreadConstraints: []
2593 # -- The default is to deploy all pods in parallel.
2595 # -- Specifies whether a ServiceAccount should be created
2597 # @schema type:[string, null]
2598 # -- The name of the ServiceAccount to use.
2599 # If not set and create is true, a name is generated using the fullname template
2601 # @schema item:object;itemProperties:{"name": {"type": "string"}}
2602 # -- Image pull secrets for the service account
2603 imagePullSecrets: []
2604 # @schema additionalProperties:{"type":"string"}
2605 # -- Annotations for the service account
2607 # @schema additionalProperties:{"type":"string"}
2608 # -- Labels for the service account
2610 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2611 automountServiceAccountToken: true
2612# -- Configuration for the backend pod(s)
2614 # -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2616 # -- Kind of backend workload. StatefulSet and Deployment are supported.
2618 # -- Override for the backend fullname. By default, this is generated using the fullname template with "-backend"
2619 fullnameOverride: '{{ include "loki.name" . }}-backend'
2620 # -- EXPERIMENTAL: Enable creating a Job to recreate the backend StatefulSet when the compactor configuration is changed.
2621 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2622 statefulSetRecreateJob:
2624 # @schema type:[integer, null]
2625 # -- Number of replicas for the backend. Set to null to omit spec.replicas from the workload,
2626 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2628 # @schema skipProperties:true;additionalProperties:true
2629 # -- UpdateStrategy or Strategy for the backend.
2633 # -- Whether to enable the rules sidecar
2635 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2636 automountServiceAccountToken: true
2638 # -- Enable autoscaling for the backend.
2640 # -- Minimum autoscaling replicas for the backend.
2642 # -- Maximum autoscaling replicas for the backend.
2644 # @schema type:[integer, null]
2645 # -- Target CPU utilization percentage for the backend.
2646 targetCPUUtilizationPercentage: 60
2647 # @schema type:[integer, null]
2648 # -- Target memory utilization percentage for the backend.
2649 targetMemoryUtilizationPercentage: null
2650 # @schema skipProperties:true;additionalProperties:true
2651 # -- Behavior policies while scaling.
2654 # stabilizationWindowSeconds: 300
2660 # stabilizationWindowSeconds: 300
2664 # periodSeconds: 180
2666 # -- Enable KEDA autoscaling for the backend. Mutually exclusive with autoscaling.enabled
2668 # @schema type:[integer, null]
2669 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2670 pollingInterval: null
2671 # -- Minimum replicas for KEDA autoscaling
2673 # -- Maximum replicas for KEDA autoscaling
2675 # @schema type:[integer, null]
2676 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2677 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2678 cooldownPeriod: null
2679 # @schema additionalProperties:true
2680 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2681 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2683 # @schema skipProperties:true;additionalProperties:true
2684 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2685 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2687 # -- KEDA triggers for the backend.
2688 # Ref: https://keda.sh/docs/latest/scalers/
2691 # @schema type:[string, null]
2692 # -- The Docker registry for the backend image. Overrides `loki.image.registry`
2694 # @schema type:[string, null]
2695 # -- Docker image repository for the backend image. Overrides `loki.image.repository`
2697 # @schema type:[string, null]
2698 # -- Docker image tag for the backend image. Overrides `loki.image.tag`
2700 # @schema type:[string, null]
2701 # -- The name of the PriorityClass for backend pods
2702 priorityClassName: null
2703 # @schema additionalProperties:{"type":"string"}
2704 # -- Annotations for backend StatefulSet
2706 # @schema additionalProperties:{"type":"string"}
2707 # -- Additional labels for backend StatefulSet
2709 # @schema additionalProperties:{"type":"string"}
2710 # -- Annotations for backend pods
2712 # @schema additionalProperties:{"type":"string"}
2713 # -- Additional labels for each `backend` pod
2715 # @schema additionalProperties:{"type":"string"}
2716 # -- Additional selector labels for each `backend` pod
2719 # @schema additionalProperties:{"type":"string"}
2720 # -- Annotations for backend Service
2722 # @schema additionalProperties:{"type":"string"}
2723 # -- Additional labels for backend Service
2725 # -- Service type for backend Service
2727 # -- trafficDistribution for backend Service
2728 trafficDistribution: ""
2729 # -- Session affinity for backend Service
2731 # @schema additionalProperties:true
2732 # -- Session affinity config for backend Service
2733 sessionAffinityConfig: {}
2734 # -- ipFamilyPolicy for backend Service
2735 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2737 # -- ipFamilies for backend Service
2738 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2740 # -- Adds the appProtocol field to the backend service. This allows backend to work with istio protocol selection.
2742 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2744 # -- Additional CLI args for the backend
2746 # -- Environment variables to add to the backend pods
2748 # -- Environment variables from secrets or configmaps to add to the backend pods
2750 # @schema type:[string, array, null]
2751 # -- Init containers to add to the backend pods
2753 # @schema type:[string, array, null]
2754 # -- Containers to add to the backend pods
2756 # -- Volume mounts to add to the backend pods
2757 extraVolumeMounts: []
2758 # -- Volumes to add to the backend pods
2760 # @schema additionalProperties:true
2761 # -- Resource requests and limits for the backend
2763 # -- Container resize policy for the backend
2766 # - resourceName: cpu
2767 # restartPolicy: NotRequired
2768 # - resourceName: memory
2769 # restartPolicy: RestartContainer
2771 # -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingester,
2772 # this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring
2773 # all data and to successfully leave the member ring on shutdown.
2774 terminationGracePeriodSeconds: 300
2775 # @schema type:[boolean, null]
2776 # -- Use the host's user namespace in the backend pods.
2778 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2779 # -- Affinity for backend pods.
2780 # @default -- Hard node anti-affinity
2781 # The value will be passed through tpl.
2784 requiredDuringSchedulingIgnoredDuringExecution:
2787 app.kubernetes.io/component: backend
2788 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2789 app.kubernetes.io/instance: '{{ .Release.Name }}'
2790 topologyKey: kubernetes.io/hostname
2791 # @schema additionalProperties:true
2792 # -- DNS config for backend pods
2794 # @schema type:[string, integer, null];deprecated:true
2795 # -- Pod Disruption Budget maxUnavailable
2796 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2798 podDisruptionBudget:
2799 # -- Enable Pod Disruption Budget
2801 # @schema additionalProperties:{"type":"string"}
2802 # -- Annotations for Pod Disruption Budget
2804 # @schema additionalProperties:{"type":"string"}
2805 # -- Labels for Pod Disruption Budget
2807 # @schema type:[string, integer, null]
2808 # -- Pod Disruption Budget minAvailable
2810 # @schema type:[string, integer, null]
2811 # -- Pod Disruption Budget maxUnavailable
2812 maxUnavailable: null
2813 # @schema type:[string, null]
2814 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
2815 unhealthyPodEvictionPolicy: null
2816 # @schema additionalProperties:true
2817 # -- Node selector for backend pods
2819 # @schema item:object
2820 # -- Topology Spread Constraints for backend pods
2821 # The value will be passed through tpl.
2822 topologySpreadConstraints: []
2824 # -- The default is to deploy all pods in parallel.
2825 podManagementPolicy: "Parallel"
2827 # -- Enable volume claims in pod spec
2829 # -- Enable volume claims in pod spec. Deprecated in favor of `persistence.enabled`.
2830 volumeClaimsEnabled: true
2831 # -- Set access modes on the PersistentVolumeClaim
2834 # @schema skipProperties:true;additionalProperties:true
2835 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
2836 dataVolumeParameters:
2838 # -- What to do with the volume when the StatefulSet is scaled down.
2840 # -- What to do with the volumes when the StatefulSet is deleted.
2842 # -- Enable StatefulSetAutoDeletePVC feature
2843 enableStatefulSetAutoDeletePVC: true
2844 # -- Size of persistent disk
2846 # @schema type:[string, null]
2847 # -- Storage class to be used.
2848 # If defined, storageClassName: <storageClass>.
2849 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2850 # If empty or set to null, no storageClassName spec is
2851 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2853 # @schema type:[string, null]
2854 # -- Volume attributes class name to be used.
2855 # If empty or set to null, no volumeAttributesClassName spec is set.
2856 # Requires Kubernetes 1.31
2857 volumeAttributesClassName: null
2858 # @schema type:[object, null]
2859 # -- Selector for persistent disk
2861 # @schema additionalProperties:{"type":"string"}
2862 # -- Annotations for volume claim
2864 # @schema additionalProperties:{"type":"string"}
2865 # -- Labels for volume claim
2868 # -- Specifies whether a ServiceAccount should be created
2870 # @schema type:[string, null]
2871 # -- The name of the ServiceAccount to use.
2872 # If not set and create is true, a name is generated using the fullname template
2874 # @schema item:object;itemProperties:{"name": {"type": "string"}}
2875 # -- Image pull secrets for the service account
2876 imagePullSecrets: []
2877 # @schema additionalProperties:{"type":"string"}
2878 # -- Annotations for the service account
2880 # @schema additionalProperties:{"type":"string"}
2881 # -- Labels for the service account
2883 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2884 automountServiceAccountToken: true
2885######################################################################################################################
2889# For large Loki deployments ingesting more than 1 TB/day
2891######################################################################################################################
2893# -- Configuration for the ingester
2895 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
2897 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
2899 # -- EXPERIMENTAL: Enable creating a Job to recreate the ingester StatefulSet
2900 ## Only applicable if `ingester.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2901 statefulSetRecreateJob:
2903 # @schema skipProperties:true;additionalProperties:true
2904 # -- UpdateStrategy or Strategy for the ingester.
2907 # -- PodManagementPolicy for the ingester StatefulSet. Only applicable if `compactor.kind` is StatefulSet.
2908 ## OrderedReady and Parallel are supported.
2909 podManagementPolicy: Parallel
2910 # @schema type:[integer, null]
2911 # -- Number of replicas for the ingester, when zoneAwareReplication.enabled is true, the total
2912 # number of replicas will match this value with each zone having 1/3rd of the total replicas.
2913 # Set to null to omit spec.replicas from the StatefulSet, allowing an external controller
2914 # (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2916 # @schema additionalProperties:true
2917 # -- DNSConfig for ingester pods
2919 # -- hostAliases to add
2921 # @schema type:[boolean, null]
2925 # -- Use the host's user namespace in the ingester
2928 # -- Enable autoscaling for the ingester
2930 # -- Minimum autoscaling replicas for the ingester
2932 # -- Maximum autoscaling replicas for the ingester
2934 # @schema type:[integer, null]
2935 # -- Target CPU utilisation percentage for the ingester
2936 targetCPUUtilizationPercentage: 60
2937 # @schema type:[integer, null]
2938 # -- Target memory utilisation percentage for the ingester
2939 targetMemoryUtilizationPercentage: null
2940 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2945 # name: loki_lines_total
2947 # type: AverageValue
2949 # @schema skipProperties:true;additionalProperties:true
2950 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
2952 # -- Enable autoscaling behaviours
2954 # -- define scale down policies, must conform to HPAScalingRules
2956 # -- define scale up policies, must conform to HPAScalingRules
2959 # -- Enable KEDA autoscaling for the ingester. Mutually exclusive with autoscaling.enabled
2961 # @schema type:[integer, null]
2962 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2963 pollingInterval: null
2964 # -- Minimum replicas for KEDA autoscaling
2966 # -- Maximum replicas for KEDA autoscaling
2968 # @schema type:[integer, null]
2969 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2970 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2971 cooldownPeriod: null
2972 # @schema additionalProperties:true
2973 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2974 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2976 # @schema skipProperties:true;additionalProperties:true
2977 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2978 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2980 # -- KEDA triggers for the ingester.
2981 # Ref: https://keda.sh/docs/latest/scalers/
2984 # @schema type:[string, null]
2985 # -- The Docker registry for the ingester image. Overrides `loki.image.registry`
2987 # @schema type:[string, null]
2988 # -- Docker image repository for the ingester image. Overrides `loki.image.repository`
2990 # @schema type:[string, null]
2991 # -- Docker image tag for the ingester image. Overrides `loki.image.tag`
2993 # @schema type:[string, null]
2994 # -- Command to execute instead of defined in Docker image
2996 # @schema additionalProperties:{"type":"string"}
2997 # -- Labels for ingester
2999 # @schema additionalProperties:{"type":"string"}
3000 # -- Annotations for ingester
3002 # @schema additionalProperties:{"type":"string"}
3003 # -- Labels for ingester pods. Keys used by the workload selectors
3004 # (`app.kubernetes.io/name`, `app.kubernetes.io/instance`, `app.kubernetes.io/component`
3005 # and, with zoneAwareReplication, `name` and `rollout-group`) are reserved and
3006 # ignored here: the latter are also used by the per-zone headless Services and
3007 # grafana/rollout-operator.
3009 # @schema additionalProperties:{"type":"string"}
3010 # -- Annotations for ingester pods
3012 # @schema type:[string, null]
3013 # -- The name of the PriorityClass for ingester pods
3014 priorityClassName: null
3015 # @schema additionalProperties:{"type":"string"};deprecated:true
3016 # -- Labels for ingester service
3017 # @deprecated -- This option is deprecated in favor of `ingester.service.labels`
3019 # @schema additionalProperties:{"type":"string"};deprecated:true
3020 # -- Annotations for ingester service
3021 # @deprecated -- This option is deprecated in favor of `ingester.service.annotations`
3022 serviceAnnotations: {}
3023 # @schema type:string;deprecated:true
3024 # -- Service type for ingester service
3025 # @deprecated -- This option is deprecated in favor of `ingester.service.type`
3026 serviceType: "ClusterIP"
3028 # @schema additionalProperties:{"type":"string"}
3029 # -- Annotations for ingester Service
3031 # @schema additionalProperties:{"type":"string"}
3032 # -- Additional labels for ingester Service
3034 # -- Service Type for ingester Service
3036 # -- trafficDistribution for ingester Service
3037 trafficDistribution: ""
3038 # -- Session affinity for ingester Service
3040 # @schema additionalProperties:true
3041 # -- Session affinity config for ingester Service
3042 sessionAffinityConfig: {}
3043 # -- ipFamilyPolicy for ingester Service
3044 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3046 # -- ipFamilies for ingester Service
3047 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3049 # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
3051 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3053 # -- Additional CLI args for the ingester
3055 # -- Environment variables to add to the ingester pods
3057 # -- Environment variables from secrets or configmaps to add to the ingester pods
3059 # -- Volume mounts to add to the ingester pods
3060 extraVolumeMounts: []
3061 # -- Volumes to add to the ingester pods
3063 # @schema additionalProperties:true
3064 # -- Resource requests and limits for the ingester
3066 # -- Container resize policy for the ingester
3069 # - resourceName: cpu
3070 # restartPolicy: NotRequired
3071 # - resourceName: memory
3072 # restartPolicy: RestartContainer
3074 # @schema type:[string, array, null]
3075 # -- Containers to add to the ingester pods
3077 # @schema type:[string, array, null]
3078 # -- Init containers to add to the ingester pods
3080 # -- Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor,
3081 # this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring
3082 # all data and to successfully leave the member ring on shutdown.
3083 terminationGracePeriodSeconds: 300
3084 # -- Lifecycle for the ingester container
3086 # @schema item:object
3087 # -- topologySpread for ingester pods.
3088 # @default -- Defaults to allow skew no more than 1 node
3089 # The value will be passed through tpl.
3090 topologySpreadConstraints:
3092 topologyKey: kubernetes.io/hostname
3093 whenUnsatisfiable: ScheduleAnyway
3096 app.kubernetes.io/component: ingester
3097 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3098 app.kubernetes.io/instance: '{{ .Release.Name }}'
3099 # @schema type:[object, null];skipProperties:true;additionalProperties:true
3100 # -- Affinity for ingester pods. Ignored if zoneAwareReplication is enabled.
3101 # @default -- Hard node anti-affinity
3102 # The value will be passed through tpl.
3105 requiredDuringSchedulingIgnoredDuringExecution:
3108 app.kubernetes.io/component: ingester
3109 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3110 app.kubernetes.io/instance: '{{ .Release.Name }}'
3111 topologyKey: kubernetes.io/hostname
3112 # @schema type:[string, integer, null];deprecated:true
3113 # -- Pod Disruption Budget maxUnavailable
3114 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3116 podDisruptionBudget:
3117 # -- Enable Pod Disruption Budget
3119 # @schema additionalProperties:{"type":"string"}
3120 # -- Annotations for Pod Disruption Budget
3122 # @schema additionalProperties:{"type":"string"}
3123 # -- Labels for Pod Disruption Budget
3125 # @schema type:[string, integer, null]
3126 # -- Pod Disruption Budget minAvailable
3128 # @schema type:[string, integer, null]
3129 # -- Pod Disruption Budget maxUnavailable
3130 maxUnavailable: null
3131 # @schema type:[string, null]
3132 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
3133 unhealthyPodEvictionPolicy: null
3134 # @schema additionalProperties:true
3135 # -- Node selector for ingester pods
3137 # -- Tolerations for ingester pods
3139 # @schema skipProperties:true;additionalProperties:true
3140 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
3142 # @schema skipProperties:true;additionalProperties:true
3143 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
3145 # @schema skipProperties:true;additionalProperties:true
3146 # -- startup probe settings for ingester pods. If empty use `loki.startupProbe`
3148 # @schema skipProperties:true;additionalProperties:true
3149 # -- UpdateStrategy for the ingester StatefulSets.
3151 # -- One of 'OnDelete' or 'RollingUpdate'
3153 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
3157 # -- Enable creating PVCs which is required when using boltdb-shipper
3159 # -- Use emptyDir with ramdisk for storage. **Please note that all data in ingester will be lost on pod restart**
3161 # -- List of the ingester PVCs
3162 # @notationType -- list
3165 # -- Set access modes on the PersistentVolumeClaim
3169 # @schema type:[string, null]
3170 # -- Storage class to be used.
3171 # If defined, storageClassName: <storageClass>.
3172 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3173 # If empty or set to null, no storageClassName spec is
3174 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3176 # @schema type:[string, null]
3177 # -- Volume attributes class name to be used.
3178 # If empty or set to null, no volumeAttributesClassName spec is set.
3179 # Requires Kubernetes 1.31
3180 volumeAttributesClassName: null
3183 # -- Enable StatefulSetAutoDeletePVC feature
3184 enableStatefulSetAutoDeletePVC: false
3188 # -- Specifies whether a ServiceAccount should be created
3190 # @schema type:[string, null]
3191 # -- The name of the ServiceAccount to use.
3192 # If not set and create is true, a name is generated using the fullname template
3194 # @schema item:object;itemProperties:{"name": {"type": "string"}}
3195 # -- Image pull secrets for the service account
3196 imagePullSecrets: []
3197 # @schema additionalProperties:{"type":"string"}
3198 # -- Annotations for the service account
3200 # @schema additionalProperties:{"type":"string"}
3201 # -- Labels for the service account
3203 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3204 automountServiceAccountToken: true
3205 # @schema additionalProperties:true;deprecated:true
3206 # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
3207 # @deprecated -- This option is deprecated in favor of `ingester.service.appProtocol`
3209 # @schema type:string;deprecated:true
3210 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3211 # @deprecated -- This option is deprecated in favor of `ingester.service.appProtocol.grpc`
3213 # -- trafficDistribution for ingester service
3214 trafficDistribution: ""
3215 # -- Enabling zone awareness on ingesters will create 3 statefulests where all writes will send a replica to each zone.
3216 # This is primarily intended to accelerate rollout operations by allowing for multiple ingesters within a single
3217 # zone to be shutdown and restart simultaneously (the remaining 2 zones will be guaranteed to have at least one copy
3219 # Note: This can be used to run Loki over multiple cloud provider availability zones however this is not currently
3220 # recommended as Loki is not optimized for this and cross zone network traffic costs can become extremely high
3221 # extremely quickly. Even with zone awareness enabled, it is recommended to run Loki in a single availability zone.
3222 zoneAwareReplication:
3223 # -- Enable zone awareness.
3225 # -- The percent of replicas in each zone that will be restarted at once. In a value of 0-100
3226 maxUnavailablePct: 33
3227 # -- zoneA configuration
3229 # @schema type:[object, null]
3230 # @schema additionalProperties:true
3231 # -- optionally define a node selector for this zone
3233 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3234 # The value will be passed through tpl.
3236 # @schema additionalProperties:{"type":"string"}
3237 # -- Specific annotations to add to zone A statefulset
3239 # @schema additionalProperties:{"type":"string"}
3240 # -- Specific annotations to add to zone A pods
3242 # -- Persistence overrides applied only to the zone A StatefulSet.
3244 # @schema type:[string, null]
3245 # -- Storage class to use for every PVC in zone A. Overrides the `storageClass` of each entry in
3246 # `ingester.persistence.claims` for this zone only. Use this when you have one StorageClass per
3247 # availability zone (for example a topology-pinned EBS/PD StorageClass). If null, the
3248 # claim-level `storageClass` is used as before, preserving existing behavior.
3249 # If set to "-", `storageClassName: ""` is rendered, which disables dynamic provisioning.
3252 # @schema type:[object, null]
3253 # @schema additionalProperties:true
3254 # -- optionally define a node selector for this zone
3256 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3257 # The value will be passed through tpl.
3259 # @schema additionalProperties:{"type":"string"}
3260 # -- Specific annotations to add to zone B statefulset
3262 # @schema additionalProperties:{"type":"string"}
3263 # -- Specific annotations to add to zone B pods
3265 # -- Persistence overrides applied only to the zone B StatefulSet.
3267 # @schema type:[string, null]
3268 # -- Storage class to use for every PVC in zone B. See
3269 # `ingester.zoneAwareReplication.zoneA.persistence.storageClass` for details. If null, the
3270 # claim-level `storageClass` is used as before.
3273 # @schema type:[object, null]
3274 # @schema additionalProperties:true
3275 # -- optionally define a node selector for this zone
3277 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3278 # The value will be passed through tpl.
3280 # @schema additionalProperties:{"type":"string"}
3281 # -- Specific annotations to add to zone C statefulset
3283 # @schema additionalProperties:{"type":"string"}
3284 # -- Specific annotations to add to zone C pods
3286 # -- Persistence overrides applied only to the zone C StatefulSet.
3288 # @schema type:[string, null]
3289 # -- Storage class to use for every PVC in zone C. See
3290 # `ingester.zoneAwareReplication.zoneA.persistence.storageClass` for details. If null, the
3291 # claim-level `storageClass` is used as before.
3293 # -- The migration block allows migrating non zone aware ingesters to zone aware ingesters.
3296 excludeDefaultZone: false
3299 # @schema type:[string, null]
3300 # optionally allow adding arbitrary prefix to the ingester rollout-group label
3301 rolloutGroupPrefix: null
3302 # optionally allow adding 'loki-' prefix to ingester name label
3303 addIngesterNamePrefix: false
3304# -- Configuration for the distributor
3306 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3308 # @schema type:[integer, null]
3309 # -- Number of replicas for the distributor. Set to null to omit spec.replicas from the workload,
3310 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3312 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3314 # @schema skipProperties:true;additionalProperties:true
3315 # -- UpdateStrategy or Strategy for the distributor.
3319 # @schema type:[string, integer, null]
3320 # -- Pod Disruption Budget maxUnavailable
3322 # -- hostAliases to add
3324 # @schema type:[boolean, null]
3328 # -- Use the host's user namespace in the distributor
3330 # @schema additionalProperties:true
3331 # -- DNSConfig for distributor pods
3334 # -- Enable autoscaling for the distributor
3336 # -- Minimum autoscaling replicas for the distributor
3338 # -- Maximum autoscaling replicas for the distributor
3340 # @schema type:[integer, null]
3341 # -- Target CPU utilisation percentage for the distributor
3342 targetCPUUtilizationPercentage: 60
3343 # @schema type:[integer, null]
3344 # -- Target memory utilisation percentage for the distributor
3345 targetMemoryUtilizationPercentage: null
3346 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3351 # name: loki_lines_total
3353 # type: AverageValue
3355 # @schema skipProperties:true;additionalProperties:true
3356 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3358 # -- Enable autoscaling behaviours
3360 # -- define scale down policies, must conform to HPAScalingRules
3362 # -- define scale up policies, must conform to HPAScalingRules
3365 # -- Enable KEDA autoscaling for the distributor. Mutually exclusive with autoscaling.enabled
3367 # @schema type:[integer, null]
3368 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3369 pollingInterval: null
3370 # -- Minimum replicas for KEDA autoscaling
3372 # -- Maximum replicas for KEDA autoscaling
3374 # @schema type:[integer, null]
3375 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3376 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3377 cooldownPeriod: null
3378 # @schema additionalProperties:true
3379 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3380 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3382 # @schema skipProperties:true;additionalProperties:true
3383 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3384 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3386 # -- KEDA triggers for the distributor.
3387 # Ref: https://keda.sh/docs/latest/scalers/
3390 # @schema type:[string, null]
3391 # -- The Docker registry for the distributor image. Overrides `loki.image.registry`
3393 # @schema type:[string, null]
3394 # -- Docker image repository for the distributor image. Overrides `loki.image.repository`
3396 # @schema type:[string, null]
3397 # -- Docker image tag for the distributor image. Overrides `loki.image.tag`
3399 # @schema type:[string, null]
3400 # -- Command to execute instead of defined in Docker image
3402 # @schema type:[string, null]
3403 # -- The name of the PriorityClass for distributor pods
3404 priorityClassName: null
3405 # @schema additionalProperties:{"type":"string"}
3406 # -- Labels for distributor
3408 # @schema additionalProperties:{"type":"string"}
3409 # -- Annotations for distributor
3411 # @schema additionalProperties:{"type":"string"}
3412 # -- Labels for distributor pods
3414 # @schema additionalProperties:{"type":"string"}
3415 # -- Annotations for distributor pods
3417 # @schema additionalProperties:{"type":"string"};deprecated:true
3418 # -- Labels for distributor service
3419 # @deprecated -- This option is deprecated in favor of `ingester.service.labels`
3421 # @schema additionalProperties:{"type":"string"};deprecated:true
3422 # -- Annotations for distributor service
3423 # @deprecated -- This option is deprecated in favor of `ingester.service.annotations`
3424 serviceAnnotations: {}
3425 # @schema type:string;deprecated:true
3426 # -- Service type for distributor service
3427 # @deprecated -- This option is deprecated in favor of `ingester.service.type`
3428 serviceType: "ClusterIP"
3430 # @schema additionalProperties:{"type":"string"}
3431 # -- Annotations for distributor Service
3433 # @schema additionalProperties:{"type":"string"}
3434 # -- Additional labels for distributor Service
3436 # -- Service Type for distributor Service
3438 # -- trafficDistribution for distributor Service
3439 trafficDistribution: ""
3440 # -- Session affinity for distributor Service
3442 # @schema additionalProperties:true
3443 # -- Session affinity config for distributor Service
3444 sessionAffinityConfig: {}
3445 # -- ipFamilyPolicy for distributor Service
3446 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3448 # -- ipFamilies for distributor Service
3449 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3451 # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
3453 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3455 # -- Additional CLI args for the distributor
3457 # -- Environment variables to add to the distributor pods
3459 # -- Environment variables from secrets or configmaps to add to the distributor pods
3461 # -- Volume mounts to add to the distributor pods
3462 extraVolumeMounts: []
3463 # -- Volumes to add to the distributor pods
3465 # @schema additionalProperties:true
3466 # -- Resource requests and limits for the distributor
3468 # -- Container resize policy for the distributor
3471 # - resourceName: cpu
3472 # restartPolicy: NotRequired
3473 # - resourceName: memory
3474 # restartPolicy: RestartContainer
3476 # @schema type:[string, array, null]
3477 # -- Init containers to add to the distributor pods
3479 # @schema type:[string, array, null]
3480 # -- Containers to add to the distributor pods
3482 # @schema type:[string, null]
3483 # -- On SIGTERM, report 503 on /ready and wait this long before shutdown so the LB drains the pod before connections are cut.
3484 # "0s" (default) disables. When enabling, keep terminationGracePeriodSeconds above shutdownDelay + server.graceful_shutdown_timeout.
3486 # -- Grace period to allow the distributor to shutdown before it is killed
3487 terminationGracePeriodSeconds: 30
3488 podDisruptionBudget:
3489 # -- Enable Pod Disruption Budget
3491 # @schema additionalProperties:{"type":"string"}
3492 # -- Annotations for Pod Disruption Budget
3494 # @schema additionalProperties:{"type":"string"}
3495 # -- Labels for Pod Disruption Budget
3497 # @schema type:[string, integer, null]
3498 # -- Pod Disruption Budget minAvailable
3500 # @schema type:[string, integer, null]
3501 # -- Pod Disruption Budget maxUnavailable
3502 maxUnavailable: null
3503 # @schema type:[string, null]
3504 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
3505 unhealthyPodEvictionPolicy: null
3506 # @schema type:[object, null];skipProperties:true;additionalProperties:true
3507 # -- Affinity for distributor pods.
3508 # @default -- Hard node anti-affinity
3509 # The value will be passed through tpl.
3512 requiredDuringSchedulingIgnoredDuringExecution:
3515 app.kubernetes.io/component: distributor
3516 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3517 app.kubernetes.io/instance: '{{ .Release.Name }}'
3518 topologyKey: kubernetes.io/hostname
3519 # @schema type:[string, integer, null];deprecated:true
3520 # -- Pod Disruption Budget maxUnavailable
3521 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3522 maxUnavailable: null
3523 # @schema type:[string, integer]
3524 # -- Max Surge for distributor pods
3526 # @schema additionalProperties:true
3527 # -- Node selector for distributor pods
3529 # @schema item:object
3530 # -- Topology Spread Constraints for distributor pods
3531 # The value will be passed through tpl.
3532 topologySpreadConstraints: []
3534 # @schema additionalProperties:true;deprecated:true
3535 # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
3536 # @deprecated -- This option is deprecated in favor of `distributor.service.appProtocol`
3538 # @schema type:string;deprecated:true
3539 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3540 # @deprecated -- This option is deprecated in favor of `distributor.service.appProtocol.grpc`
3542 # -- trafficDistribution for distributor service
3543 trafficDistribution: ""
3545 # -- Specifies whether a ServiceAccount should be created
3547 # @schema type:[string, null]
3548 # -- The name of the ServiceAccount to use.
3549 # If not set and create is true, a name is generated using the fullname template
3551 # @schema item:object;itemProperties:{"name": {"type": "string"}}
3552 # -- Image pull secrets for the service account
3553 imagePullSecrets: []
3554 # @schema additionalProperties:{"type":"string"}
3555 # -- Annotations for the service account
3557 # @schema additionalProperties:{"type":"string"}
3558 # -- Labels for the service account
3560 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3561 automountServiceAccountToken: true
3562# -- Configuration for the querier
3564 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3566 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3568 # @schema type:[integer, null]
3569 # -- Number of replicas for the querier. Set to null to omit spec.replicas from the workload,
3570 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3572 # @schema skipProperties:true;additionalProperties:true
3573 # -- Strategy for the querier.
3578 # @schema type:[string, integer, null]
3579 # -- Pod Disruption Budget maxUnavailable
3581 # -- hostAliases to add
3583 # @schema type:[boolean, null]
3587 # -- Use the host's user namespace in the querier
3590 # -- Enable autoscaling for the querier, this is only used if `indexGateway.enabled: true`
3592 # -- Minimum autoscaling replicas for the querier
3594 # -- Maximum autoscaling replicas for the querier
3596 # @schema type:[integer, null]
3597 # -- Target CPU utilisation percentage for the querier
3598 targetCPUUtilizationPercentage: 60
3599 # @schema type:[integer, null]
3600 # -- Target memory utilisation percentage for the querier
3601 targetMemoryUtilizationPercentage: null
3602 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3607 # name: loki_inflight_queries
3609 # type: AverageValue
3611 # @schema skipProperties:true;additionalProperties:true
3612 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3614 # -- Enable autoscaling behaviours
3616 # -- define scale down policies, must conform to HPAScalingRules
3618 # -- define scale up policies, must conform to HPAScalingRules
3621 # -- Enable KEDA autoscaling for the querier. Mutually exclusive with autoscaling.enabled
3623 # @schema type:[integer, null]
3624 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3625 pollingInterval: null
3626 # -- Minimum replicas for KEDA autoscaling
3628 # -- Maximum replicas for KEDA autoscaling
3630 # @schema type:[integer, null]
3631 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3632 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3633 cooldownPeriod: null
3634 # @schema additionalProperties:true
3635 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3636 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3638 # @schema skipProperties:true;additionalProperties:true
3639 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3640 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3642 # -- KEDA triggers for the querier. Defaults to a Prometheus trigger using inflight requests.
3645 name: querier_autoscaling_metric
3647 serverAddress: "{{ .Values.defaults.kedaAutoscaling.prometheusAddress }}"
3648 query: sum(max_over_time(loki_query_scheduler_inflight_requests{quantile="0.75"}[2m]))
3650 unsafeSsl: "{{ .Values.defaults.kedaAutoscaling.unsafeSsl }}"
3651 ignoreNullValues: "{{ .Values.defaults.kedaAutoscaling.ignoreNullValues }}"
3652 customHeaders: "{{ .Values.defaults.kedaAutoscaling.customHeaders }}"
3653 authModes: "{{ .Values.defaults.kedaAutoscaling.authentication.authModes }}"
3655 # @schema type:[string, null]
3656 # -- The Docker registry for the querier image. Overrides `loki.image.registry`
3658 # @schema type:[string, null]
3659 # -- Docker image repository for the querier image. Overrides `loki.image.repository`
3661 # @schema type:[string, null]
3662 # -- Docker image tag for the querier image. Overrides `loki.image.tag`
3664 # @schema type:[string, null]
3665 # -- Command to execute instead of defined in Docker image
3667 # @schema type:[string, null]
3668 # -- The name of the PriorityClass for querier pods
3669 priorityClassName: null
3670 # @schema additionalProperties:{"type":"string"}
3671 # -- Labels for querier
3673 # @schema additionalProperties:{"type":"string"}
3674 # -- Annotations for querier
3676 # @schema additionalProperties:{"type":"string"}
3677 # -- Labels for querier pods
3679 # @schema additionalProperties:{"type":"string"}
3680 # -- Annotations for querier pods
3682 # @schema additionalProperties:{"type":"string"};deprecated:true
3683 # -- Labels for querier service
3684 # @deprecated -- This option is deprecated in favor of `querier.service.labels`
3686 # @schema additionalProperties:{"type":"string"};deprecated:true
3687 # -- Annotations for querier service
3688 # @deprecated -- This option is deprecated in favor of `querier.service.annotations`
3689 serviceAnnotations: {}
3690 # @schema type:string;deprecated:true
3691 # -- Service type for querier service
3692 # @deprecated -- This option is deprecated in favor of `querier.service.type`
3693 serviceType: "ClusterIP"
3695 # @schema additionalProperties:{"type":"string"}
3696 # -- Annotations for querier Service
3698 # @schema additionalProperties:{"type":"string"}
3699 # -- Additional labels for querier Service
3701 # -- Service Type for querier Service
3703 # -- trafficDistribution for querier Service
3704 trafficDistribution: ""
3705 # -- Session affinity for querier Service
3707 # @schema additionalProperties:true
3708 # -- Session affinity config for querier Service
3709 sessionAffinityConfig: {}
3710 # -- ipFamilyPolicy for querier Service
3711 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3713 # -- ipFamilies for querier Service
3714 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3716 # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
3718 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3720 # -- Additional CLI args for the querier
3722 # -- Environment variables to add to the querier pods
3724 # -- Environment variables from secrets or configmaps to add to the querier pods
3726 # -- Volume mounts to add to the querier pods
3727 extraVolumeMounts: []
3728 # -- Volumes to add to the querier pods
3730 # @schema additionalProperties:true
3731 # -- Resource requests and limits for the querier
3733 # -- Container resize policy for the querier
3736 # - resourceName: cpu
3737 # restartPolicy: NotRequired
3738 # - resourceName: memory
3739 # restartPolicy: RestartContainer
3741 # @schema type:[string, array, null]
3742 # -- Containers to add to the querier pods
3744 # @schema type:[string, array, null]
3745 # -- Init containers to add to the querier pods
3747 # -- Grace period to allow the querier to shutdown before it is killed
3748 terminationGracePeriodSeconds: 30
3749 podDisruptionBudget:
3750 # -- Enable Pod Disruption Budget
3752 # @schema additionalProperties:{"type":"string"}
3753 # -- Annotations for Pod Disruption Budget
3755 # @schema additionalProperties:{"type":"string"}
3756 # -- Labels for Pod Disruption Budget
3758 # @schema type:[string, integer, null]
3759 # -- Pod Disruption Budget minAvailable
3761 # @schema type:[string, integer, null]
3762 # -- Pod Disruption Budget maxUnavailable
3763 maxUnavailable: null
3764 # @schema type:[string, null]
3765 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
3766 unhealthyPodEvictionPolicy: null
3767 # @schema item:object
3768 # -- topologySpread for querier pods.
3769 # @default -- Defaults to allow skew no more then 1 node
3770 # The value will be passed through tpl.
3771 topologySpreadConstraints:
3773 topologyKey: kubernetes.io/hostname
3774 whenUnsatisfiable: ScheduleAnyway
3777 app.kubernetes.io/component: querier
3778 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3779 app.kubernetes.io/instance: '{{ .Release.Name }}'
3780 # @schema type:[object, null];skipProperties:true;additionalProperties:true
3781 # -- Affinity for querier pods.
3782 # @default -- Hard node anti-affinity
3783 # The value will be passed through tpl.
3786 requiredDuringSchedulingIgnoredDuringExecution:
3789 app.kubernetes.io/component: querier
3790 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3791 app.kubernetes.io/instance: '{{ .Release.Name }}'
3792 topologyKey: kubernetes.io/hostname
3793 # @schema type:[string, integer, null];deprecated:true
3794 # -- Pod Disruption Budget maxUnavailable
3795 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3796 maxUnavailable: null
3797 # @schema type:[string, integer]
3798 # -- Max Surge for querier pods
3800 # @schema additionalProperties:true
3801 # -- Node selector for querier pods
3803 # -- Tolerations for querier pods
3805 # @schema additionalProperties:true
3806 # -- DNSConfig for querier pods
3808 # @schema additionalProperties:true;deprecated:true
3809 # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
3810 # @deprecated -- This option is deprecated in favor of `querier.service.appProtocol`
3812 # @schema type:string;deprecated:true
3813 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3814 # @deprecated -- This option is deprecated in favor of `querier.service.appProtocol.grpc`
3816 # -- trafficDistribution for querier service
3817 trafficDistribution: ""
3819 # -- Specifies whether a ServiceAccount should be created
3821 # @schema type:[string, null]
3822 # -- The name of the ServiceAccount to use.
3823 # If not set and create is true, a name is generated using the fullname template
3825 # @schema item:object;itemProperties:{"name": {"type": "string"}}
3826 # -- Image pull secrets for the service account
3827 imagePullSecrets: []
3828 # @schema additionalProperties:{"type":"string"}
3829 # -- Annotations for the service account
3831 # @schema additionalProperties:{"type":"string"}
3832 # -- Labels for the service account
3834 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3835 automountServiceAccountToken: true
3836# -- Configuration for the query-frontend
3838 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3840 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3842 # @schema type:[integer, null]
3843 # -- Number of replicas for the query-frontend. Set to null to omit spec.replicas from the workload,
3844 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3846 # @schema skipProperties:true;additionalProperties:true
3847 # -- Strategy for the querier.
3852 # @schema type:[string, integer, null]
3853 # -- Pod Disruption Budget maxUnavailable
3855 # -- hostAliases to add
3857 # @schema type:[boolean, null]
3861 # -- Use the host's user namespace in the query-frontend
3864 # -- Enable autoscaling for the query-frontend
3866 # -- Minimum autoscaling replicas for the query-frontend
3868 # -- Maximum autoscaling replicas for the query-frontend
3870 # @schema type:[integer, null]
3871 # -- Target CPU utilisation percentage for the query-frontend
3872 targetCPUUtilizationPercentage: 60
3873 # @schema type:[integer, null]
3874 # -- Target memory utilisation percentage for the query-frontend
3875 targetMemoryUtilizationPercentage: null
3876 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3881 # name: loki_query_rate
3883 # type: AverageValue
3885 # @schema skipProperties:true;additionalProperties:true
3886 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3888 # -- Enable autoscaling behaviours
3890 # -- define scale down policies, must conform to HPAScalingRules
3892 # -- define scale up policies, must conform to HPAScalingRules
3895 # -- Enable KEDA autoscaling for the query-frontend. Mutually exclusive with autoscaling.enabled
3897 # @schema type:[integer, null]
3898 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3899 pollingInterval: null
3900 # -- Minimum replicas for KEDA autoscaling
3902 # -- Maximum replicas for KEDA autoscaling
3904 # @schema type:[integer, null]
3905 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3906 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3907 cooldownPeriod: null
3908 # @schema additionalProperties:true
3909 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3910 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3912 # @schema skipProperties:true;additionalProperties:true
3913 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3914 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3916 # -- KEDA triggers for the query-frontend.
3917 # Ref: https://keda.sh/docs/latest/scalers/
3920 # @schema type:[string, null]
3921 # -- The Docker registry for the query-frontend image. Overrides `loki.image.registry`
3923 # @schema type:[string, null]
3924 # -- Docker image repository for the query-frontend image. Overrides `loki.image.repository`
3926 # @schema type:[string, null]
3927 # -- Docker image tag for the query-frontend image. Overrides `loki.image.tag`
3929 # @schema type:[string, null]
3930 # -- Command to execute instead of defined in Docker image
3932 # @schema type:[string, null]
3933 # -- The name of the PriorityClass for query-frontend pods
3934 priorityClassName: null
3935 # @schema additionalProperties:{"type":"string"}
3936 # -- Labels for query-frontend
3938 # @schema additionalProperties:{"type":"string"}
3939 # -- Annotations for query-frontend
3941 # @schema additionalProperties:{"type":"string"}
3942 # -- Labels for query-frontend pods
3944 # @schema additionalProperties:{"type":"string"}
3945 # -- Annotations for query-frontend pods
3947 # @schema additionalProperties:{"type":"string"};deprecated:true
3948 # -- Labels for query-frontend service
3949 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.labels`
3951 # @schema additionalProperties:{"type":"string"};deprecated:true
3952 # -- Annotations for query-frontend service
3953 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.annotations`
3954 serviceAnnotations: {}
3955 # @schema type:string;deprecated:true
3956 # -- Service type for query-frontend service
3957 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.type`
3958 serviceType: "ClusterIP"
3960 # @schema additionalProperties:{"type":"string"}
3961 # -- Annotations for query-frontend Service
3963 # @schema additionalProperties:{"type":"string"}
3964 # -- Additional labels for query-frontend Service
3966 # -- Service Type for query-frontend Service
3968 # -- trafficDistribution for query-frontend Service
3969 trafficDistribution: ""
3970 # -- Session affinity for query-frontend Service
3972 # @schema additionalProperties:true
3973 # -- Session affinity config for query-frontend Service
3974 sessionAffinityConfig: {}
3975 # -- ipFamilyPolicy for query-frontend Service
3976 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3978 # -- ipFamilies for query-frontend Service
3979 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3981 # -- Adds the appProtocol field to the query-frontend service. This allows query-frontend to work with istio protocol selection.
3983 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3985 # -- Additional CLI args for the query-frontend
3987 # -- Environment variables to add to the query-frontend pods
3989 # -- Environment variables from secrets or configmaps to add to the query-frontend pods
3991 # -- Volume mounts to add to the query-frontend pods
3992 extraVolumeMounts: []
3993 # -- Volumes to add to the query-frontend pods
3995 # @schema additionalProperties:true
3996 # -- Resource requests and limits for the query-frontend
3998 # -- Container resize policy for the query-frontend
4001 # - resourceName: cpu
4002 # restartPolicy: NotRequired
4003 # - resourceName: memory
4004 # restartPolicy: RestartContainer
4006 # @schema type:[string, array, null]
4007 # -- init containers to add to the query-frontend pods
4009 # @schema type:[string, array, null]
4010 # -- Containers to add to the query-frontend pods
4012 # -- Grace period to allow the query-frontend to shutdown before it is killed
4013 terminationGracePeriodSeconds: 30
4014 podDisruptionBudget:
4015 # -- Enable Pod Disruption Budget
4017 # @schema additionalProperties:{"type":"string"}
4018 # -- Annotations for Pod Disruption Budget
4020 # @schema additionalProperties:{"type":"string"}
4021 # -- Labels for Pod Disruption Budget
4023 # @schema type:[string, integer, null]
4024 # -- Pod Disruption Budget minAvailable
4026 # @schema type:[string, integer, null]
4027 # -- Pod Disruption Budget maxUnavailable
4028 maxUnavailable: null
4029 # @schema type:[string, null]
4030 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4031 unhealthyPodEvictionPolicy: null
4032 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4033 # -- Affinity for query-frontend pods.
4034 # @default -- Hard node anti-affinity
4035 # The value will be passed through tpl.
4038 requiredDuringSchedulingIgnoredDuringExecution:
4041 app.kubernetes.io/component: query-frontend
4042 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4043 app.kubernetes.io/instance: '{{ .Release.Name }}'
4044 topologyKey: kubernetes.io/hostname
4045 # @schema type:[string, integer, null];deprecated:true
4046 # -- Pod Disruption Budget maxUnavailable
4047 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4048 maxUnavailable: null
4049 # @schema additionalProperties:true
4050 # -- Node selector for query-frontend pods
4052 # @schema item:object
4053 # -- Topology Spread Constraints for query-frontend pods
4054 # The value will be passed through tpl.
4055 topologySpreadConstraints: []
4057 # @schema additionalProperties:true;deprecated:true
4058 # -- Adds the appProtocol field to the queryFrontend service. This allows queryFrontend to work with istio protocol selection.
4059 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.appProtocol`
4061 # @schema type:string;deprecated:true
4062 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4063 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.appProtocol.grpc`
4065 # -- Enable load balancer port for query-frontend
4068 # -- trafficDistribution for query-frontend service
4069 trafficDistribution: ""
4071 # -- Specifies whether a ServiceAccount should be created
4073 # @schema type:[string, null]
4074 # -- The name of the ServiceAccount to use.
4075 # If not set and create is true, a name is generated using the fullname template
4077 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4078 # -- Image pull secrets for the service account
4079 imagePullSecrets: []
4080 # @schema additionalProperties:{"type":"string"}
4081 # -- Annotations for the service account
4083 # @schema additionalProperties:{"type":"string"}
4084 # -- Labels for the service account
4086 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4087 automountServiceAccountToken: true
4088# -- Configuration for the query-scheduler
4090 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4092 # -- Kind of query-scheduler deployment. StatefulSet and Deployment are supported.
4094 # @schema type:[integer, null]
4095 # -- Number of replicas for the query-scheduler.
4096 # It should be lower than `-querier.max-concurrent` to avoid generating back-pressure in queriers;
4097 # it's also recommended that this value evenly divides the latter
4098 # Set to null to omit spec.replicas from the workload, allowing an external controller
4099 # (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4101 # @schema skipProperties:true;additionalProperties:true
4102 # -- Strategy for the query-scheduler.
4107 # @schema type:[string, integer, null]
4108 # -- Pod Disruption Budget maxUnavailable
4110 # @schema additionalProperties:true
4111 # -- DNSConfig for query-scheduler
4113 # -- hostAliases to add
4115 # @schema type:[boolean, null]
4119 # -- Use the host's user namespace in the query-scheduler
4122 # @schema type:[string, null]
4123 # -- The Docker registry for the query-scheduler image. Overrides `loki.image.registry`
4125 # @schema type:[string, null]
4126 # -- Docker image repository for the query-scheduler image. Overrides `loki.image.repository`
4128 # @schema type:[string, null]
4129 # -- Docker image tag for the query-scheduler image. Overrides `loki.image.tag`
4131 # @schema type:[string, null]
4132 # -- The name of the PriorityClass for query-scheduler pods
4133 priorityClassName: null
4134 # @schema additionalProperties:{"type":"string"}
4135 # -- Labels for query-scheduler
4137 # @schema additionalProperties:{"type":"string"}
4138 # -- Annotations for query-scheduler
4140 # @schema additionalProperties:{"type":"string"}
4141 # -- Labels for query-scheduler pods
4143 # @schema additionalProperties:{"type":"string"}
4144 # -- Annotations for query-scheduler pods
4146 # @schema additionalProperties:{"type":"string"};deprecated:true
4147 # -- Labels for query-scheduler service
4148 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.labels`
4150 # @schema additionalProperties:{"type":"string"};deprecated:true
4151 # -- Annotations for query-scheduler service
4152 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.annotations`
4153 serviceAnnotations: {}
4154 # @schema type:string;deprecated:true
4155 # -- Service type for query-scheduler service
4156 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.type`
4157 serviceType: "ClusterIP"
4159 # @schema additionalProperties:{"type":"string"}
4160 # -- Annotations for query-scheduler Service
4162 # @schema additionalProperties:{"type":"string"}
4163 # -- Additional labels for query-scheduler Service
4165 # -- Service Type for query-scheduler Service
4167 # -- trafficDistribution for query-scheduler Service
4168 trafficDistribution: ""
4169 # -- Session affinity for query-scheduler Service
4171 # @schema additionalProperties:true
4172 # -- Session affinity config for query-scheduler Service
4173 sessionAffinityConfig: {}
4174 # -- ipFamilyPolicy for query-scheduler Service
4175 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4177 # -- ipFamilies for query-scheduler Service
4178 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4180 # -- Adds the appProtocol field to the query-scheduler service. This allows query-scheduler to work with istio protocol selection.
4182 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4184 # -- Additional CLI args for the query-scheduler
4186 # -- Environment variables to add to the query-scheduler pods
4188 # -- Environment variables from secrets or configmaps to add to the query-scheduler pods
4190 # -- Volume mounts to add to the query-scheduler pods
4191 extraVolumeMounts: []
4192 # -- Volumes to add to the query-scheduler pods
4194 # @schema additionalProperties:true
4195 # -- Resource requests and limits for the query-scheduler
4197 # -- Container resize policy for the query-scheduler
4200 # - resourceName: cpu
4201 # restartPolicy: NotRequired
4202 # - resourceName: memory
4203 # restartPolicy: RestartContainer
4205 # @schema type:[string, array, null]
4206 # -- init containers to add to the query-scheduler pods
4208 # @schema type:[string, array, null]
4209 # -- Containers to add to the query-scheduler pods
4211 # -- Grace period to allow the query-scheduler to shutdown before it is killed
4212 terminationGracePeriodSeconds: 30
4213 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4214 # -- Affinity for query-scheduler pods.
4215 # @default -- Hard node anti-affinity
4216 # The value will be passed through tpl.
4219 requiredDuringSchedulingIgnoredDuringExecution:
4222 app.kubernetes.io/component: query-scheduler
4223 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4224 app.kubernetes.io/instance: '{{ .Release.Name }}'
4225 topologyKey: kubernetes.io/hostname
4226 # @schema type:[string, integer, null];deprecated:true
4227 # -- Pod Disruption Budget maxUnavailable
4228 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4230 podDisruptionBudget:
4231 # -- Enable Pod Disruption Budget
4233 # @schema additionalProperties:{"type":"string"}
4234 # -- Annotations for Pod Disruption Budget
4236 # @schema additionalProperties:{"type":"string"}
4237 # -- Labels for Pod Disruption Budget
4239 # @schema type:[string, integer, null]
4240 # -- Pod Disruption Budget minAvailable
4242 # @schema type:[string, integer, null]
4243 # -- Pod Disruption Budget maxUnavailable
4244 maxUnavailable: null
4245 # @schema type:[string, null]
4246 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4247 unhealthyPodEvictionPolicy: null
4248 # @schema additionalProperties:true
4249 # -- Node selector for query-scheduler pods
4251 # @schema item:object
4252 # -- Topology Spread Constraints for query-scheduler pods
4253 # The value will be passed through tpl.
4254 topologySpreadConstraints: []
4256 # @schema additionalProperties:true;deprecated:true
4257 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4258 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.appProtocol`
4261 # -- trafficDistribution for query-scheduler service
4262 trafficDistribution: ""
4264 # -- Specifies whether a ServiceAccount should be created
4266 # @schema type:[string, null]
4267 # -- The name of the ServiceAccount to use.
4268 # If not set and create is true, a name is generated using the fullname template
4270 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4271 # -- Image pull secrets for the service account
4272 imagePullSecrets: []
4273 # @schema additionalProperties:{"type":"string"}
4274 # -- Annotations for the service account
4276 # @schema additionalProperties:{"type":"string"}
4277 # -- Labels for the service account
4279 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4280 automountServiceAccountToken: true
4281# -- Configuration for the index-gateway
4283 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4285 # -- Kind of index-gateway deployment. StatefulSet and Deployment are supported.
4287 # -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
4288 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4289 statefulSetRecreateJob:
4291 # @schema type:[integer, null]
4292 # -- Number of replicas for the index-gateway. Set to null to omit spec.replicas from the workload,
4293 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4295 # -- Whether the index gateway should join the memberlist hashring
4296 joinMemberlist: true
4297 # @schema additionalProperties:true
4298 # -- DNSConfig for index-gateway pods
4300 # -- hostAliases to add
4302 # @schema type:[boolean, null]
4306 # -- Use the host's user namespace in the index-gateway
4309 # @schema type:[string, null]
4310 # -- The Docker registry for the index-gateway image. Overrides `loki.image.registry`
4312 # @schema type:[string, null]
4313 # -- Docker image repository for the index-gateway image. Overrides `loki.image.repository`
4315 # @schema type:[string, null]
4316 # -- Docker image tag for the index-gateway image. Overrides `loki.image.tag`
4318 # @schema type:[string, null]
4319 # -- The name of the PriorityClass for index-gateway pods
4320 priorityClassName: null
4321 # @schema additionalProperties:{"type":"string"}
4322 # -- Labels for index-gateway
4324 # @schema additionalProperties:{"type":"string"}
4325 # -- Annotations for index-gateway
4327 # @schema additionalProperties:{"type":"string"}
4328 # -- Labels for index-gateway pods
4330 # @schema additionalProperties:{"type":"string"}
4331 # -- Annotations for index-gateway pods
4333 # @schema additionalProperties:{"type":"string"};deprecated:true
4334 # -- Labels for index-gateway service
4335 # @deprecated -- This option is deprecated in favor of `indexGateway.service.labels`
4337 # @schema additionalProperties:{"type":"string"};deprecated:true
4338 # -- Annotations for index-gateway service
4339 # @deprecated -- This option is deprecated in favor of `indexGateway.service.annotations`
4340 serviceAnnotations: {}
4341 # @schema type:string;deprecated:true
4342 # -- Service type for index-gateway service
4343 # @deprecated -- This option is deprecated in favor of `indexGateway.service.type`
4344 serviceType: "ClusterIP"
4346 # @schema additionalProperties:{"type":"string"}
4347 # -- Annotations for index-gateway Service
4349 # @schema additionalProperties:{"type":"string"}
4350 # -- Additional labels for index-gateway Service
4352 # -- Service Type for index-gateway Service
4354 # -- trafficDistribution for index-gateway Service
4355 trafficDistribution: ""
4356 # -- Session affinity for index-gateway Service
4358 # @schema additionalProperties:true
4359 # -- Session affinity config for index-gateway Service
4360 sessionAffinityConfig: {}
4361 # -- ipFamilyPolicy for index-gateway Service
4362 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4364 # -- ipFamilies for index-gateway Service
4365 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4367 # -- Adds the appProtocol field to the index-gateway service. This allows index-gateway to work with istio protocol selection.
4369 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4371 # -- Additional CLI args for the index-gateway
4373 # -- Environment variables to add to the index-gateway pods
4375 # -- Environment variables from secrets or configmaps to add to the index-gateway pods
4377 # -- Volume mounts to add to the index-gateway pods
4378 extraVolumeMounts: []
4379 # -- Volumes to add to the index-gateway pods
4381 # @schema additionalProperties:true
4382 # -- Resource requests and limits for the index-gateway
4384 # -- Container resize policy for the index-gateway
4387 # - resourceName: cpu
4388 # restartPolicy: NotRequired
4389 # - resourceName: memory
4390 # restartPolicy: RestartContainer
4392 # @schema type:[string, array, null]
4393 # -- Containers to add to the index-gateway pods
4395 # @schema type:[string, array, null]
4396 # -- Init containers to add to the index-gateway pods
4398 # -- Grace period to allow the index-gateway to shutdown before it is killed.
4399 terminationGracePeriodSeconds: 300
4400 podDisruptionBudget:
4401 # -- Enable Pod Disruption Budget
4403 # @schema additionalProperties:{"type":"string"}
4404 # -- Annotations for Pod Disruption Budget
4406 # @schema additionalProperties:{"type":"string"}
4407 # -- Labels for Pod Disruption Budget
4409 # @schema type:[string, integer, null]
4410 # -- Pod Disruption Budget minAvailable
4412 # @schema type:[string, integer, null]
4413 # -- Pod Disruption Budget maxUnavailable
4414 maxUnavailable: null
4415 # @schema type:[string, null]
4416 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4417 unhealthyPodEvictionPolicy: null
4418 # -- Lifecycle for the index-gateway container
4420 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4421 # -- Affinity for index-gateway pods.
4422 # @default -- Hard node anti-affinity
4423 # The value will be passed through tpl.
4426 requiredDuringSchedulingIgnoredDuringExecution:
4429 app.kubernetes.io/component: index-gateway
4430 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4431 app.kubernetes.io/instance: '{{ .Release.Name }}'
4432 topologyKey: kubernetes.io/hostname
4433 # @schema type:[string, integer, null];deprecated:true
4434 # -- Pod Disruption Budget maxUnavailable
4435 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4436 maxUnavailable: null
4437 # @schema additionalProperties:true
4438 # -- Node selector for index-gateway pods
4440 # @schema item:object
4441 # -- Topology Spread Constraints for index-gateway pods
4442 # The value will be passed through tpl.
4443 topologySpreadConstraints: []
4446 # -- Enable creating PVCs which is required when using boltdb-shipper
4448 # -- Set access modes on the PersistentVolumeClaim
4451 # @schema skipProperties:true;additionalProperties:true
4452 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
4453 dataVolumeParameters:
4455 # -- Size of persistent disk
4457 # @schema type:[string, null]
4458 # -- Storage class to be used.
4459 # If defined, storageClassName: <storageClass>.
4460 # If set to "-", storageClassName: "", which disables dynamic provisioning.
4461 # If empty or set to null, no storageClassName spec is
4462 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4464 # @schema type:[string, null]
4465 # -- Volume attributes class name to be used.
4466 # If empty or set to null, no volumeAttributesClassName spec is set.
4467 # Requires Kubernetes 1.31
4468 volumeAttributesClassName: null
4469 # @schema additionalProperties:{"type":"string"}
4470 # -- Annotations for index gateway PVCs
4472 # @schema additionalProperties:{"type":"string"}
4473 # -- Labels for index gateway PVCs
4475 # -- Enable StatefulSetAutoDeletePVC feature
4476 enableStatefulSetAutoDeletePVC: false
4479 # @schema additionalProperties:true;deprecated:true
4480 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4481 # @deprecated -- This option is deprecated in favor of `indexGateway.service.appProtocol`
4484 # -- trafficDistribution for index-gateway service
4485 trafficDistribution: ""
4486 # @schema skipProperties:true;additionalProperties:true
4487 # -- UpdateStrategy for the index-gateway workload.
4489 # -- One of 'OnDelete' or 'RollingUpdate'
4491 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
4495 # -- Specifies whether a ServiceAccount should be created
4497 # @schema type:[string, null]
4498 # -- The name of the ServiceAccount to use.
4499 # If not set and create is true, a name is generated using the fullname template
4501 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4502 # -- Image pull secrets for the service account
4503 imagePullSecrets: []
4504 # @schema additionalProperties:{"type":"string"}
4505 # -- Annotations for the service account
4507 # @schema additionalProperties:{"type":"string"}
4508 # -- Labels for the service account
4510 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4511 automountServiceAccountToken: true
4512# -- Configuration for the compactor
4514 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4516 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
4518 # -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
4519 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4520 statefulSetRecreateJob:
4522 # @schema type:[integer, null]
4523 # -- Number of replicas for the compactor. Set to null to omit spec.replicas from the workload,
4524 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4526 # @schema skipProperties:true;additionalProperties:true
4527 # -- UpdateStrategy or Strategy for the compactor.
4531 # -- PodManagementPolicy for the compactor StatefulSet. Only applicable if `compactor.kind` is StatefulSet.
4532 ## OrderedReady and Parallel are supported.
4533 podManagementPolicy: Parallel
4534 # -- hostAliases to add
4536 # @schema type:[boolean, null]
4540 # -- Use the host's user namespace in the compactor
4542 # @schema additionalProperties:true
4543 # -- DNSConfig for compactor pods
4546 # @schema type:[string, null]
4547 # -- The Docker registry for the compactor image. Overrides `loki.image.registry`
4549 # @schema type:[string, null]
4550 # -- Docker image repository for the compactor image. Overrides `loki.image.repository`
4552 # @schema type:[string, null]
4553 # -- Docker image tag for the compactor image. Overrides `loki.image.tag`
4555 # @schema type:[string, null]
4556 # -- Command to execute instead of defined in Docker image
4558 # @schema type:[string, null]
4559 # -- The name of the PriorityClass for compactor pods
4560 priorityClassName: null
4561 # @schema additionalProperties:{"type":"string"}
4562 # -- Labels for compactor
4564 # @schema additionalProperties:{"type":"string"}
4565 # -- Annotations for compactor
4567 # @schema additionalProperties:{"type":"string"}
4568 # -- Labels for compactor pods
4570 # @schema additionalProperties:{"type":"string"}
4571 # -- Annotations for compactor pods
4573 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4574 # -- Affinity for compactor pods.
4575 # @default -- Hard node anti-affinity
4576 # The value will be passed through tpl.
4579 requiredDuringSchedulingIgnoredDuringExecution:
4582 app.kubernetes.io/component: compactor
4583 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4584 app.kubernetes.io/instance: '{{ .Release.Name }}'
4585 topologyKey: kubernetes.io/hostname
4586 # @schema additionalProperties:{"type":"string"};deprecated:true
4587 # -- Labels for compactor service
4588 # @deprecated -- This option is deprecated in favor of `compactor.service.labels`
4590 # @schema additionalProperties:{"type":"string"};deprecated:true
4591 # -- Annotations for compactor service
4592 # @deprecated -- This option is deprecated in favor of `compactor.service.annotations`
4593 serviceAnnotations: {}
4594 # @schema type:string;deprecated:true
4595 # -- Service type for compactor service
4596 # @deprecated -- This option is deprecated in favor of `compactor.service.type`
4597 serviceType: "ClusterIP"
4599 # @schema additionalProperties:{"type":"string"}
4600 # -- Annotations for compactor Service
4602 # @schema additionalProperties:{"type":"string"}
4603 # -- Additional labels for compactor Service
4605 # -- Service Type for compactor Service
4607 # -- trafficDistribution for compactor Service
4608 trafficDistribution: ""
4609 # -- Session affinity for compactor Service
4611 # @schema additionalProperties:true
4612 # -- Session affinity config for compactor Service
4613 sessionAffinityConfig: {}
4614 # -- ipFamilyPolicy for compactor Service
4615 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4617 # -- ipFamilies for compactor Service
4618 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4620 # -- Adds the appProtocol field to the compactor service. This allows compactor to work with istio protocol selection.
4622 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4624 # -- Additional CLI args for the compactor
4626 # -- Environment variables to add to the compactor pods
4628 # -- Environment variables from secrets or configmaps to add to the compactor pods
4630 # -- Volume mounts to add to the compactor pods
4631 extraVolumeMounts: []
4632 # -- Volumes to add to the compactor pods
4634 # @schema skipProperties:true;additionalProperties:true
4635 # -- readiness probe settings for compactor pods. If empty, use `loki.readinessProbe`
4637 # @schema skipProperties:true;additionalProperties:true
4638 # -- liveness probe settings for compactor pods. If empty use `loki.livenessProbe`
4640 # @schema skipProperties:true;additionalProperties:true
4641 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
4643 # @schema additionalProperties:true
4644 # -- Resource requests and limits for the compactor
4646 # -- Container resize policy for the compactor
4649 # - resourceName: cpu
4650 # restartPolicy: NotRequired
4651 # - resourceName: memory
4652 # restartPolicy: RestartContainer
4654 # @schema type:[string, array, null]
4655 # -- Containers to add to the compactor pods
4657 # @schema type:[string, array, null]
4658 # -- Init containers to add to the compactor pods
4660 # -- Grace period to allow the compactor to shutdown before it is killed
4661 terminationGracePeriodSeconds: 30
4662 # @schema additionalProperties:true
4663 # -- Node selector for compactor pods
4665 # -- Tolerations for compactor pods
4667 # @schema additionalProperties:true;deprecated:true
4668 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4669 # @deprecated -- This option is deprecated in favor of `compactor.service.appProtocol`
4673 # -- Enable creating PVCs for the compactor
4675 # -- Storage type for the compactor. pvc and ephemeral are supported.
4677 # @schema type:[string, null]
4678 # -- Storage class to be used.
4679 # If defined, storageClassName: <storageClass>.
4680 # If set to "-", storageClassName: "", which disables dynamic provisioning.
4681 # If empty or set to null, no storageClassName spec is
4682 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4684 # -- Set access modes on the PersistentVolumeClaim
4687 # -- Size of persistent disk
4689 # @schema type:[string, null]
4690 # -- Size of persistent disk
4691 # -- Volume attributes class name to be used.
4692 # If empty or set to null, no volumeAttributesClassName spec is set.
4693 # Requires Kubernetes 1.31
4694 volumeAttributesClassName: null
4695 # @schema additionalProperties:{"type":"string"}
4696 # -- Annotations for the generated volumeClaimTemplate.
4698 # @schema additionalProperties:{"type":"string"}
4699 # -- Labels for the generated volumeClaimTemplate.
4701 # @schema type:[object, null]
4702 # -- Selector for the generated volumeClaimTemplate.
4704 # @schema skipProperties:true;additionalProperties:true
4705 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
4706 dataVolumeParameters:
4708 # -- List of the compactor PVCs. Deprecated in favor of `compactor.persistence.dataVolumeParameters` and `compactor.persistence.size`.
4709 # @notationType -- list
4712 # -- Set access modes on the PersistentVolumeClaim
4716 # @schema type:[string, null]
4717 # -- Storage class to be used.
4718 # If defined, storageClassName: <storageClass>.
4719 # If set to "-", storageClassName: "", which disables dynamic provisioning.
4720 # If empty or set to null, no storageClassName spec is
4721 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4723 # @schema type:[string, null]
4724 # -- Volume attributes class name to be used.
4725 # If empty or set to null, no volumeAttributesClassName spec is set.
4726 # Requires Kubernetes 1.31
4727 volumeAttributesClassName: null
4728 # @schema additionalProperties:{"type":"string"}
4729 # -- Annotations for compactor PVCs
4731 # @schema additionalProperties:{"type":"string"}
4732 # -- Labels for compactor PVCs
4736 # -- Enable StatefulSetAutoDeletePVC feature
4737 enableStatefulSetAutoDeletePVC: false
4742 # @schema type:[string, null]
4743 # -- The name of the ServiceAccount to use for the compactor.
4744 # If not set and create is true, a name is generated by appending
4745 # "-compactor" to the common ServiceAccount.
4747 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4748 # -- Image pull secrets for the compactor service account
4749 imagePullSecrets: []
4750 # @schema additionalProperties:{"type":"string"}
4751 # -- Annotations for the compactor service account
4753 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4754 automountServiceAccountToken: true
4755# -- Configuration for the bloom-gateway
4757 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4759 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
4761 # -- Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed.
4762 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4763 statefulSetRecreateJob:
4765 # -- Number of replicas for the bloom-gateway
4767 # -- hostAliases to add
4769 # @schema type:[boolean, null]
4773 # -- Use the host's user namespace in the bloom-gateway
4775 # @schema skipProperties:true;additionalProperties:true
4776 # -- UpdateStrategy or Strategy for the pattern ingester.
4780 # @schema additionalProperties:true
4781 # -- DNSConfig for bloom-gateway pods
4784 # @schema type:[string, null]
4785 # -- The Docker registry for the bloom-gateway image. Overrides `loki.image.registry`
4787 # @schema type:[string, null]
4788 # -- Docker image repository for the bloom-gateway image. Overrides `loki.image.repository`
4790 # @schema type:[string, null]
4791 # -- Docker image tag for the bloom-gateway image. Overrides `loki.image.tag`
4793 # @schema type:[string, null]
4794 # -- Command to execute instead of defined in Docker image
4796 # @schema type:[string, null]
4797 # -- The name of the PriorityClass for bloom-gateway pods
4798 priorityClassName: null
4799 # @schema additionalProperties:{"type":"string"}
4800 # -- Labels for bloom-builder
4802 # @schema additionalProperties:{"type":"string"}
4803 # -- Annotations for bloom-builder
4805 # @schema additionalProperties:{"type":"string"}
4806 # -- Labels for bloom-gateway pods
4808 # @schema additionalProperties:{"type":"string"}
4809 # -- Annotations for bloom-gateway pods
4811 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4812 # -- Affinity for bloom-gateway pods.
4813 # @default -- Hard node anti-affinity
4814 # The value will be passed through tpl.
4817 requiredDuringSchedulingIgnoredDuringExecution:
4820 app.kubernetes.io/component: bloom-gateway
4821 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4822 app.kubernetes.io/instance: '{{ .Release.Name }}'
4823 topologyKey: kubernetes.io/hostname
4824 # @schema additionalProperties:{"type":"string"};deprecated:true
4825 # -- Labels for bloom-gateway service
4826 # @deprecated -- This option is deprecated in favor of `bloomGateway.service.labels`
4828 # @schema additionalProperties:{"type":"string"};deprecated:true
4829 # -- Annotations for bloom-gateway service
4830 # @deprecated -- This option is deprecated in favor of `bloomGateway.service.annotations`
4831 serviceAnnotations: {}
4833 # @schema additionalProperties:{"type":"string"}
4834 # -- Annotations for bloom-gateway Service
4836 # @schema additionalProperties:{"type":"string"}
4837 # -- Additional labels for bloom-gateway Service
4839 # -- Service Type for bloom-gateway Service
4841 # -- trafficDistribution for bloom-gateway Service
4842 trafficDistribution: ""
4843 # -- Session affinity for bloom-gateway Service
4845 # @schema additionalProperties:true
4846 # -- Session affinity config for bloom-gateway Service
4847 sessionAffinityConfig: {}
4848 # -- ipFamilyPolicy for bloom-gateway Service
4849 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4851 # -- ipFamilies for bloom-gateway Service
4852 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4854 # -- Adds the appProtocol field to the bloom-gateway service. This allows bloom-gateway to work with istio protocol selection.
4856 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4858 # -- Additional CLI args for the bloom-gateway
4860 # -- Environment variables to add to the bloom-gateway pods
4862 # -- Environment variables from secrets or configmaps to add to the bloom-gateway pods
4864 # -- Volume mounts to add to the bloom-gateway pods
4865 extraVolumeMounts: []
4866 # -- Volumes to add to the bloom-gateway pods
4868 # @schema skipProperties:true;additionalProperties:true
4869 # -- readiness probe settings for bloom-gateway pods. If empty, use `loki.readinessProbe`
4871 # @schema skipProperties:true;additionalProperties:true
4872 # -- liveness probe settings for bloom-gateway pods. If empty use `loki.livenessProbe`
4874 # @schema skipProperties:true;additionalProperties:true
4875 # -- startup probe settings for bloom-gateway pods. If empty, use `loki.startupProbe`
4877 # @schema additionalProperties:true
4878 # -- Resource requests and limits for the bloom-gateway
4880 # -- Container resize policy for the bloom-gateway
4883 # - resourceName: cpu
4884 # restartPolicy: NotRequired
4885 # - resourceName: memory
4886 # restartPolicy: RestartContainer
4888 # @schema type:[string, array, null]
4889 # -- Containers to add to the bloom-gateway pods
4891 # @schema type:[string, array, null]
4892 # -- Init containers to add to the bloom-gateway pods
4894 # -- Grace period to allow the bloom-gateway to shutdown before it is killed
4895 terminationGracePeriodSeconds: 30
4896 podDisruptionBudget:
4897 # -- Enable Pod Disruption Budget
4899 # @schema additionalProperties:{"type":"string"}
4900 # -- Annotations for Pod Disruption Budget
4902 # @schema additionalProperties:{"type":"string"}
4903 # -- Labels for Pod Disruption Budget
4905 # @schema type:[string, integer, null]
4906 # -- Pod Disruption Budget minAvailable
4908 # @schema type:[string, integer, null]
4909 # -- Pod Disruption Budget maxUnavailable
4910 maxUnavailable: null
4911 # @schema type:[string, null]
4912 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4913 unhealthyPodEvictionPolicy: null
4914 # @schema additionalProperties:true
4915 # -- Node selector for bloom-gateway pods
4917 # -- Tolerations for bloom-gateway pods
4919 # @schema additionalProperties:true;deprecated:true
4920 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4921 # @deprecated -- This option is deprecated in favor of `bloomGateway.service.appProtocol`
4924 # -- The default is to deploy all pods in parallel.
4925 podManagementPolicy: "Parallel"
4927 # -- Enable creating PVCs for the bloom-gateway
4929 # @schema additionalProperties:{"type":"string"}
4930 # -- Annotations for bloom-gateway PVCs
4932 # @schema additionalProperties:{"type":"string"}
4933 # -- Labels for bloom gateway PVCs
4935 # -- List of the bloom-gateway PVCs
4936 # @notationType -- list
4939 # -- Set access modes on the PersistentVolumeClaim
4942 # -- Size of persistent disk
4944 # @schema type:[string, null]
4945 # -- Storage class to be used.
4946 # If defined, storageClassName: <storageClass>.
4947 # If set to "-", storageClassName: "", which disables dynamic provisioning.
4948 # If empty or set to null, no storageClassName spec is
4949 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4951 # @schema type:[string, null]
4952 # -- Volume attributes class name to be used.
4953 # If empty or set to null, no volumeAttributesClassName spec is set.
4954 # Requires Kubernetes 1.31
4955 volumeAttributesClassName: null
4956 # -- Enable StatefulSetAutoDeletePVC feature
4957 enableStatefulSetAutoDeletePVC: false
4961 # -- Specifies whether a ServiceAccount should be created
4963 # @schema type:[string, null]
4964 # -- The name of the ServiceAccount to use.
4965 # If not set and create is true, a name is generated using the fullname template
4967 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4968 # -- Image pull secrets for the service account
4969 imagePullSecrets: []
4970 # @schema additionalProperties:{"type":"string"}
4971 # -- Annotations for the service account
4973 # @schema additionalProperties:{"type":"string"}
4974 # -- Labels for the service account
4976 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4977 automountServiceAccountToken: true
4978# -- Configuration for the bloom-planner
4980 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4982 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
4984 # -- Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed.
4985 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4986 statefulSetRecreateJob:
4988 # -- Number of replicas for the bloom-planner
4990 # -- hostAliases to add
4992 # @schema type:[boolean, null]
4996 # -- Use the host's user namespace in the bloom-planner
4998 # @schema additionalProperties:true
4999 # -- DNSConfig for bloom-planner pods
5001 # @schema skipProperties:true;additionalProperties:true
5002 # -- UpdateStrategy or Strategy for the pattern ingester.
5007 # @schema type:[string, null]
5008 # -- The Docker registry for the bloom-planner image. Overrides `loki.image.registry`
5010 # @schema type:[string, null]
5011 # -- Docker image repository for the bloom-planner image. Overrides `loki.image.repository`
5013 # @schema type:[string, null]
5014 # -- Docker image tag for the bloom-planner image. Overrides `loki.image.tag`
5016 # @schema type:[string, null]
5017 # -- Command to execute instead of defined in Docker image
5019 # @schema type:[string, null]
5020 # -- The name of the PriorityClass for bloom-planner pods
5021 priorityClassName: null
5022 # @schema additionalProperties:{"type":"string"}
5023 # -- Labels for bloom-builder
5025 # @schema additionalProperties:{"type":"string"}
5026 # -- Annotations for bloom-builder
5028 # @schema additionalProperties:{"type":"string"}
5029 # -- Labels for bloom-planner pods
5031 # @schema additionalProperties:{"type":"string"}
5032 # -- Annotations for bloom-planner pods
5034 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5035 # -- Affinity for bloom-planner pods.
5036 # @default -- Hard node anti-affinity
5037 # The value will be passed through tpl.
5040 requiredDuringSchedulingIgnoredDuringExecution:
5043 app.kubernetes.io/component: bloom-planner
5044 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5045 app.kubernetes.io/instance: '{{ .Release.Name }}'
5046 topologyKey: kubernetes.io/hostname
5047 # @schema additionalProperties:{"type":"string"};deprecated:true
5048 # -- Labels for bloom-planner service
5049 # @deprecated -- This option is deprecated in favor of `bloomPlanner.service.labels`
5051 # @schema additionalProperties:{"type":"string"};deprecated:true
5052 # -- Annotations for bloom-planner service
5053 # @deprecated -- This option is deprecated in favor of `bloomPlanner.service.annotations`
5054 serviceAnnotations: {}
5056 # @schema additionalProperties:{"type":"string"}
5057 # -- Annotations for bloom-planner Service
5059 # @schema additionalProperties:{"type":"string"}
5060 # -- Additional labels for bloom-planner Service
5062 # -- Service Type for bloom-planner Service
5064 # -- trafficDistribution for bloom-planner Service
5065 trafficDistribution: ""
5066 # -- Session affinity for bloom-planner Service
5068 # @schema additionalProperties:true
5069 # -- Session affinity config for bloom-planner Service
5070 sessionAffinityConfig: {}
5071 # -- ipFamilyPolicy for bloom-planner Service
5072 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5074 # -- ipFamilies for bloom-planner Service
5075 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5077 # -- Adds the appProtocol field to the bloom-planner service. This allows bloom-planner to work with istio protocol selection.
5079 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5081 # -- Additional CLI args for the bloom-planner
5083 # -- Environment variables to add to the bloom-planner pods
5085 # -- Environment variables from secrets or configmaps to add to the bloom-planner pods
5087 # -- Volume mounts to add to the bloom-planner pods
5088 extraVolumeMounts: []
5089 # -- Volumes to add to the bloom-planner pods
5091 # @schema skipProperties:true;additionalProperties:true
5092 # -- readiness probe settings for bloom-planner pods. If empty, use `loki.readinessProbe`
5094 # @schema skipProperties:true;additionalProperties:true
5095 # -- liveness probe settings for bloom-planner pods. If empty use `loki.livenessProbe`
5097 # @schema skipProperties:true;additionalProperties:true
5098 # -- startup probe settings for bloom-planner pods. If empty use `loki.startupProbe`
5100 # @schema additionalProperties:true
5101 # -- Resource requests and limits for the bloom-planner
5103 # -- Container resize policy for the bloom-planner
5106 # - resourceName: cpu
5107 # restartPolicy: NotRequired
5108 # - resourceName: memory
5109 # restartPolicy: RestartContainer
5111 # @schema type:[string, array, null]
5112 # -- Containers to add to the bloom-planner pods
5114 # @schema type:[string, array, null]
5115 # -- Init containers to add to the bloom-planner pods
5117 # -- Grace period to allow the bloom-planner to shutdown before it is killed
5118 terminationGracePeriodSeconds: 30
5119 podDisruptionBudget:
5120 # -- Enable Pod Disruption Budget
5122 # @schema additionalProperties:{"type":"string"}
5123 # -- Annotations for Pod Disruption Budget
5125 # @schema additionalProperties:{"type":"string"}
5126 # -- Labels for Pod Disruption Budget
5128 # @schema type:[string, integer, null]
5129 # -- Pod Disruption Budget minAvailable
5131 # @schema type:[string, integer, null]
5132 # -- Pod Disruption Budget maxUnavailable
5133 maxUnavailable: null
5134 # @schema type:[string, null]
5135 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5136 unhealthyPodEvictionPolicy: null
5137 # @schema additionalProperties:true
5138 # -- Node selector for bloom-planner pods
5140 # -- Tolerations for bloom-planner pods
5142 # @schema additionalProperties:true;deprecated:true
5143 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5144 # @deprecated -- This option is deprecated in favor of `bloomPlanner.service.appProtocol`
5147 # -- The default is to deploy all pods in parallel.
5148 podManagementPolicy: "Parallel"
5150 # -- Enable creating PVCs for the bloom-planner
5152 # -- List of the bloom-planner PVCs
5153 # @notationType -- list
5156 # -- Set access modes on the PersistentVolumeClaim
5159 # -- Size of persistent disk
5161 # @schema type:[string, null]
5162 # -- Storage class to be used.
5163 # If defined, storageClassName: <storageClass>.
5164 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5165 # If empty or set to null, no storageClassName spec is
5166 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5168 # @schema type:[string, null]
5169 # -- Volume attributes class name to be used.
5170 # If empty or set to null, no volumeAttributesClassName spec is set.
5171 # Requires Kubernetes 1.31
5172 volumeAttributesClassName: null
5173 # @schema additionalProperties:{"type":"string"}
5174 # -- Annotations for bloom-planner PVCs
5176 # @schema additionalProperties:{"type":"string"}
5177 # -- Labels for bloom planner PVCs
5179 # -- Enable StatefulSetAutoDeletePVC feature
5180 enableStatefulSetAutoDeletePVC: false
5184 # -- Specifies whether a ServiceAccount should be created
5186 # @schema type:[string, null]
5187 # -- The name of the ServiceAccount to use.
5188 # If not set and create is true, a name is generated using the fullname template
5190 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5191 # -- Image pull secrets for the service account
5192 imagePullSecrets: []
5193 # @schema additionalProperties:{"type":"string"}
5194 # -- Annotations for the service account
5196 # @schema additionalProperties:{"type":"string"}
5197 # -- Labels for the service account
5199 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5200 automountServiceAccountToken: true
5201# -- Configuration for the bloom-builder
5203 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5205 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5207 # -- Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
5208 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5209 statefulSetRecreateJob:
5211 # @schema type:[integer, null]
5212 # -- Number of replicas for the bloom-builder. Set to null to omit spec.replicas from the workload,
5213 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5215 # -- hostAliases to add
5217 # @schema type:[boolean, null]
5221 # -- Use the host's user namespace in the boom-builder
5223 # @schema additionalProperties:true
5224 # -- DNSConfig for bloom-builder pods
5227 # -- Enable autoscaling for the bloom-builder
5229 # -- Minimum autoscaling replicas for the bloom-builder
5231 # -- Maximum autoscaling replicas for the bloom-builder
5233 # @schema type:[integer, null]
5234 # -- Target CPU utilisation percentage for the bloom-builder
5235 targetCPUUtilizationPercentage: 60
5236 # @schema type:[integer, null]
5237 # -- Target memory utilisation percentage for the bloom-builder
5238 targetMemoryUtilizationPercentage: null
5239 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
5244 # name: loki_query_rate
5246 # type: AverageValue
5248 # @schema skipProperties:true;additionalProperties:true
5249 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
5251 # -- Enable autoscaling behaviours
5253 # -- define scale down policies, must conform to HPAScalingRules
5255 # -- define scale up policies, must conform to HPAScalingRules
5258 # -- Enable KEDA autoscaling for the bloom-builder. Mutually exclusive with autoscaling.enabled
5260 # @schema type:[integer, null]
5261 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
5262 pollingInterval: null
5263 # -- Minimum replicas for KEDA autoscaling
5265 # -- Maximum replicas for KEDA autoscaling
5267 # @schema type:[integer, null]
5268 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
5269 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
5270 cooldownPeriod: null
5271 # @schema additionalProperties:true
5272 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
5273 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
5275 # @schema skipProperties:true;additionalProperties:true
5276 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
5277 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
5279 # -- KEDA triggers for the bloom-builder.
5280 # Ref: https://keda.sh/docs/latest/scalers/
5283 # @schema type:[string, null]
5284 # -- The Docker registry for the bloom-builder image. Overrides `loki.image.registry`
5286 # @schema type:[string, null]
5287 # -- Docker image repository for the bloom-builder image. Overrides `loki.image.repository`
5289 # @schema type:[string, null]
5290 # -- Docker image tag for the bloom-builder image. Overrides `loki.image.tag`
5292 # @schema type:[string, null]
5293 # -- Command to execute instead of defined in Docker image
5295 # @schema type:[string, null]
5296 # -- The name of the PriorityClass for bloom-builder pods
5297 priorityClassName: null
5298 # @schema additionalProperties:{"type":"string"}
5299 # -- Labels for bloom-builder
5301 # @schema additionalProperties:{"type":"string"}
5302 # -- Annotations for bloom-builder
5304 # @schema additionalProperties:{"type":"string"}
5305 # -- Labels for bloom-builder pods
5307 # @schema additionalProperties:{"type":"string"}
5308 # -- Annotations for bloom-builder pods
5310 # @schema additionalProperties:{"type":"string"};deprecated:true
5311 # -- Labels for bloom-builder service
5312 # @deprecated -- This option is deprecated in favor of `bloomBuilder.service.labels`
5314 # @schema additionalProperties:{"type":"string"};deprecated:true
5315 # -- Annotations for bloom-builder service
5316 # @deprecated -- This option is deprecated in favor of `bloomBuilder.service.annotations`
5317 serviceAnnotations: {}
5319 # @schema additionalProperties:{"type":"string"}
5320 # -- Annotations for bloom-builder Service
5322 # @schema additionalProperties:{"type":"string"}
5323 # -- Additional labels for bloom-builder Service
5325 # -- Service Type for bloom-builder Service
5327 # -- trafficDistribution for bloom-builder Service
5328 trafficDistribution: ""
5329 # -- Session affinity for bloom-builder Service
5331 # @schema additionalProperties:true
5332 # -- Session affinity config for bloom-builder Service
5333 sessionAffinityConfig: {}
5334 # -- ipFamilyPolicy for bloom-builder Service
5335 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5337 # -- ipFamilies for bloom-builder Service
5338 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5340 # -- Adds the appProtocol field to the bloom-builder service. This allows bloom-builder to work with istio protocol selection.
5342 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5344 # -- Additional CLI args for the bloom-builder
5346 # -- Environment variables to add to the bloom-builder pods
5348 # -- Environment variables from secrets or configmaps to add to the bloom-builder pods
5350 # -- Volume mounts to add to the bloom-builder pods
5351 extraVolumeMounts: []
5352 # -- Volumes to add to the bloom-builder pods
5354 # @schema additionalProperties:true
5355 # -- Resource requests and limits for the bloom-builder
5357 # -- Container resize policy for the bloom-builder
5360 # - resourceName: cpu
5361 # restartPolicy: NotRequired
5362 # - resourceName: memory
5363 # restartPolicy: RestartContainer
5365 # @schema type:[string, array, null]
5366 # -- Init containers to add to the bloom-builder pods
5368 # @schema type:[string, array, null]
5369 # -- Containers to add to the bloom-builder pods
5371 # -- Grace period to allow the bloom-builder to shutdown before it is killed
5372 terminationGracePeriodSeconds: 30
5373 podDisruptionBudget:
5374 # -- Enable Pod Disruption Budget
5376 # @schema additionalProperties:{"type":"string"}
5377 # -- Annotations for Pod Disruption Budget
5379 # @schema additionalProperties:{"type":"string"}
5380 # -- Labels for Pod Disruption Budget
5382 # @schema type:[string, integer, null]
5383 # -- Pod Disruption Budget minAvailable
5385 # @schema type:[string, integer, null]
5386 # -- Pod Disruption Budget maxUnavailable
5387 maxUnavailable: null
5388 # @schema type:[string, null]
5389 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5390 unhealthyPodEvictionPolicy: null
5391 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5392 # -- Affinity for bloom-builder pods.
5393 # @default -- Hard node anti-affinity
5394 # The value will be passed through tpl.
5397 requiredDuringSchedulingIgnoredDuringExecution:
5400 app.kubernetes.io/component: bloom-builder
5401 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5402 app.kubernetes.io/instance: '{{ .Release.Name }}'
5403 topologyKey: kubernetes.io/hostname
5404 # @schema type:[string, integer, null];deprecated:true
5405 # -- Pod Disruption Budget maxUnavailable
5406 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5407 maxUnavailable: null
5408 # @schema additionalProperties:true
5409 # -- Node selector for bloom-builder pods
5411 # -- Tolerations for bloom-builder pods
5413 # @schema additionalProperties:true;deprecated:true
5414 # -- Adds the appProtocol field to the queryFrontend service. This allows bloomBuilder to work with istio protocol selection.
5415 # @deprecated -- This option is deprecated in favor of `bloomBuilder.service.appProtocol`
5417 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5419 # @schema skipProperties:true;additionalProperties:true
5420 # -- Update strategy for bloom-builder deployment
5424 # @schema type:[string, integer, null]
5425 # -- Pod Disruption Budget maxUnavailable
5428 # -- Enable generic ephemeral volume-backed storage for the bloom-builder `data` volume.
5430 # -- Storage type for the bloom-builder. pvc and ephemeral are supported.
5432 # -- Set access modes on the generated volumeClaimTemplate.
5435 # -- Size of the generated volumeClaimTemplate.
5437 # @schema type:[string, null]
5438 # -- Storage class to be used for the generated volumeClaimTemplate.
5439 # If defined, storageClassName: <storageClass>.
5440 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5441 # If empty or set to null, no storageClassName spec is set, choosing the default provisioner.
5443 # @schema type:[string, null]
5444 # -- Volume attributes class name to be used for the generated volumeClaimTemplate.
5445 # If empty or set to null, no volumeAttributesClassName spec is set.
5446 # Requires Kubernetes 1.31
5447 volumeAttributesClassName: null
5448 # @schema type:[object, null]
5449 # -- Selector for the generated volumeClaimTemplate.
5451 # @schema additionalProperties:{"type":"string"}
5452 # -- Annotations for the generated volumeClaimTemplate.
5454 # @schema additionalProperties:{"type":"string"}
5455 # -- Labels for the generated volumeClaimTemplate.
5458 # -- Specifies whether a ServiceAccount should be created
5460 # @schema type:[string, null]
5461 # -- The name of the ServiceAccount to use.
5462 # If not set and create is true, a name is generated using the fullname template
5464 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5465 # -- Image pull secrets for the service account
5466 imagePullSecrets: []
5467 # @schema additionalProperties:{"type":"string"}
5468 # -- Annotations for the service account
5470 # @schema additionalProperties:{"type":"string"}
5471 # -- Labels for the service account
5473 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5474 automountServiceAccountToken: true
5475# -- Configuration for the pattern ingester
5477 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5479 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5481 # -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
5482 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5483 statefulSetRecreateJob:
5485 # @schema type:[integer, null]
5486 # -- Number of replicas for the pattern ingester. Set to null to omit spec.replicas from the workload,
5487 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5489 # @schema skipProperties:true;additionalProperties:true
5490 # -- UpdateStrategy or Strategy for the pattern ingester.
5494 # @schema additionalProperties:true
5495 # -- DNSConfig for pattern ingester pods
5497 # -- hostAliases to add
5499 # @schema type:[boolean, null]
5503 # -- Use the host's user namespace in the pattern ingester
5506 # @schema type:[string, null]
5507 # -- The Docker registry for the pattern ingester image. Overrides `loki.image.registry`
5509 # @schema type:[string, null]
5510 # -- Docker image repository for the pattern ingester image. Overrides `loki.image.repository`
5512 # @schema type:[string, null]
5513 # -- Docker image tag for the pattern ingester image. Overrides `loki.image.tag`
5515 # @schema type:[string, null]
5516 # -- Command to execute instead of defined in Docker image
5518 # @schema type:[string, null]
5519 # -- The name of the PriorityClass for pattern ingester pods
5520 priorityClassName: null
5521 # @schema additionalProperties:{"type":"string"}
5522 # -- Labels for pattern ingester
5524 # @schema additionalProperties:{"type":"string"}
5525 # -- Annotations for pattern ingester
5527 # @schema additionalProperties:{"type":"string"}
5528 # -- Labels for pattern ingester pods
5530 # @schema additionalProperties:{"type":"string"}
5531 # -- Annotations for pattern ingester pods
5533 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5534 # -- Affinity for pattern ingester pods.
5535 # @default -- Hard node anti-affinity
5536 # The value will be passed through tpl.
5539 requiredDuringSchedulingIgnoredDuringExecution:
5542 app.kubernetes.io/component: pattern-ingester
5543 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5544 app.kubernetes.io/instance: '{{ .Release.Name }}'
5545 topologyKey: kubernetes.io/hostname
5546 # @schema type:[string, integer, null];deprecated:true
5547 # -- Pod Disruption Budget maxUnavailable
5548 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5549 maxUnavailable: null
5550 # -- Additional CLI args for the pattern ingester
5552 # -- Environment variables to add to the pattern ingester pods
5554 # -- Environment variables from secrets or configmaps to add to the pattern ingester pods
5556 # -- Volume mounts to add to the pattern ingester pods
5557 extraVolumeMounts: []
5558 # -- Volumes to add to the pattern ingester pods
5560 # @schema skipProperties:true;additionalProperties:true
5561 # -- readiness probe settings for pattern ingester pods. If empty, use `loki.readinessProbe`
5563 # @schema skipProperties:true;additionalProperties:true
5564 # -- liveness probe settings for pattern ingester pods. If empty use `loki.livenessProbe`
5566 # @schema skipProperties:true;additionalProperties:true
5567 # -- startup probe settings for pattern ingester pods. If empty use `loki.startupProbe`
5569 # @schema additionalProperties:true
5570 # -- Resource requests and limits for the pattern ingester
5572 # -- Container resize policy for the pattern ingester
5575 # - resourceName: cpu
5576 # restartPolicy: NotRequired
5577 # - resourceName: memory
5578 # restartPolicy: RestartContainer
5580 # @schema type:[string, array, null]
5581 # -- Containers to add to the pattern ingester pods
5583 # @schema type:[string, array, null]
5584 # -- Init containers to add to the pattern ingester pods
5586 # -- Grace period to allow the pattern ingester to shutdown before it is killed
5587 terminationGracePeriodSeconds: 30
5588 podDisruptionBudget:
5589 # -- Enable Pod Disruption Budget
5591 # @schema additionalProperties:{"type":"string"}
5592 # -- Annotations for Pod Disruption Budget
5594 # @schema additionalProperties:{"type":"string"}
5595 # -- Labels for Pod Disruption Budget
5597 # @schema type:[string, integer, null]
5598 # -- Pod Disruption Budget minAvailable
5600 # @schema type:[string, integer, null]
5601 # -- Pod Disruption Budget maxUnavailable
5602 maxUnavailable: null
5603 # @schema type:[string, null]
5604 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5605 unhealthyPodEvictionPolicy: null
5606 # @schema additionalProperties:true
5607 # -- Node selector for pattern ingester pods
5609 # @schema item:object
5610 # -- Topology Spread Constraints for pattern ingester pods
5611 # The value will be passed through tpl.
5612 topologySpreadConstraints: []
5614 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5618 # -- Enable creating PVCs for the pattern ingester
5620 # -- Size of persistent disk
5622 # @schema type:[string, null]
5623 # -- Storage class to be used.
5624 # If defined, storageClassName: <storageClass>.
5625 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5626 # If empty or set to null, no storageClassName spec is
5627 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5629 # -- List of the pattern ingester PVCs
5630 # @notationType -- list
5633 # -- Set access modes on the PersistentVolumeClaim
5637 # @schema type:[string, null]
5638 # -- Storage class to be used.
5639 # If defined, storageClassName: <storageClass>.
5640 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5641 # If empty or set to null, no storageClassName spec is
5642 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5644 # @schema type:[string, null]
5645 # -- Volume attributes class name to be used.
5646 # If empty or set to null, no volumeAttributesClassName spec is set.
5647 # Requires Kubernetes 1.31
5648 volumeAttributesClassName: null
5649 # @schema additionalProperties:{"type":"string"}
5650 # -- Annotations for pattern ingester PVCs
5652 # @schema additionalProperties:{"type":"string"}
5653 # -- Labels for pattern ingester PVCs
5657 # -- Enable StatefulSetAutoDeletePVC feature
5658 enableStatefulSetAutoDeletePVC: false
5662 # -- Specifies whether a ServiceAccount should be created
5664 # @schema type:[string, null]
5665 # -- The name of the ServiceAccount to use.
5666 # If not set and create is true, a name is generated using the fullname template
5668 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5669 # -- Image pull secrets for the service account
5670 imagePullSecrets: []
5671 # @schema additionalProperties:{"type":"string"}
5672 # -- Annotations for the service account
5674 # @schema additionalProperties:{"type":"string"}
5675 # -- Labels for the service account
5677 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5678 automountServiceAccountToken: true
5679# -- Configuration for the ruler
5681 # -- The ruler component is optional and can be disabled if desired.
5683 # -- Kind of ruler deployment. StatefulSet and Deployment are supported.
5685 # -- EXPERIMENTAL: Enable creating a Job to recreate the ruler StatefulSet when the ruler configuration is changed.
5686 ## Only applicable if `ruler.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5687 statefulSetRecreateJob:
5689 # -- Whether to enable the rules sidecar
5691 # @schema type:[integer, null]
5692 # -- Number of replicas for the ruler. Set to null to omit spec.replicas from the workload,
5693 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5695 # -- hostAliases to add
5697 # @schema type:[boolean, null]
5701 # -- Use the host's user namespace in the ruler
5704 # @schema type:[string, null]
5705 # -- The Docker registry for the ruler image. Overrides `loki.image.registry`
5707 # @schema type:[string, null]
5708 # -- Docker image repository for the ruler image. Overrides `loki.image.repository`
5710 # @schema type:[string, null]
5711 # -- Docker image tag for the ruler image. Overrides `loki.image.tag`
5713 # @schema type:[string, null]
5714 # -- Command to execute instead of defined in Docker image
5716 # @schema type:[string, null]
5717 # -- The name of the PriorityClass for ruler pods
5718 priorityClassName: null
5719 # @schema additionalProperties:{"type":"string"}
5720 # -- Labels for ruler
5722 # @schema additionalProperties:{"type":"string"}
5723 # -- Annotations for ruler
5725 # @schema additionalProperties:{"type":"string"}
5726 # -- Labels for ruler pods
5728 # @schema additionalProperties:{"type":"string"}
5729 # -- Annotations for ruler pods
5731 # @schema additionalProperties:{"type":"string"};deprecated:true
5732 # -- Labels for ruler service
5733 # @deprecated -- This option is deprecated in favor of `ruler.service.labels`
5735 # @schema additionalProperties:{"type":"string"};deprecated:true
5736 # -- Annotations for ruler service
5737 # @deprecated -- This option is deprecated in favor of `ruler.service.annotations`
5738 serviceAnnotations: {}
5740 # @schema additionalProperties:{"type":"string"}
5741 # -- Annotations for ruler Service
5743 # @schema additionalProperties:{"type":"string"}
5744 # -- Additional labels for ruler Service
5746 # -- Service Type for ruler Service
5748 # -- trafficDistribution for ruler Service
5749 trafficDistribution: ""
5750 # -- Session affinity for ruler Service
5752 # @schema additionalProperties:true
5753 # -- Session affinity config for ruler Service
5754 sessionAffinityConfig: {}
5755 # -- ipFamilyPolicy for ruler Service
5756 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5758 # -- ipFamilies for ruler Service
5759 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5761 # -- Adds the appProtocol field to the ruler service. This allows ruler to work with istio protocol selection.
5763 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5765 # -- Additional CLI args for the ruler
5767 # -- Environment variables to add to the ruler pods
5769 # -- Environment variables from secrets or configmaps to add to the ruler pods
5771 # -- Volume mounts to add to the ruler pods
5772 extraVolumeMounts: []
5773 # -- Volumes to add to the ruler pods
5775 # @schema additionalProperties:true
5776 # -- Resource requests and limits for the ruler
5778 # -- Container resize policy for the ruler
5781 # - resourceName: cpu
5782 # restartPolicy: NotRequired
5783 # - resourceName: memory
5784 # restartPolicy: RestartContainer
5786 # @schema type:[string, array, null]
5787 # -- Containers to add to the ruler pods
5789 # @schema type:[string, array, null]
5790 # -- Init containers to add to the ruler pods
5792 # -- Grace period to allow the ruler to shutdown before it is killed
5793 terminationGracePeriodSeconds: 300
5794 podDisruptionBudget:
5795 # -- Enable Pod Disruption Budget
5797 # @schema additionalProperties:{"type":"string"}
5798 # -- Annotations for Pod Disruption Budget
5800 # @schema additionalProperties:{"type":"string"}
5801 # -- Labels for Pod Disruption Budget
5803 # @schema type:[string, integer, null]
5804 # -- Pod Disruption Budget minAvailable
5806 # @schema type:[string, integer, null]
5807 # -- Pod Disruption Budget maxUnavailable
5808 maxUnavailable: null
5809 # @schema type:[string, null]
5810 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5811 unhealthyPodEvictionPolicy: null
5812 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5813 # -- Affinity for ruler pods.
5814 # @default -- Hard node anti-affinity
5815 # The value will be passed through tpl.
5818 requiredDuringSchedulingIgnoredDuringExecution:
5821 app.kubernetes.io/component: ruler
5822 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5823 app.kubernetes.io/instance: '{{ .Release.Name }}'
5824 topologyKey: kubernetes.io/hostname
5825 # @schema type:[string, integer, null];deprecated:true
5826 # -- Pod Disruption Budget maxUnavailable
5827 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5828 maxUnavailable: null
5829 # @schema additionalProperties:true
5830 # -- Node selector for ruler pods
5832 # @schema item:object
5833 # -- Topology Spread Constraints for ruler pods
5834 # The value will be passed through tpl.
5835 topologySpreadConstraints: []
5837 # @schema additionalProperties:true
5838 # -- DNSConfig for ruler pods
5841 # -- Enable creating PVCs which is required when using recording rules
5843 # -- Set access modes on the PersistentVolumeClaim
5846 # -- Size of persistent disk
5848 # @schema type:[string, null]
5849 # -- Storage class to be used.
5850 # If defined, storageClassName: <storageClass>.
5851 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5852 # If empty or set to null, no storageClassName spec is
5853 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5855 # @schema type:[string, null]
5856 # -- Volume attributes class name to be used.
5857 # If empty or set to null, no volumeAttributesClassName spec is set.
5858 # Requires Kubernetes 1.31
5859 volumeAttributesClassName: null
5860 # @schema additionalProperties:{"type":"string"}
5861 # -- Annotations for ruler PVCs
5863 # @schema additionalProperties:{"type":"string"}
5864 # -- Labels for ruler PVCs
5866 # @schema additionalProperties:true;deprecated:true
5867 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5868 # @deprecated -- This option is deprecated in favor of `ruler.service.appProtocol`
5871 # -- Directories containing rules files. If used, you must also configure `loki.rulerConfig.storage` to use local storage.
5876 # - name: should_fire
5878 # - alert: HighPercentageError
5880 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
5882 # sum(rate({app="foo", env="production"}[5m])) by (job)
5888 # summary: High error rate
5889 # - name: credentials_leak
5891 # - alert: http-credentials-leaked
5893 # message: "{{ $labels.job }} is leaking http basic auth credentials."
5894 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
5897 # severity: critical
5902 # - alert: HighThroughputLogStreams
5903 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
5908 # - name: should_fire
5910 # - alert: HighPercentageError
5912 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
5914 # sum(rate({app="foo", env="production"}[5m])) by (job)
5920 # summary: High error rate
5921 # - name: credentials_leak
5923 # - alert: http-credentials-leaked
5925 # message: "{{ $labels.job }} is leaking http basic auth credentials."
5926 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
5929 # severity: critical
5934 # - alert: HighThroughputLogStreams
5935 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
5939 # -- Specifies whether a ServiceAccount should be created
5941 # @schema type:[string, null]
5942 # -- The name of the ServiceAccount to use.
5943 # If not set and create is true, a name is generated using the fullname template
5945 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5946 # -- Image pull secrets for the service account
5947 imagePullSecrets: []
5948 # @schema additionalProperties:{"type":"string"}
5949 # -- Annotations for the service account
5951 # @schema additionalProperties:{"type":"string"}
5952 # -- Labels for the service account
5954 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5955 automountServiceAccountToken: true
5956# -- Configuration for the overrides-exporter
5958 # -- The overrides-exporter component is optional and can be disabled if desired.
5960 # -- Kind of backend workload. StatefulSet and Deployment are supported.
5962 # @schema type:[integer, null]
5963 # -- Number of replicas for the overrides-exporter. Set to null to omit spec.replicas from the workload,
5964 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5966 # @schema additionalProperties:true
5967 # -- DNSConfig for overrides-exporter
5969 # -- hostAliases to add
5971 # @schema type:[boolean, null]
5975 # -- Use the host's user namespace in the overrides-exporter
5978 # @schema type:[string, null]
5979 # -- The Docker registry for the overrides-exporter image. Overrides `loki.image.registry`
5981 # @schema type:[string, null]
5982 # -- Docker image repository for the overrides-exporter image. Overrides `loki.image.repository`
5984 # @schema type:[string, null]
5985 # -- Docker image tag for the overrides-exporter image. Overrides `loki.image.tag`
5987 # @schema type:[string, null]
5988 # -- Command to execute instead of defined in Docker image
5990 # @schema type:[string, null]
5991 # -- The name of the PriorityClass for overrides-exporter pods
5992 priorityClassName: null
5993 # @schema additionalProperties:{"type":"string"}
5994 # -- Labels for overrides-exporter
5996 # @schema additionalProperties:{"type":"string"}
5997 # -- Annotations for overrides-exporter
5999 # @schema additionalProperties:{"type":"string"}
6000 # -- Labels for overrides-exporter pods
6002 # @schema additionalProperties:{"type":"string"}
6003 # -- Annotations for overrides-exporter pods
6005 # @schema additionalProperties:{"type":"string"};deprecated:true
6006 # -- Labels for overrides-exporter service
6007 # @deprecated -- This option is deprecated in favor of `overridesExporter.service.labels`
6009 # @schema additionalProperties:{"type":"string"};deprecated:true
6010 # -- Annotations for overrides-exporter service
6011 # @deprecated -- This option is deprecated in favor of `overridesExporter.service.annotations`
6012 serviceAnnotations: {}
6014 # @schema additionalProperties:{"type":"string"}
6015 # -- Annotations for overrides-exporter Service
6017 # @schema additionalProperties:{"type":"string"}
6018 # -- Additional labels for overrides-exporter Service
6020 # -- Service Type for overrides-exporter Service
6022 # -- trafficDistribution for overrides-exporter Service
6023 trafficDistribution: ""
6024 # -- Session affinity for overrides-exporter Service
6026 # @schema additionalProperties:true
6027 # -- Session affinity config for overrides-exporter Service
6028 sessionAffinityConfig: {}
6029 # -- ipFamilyPolicy for overrides-exporter Service
6030 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6032 # -- ipFamilies for overrides-exporter Service
6033 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6035 # -- Adds the appProtocol field to the overrides-exporter service. This allows overrides-exporter to work with istio protocol selection.
6037 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
6039 # -- Additional CLI args for the overrides-exporter
6041 # -- Environment variables to add to the overrides-exporter pods
6043 # -- Environment variables from secrets or configmaps to add to the overrides-exporter pods
6045 # -- Volume mounts to add to the overrides-exporter pods
6046 extraVolumeMounts: []
6047 # -- Volumes to add to the overrides-exporter pods
6049 # @schema additionalProperties:true
6050 # -- Resource requests and limits for the overrides-exporter
6052 # -- Container resize policy for the overrides-exporter
6055 # - resourceName: cpu
6056 # restartPolicy: NotRequired
6057 # - resourceName: memory
6058 # restartPolicy: RestartContainer
6060 # @schema type:[string, array, null]
6061 # -- Containers to add to the overrides-exporter pods
6063 # @schema type:[string, array, null]
6064 # -- Init containers to add to the overrides-exporter pods
6066 # -- Grace period to allow the overrides-exporter to shutdown before it is killed
6067 terminationGracePeriodSeconds: 300
6068 podDisruptionBudget:
6069 # -- Enable Pod Disruption Budget
6071 # @schema additionalProperties:{"type":"string"}
6072 # -- Annotations for Pod Disruption Budget
6074 # @schema additionalProperties:{"type":"string"}
6075 # -- Labels for Pod Disruption Budget
6077 # @schema type:[string, integer, null]
6078 # -- Pod Disruption Budget minAvailable
6080 # @schema type:[string, integer, null]
6081 # -- Pod Disruption Budget maxUnavailable
6082 maxUnavailable: null
6083 # @schema type:[string, null]
6084 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
6085 unhealthyPodEvictionPolicy: null
6086 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6087 # -- Affinity for overrides-exporter pods.
6088 # @default -- Hard node anti-affinity
6089 # The value will be passed through tpl.
6092 requiredDuringSchedulingIgnoredDuringExecution:
6095 app.kubernetes.io/component: overrides-exporter
6096 app.kubernetes.io/name: '{{ include "loki.name" . }}'
6097 app.kubernetes.io/instance: '{{ .Release.Name }}'
6098 topologyKey: kubernetes.io/hostname
6099 # @schema type:[string, integer, null];deprecated:true
6100 # -- Pod Disruption Budget maxUnavailable
6101 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6102 maxUnavailable: null
6103 # @schema additionalProperties:true
6104 # -- Node selector for overrides-exporter pods
6106 # @schema item:object
6107 # -- Topology Spread Constraints for overrides-exporter pods
6108 # The value will be passed through tpl.
6109 topologySpreadConstraints: []
6111 # @schema additionalProperties:true;deprecated:true
6112 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
6113 # @deprecated -- This option is deprecated in favor of `overridesExporter.service.appProtocol`
6117 # -- Specifies whether a ServiceAccount should be created
6119 # @schema type:[string, null]
6120 # -- The name of the ServiceAccount to use.
6121 # If not set and create is true, a name is generated using the fullname template
6123 # @schema item:object;itemProperties:{"name": {"type": "string"}}
6124 # -- Image pull secrets for the service account
6125 imagePullSecrets: []
6126 # @schema additionalProperties:{"type":"string"}
6127 # -- Annotations for the service account
6129 # @schema additionalProperties:{"type":"string"}
6130 # -- Labels for the service account
6132 # -- Set this toggle to false to opt out of automounting API credentials for the service account
6133 automountServiceAccountToken: true
6134# You can use a self hosted memcached by setting enabled to false and providing addresses.
6136 # -- Enable the built in memcached server provided by the chart
6139 # -- Memcached Docker image registry
6141 # -- Memcached Docker image repository
6142 repository: scratch-images/test-tmp/memcached
6143 # -- Memcached Docker image tag
6144 tag: 1.6.45-r3@sha256:298545e559a76d4e078110b586facc7f48bcdf48ea60b943e28b51a9b5da3751
6145 # -- Memcached Docker image pull policy
6146 pullPolicy: IfNotPresent
6147 # @schema skipProperties:true;additionalProperties:true
6148 # -- The SecurityContext override for memcached pods
6155 type: RuntimeDefault
6156 # @schema type:[string, null]
6157 # -- The name of the PriorityClass for memcached pods
6158 priorityClassName: null
6159 # @schema skipProperties:true;additionalProperties:true
6160 # -- The SecurityContext for memcached containers
6161 containerSecurityContext:
6162 readOnlyRootFilesystem: true
6165 allowPrivilegeEscalation: false
6168 type: RuntimeDefault
6169 # @schema skipProperties:true;additionalProperties:true
6170 # -- Readiness probe for memcached pods (probe port defaults to container port)
6174 initialDelaySeconds: 5
6178 # @schema skipProperties:true;additionalProperties:true
6179 # -- Liveness probe for memcached pods
6183 initialDelaySeconds: 30
6187 # @schema skipProperties:true;additionalProperties:true
6188 # -- Startup probe for memcached pods
6191 # -- Specifies whether a ServiceAccount should be created
6193 # @schema type:[string, null]
6194 # -- The name of the ServiceAccount to use.
6195 # If not set and create is true, a name is generated using the fullname template
6197 # @schema item:object;itemProperties:{"name": {"type": "string"}}
6198 # -- Image pull secrets for the service account
6199 imagePullSecrets: []
6200 # @schema additionalProperties:{"type":"string"}
6201 # -- Annotations for the service account
6203 # @schema additionalProperties:{"type":"string"}
6204 # -- Labels for the service account
6206 # -- Set this toggle to false to opt out of automounting API credentials for the service account
6207 automountServiceAccountToken: false
6209 # -- Whether memcached metrics should be exported
6212 # -- Memcached exporter Docker image registry
6214 # -- Memcached exporter Docker image repository
6215 repository: scratch-images/test-tmp/memcached-exporter
6216 # -- Memcached exporter Docker image tag
6217 tag: 0.17.0-r3@sha256:b4fa72b928c60add846a6d42b031d562e6d7cbfd30914752f57a94617c36b132
6218 # -- Memcached exporter Docker image pull policy
6219 pullPolicy: IfNotPresent
6220 # @schema additionalProperties:true
6224 # -- Container resize policy for the memcached exporter
6227 # - resourceName: cpu
6228 # restartPolicy: NotRequired
6229 # - resourceName: memory
6230 # restartPolicy: RestartContainer
6232 # @schema skipProperties:true;additionalProperties:true
6233 # -- The SecurityContext for memcached exporter containers
6234 containerSecurityContext:
6235 readOnlyRootFilesystem: true
6238 allowPrivilegeEscalation: false
6241 type: RuntimeDefault
6242 # -- Extra args to add to the exporter container.
6245 # memcached.tls.enable: true
6246 # memcached.tls.cert-file: /certs/cert.crt
6247 # memcached.tls.key-file: /certs/cert.key
6248 # memcached.tls.ca-file: /certs/ca.crt
6249 # memcached.tls.insecure-skip-verify: false
6250 # memcached.tls.server-name: memcached
6252 # @schema skipProperties:true;additionalProperties:true
6253 # -- Liveness probe for memcached exporter
6258 initialDelaySeconds: 30
6262 # @schema skipProperties:true;additionalProperties:true
6263 # -- Readiness probe for memcached exporter
6268 initialDelaySeconds: 5
6272 # @schema skipProperties:true;additionalProperties:true
6273 # -- Startup probe for memcached exporter
6276 # -- Specifies whether memcached based results-cache should be enabled
6278 # -- Comma separated addresses list in DNS Service Discovery format
6279 addresses: dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "results-cache") }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
6280 # -- Specify how long cached results should be stored in the results-cache before being expired
6281 defaultValidity: 12h
6282 # -- Memcached operation timeout
6284 # -- Total number of results-cache replicas
6286 # -- Port of the results-cache service
6288 # -- Amount of memory allocated to results-cache for object storage (in MB).
6289 allocatedMemory: 1024
6290 # -- Amount of cpu allocated to results-cache for object storage (in integer or millicores).
6292 # -- Maximum item results-cache for memcached (in MB).
6294 # -- Maximum number of connections allowed
6295 connectionLimit: 16384
6296 # -- Max memory to use for cache write back
6297 writebackSizeLimit: 500MB
6298 # -- Max number of objects to use for cache write back
6299 writebackBuffer: 500000
6300 # -- Number of parallel threads for cache write back
6301 writebackParallelism: 1
6302 # -- Extra init containers for results-cache pods
6304 # @schema additionalProperties:{"type":"string"}
6305 # -- Annotations for the results-cache pods
6307 # @schema additionalProperties:true
6308 # -- Node selector for results-cache pods
6310 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6311 # -- Affinity for results-cache pods
6313 # @schema item:object
6314 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
6315 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
6316 topologySpreadConstraints: []
6317 # topologyKey: kubernetes.io/hostname
6318 # whenUnsatisfiable: ScheduleAnyway
6319 # -- Tolerations for results-cache pods
6321 # @schema type:[string, integer, null];deprecated:true
6322 # -- Pod Disruption Budget maxUnavailable
6323 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6325 podDisruptionBudget:
6326 # -- Enable Pod Disruption Budget
6328 # @schema additionalProperties:{"type":"string"}
6329 # -- Annotations for Pod Disruption Budget
6331 # @schema additionalProperties:{"type":"string"}
6332 # -- Labels for Pod Disruption Budget
6334 # @schema type:[string, integer, null]
6335 # -- Pod Disruption Budget minAvailable
6337 # @schema type:[string, integer, null]
6338 # -- Pod Disruption Budget maxUnavailable
6339 maxUnavailable: null
6340 # @schema type:[string, null]
6341 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
6342 unhealthyPodEvictionPolicy: null
6343 # @schema additionalProperties:true
6344 # -- DNSConfig for results-cache
6346 # @schema type:[string, null]
6347 # -- The name of the PriorityClass for results-cache pods
6348 priorityClassName: null
6349 # @schema type:[boolean, null]
6350 # -- Use the host's user namespace in results-cache pods
6352 # @schema additionalProperties:{"type":"string"}
6353 # -- Labels for results-cache pods
6355 # @schema additionalProperties:{"type":"string"}
6356 # -- Annotations for results-cache pods
6358 # -- Management policy for results-cache pods
6359 podManagementPolicy: Parallel
6360 # -- Grace period to allow the results-cache to shutdown before it is killed
6361 terminationGracePeriodSeconds: 60
6362 # @schema skipProperties:true;additionalProperties:true
6363 # -- Stateful results-cache strategy
6366 # -- Add extended options for results-cache memcached container. The format is the same as for the memcached -o/--extend flag.
6368 # extraExtendedOptions: 'tls,modern,track_sizes'
6369 extraExtendedOptions: ""
6370 # -- Additional CLI args for results-cache
6372 # @schema type:[array, null]
6373 # -- Additional containers to be added to the results-cache pod.
6375 # -- Additional volumes to be added to the results-cache pod (applies to both memcached and exporter containers).
6378 # - name: extra-volume
6380 # secretName: extra-volume-secret
6382 # -- Additional volume mounts to be added to the results-cache pod (applies to both memcached and exporter containers).
6384 # extraVolumeMounts:
6385 # - name: extra-volume
6386 # mountPath: /etc/extra-volume
6388 extraVolumeMounts: []
6389 # @schema additionalProperties:true
6390 # -- Resource requests and limits for the results-cache
6391 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
6393 # -- Container resize policy for the results-cache
6396 # - resourceName: cpu
6397 # restartPolicy: NotRequired
6398 # - resourceName: memory
6399 # restartPolicy: RestartContainer
6401 # -- Service annotations and labels
6403 # @schema additionalProperties:{"type":"string"}
6405 # @schema additionalProperties:{"type":"string"}
6407 # -- Persistence settings for the results-cache
6409 # -- Enable creating PVCs for the results-cache
6411 # -- Size of persistent disk, must be in G or Gi
6413 # @schema type:[string, null]
6414 # -- Storage class to be used.
6415 # If defined, storageClassName: <storageClass>.
6416 # If set to "-", storageClassName: "", which disables dynamic provisioning.
6417 # If empty or set to null, no storageClassName spec is
6418 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6420 # @schema type:[string, null]
6421 # -- Volume attributes class name to be used.
6422 # If empty or set to null, no volumeAttributesClassName spec is set.
6423 # Requires Kubernetes 1.31
6424 volumeAttributesClassName: null
6425 # -- Volume mount path
6427 # @schema additionalProperties:{"type":"string"}
6428 # -- PVC additional labels
6431 # -- Append to the name of the resources to make names different for l1 and l2
6433 # -- Specifies whether memcached based chunks-cache should be enabled
6435 # -- Comma separated addresses list in DNS Service Discovery format
6436 addresses: 'dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "chunks-cache" "suffix" $.Values.chunksCache.suffix ) }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}'
6437 # -- Batchsize for sending and receiving chunks from chunks cache
6439 # -- Parallel threads for sending and receiving chunks from chunks cache
6441 # -- Memcached operation timeout
6443 # -- Specify how long cached chunks should be stored in the chunks-cache before being expired
6445 # -- Total number of chunks-cache replicas
6447 # -- Port of the chunks-cache service
6449 # -- Amount of memory allocated to chunks-cache for object storage (in MB).
6450 allocatedMemory: 8192
6451 # -- Amount of cpu allocated to chunks-cache for object storage (in integer or millicores).
6453 # -- Maximum item memory for chunks-cache (in MB).
6455 # -- Maximum number of connections allowed
6456 connectionLimit: 16384
6457 # -- Max memory to use for cache write back
6458 writebackSizeLimit: 500MB
6459 # -- Max number of objects to use for cache write back
6460 writebackBuffer: 500000
6461 # -- Number of parallel threads for cache write back
6462 writebackParallelism: 1
6463 # -- Extra init containers for chunks-cache pods
6465 # @schema additionalProperties:{"type":"string"}
6466 # -- Annotations for the chunks-cache pods
6468 # @schema additionalProperties:true
6469 # -- Node selector for chunks-cache pods
6471 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6472 # -- Affinity for chunks-cache pods
6474 # @schema item:object
6475 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
6476 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
6477 topologySpreadConstraints: []
6478 # topologyKey: kubernetes.io/hostname
6479 # whenUnsatisfiable: ScheduleAnyway
6480 # -- Tolerations for chunks-cache pods
6482 # @schema type:[string, integer, null];deprecated:true
6483 # -- Pod Disruption Budget maxUnavailable
6484 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6486 podDisruptionBudget:
6487 # -- Enable Pod Disruption Budget
6489 # @schema additionalProperties:{"type":"string"}
6490 # -- Annotations for Pod Disruption Budget
6492 # @schema additionalProperties:{"type":"string"}
6493 # -- Labels for Pod Disruption Budget
6495 # @schema type:[string, integer, null]
6496 # -- Pod Disruption Budget minAvailable
6498 # @schema type:[string, integer, null]
6499 # -- Pod Disruption Budget maxUnavailable
6500 maxUnavailable: null
6501 # @schema type:[string, null]
6502 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
6503 unhealthyPodEvictionPolicy: null
6504 # @schema additionalProperties:true
6505 # -- DNSConfig for chunks-cache
6507 # @schema type:[string, null]
6508 # -- The name of the PriorityClass for chunks-cache pods
6509 priorityClassName: null
6510 # @schema type:[boolean, null]
6511 # -- Use the host's user namespace in chunks-cache pods
6513 # @schema additionalProperties:{"type":"string"}
6514 # -- Labels for chunks-cache pods
6516 # @schema additionalProperties:{"type":"string"}
6517 # -- Annotations for chunks-cache pods
6519 # -- Management policy for chunks-cache pods
6520 podManagementPolicy: Parallel
6521 # -- Grace period to allow the chunks-cache to shutdown before it is killed
6522 terminationGracePeriodSeconds: 60
6523 # @schema skipProperties:true;additionalProperties:true
6524 # -- Stateful chunks-cache strategy
6527 # -- Add extended options for chunks-cache memcached container. The format is the same as for the memcached -o/--extend flag.
6529 # extraExtendedOptions: 'tls,no_hashexpand'
6530 extraExtendedOptions: ""
6531 # -- Additional CLI args for chunks-cache
6533 # @schema type:[array, null]
6534 # -- Additional containers to be added to the chunks-cache pod.
6536 # -- Additional volumes to be added to the chunks-cache pod (applies to both memcached and exporter containers).
6539 # - name: extra-volume
6541 # secretName: extra-volume-secret
6543 # -- Additional volume mounts to be added to the chunks-cache pod (applies to both memcached and exporter containers).
6545 # extraVolumeMounts:
6546 # - name: extra-volume
6547 # mountPath: /etc/extra-volume
6549 extraVolumeMounts: []
6550 # @schema additionalProperties:true
6551 # -- Resource requests and limits for the chunks-cache
6552 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
6554 # -- Container resize policy for the chunks-cache
6557 # - resourceName: cpu
6558 # restartPolicy: NotRequired
6559 # - resourceName: memory
6560 # restartPolicy: RestartContainer
6562 # -- Service annotations and labels
6564 # @schema additionalProperties:{"type":"string"}
6566 # @schema additionalProperties:{"type":"string"}
6568 # -- Persistence settings for the chunks-cache
6570 # -- Enable creating PVCs for the chunks-cache
6572 # -- Size of persistent disk, must be in G or Gi
6574 # @schema type:[string, null]
6575 # -- Storage class to be used.
6576 # If defined, storageClassName: <storageClass>.
6577 # If set to "-", storageClassName: "", which disables dynamic provisioning.
6578 # If empty or set to null, no storageClassName spec is
6579 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6581 # @schema type:[string, null]
6582 # -- Volume attributes class name to be used.
6583 # If empty or set to null, no volumeAttributesClassName spec is set.
6584 # Requires Kubernetes 1.31
6585 volumeAttributesClassName: null
6586 # -- Volume mount path
6588 # @schema additionalProperties:{"type":"string"}
6590 # -- l2 memcache configuration
6592 # -- Append to the name of the resources to make names different for l1 and l2
6594 # -- The age of chunks should be transferred from l1 cache to l2
6596 l2ChunkCacheHandoff: 345600s
6597 # -- Specifies whether memcached based chunks-cache-l2 should be enabled
6599 # -- Comma separated addresses list in DNS Service Discovery format
6600 addresses: 'dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "chunks-cache" "suffix" $.Values.chunksCache.l2.suffix ) }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}'
6601 # -- Batchsize for sending and receiving chunks from chunks cache
6603 # -- Parallel threads for sending and receiving chunks from chunks cache
6605 # -- Memcached operation timeout
6607 # -- Specify how long cached chunks should be stored in the chunks-cache-l2 before being expired
6609 # -- Total number of chunks-cache-l2 replicas
6611 # -- Port of the chunks-cache-l2 service
6613 # -- Amount of memory allocated to chunks-cache-l2 for object storage (in MB).
6614 allocatedMemory: 8192
6615 # -- Amount of cpu allocated to chunks-cache-l2 for object storage (in integer or millicores).
6617 # -- Maximum item memory for chunks-cache-l2 (in MB).
6619 # -- Maximum number of connections allowed
6620 connectionLimit: 16384
6621 # -- Max memory to use for cache write back
6622 writebackSizeLimit: 500MB
6623 # -- Max number of objects to use for cache write back
6624 writebackBuffer: 500000
6625 # -- Number of parallel threads for cache write back
6626 writebackParallelism: 1
6627 # -- Extra init containers for chunks-cache-l2 pods
6629 # @schema additionalProperties:{"type":"string"}
6630 # -- Annotations for the chunks-cache-l2 pods
6632 # @schema additionalProperties:true
6633 # -- Node selector for chunks-cach-l2 pods
6635 # @schema skipProperties:true;additionalProperties:true
6636 # -- Affinity for chunks-cache-l2 pods
6638 # @schema item:object
6639 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
6640 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
6641 topologySpreadConstraints: []
6642 # topologyKey: kubernetes.io/hostname
6643 # whenUnsatisfiable: ScheduleAnyway
6644 # -- Tolerations for chunks-cache-l2 pods
6646 # @schema type:[string, integer, null];deprecated:true
6647 # -- Pod Disruption Budget maxUnavailable
6648 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6650 podDisruptionBudget:
6651 # -- Enable Pod Disruption Budget
6653 # @schema additionalProperties:{"type":"string"}
6654 # -- Annotations for Pod Disruption Budget
6656 # @schema additionalProperties:{"type":"string"}
6657 # -- Labels for Pod Disruption Budget
6661 # unhealthyPodEvictionPolicy: IfHealthyBudget
6662 # @schema additionalProperties:true
6663 # -- DNSConfig for chunks-cache-l2
6665 # @schema type:[string, null]
6666 # -- The name of the PriorityClass for chunks-cache-l2 pods
6667 priorityClassName: null
6668 # @schema type:[boolean, null]
6669 # -- Use the host's user namespace in chunks-cache-l2 pods
6671 # @schema additionalProperties:{"type":"string"}
6672 # -- Labels for chunks-cache-l2 pods
6674 # @schema additionalProperties:{"type":"string"}
6675 # -- Annotations for chunks-cache-l2 pods
6677 # -- Management policy for chunks-cache-l2 pods
6678 podManagementPolicy: Parallel
6679 # -- Grace period to allow the chunks-cache-l2 to shutdown before it is killed
6680 terminationGracePeriodSeconds: 60
6681 # @schema skipProperties:true;additionalProperties:true
6682 # -- Stateful chunks-cache strategy
6685 # -- Add extended options for chunks-cache-l2 memcached container. The format is the same as for the memcached -o/--extend flag.
6687 # extraExtendedOptions: 'tls,no_hashexpand'
6688 extraExtendedOptions: ""
6689 # -- Additional CLI args for chunks-cache-l2
6691 # @schema type:[array, null]
6692 # -- Additional containers to be added to the chunks-cache-l2 pod.
6694 # -- Additional volumes to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
6697 # - name: extra-volume
6699 # secretName: extra-volume-secret
6701 # -- Additional volume mounts to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
6703 # extraVolumeMounts:
6704 # - name: extra-volume
6705 # mountPath: /etc/extra-volume
6707 extraVolumeMounts: []
6708 # @schema additionalProperties:true
6709 # -- Resource requests and limits for the chunks-cache-l2
6710 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
6712 # -- Container resize policy for the chunks-cache-l2
6715 # - resourceName: cpu
6716 # restartPolicy: NotRequired
6717 # - resourceName: memory
6718 # restartPolicy: RestartContainer
6720 # -- Service annotations and labels
6722 # @schema additionalProperties:{"type":"string"}
6724 # @schema additionalProperties:{"type":"string"}
6726 # -- Persistence settings for the chunks-cache-l2
6728 # -- Enable creating PVCs for the chunks-cache-l2
6730 # -- Size of persistent disk, must be in G or Gi
6732 # @schema type:[string, null]
6733 # -- Storage class to be used.
6734 # If defined, storageClassName: <storageClass>.
6735 # If set to "-", storageClassName: "", which disables dynamic provisioning.
6736 # If empty or set to null, no storageClassName spec is
6737 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6739 # @schema type:[string, null]
6740 # -- Volume attributes class name to be used.
6741 # If empty or set to null, no volumeAttributesClassName spec is set.
6742 # Requires Kubernetes 1.31
6743 volumeAttributesClassName: null
6744 # -- Volume mount path
6746 # @schema additionalProperties:{"type":"string"}
6748######################################################################################################################
6750# Subchart configurations
6752######################################################################################################################
6754# @schema skipProperties:true;additionalProperties:true
6755# -- Setting for the Grafana Rollout Operator https://github.com/grafana/helm-charts/tree/main/charts/rollout-operator
6758 # @schema skipProperties:true;additionalProperties:true
6759 # -- podSecurityContext is the pod security context for the rollout operator.
6760 # When installing on OpenShift, override podSecurityContext settings with
6763 # podSecurityContext:
6773 type: RuntimeDefault
6774 # @schema skipProperties:true;additionalProperties:true
6775 # Set the container security context
6777 readOnlyRootFilesystem: true
6780 allowPrivilegeEscalation: false
6783 type: RuntimeDefault
6785 # -- Enable the rollout-operator webhooks. See https://github.com/grafana/rollout-operator/#webhooks.
6786 # Note that the webhooks require custom resource definitions. If upgrading, manually apply the files in the `crds` directory.
6788 # -- Timeout in seconds for the prepare-downscale mutating webhook. Must be between 1 and 30.
6790 # -- Validating and mutating webhook failure policy. `Ignore` or `Fail`.
6791 failurePolicy: "Ignore"
6792# -- Ignore MinIO deprecation validation when `minio.enabled=true`. This is a temporary compatibility escape hatch.
6793ignoreMinioDeprecation: false
6794# @schema skipProperties:true;additionalProperties:true
6795# -- Configuration for the minio subchart (deprecated)
6799 # Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
6800 # https://docs.min.io/docs/minio-erasure-code-quickstart-guide
6801 # Since we only have 1 replica, that means 2 drives must be used.
6805 rootPassword: supersecretpassword
6806 # The first user in the list below is used for Loki authentication.
6807 # You can add additional users if desired; they will not impact Loki.
6808 # `accessKey` = username, `secretKey` = password
6810 - accessKey: logs-user
6811 secretKey: supersecretpassword
6822 # @schema additionalProperties:{"type":"string"}
6824 # @schema additionalProperties:true
6829 # @schema type:[string, null]
6830 # Allow the address used by Loki to refer to Minio to be overridden
6832# @schema type:[array, object, string, null]
6833# Create extra manifests via values
6834# Can be a list or dictionary, both are passed through `tpl`. If dict, keys are ignored and only values are used.
6835# Objects can also be defined as multiline strings, useful for templating field names
6840# name: loki-alerting-rules
6842# loki-alerting-rules.yaml: |-
6848# sum(count_over_time({app="loki"} |~ "error")) > 0
6854# message: "loki has encountered errors"
6860# name: loki-distributed-basic-auth
6862# {{- range .Values.loki.tenants }}
6863# {{ .name }}: {{ b64enc .password | quote }}
6869 # -- The Docker registry and image for the k8s sidecar
6870 repository: scratch-images/test-tmp/k8s-sidecar
6871 # -- Docker image tag
6873 # -- Docker image sha. If empty, no sha will be used
6874 sha: sha256:46642034de7c0b26d01c2d4e5bc481c45645f854eacdb65a45a467a035399351
6875 # -- Docker image pull policy
6876 pullPolicy: IfNotPresent
6877 # @schema additionalProperties:true
6878 # -- Resource requests and limits for the sidecar
6880 # -- Container resize policy for the sidecar
6883 # - resourceName: cpu
6884 # restartPolicy: NotRequired
6885 # - resourceName: memory
6886 # restartPolicy: RestartContainer
6895 # @schema skipProperties:true;additionalProperties:true
6896 # -- The SecurityContext for the sidecar.
6898 readOnlyRootFilesystem: true
6902 allowPrivilegeEscalation: false
6904 type: RuntimeDefault
6905 # -- Set to true to skip tls verification for kube api calls.
6906 skipTlsVerify: false
6907 # -- Set to true to disable strict x509 verification for kube api calls.
6908 disableX509StrictVerification: false
6909 # -- Ensure that rule files aren't conflicting and being overwritten by prefixing their name with the namespace they are defined in.
6910 enableUniqueFilenames: false
6911 # @schema skipProperties:true;additionalProperties:true
6912 # -- Readiness probe definition.
6919 initialDelaySeconds: 3
6923 # @schema skipProperties:true;additionalProperties:true
6924 # -- Liveness probe definition.
6931 initialDelaySeconds: 30
6935 # @schema skipProperties:true;additionalProperties:true
6936 # -- Startup probe definition.
6940 # -- Whether or not to create a sidecar to ingest rule from specific ConfigMaps and/or Secrets.
6942 # -- Label that the configmaps/secrets with rules will be marked with.
6944 # -- Label value that the configmaps/secrets with rules will be set to.
6946 # -- Folder into which the rules will be placed.
6948 # @schema type:[string, null]
6949 # -- The annotation overwriting the folder value.
6950 # The annotation value can be either an absolute or a relative path. Relative paths will be relative to FOLDER.
6951 # Useful for multi-tenancy setups.
6952 folderAnnotation: null
6953 # @schema type:[string, null]
6954 # -- Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
6955 # Otherwise the namespace in which the sidecar is running will be used.
6956 # It's also possible to specify 'ALL' to search in all namespaces.
6957 searchNamespace: null
6958 # -- Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH request, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
6960 # -- Search in configmap, secret, or both.
6962 # @schema type:[string, null]
6963 # -- Absolute path to the shell script to execute after a configmap or secret has been reloaded.
6965 # -- WatchServerTimeout: request to the server, asking it to cleanly close the connection after that.
6966 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S.
6967 watchServerTimeout: 60
6969 # -- WatchClientTimeout: is a client-side timeout, configuring your local socket.
6970 # If you have a network outage dropping all packets with no RST/FIN,
6971 # this is how long your client waits before realizing & dropping the connection.
6972 # Defaults to 66sec.
6973 watchClientTimeout: 60
6974 # -- Log level of the sidecar container.
6976 # -- Health Server port of the sidecar container.
6978# -- Monitoring section determines which monitoring features to enable
6980 # @schema type:[string, null]
6981 # -- Alternative namespace to deploy all monitoring resources (ServiceMonitor, PrometheusRule, ConfigMap dashboards) in.
6982 # Defaults to the release namespace.
6984 # -- Label name for the app_instance label injected into scraped metrics and recording rules.
6985 appInstanceLabelName: 'app_instance'
6986 # -- Value for the app_instance label injected into scraped metrics and recording rules.
6987 # Supports Helm templating.
6988 appInstanceLabelValue: '{{ include "loki.fullname" . }}'
6990 # -- When enabled, shows the cluster variable in dashboards.
6991 # If clusterName is also set, the chart adds 'cluster' labels to scraped
6992 # metrics, recording rules, and alerts, and includes 'cluster' in recording
6993 # rule aggregations. If clusterName is left empty, only dashboard changes
6994 # are applied — use this when an external tool (e.g. Grafana Alloy) manages
6995 # cluster label injection and PromQL rewriting.
6997 # -- Value for the 'cluster' label. Supports Helm templating.
6998 # When empty, recording rules and alerts are not modified — only dashboards
6999 # show the cluster variable.
7000 # e.g. clusterName: '{{ .Values.global.clusterName }}'
7002 # Dashboards for monitoring Loki
7004 # -- If enabled, create configmap resources with dashboards for monitoring Loki
7006 # @schema additionalProperties:{"type":"string"}
7007 # -- Additional annotations for the dashboards ConfigMap resources
7009 # @schema additionalProperties:{"type":"string"}
7010 # -- Labels for the dashboards ConfigMap resources
7012 grafana_dashboard: "1"
7013 # -- Timezone for the default dashboards
7014 defaultDashboardsTimezone: utc
7015 # -- Editable flag for the default dashboards
7016 defaultDashboardsEditable: true
7017 # -- Default interval for Grafana dashboards
7018 defaultDashboardsInterval: 1m
7020 # -- If enabled, GrafanaOperator resources for Grafana Operator are created to deploy the dashboards.
7022 # @schema additionalProperties:{"type":"string"}
7023 # -- Additional annotations for the GrafanaOperator resources
7025 # @schema additionalProperties:{"type":"string"}
7026 # -- Additional labels for the GrafanaOperator resources
7028 # -- How frequently the operator should resync resources (in duration format)
7030 # @schema type:[string, null]
7031 # -- Which folder contains all dashboards in Grafana
7032 ## This folder will be created on the Root level
7033 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
7036 # @schema type:[string, null]
7037 # -- Which UID of the target folder contains all dashboards in Grafana
7038 ## This allows you to use subfolder hierarchy
7039 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
7042 # @schema type:[string, null]
7043 # -- Which GrafanaFolder reference contains all dashboards in Grafana
7044 ## This allows you to use subfolder hierarchy.
7045 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
7048 # @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector
7049 # -- instanceSelector for the GrafanaDashboard resources
7050 ## The grafana-operator matches this against the labels on your Grafana CR
7051 ## An empty selector (the default) matches every Grafana instance
7052 instanceSelector: {}
7053 # -- Recording rules for monitoring Loki, required for some dashboards
7055 # -- If enabled, create a PrometheusRule resource with Loki recording rules
7057 # @schema additionalProperties:{"type":"string"}
7058 # -- Additional labels for the PrometheusRule resource
7060 # @schema additionalProperties:{"type":"string"}
7061 # -- Additional annotations for the PrometheusRule resource
7063 # -- Additional labels applied to all individual recording rules
7064 additionalRuleLabels: {}
7065 # -- Additional annotations applied to all individual recording rules
7066 additionalRuleAnnotations: {}
7067 # -- Extra label dimensions added to all by() aggregation clauses in recording rules
7068 additionalAggregationLabels: []
7069 # -- Alert rules for monitoring Loki
7071 # -- If enabled, create a PrometheusRule resource with Loki alert rules
7073 # -- Additional labels for the alerts PrometheusRule resource
7075 # -- Additional annotations for the alerts PrometheusRule resource
7077 # -- Selectively disable individual alerts by name.
7078 # e.g.: disabled: { LokiRequestErrors: true }
7080 # -- Override for/severity on individual alerts.
7081 # e.g.: overrides: { LokiRequestErrors: { for: 5m, severity: warning } }
7083 # -- Global keepFiringFor applied to all alert rules
7085 # -- Additional labels applied to all individual alert rules
7086 additionalRuleLabels: {}
7087 # -- Additional annotations applied to all individual alert rules
7088 additionalRuleAnnotations: {}
7089 # -- Extra label dimensions added to all by() aggregation clauses in alert expressions
7090 additionalAggregationLabels: []
7091 # -- Additional PrometheusRule objects to create alongside the chart-managed ones.
7092 # Each key becomes the resource name suffix; the value must contain a 'groups' key
7093 # with standard Prometheus rule groups. Can contain both recording rules and alerts.
7095 # additionalPrometheusRules:
7098 # - name: my-loki-alerts
7100 # - alert: MyLokiAlert
7101 # expr: 'up{job="loki"} == 0'
7102 additionalPrometheusRules: {}
7103 # -- ServiceMonitor configuration
7105 # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
7107 # -- Namespace selector for ServiceMonitor resources
7108 namespaceSelector: {}
7109 # @schema additionalProperties:{"type":"string"}
7110 # -- ServiceMonitor annotations
7112 # @schema additionalProperties:{"type":"string"}
7113 # -- Additional ServiceMonitor labels
7115 # -- ServiceMonitor scrape interval
7116 # Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at
7117 # least 1/4 rate interval.
7119 # @schema type:[string, null]
7120 # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
7122 # -- ServiceMonitor relabel configs to apply to samples before scraping
7123 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
7125 # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
7126 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
7127 metricRelabelings: []
7128 # -- ServiceMonitor will use http by default, but you can pick https as well
7130 # @schema type:[object, null]
7131 # -- ServiceMonitor will use these tlsConfig settings to make the health check requests
7133 # -- ServiceMonitor job label prefix will be used to generate the job label for the scraped metrics.
7134 # -- The job label is required for the included dashboards to work.
7135 jobPrefix: '{{ include "loki.namespace" $ }}/'
7137# -- DEPRECATED Configuration for the table-manager. The table-manager is only necessary when using a deprecated
7138# index type such as Cassandra, Bigtable, or DynamoDB, it has not been necessary since loki introduced self-
7139# contained index types like 'boltdb-shipper' and 'tsdb'. This will be removed in a future helm chart.
7141 # -- Specifies whether the table-manager should be enabled
7144 # @schema type:[string, null]
7145 # -- The Docker registry for the table-manager image. Overrides `loki.image.registry`
7147 # @schema type:[string, null]
7148 # -- Docker image repository for the table-manager image. Overrides `loki.image.repository`
7150 # @schema type:[string, null]
7151 # -- Docker image tag for the table-manager image. Overrides `loki.image.tag`
7153 # @schema type:[string, null]
7154 # -- Command to execute instead of defined in Docker image
7156 # @schema type:[string, null]
7157 # -- The name of the PriorityClass for table-manager pods
7158 priorityClassName: null
7159 # @schema additionalProperties:{"type":"string"}
7160 # -- Labels for table-manager pods
7162 # @schema additionalProperties:{"type":"string"}
7163 # -- Annotations for table-manager deployment
7165 # @schema additionalProperties:{"type":"string"}
7166 # -- Annotations for table-manager pods
7169 # @schema additionalProperties:{"type":"string"}
7170 # -- Annotations for table-manager Service
7172 # @schema additionalProperties:{"type":"string"}
7173 # -- Additional labels for table-manager Service
7175 # -- Service Type for table-manager Service
7177 # -- trafficDistribution for table-manager Service
7178 trafficDistribution: ""
7179 # -- Session affinity for table-manager Service
7181 # @schema additionalProperties:true
7182 # -- Session affinity config for table-manager Service
7183 sessionAffinityConfig: {}
7184 # -- ipFamilyPolicy for table-manager Service
7185 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
7187 # -- ipFamilies for table-manager Service
7188 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
7190 # -- Adds the appProtocol field to the table-manager service. This allows table-manager to work with istio protocol selection.
7192 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
7194 # -- Additional CLI args for the table-manager
7196 # -- Environment variables to add to the table-manager pods
7198 # -- Environment variables from secrets or configmaps to add to the table-manager pods
7200 # -- Volume mounts to add to the table-manager pods
7201 extraVolumeMounts: []
7202 # -- Volumes to add to the table-manager pods
7204 # @schema additionalProperties:true
7205 # -- Resource requests and limits for the table-manager
7207 # -- Container resize policy for the table-manager
7210 # - resourceName: cpu
7211 # restartPolicy: NotRequired
7212 # - resourceName: memory
7213 # restartPolicy: RestartContainer
7215 # @schema type:[string, array, null]
7216 # -- Containers to add to the table-manager pods
7218 # -- Grace period to allow the table-manager to shutdown before it is killed
7219 terminationGracePeriodSeconds: 30
7220 # @schema type:[boolean, null]
7221 # -- Use the host's user namespace in table-manager pods
7223 # @schema type:[object, null];skipProperties:true;additionalProperties:true
7224 # -- Affinity for table-manager pods.
7225 # @default -- Hard node and anti-affinity
7226 # The value will be passed through tpl.
7229 requiredDuringSchedulingIgnoredDuringExecution:
7232 app.kubernetes.io/component: table-manager
7233 app.kubernetes.io/name: '{{ include "loki.name" . }}'
7234 app.kubernetes.io/instance: '{{ .Release.Name }}'
7235 topologyKey: kubernetes.io/hostname
7236 # @schema additionalProperties:true
7237 # -- DNS config table-manager pods
7239 # @schema additionalProperties:true
7240 # -- Node selector for table-manager pods
7242 # -- Tolerations for table-manager pods
7244 # -- Enable deletes by retention
7245 retention_deletes_enabled: false
7246 # @schema type:[string, integer]
7247 # -- Set retention period
7250 # -- Specifies whether a ServiceAccount should be created
7252 # @schema type:[string, null]
7253 # -- The name of the ServiceAccount to use.
7254 # If not set and create is true, a name is generated using the fullname template
7256 # @schema item:object;itemProperties:{"name": {"type": "string"}}
7257 # -- Image pull secrets for the service account
7258 imagePullSecrets: []
7259 # @schema additionalProperties:{"type":"string"}
7260 # -- Annotations for the service account
7262 # @schema additionalProperties:{"type":"string"}
7263 # -- Labels for the service account
7265 # -- Set this toggle to false to opt out of automounting API credentials for the service account
7266 automountServiceAccountToken: true