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 non-headless services
160 # @schema additionalProperties:{"type":"string"}
161 # -- Common labels for all non-headless 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
177 # @schema additionalProperties:{"type":"string"}
178 # -- Common annotations for all headless services
180 # @schema additionalProperties:{"type":"string"}
181 # -- Common labels for all headless services
183 # -- KEDA autoscaling shared configuration for all components that support KEDA
185 # -- Prometheus server address for KEDA triggers
186 prometheusAddress: ""
187 # -- Whether to skip SSL verification when connecting to Prometheus
189 # -- Whether to ignore null values from Prometheus queries
190 ignoreNullValues: true
191 # -- Custom HTTP headers to include in Prometheus requests. Useful for multi-tenant setups (e.g. "X-Scope-OrgID=tenant1")
193 # -- Interval (seconds) to poll each trigger. Overridable per component.
195 # -- Period (seconds) to wait after the last trigger reported active before scaling back to 0. Overridable per component.
197 # -- KEDA trigger authentication settings. Ref: https://keda.sh/docs/latest/concepts/authentication/
199 # -- Enable TriggerAuthentication for KEDA triggers
201 # -- Authentication modes for the trigger (e.g. "bearer", "basic")
203 # -- Secret key references for TriggerAuthentication
205 statefulSetRecreateJob:
206 # -- When a component sets `*.statefulSetRecreateJob.enabled`, the pre-upgrade Job can patch PVC storage requests and recreate the StatefulSet for podManagementPolicy, serviceName, or volumeClaimTemplates count/name/size changes. It does not migrate storageClass, accessModes, selectors, or VCT labels. See the chart README section StatefulSet immutability.
210 repository: chainguard-private/kubectl
211 # -- Overrides the image tag. Defaults to .Capabilities.KubeVersion.Version
212 tag: 1.36.5-r4@sha256:53d07ca0a9898bfd22a2628a32313cb92383a512096377d1bcdb4da6415c52cd
213######################################################################################################################
215# Base Loki Configs including kubernetes configurations and configurations for Loki itself,
216# see below for more specifics on Loki's configuration.
218######################################################################################################################
219# -- Configuration for running Loki
220# @default -- See values.yaml
222 # @schema skipProperties:true;additionalProperties:true
223 # Configures the liveness probe for all of the Loki pods
226 path: /loki/api/v1/status/buildinfo
232 # @schema skipProperties:true;additionalProperties:true
233 # Configures the readiness probe for all of the Loki pods
239 initialDelaySeconds: 15
243 # @schema skipProperties:true;additionalProperties:true
244 # Configures the startup probe for all of the Loki pods
247 # -- The Docker registry
249 # -- Docker image repository
250 repository: chainguard-private/loki
251 # @schema type:[string, null]
252 # -- Overrides the image tag whose default is the chart's appVersion
254 # @schema type:[string, null]
255 # -- Overrides the image tag with an image digest
256 digest: sha256:7f1d82be2eb068d9929d9d14d4eb16f1137f1cb0de5a5239e199e0813e256e35
257 # -- Docker image pull policy
258 pullPolicy: IfNotPresent
259 # @schema additionalProperties:{"type":"string"}
260 # -- Common annotations for all deployments/StatefulSets
262 # @schema additionalProperties:{"type":"string"}
263 # -- Common annotations for all pods
265 # @schema additionalProperties:{"type":"string"}
266 # -- Common labels for all pods
268 # @schema additionalProperties:{"type":"string"}
269 # -- Common annotations for all non-headless services
270 serviceAnnotations: {}
271 # @schema additionalProperties:{"type":"string"}
272 # -- Common labels for all non-headless services
274 # -- The number of old ReplicaSets to retain to allow rollback
275 revisionHistoryLimit: 10
276 # @schema skipProperties:true;additionalProperties:true
277 # -- The SecurityContext for Loki pods
280 fsGroupChangePolicy: OnRootMismatch
286 # @schema skipProperties:true;additionalProperties:true
287 # -- The SecurityContext for Loki containers
288 containerSecurityContext:
289 readOnlyRootFilesystem: true
293 allowPrivilegeEscalation: false
296 # -- Should enableServiceLinks be enabled. Default to enable
297 enableServiceLinks: true
298 # @schema additionalProperties:true
299 # -- DNS config for Loki pods
301 ######################################################################################################################
305 # There are several ways to pass configuration to Loki, listing them here in order of our preference for how
306 # you should use this chart.
307 # 1. Use the templated value of loki.config below and the corresponding override sections which follow.
308 # This allows us to set a lot of important Loki configurations and defaults and also allows us to maintain them
309 # over time as Loki changes and evolves.
310 # 2. Use the loki.structuredConfig section.
311 # This will completely override the templated value of loki.config, so you MUST provide the entire Loki config
312 # including any configuration that we set in loki.config unless you explicitly are trying to change one of those
313 # values and are not able to do so with the templated sections.
314 # If you choose this approach the burden is on you to maintain any changes we make to the templated config.
315 # 3. Use an existing secret or configmap to provide the configuration.
316 # This option is mostly provided for folks who have external processes which provide or modify the configuration.
317 # When using this option you can specify a different name for loki.generatedConfigObjectName and configObjectName
318 # if you have a process which takes the generated config and modifies it, or you can stop the chart from generating
319 # a config entirely by setting loki.generatedConfigObjectName to
321 ######################################################################################################################
323 # -- Defines what kind of object stores the configuration, a ConfigMap or a Secret.
324 # In order to move sensitive information (such as credentials) from the ConfigMap/Secret to a more secure location (e.g. vault), it is possible to use [environment variables in the configuration](https://grafana.com/docs/loki/latest/configuration/#use-environment-variables-in-the-configuration).
325 # Such environment variables can be then stored in a separate Secret and injected via the global.extraEnvFrom value. For details about environment injection from a Secret please see [Secrets](https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables).
326 configStorageType: ConfigMap
327 # -- The name of the object which Loki will mount as a volume containing the config.
328 # If the configStorageType is Secret, this will be the name of the Secret, if it is ConfigMap, this will be the name of the ConfigMap.
329 # The value will be passed through tpl.
330 configObjectName: '{{ include "loki.name" . }}'
331 # -- The name of the Secret or ConfigMap that will be created by this chart.
332 # If empty, no configmap or secret will be created.
333 # The value will be passed through tpl.
334 generatedConfigObjectName: '{{ include "loki.name" . }}'
335 # -- Config file contents for Loki
336 # @default -- See values.yaml
338 auth_enabled: {{ .Values.loki.auth_enabled }}
340 {{- with .Values.loki.server }}
342 {{- toYaml . | nindent 2}}
345 {{- with .Values.loki.pattern_ingester }}
347 {{- tpl (. | toYaml) $ | nindent 4 }}
351 {{- if .Values.loki.memberlistConfig }}
352 {{- toYaml .Values.loki.memberlistConfig | nindent 2 }}
354 {{- if .Values.loki.extraMemberlistConfig}}
355 {{- toYaml .Values.loki.extraMemberlistConfig | nindent 2}}
358 - {{ include "loki.memberlist" . }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
359 {{- with .Values.migrate.fromDistributed }}
361 - {{ .memberlistService }}
366 {{- with .Values.loki.ingester }}
368 {{- tpl (. | toYaml) $ | nindent 4 }}
371 {{- with .Values.loki.ingester_client }}
373 {{- tpl (. | toYaml) $ | nindent 4 }}
376 {{- with .Values.loki.block_builder }}
378 {{- tpl (. | toYaml) $ | nindent 4 }}
381 {{- if .Values.loki.commonConfig}}
383 {{- toYaml .Values.loki.commonConfig | nindent 2}}
385 {{- include "loki.commonStorageConfig" . | nindent 4}}
388 {{- with .Values.loki.limits_config }}
390 {{- tpl (. | toYaml) $ | nindent 4 }}
394 file: /etc/loki/runtime-config/runtime-config.yaml
396 {{- if .Values.chunksCache.enabled }}
397 {{- with .Values.chunksCache }}
400 default_validity: {{ .defaultValidity }}
402 writeback_goroutines: {{ .writebackParallelism }}
403 writeback_buffer: {{ .writebackBuffer }}
404 writeback_size_limit: {{ .writebackSizeLimit }}
406 batch_size: {{ .batchSize }}
407 parallelism: {{ .parallelism }}
409 addresses: {{ .addresses }}
410 consistent_hash: true
411 timeout: {{ .timeout }}
414 {{- with .Values.chunksCache.l2 }}
416 l2_chunk_cache_handoff: {{ .l2ChunkCacheHandoff }}
417 chunk_cache_config_l2:
418 default_validity: {{ .defaultValidity }}
420 writeback_goroutines: {{ .writebackParallelism }}
421 writeback_buffer: {{ .writebackBuffer }}
422 writeback_size_limit: {{ .writebackSizeLimit }}
424 batch_size: {{ .batchSize }}
425 parallelism: {{ .parallelism }}
427 addresses: {{ .addresses }}
428 consistent_hash: true
429 timeout: {{ .timeout }}
435 {{- if .Values.loki.schemaConfig }}
437 {{- toYaml .Values.loki.schemaConfig | nindent 2}}
440 {{- if .Values.loki.useTestSchema }}
442 {{- toYaml .Values.loki.testSchemaConfig | nindent 2}}
445 {{- if .Values.ruler.enabled }}
446 {{ include "loki.rulerConfig" . }}
449 {{- if and .Values.loki.storage.use_thanos_objstore .Values.ruler.enabled}}
451 {{- include "loki.rulerThanosStorageConfig" . | nindent 2 }}
454 {{- if or .Values.tableManager.retention_deletes_enabled .Values.tableManager.retention_period }}
456 retention_deletes_enabled: {{ .Values.tableManager.retention_deletes_enabled }}
457 retention_period: {{ .Values.tableManager.retention_period }}
461 align_queries_with_step: true
462 {{- with .Values.loki.query_range }}
463 {{- tpl (. | toYaml) $ | nindent 2 }}
465 {{- if .Values.resultsCache.enabled }}
466 {{- with .Values.resultsCache }}
470 default_validity: {{ .defaultValidity }}
472 writeback_goroutines: {{ .writebackParallelism }}
473 writeback_buffer: {{ .writebackBuffer }}
474 writeback_size_limit: {{ .writebackSizeLimit }}
476 addresses: {{ .addresses }}
477 consistent_hash: true
478 timeout: {{ .timeout }}
483 {{- with .Values.loki.storage_config }}
485 {{- if not (hasKey $.Values.loki.storage_config "use_thanos_objstore") }}
486 use_thanos_objstore: {{ $.Values.loki.storage.use_thanos_objstore }}
488 {{- tpl (. | toYaml) $ | nindent 4 }}
491 {{- with .Values.loki.query_scheduler }}
493 {{- tpl (. | toYaml) $ | nindent 4 }}
496 {{- with .Values.loki.compactor }}
498 {{- tpl (. | toYaml) $ | nindent 4 }}
501 {{- with .Values.loki.compactor_grpc_client }}
502 compactor_grpc_client:
503 {{- tpl (. | toYaml) $ | nindent 4 }}
506 {{- with .Values.loki.analytics }}
508 {{- tpl (. | toYaml) $ | nindent 4 }}
511 {{- if .Values.loki.ui.enabled }}
515 {{- with .Values.loki.querier }}
517 {{- tpl (. | toYaml) $ | nindent 4 }}
520 {{- with .Values.loki.index_gateway }}
522 {{- tpl (. | toYaml) $ | nindent 4 }}
525 {{- with .Values.loki.frontend }}
527 {{- tpl (. | toYaml) $ | nindent 4 }}
530 {{- with .Values.loki.frontend_worker }}
532 {{- tpl (. | toYaml) $ | nindent 4 }}
535 {{- with .Values.loki.distributor }}
537 {{- tpl (. | toYaml) $ | nindent 4 }}
541 enabled: {{ .Values.loki.tracing.enabled }}
543 {{- with .Values.loki.bloom_build }}
545 {{- tpl (. | toYaml) $ | nindent 4 }}
548 {{- with .Values.loki.bloom_gateway }}
550 {{- tpl (. | toYaml) $ | nindent 4 }}
553 {{- with .Values.loki.operational_config }}
555 {{- tpl (. | toYaml) $ | nindent 4 }}
557 # Should authentication be enabled
559 # @schema skipProperties:true;additionalProperties:true
560 # -- memberlist configuration (overrides embedded default)
562 # @schema skipProperties:true;additionalProperties:true
563 # -- Extra memberlist configuration
564 extraMemberlistConfig:
565 abort_if_cluster_join_fails: true
572 # -- Tenants list to be created on nginx htpasswd file, with name and password or passwordHash keys<br><br>
576 # - name: "test-user-1"<br>
577 # password: "test-password-1"<br>
578 # - name: "test-user-2"<br>
579 # passwordHash: "$2y$10$7O40CaY1yz7fu9O24k2/u.ct/wELYHRBsn25v/7AyuQ8E8hrLqpva" # generated using `htpasswd -nbBC10 test-user-2 test-password-2`
582 # @schema skipProperties:true;additionalProperties:true
583 # -- Check https://grafana.com/docs/loki/latest/configuration/#server for more info on the server configuration.
585 graceful_shutdown_timeout: 5s
586 grpc_listen_port: 9095
587 grpc_server_min_time_between_pings: '10s'
588 grpc_server_ping_without_stream_allowed: true
589 grpc_server_max_concurrent_streams: 1000
590 grpc_server_max_recv_msg_size: 104857600
591 grpc_server_max_send_msg_size: 104857600
592 http_listen_port: 3100
593 http_server_idle_timeout: 30s
594 http_server_read_timeout: 10m0s
595 http_server_write_timeout: 10m0s
598 # -- trafficDistribution for services
599 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
600 trafficDistribution: ""
601 # -- ipFamilyPolicy for all services
602 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
604 # -- ipFamilies for all services
605 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
608 # @schema additionalProperties:{"type":"string"}
609 # -- Additional annotations for headless Loki services
611 # @schema skipProperties:true;additionalProperties:true
614 reject_old_samples: true
615 reject_old_samples_max_age: 168h
616 max_cache_freshness_per_query: 10m
617 split_queries_by_interval: 15m
620 # -- Provides a reloadable runtime configuration file for some specific configuration
622 # @schema skipProperties:true;additionalProperties:true
623 # -- Check https://grafana.com/docs/loki/latest/configuration/#common_config for more info on how to provide a common configuration
625 path_prefix: /var/loki
626 replication_factor: 3
627 # -- The gRPC address of the compactor. The use of compactor_grpc_address is preferred over compactor_address.
628 # If a customized compactor_address is set, compactor_grpc_address should be set to an empty string.
629 compactor_grpc_address: '{{ include "loki.compactorAddress" . }}'
630 # @schema skipProperties:true;additionalProperties:true
631 # -- Storage config. Providing this will automatically populate all necessary storage configs in the templated config.
632 # -- In case of using thanos storage, enable use_thanos_objstore and the configuration should be done inside the object_store section.
634 # Loki requires a bucket for chunks and the ruler.
635 # Please provide these values if you are using object storage.
641 # @schema type:[string, null]
643 # @schema type:[string, null]
645 # @schema type:[string, null]
647 # @schema type:[string, null]
648 secretAccessKey: null
649 # @schema type:[string, null]
651 # @schema type:[string, null]
652 signatureVersion: null
653 s3ForcePathStyle: false
656 # -- Check https://grafana.com/docs/loki/latest/configure/#s3_storage_config for more info on how to provide a backoff_config
658 disable_dualstack: false
664 # @schema type:[string, null]
666 # @schema type:[string, null]
668 # @schema type:[string, null]
669 connectionString: null
670 useManagedIdentity: false
671 useFederatedToken: false
672 # @schema type:[string, null]
674 # @schema type:[string, null]
676 # @schema type:[string, null]
678 # @schema type:[string, null]
681 # @schema type:[string, null]
683 # @schema type:[string, null]
685 # @schema type:[string, null]
687 # @schema type:[string, null]
689 # @schema type:[string, null]
690 user_domain_name: null
691 # @schema type:[string, null]
693 # @schema type:[string, null]
695 # @schema type:[string, null]
697 # @schema type:[string, null]
699 # @schema type:[string, null]
701 # @schema type:[string, null]
703 # @schema type:[string, null]
705 # @schema type:[string, null]
706 project_domain_id: null
707 # @schema type:[string, null]
708 project_domain_name: null
709 # @schema type:[string, null]
711 # @schema type:[string, null]
713 # @schema type:[string, null]
715 # @schema type:[string, null]
716 connect_timeout: null
717 # @schema type:[string, null]
718 request_timeout: null
720 chunks_directory: /var/loki/chunks
721 rules_directory: /var/loki/rules
722 # Loki now supports using thanos storage clients for connecting to object storage backend.
723 # This will become the default way to configure storage in a future releases.
724 use_thanos_objstore: false
725 # @schema skipProperties:true;additionalProperties:true
727 # Type of object store. Valid options are: s3, gcs, azure
729 # @schema type:[string, null]
730 # Optional prefix for storage keys
732 # S3 configuration (when type is "s3")
734 # @schema type:[string, null]
737 # @schema type:[string, null]
740 # @schema type:[string, null]
741 # Optional access key
743 # @schema type:[string, null]
744 # Optional secret key
745 secret_access_key: null
746 # Optional. Enable if using self-signed TLS
748 # Optional server-side encryption configuration
750 # Optional HTTP client configuration
752 # GCS configuration (when type is "gcs")
754 # @schema type:[string, null]
757 # @schema type:[string, null]
758 # Optional service account JSON
759 service_account: null
760 # Azure configuration (when type is "azure")
762 # @schema type:[string, null]
763 # Storage account name
765 # @schema type:[string, null]
766 # Optional storage account key
768 # -- Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas
770 # -- a real Loki install requires a proper schemaConfig defined above this, however for testing or playing around
771 # you can enable useTestSchema
773 # @schema skipProperties:true;additionalProperties:true
778 object_store: '{{ include "loki.testSchemaObjectStore" . }}'
783 # @schema skipProperties:true;additionalProperties:true
784 ## A separate loki ruler storage configuration can be provided via rulerStorage.storage section:
788 # -- Check https://grafana.com/docs/loki/latest/configuration/#ruler for more info on configuring ruler
791 dir: /var/loki/ruler-wal
792 # -- Storage for the ruler. If defining rules in `ruler.directories`, this must be configured to use local storage as shown below.
796 # directory: /etc/loki/rules
797 # @schema skipProperties:true;additionalProperties:true
798 # -- Structured loki configuration, takes precedence over `loki.config`, `loki.schemaConfig`, `loki.storageConfig`
800 # @schema skipProperties:true;additionalProperties:true
801 # -- Additional query scheduler config
803 # @schema skipProperties:true;additionalProperties:true
804 # -- Additional storage config
807 index_gateway_client:
808 server_address: '{{ include "loki.indexGatewayAddress" . }}'
810 index_gateway_client:
811 server_address: '{{ include "loki.indexGatewayAddress" . }}'
813 working_directory: /var/loki/data/bloomshipper
818 # @schema skipProperties:true;additionalProperties:true
819 # -- Optional compactor configuration
821 # @schema skipProperties:true;additionalProperties:true
822 # -- Optional compactor grpc client configuration
823 compactor_grpc_client: {}
824 # @schema skipProperties:true;additionalProperties:true
825 # -- Optional pattern ingester configuration
828 # @schema skipProperties:true;additionalProperties:true
829 # -- Optional analytics configuration
831 # @schema skipProperties:true;additionalProperties:true
832 # -- Optional Loki UI: Provides access to a operators UI for Loki distributed. When enabled UI will be available at /ui/ of loki-gateway
834 # Disabled by default for backwards compatibility. Enable to use the Loki UI.
837 # enable gateway proxying to UI under /ui
839 # @schema skipProperties:true;additionalProperties:true
840 # -- Optional querier configuration
842 # @schema skipProperties:true;additionalProperties:true
843 # -- Optional querier configuration
845 # @schema skipProperties:true;additionalProperties:true
846 # -- Optional ingester configuration
849 flush_on_shutdown: true
850 # @schema skipProperties:true;additionalProperties:true
851 # -- Optional ingester client configuration
853 # @schema skipProperties:true;additionalProperties:true
854 # -- Optional block builder configuration
856 # @schema skipProperties:true;additionalProperties:true
857 # -- Optional index gateway configuration
860 # @schema skipProperties:true;additionalProperties:true
862 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
863 tail_proxy_url: '{{ include "loki.querierAddress" . }}'
864 # @schema skipProperties:true;additionalProperties:true
866 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
867 # @schema skipProperties:true;additionalProperties:true
868 # -- Optional distributor configuration
870 # @schema skipProperties:true;additionalProperties:true
874 # @schema skipProperties:true;additionalProperties:true
878 planner_address: '{{ include "loki.bloomPlannerAddress" . }}'
879 # @schema skipProperties:true;additionalProperties:true
883 addresses: '{{ include "loki.bloomGatewayAddresses" . }}'
884 # @schema skipProperties:true;additionalProperties:true
885 # -- Optional operational configuration
886 operational_config: {}
887######################################################################################################################
891######################################################################################################################
893# -- Section for configuring optional Helm test
896 # -- Used to directly query the metrics endpoint of the canary for testing, this approach avoids needing prometheus for testing.
897 # This in a newer approach to using prometheusAddress such that tests do not have a dependency on prometheus
898 canaryServiceAddress: 'http://{{ include "loki.resourceName" (dict "ctx" $ "component" "canary") }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}:3500/metrics'
899 # -- Address of the prometheus server to query for the test. This overrides any value set for canaryServiceAddress.
900 # This is kept for backward compatibility and may be removed in future releases. Previous value was 'http://prometheus:9090'
901 prometheusAddress: ""
902 # -- Number of times to retry the test before failing
904 # @schema additionalProperties:{"type":"string"}
905 # -- Additional labels for the test pods
907 # @schema additionalProperties:{"type":"string"}
908 # -- Additional annotations for test pods
910 # -- Image to use for loki canary
912 # -- The Docker registry
914 # -- Docker image repository
915 repository: grafana/loki-helm-test
916 # -- Overrides the image tag whose default is the chart's appVersion
918 # @schema type:[string, null]
919 # -- Overrides the image tag with an image digest
921 # -- Docker image pull policy
922 pullPolicy: IfNotPresent
923 # @schema type:[boolean, null]
924 # -- Use the host's user namespace in test pods
926# The Loki canary pushes logs to and queries from this loki installation to test
927# that it's working correctly
930 # -- The type of the loki canary k8s rollout. This can be a DaemonSet or Deployment.
932 # -- If true, the canary will send directly to Loki via the address configured for verification --
933 # -- If false, it will write to stdout and an Agent will be needed to scrape and send the logs --
935 # @schema type:[string, null]
936 # -- If set overwrites the default value set by loki.host helper function. Use this if gateway not enabled.
938 # -- The name of the label to look for at loki when doing the checks.
940 # @schema additionalProperties:{"type":"string"}
941 # -- Additional annotations for the `loki-canary` Daemonset
943 # @schema additionalProperties:{"type":"string"}
944 # -- Additional labels for the `loki-canary` Daemonset
946 # @schema additionalProperties:{"type":"string"}
947 # -- Additional annotations for each `loki-canary` pod
949 # @schema additionalProperties:{"type":"string"}
950 # -- Additional labels for each `loki-canary` pod
952 # -- The number of old ReplicaSets to retain to allow rollback
953 revisionHistoryLimit: 10
955 # @schema additionalProperties:{"type":"string"}
956 # -- Annotations for loki-canary Service
958 # @schema additionalProperties:{"type":"string"}
959 # -- Additional labels for loki-canary Service
961 # -- Additional CLI arguments for the 'loki-canary' command
963 # -- Environment variables to add to the canary pods
965 # -- Environment variables from secrets or configmaps to add to the canary pods
967 # -- Volume mounts to add to the canary pods
968 extraVolumeMounts: []
969 # -- Volumes to add to the canary pods
971 # @schema additionalProperties:true
972 # -- Resource requests and limits for the canary
974 # -- Container resize policy for the canary
977 # - resourceName: cpu
978 # restartPolicy: NotRequired
979 # - resourceName: memory
980 # restartPolicy: RestartContainer
982 # @schema additionalProperties:true
983 # -- DNS config for canary pods
985 # @schema additionalProperties:true
986 # -- Node selector for canary pods
988 # -- Tolerations for canary pods
990 # @schema type:[object, null];skipProperties:true;additionalProperties:true
991 # -- Affinity for canary pods
993 # -- Set this toggle to false to opt out of automounting API credentials for the service account
994 automountServiceAccountToken: false
995 # @schema type:[string, null]
996 # -- The name of the PriorityClass for loki-canary pods
997 priorityClassName: null
998 # @schema type:[boolean, null]
999 # -- Use the host's user namespace in loki-canary pods
1001 podDisruptionBudget:
1002 # -- Enable Pod Disruption Budget
1004 # @schema additionalProperties:{"type":"string"}
1005 # -- Annotations for Pod Disruption Budget
1007 # @schema additionalProperties:{"type":"string"}
1008 # -- Labels for Pod Disruption Budget
1010 # @schema type:[string, integer, null]
1011 # -- Pod Disruption Budget minAvailable
1013 # @schema type:[string, integer, null]
1014 # -- Pod Disruption Budget maxUnavailable
1015 maxUnavailable: null
1016 # @schema type:[string, null]
1017 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
1018 unhealthyPodEvictionPolicy: null
1019 # @schema skipProperties:true;additionalProperties:true
1020 # -- The SecurityContext for loki-canary pods
1023 fsGroupChangePolicy: OnRootMismatch
1028 type: RuntimeDefault
1029 # @schema skipProperties:true;additionalProperties:true
1030 # -- The SecurityContext for loki-canary containers
1031 containerSecurityContext:
1032 readOnlyRootFilesystem: true
1036 allowPrivilegeEscalation: false
1038 type: RuntimeDefault
1039 # -- Image to use for loki canary
1041 # -- The Docker registry
1043 # -- Docker image repository
1044 repository: chainguard-private/loki-canary
1045 # @schema type:[string, null]
1046 # -- Overrides the image tag whose default is the chart's appVersion
1048 # @schema type:[string, null]
1049 # -- Overrides the image tag with an image digest
1050 digest: sha256:603cbef54cb399cb7a9ccd106fff4c31251a3b27a96821b0e15b9f48a39b29b1
1051 # -- Docker image pull policy
1052 pullPolicy: IfNotPresent
1053 # @schema skipProperties:true;additionalProperties:true
1059 initialDelaySeconds: 15
1061 # @schema skipProperties:true;additionalProperties:true
1062 # -- Readiness probe
1067 initialDelaySeconds: 15
1069 # @schema skipProperties:true;additionalProperties:true
1072 # @schema skipProperties:true;additionalProperties:true
1073 # -- Update strategy for the `loki-canary` Daemonset pods
1077 # @schema type:[string, integer, null]
1078 # -- Pod Disruption Budget maxUnavailable
1080 # -- Replicas for `loki-canary` when using a Deployment
1082 # -- Tenant to use for loki-canary
1084 # -- Name of the tenant for loki-canary
1085 name: "self-monitoring"
1086 # @schema type:[string, null]
1087 # -- Password of the gateway for Basic auth for loki-canary
1090 # -- Specifies whether a ServiceAccount should be created
1092 # @schema type:[string, null]
1093 # -- The name of the ServiceAccount to use.
1094 # If not set and create is true, a name is generated using the fullname template
1096 # @schema item:object;itemProperties:{"name": {"type": "string"}}
1097 # -- Image pull secrets for the service account
1098 imagePullSecrets: []
1099 # @schema additionalProperties:{"type":"string"}
1100 # -- Annotations for the service account
1102 # @schema additionalProperties:{"type":"string"}
1103 # -- Labels for the service account
1105 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1106 automountServiceAccountToken: false
1107######################################################################################################################
1109# Service Accounts and Kubernetes RBAC
1111######################################################################################################################
1113 # -- Specifies whether a ServiceAccount should be created
1115 # @schema type:[string, null]
1116 # -- The name of the ServiceAccount to use.
1117 # If not set and create is true, a name is generated using the fullname template
1119 # @schema item:object;itemProperties:{"name": {"type": "string"}}
1120 # -- Image pull secrets for the service account
1121 imagePullSecrets: []
1122 # @schema additionalProperties:{"type":"string"}
1123 # -- Annotations for the service account
1125 # @schema additionalProperties:{"type":"string"}
1126 # -- Labels for the service account
1128 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1129 automountServiceAccountToken: true
1132 # -- For OpenShift set sccEnabled to 'true' to use the SecurityContextConstraints.
1134 # -- Toggle this to true to allow the use of hostPath volumes on OpenShift
1135 sccAllowHostDirVolumePlugin: false
1136 # -- Whether to install RBAC in the namespace only or cluster-wide. Useful if you want to watch ConfigMap globally.
1138######################################################################################################################
1140# Network Policy configuration
1142######################################################################################################################
1144 # -- Specifies whether Network Policies should be created
1147 # -- Specifies the Pods which are allowed to access the metrics port.
1148 # As this is cross-namespace communication, you also need the namespaceSelector.
1150 # -- Specifies the namespaces which are allowed to access the metrics port
1151 namespaceSelector: {}
1152 # -- Specifies specific network CIDRs which are allowed to access the metrics port.
1153 # In case you use namespaceSelector, you also have to specify your kubelet networks here.
1154 # The metrics ports are also used for probes.
1157 # -- Specifies the Pods which are allowed to access the http port.
1158 # As this is cross-namespace communication, you also need the namespaceSelector.
1160 # -- Specifies the namespaces which are allowed to access the http port
1161 namespaceSelector: {}
1163 # @schema type:[string, integer]
1164 # -- Specify the Alertmanager port used for alerting
1166 # -- Specifies the Alertmanager Pods.
1167 # As this is cross-namespace communication, you also need the namespaceSelector.
1169 # -- Specifies the namespace the Alertmanager is running in
1170 namespaceSelector: {}
1172 # -- Specify the port used for external storage, e.g. AWS S3
1174 # -- Specifies specific network CIDRs you want to limit access to
1177 # @schema type:[string, integer, null]
1178 # -- (int) Specify the port used for discovery
1180 # -- Specifies the Pods labels used for discovery.
1181 # As this is cross-namespace communication, you also need the namespaceSelector.
1183 # -- Specifies the namespace the discovery Pods are running in
1184 namespaceSelector: {}
1185######################################################################################################################
1187# Global memberlist configuration
1189######################################################################################################################
1191# Configuration for the memberlist service
1194 publishNotReadyAddresses: false
1195 # @schema additionalProperties:{"type":"string"}
1197######################################################################################################################
1199# Gateway and Ingress
1201# By default this chart will deploy a Nginx container to act as a gateway which handles routing of traffic
1202# and can also do auth.
1204# If you would prefer you can optionally disable this and enable using k8s ingress to do the incoming routing.
1206######################################################################################################################
1208# Configuration for the gateway
1210 # -- Specifies whether the gateway should be enabled
1212 # -- Number of replicas for the gateway
1214 # -- Default container port
1216 # -- Enable logging of 2xx and 3xx HTTP requests
1217 verboseLogging: true
1219 # -- Enable autoscaling for the gateway
1221 # -- Minimum autoscaling replicas for the gateway
1223 # -- Maximum autoscaling replicas for the gateway
1225 # @schema type:[integer, null]
1226 # -- Target CPU utilisation percentage for the gateway
1227 targetCPUUtilizationPercentage: 60
1228 # @schema type:[integer, null]
1229 # -- Target memory utilisation percentage for the gateway
1230 targetMemoryUtilizationPercentage: null
1231 # @schema skipProperties:true;additionalProperties:true
1232 # -- See `kubectl explain deployment.spec.strategy` for more
1233 # -- ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1234 # -- Behavior policies while scaling.
1237 # stabilizationWindowSeconds: 300
1243 # stabilizationWindowSeconds: 300
1247 # periodSeconds: 180
1249 # -- Enable KEDA autoscaling for the gateway. Mutually exclusive with autoscaling.enabled
1251 # @schema type:[integer, null]
1252 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
1253 pollingInterval: null
1254 # -- Minimum replicas for KEDA autoscaling
1256 # -- Maximum replicas for KEDA autoscaling
1258 # @schema type:[integer, null]
1259 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
1260 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
1261 cooldownPeriod: null
1262 # @schema additionalProperties:true
1263 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
1264 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
1266 # @schema skipProperties:true;additionalProperties:true
1267 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
1268 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
1270 # -- KEDA triggers for the gateway.
1271 # Ref: https://keda.sh/docs/latest/scalers/
1276 # -- The Docker registry for the gateway image
1278 # -- The gateway image repository
1279 repository: chainguard-private/nginx
1280 # -- The gateway image tag
1282 # @schema type:[string, null]
1283 # -- Overrides the gateway image tag with an image digest
1284 digest: sha256:236d94f6ce0dcab6a3eb0a3c03f9acad382879c32947d78caa1d3dbfd49a354b
1285 # -- The gateway image pull policy
1286 pullPolicy: IfNotPresent
1287 # @schema type:[string, null]
1288 # -- The name of the PriorityClass for gateway pods
1289 priorityClassName: null
1290 # @schema additionalProperties:{"type":"string"}
1291 # -- Annotations for gateway deployment
1293 # @schema additionalProperties:{"type":"string"}
1294 # -- Annotations for gateway pods
1296 # @schema additionalProperties:{"type":"string"}
1297 # -- Additional labels for gateway pods
1299 # -- Additional CLI args for the gateway
1301 # -- Environment variables to add to the gateway pods
1303 # -- Environment variables from secrets or configmaps to add to the gateway pods
1305 # -- Lifecycle for the gateway container
1307 # -- Volumes to add to the gateway pods
1309 # -- Volume mounts to add to the gateway pods
1310 extraVolumeMounts: []
1311 # @schema skipProperties:true;additionalProperties:true
1312 # -- The SecurityContext for gateway containers
1319 type: RuntimeDefault
1320 # @schema skipProperties:true;additionalProperties:true
1321 # -- The SecurityContext for gateway containers
1322 containerSecurityContext:
1323 readOnlyRootFilesystem: true
1327 type: "RuntimeDefault"
1328 allowPrivilegeEscalation: false
1329 # @schema type:[boolean, null]
1330 # -- Use the host's user namespace in the gateway
1332 # @schema additionalProperties:true
1333 # -- Resource requests and limits for the gateway
1335 # -- Container resize policy for the gateway
1338 # - resourceName: cpu
1339 # restartPolicy: NotRequired
1340 # - resourceName: memory
1341 # restartPolicy: RestartContainer
1343 # @schema type:[array, null]
1344 # -- Containers to add to the gateway pods
1346 # -- Grace period to allow the gateway to shutdown before it is killed
1347 terminationGracePeriodSeconds: 30
1348 podDisruptionBudget:
1349 # -- Enable Pod Disruption Budget
1351 # @schema additionalProperties:{"type":"string"}
1352 # -- Annotations for Pod Disruption Budget
1354 # @schema additionalProperties:{"type":"string"}
1355 # -- Labels for Pod Disruption Budget
1357 # @schema type:[string, integer, null]
1358 # -- Pod Disruption Budget minAvailable
1360 # @schema type:[string, integer, null]
1361 # -- Pod Disruption Budget maxUnavailable
1362 maxUnavailable: null
1363 # @schema type:[string, null]
1364 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
1365 unhealthyPodEvictionPolicy: null
1366 # @schema type:[object, null];skipProperties:true;additionalProperties:true
1367 # -- Affinity for gateway pods.
1368 # @default -- Hard node anti-affinity
1369 # The value will be passed through tpl.
1372 requiredDuringSchedulingIgnoredDuringExecution:
1375 app.kubernetes.io/component: gateway
1376 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1377 app.kubernetes.io/instance: '{{ .Release.Name }}'
1378 topologyKey: kubernetes.io/hostname
1379 # @schema additionalProperties:true
1380 # -- DNS config for gateway pods
1382 # @schema additionalProperties:true
1383 # -- Node selector for gateway pods
1385 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1386 automountServiceAccountToken: false
1387 # @schema item:object
1388 # -- Topology Spread Constraints for gateway pods
1389 # The value will be passed through tpl.
1390 topologySpreadConstraints: []
1392 # Gateway service configuration
1394 # -- Port of the gateway service
1396 # -- Type of the gateway service
1398 # @schema type:[string, null]
1399 # -- ClusterIP of the gateway service
1401 # @schema type:[integer, null]
1402 # -- (int) Node port if service type is NodePort
1404 # @schema type:[string, null]
1405 # -- Load balancer IPO address if service type is LoadBalancer
1406 loadBalancerIP: null
1407 # @schema additionalProperties:{"type":"string"}
1408 # -- Annotations for the gateway service
1410 # @schema additionalProperties:{"type":"string"}
1411 # -- Labels for gateway service
1413 # -- trafficDistribution for gateway Service
1414 trafficDistribution: ""
1415 # -- Session affinity for gateway Service
1417 # @schema additionalProperties:true
1418 # -- Session affinity config for gateway Service
1419 sessionAffinityConfig: {}
1420 # -- ipFamilyPolicy for gateway Service
1421 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1423 # -- ipFamilies for gateway Service
1424 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1427 # -- Specifies whether a ServiceAccount should be created
1429 # @schema type:[string, null]
1430 # -- The name of the ServiceAccount to use.
1431 # If not set and create is true, a name is generated using the fullname template
1433 # @schema item:object;itemProperties:{"name": {"type": "string"}}
1434 # -- Image pull secrets for the service account
1435 imagePullSecrets: []
1436 # @schema additionalProperties:{"type":"string"}
1437 # -- Annotations for the service account
1439 # @schema additionalProperties:{"type":"string"}
1440 # -- Labels for the service account
1442 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1443 automountServiceAccountToken: false
1444 # Gateway ingress configuration
1446 # -- Specifies whether an ingress for the gateway should be created
1448 # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
1449 ingressClassName: ""
1450 # @schema additionalProperties:{"type":"string"}
1451 # -- Annotations for the gateway ingress
1453 # @schema additionalProperties:{"type":"string"}
1454 # -- Labels for the gateway ingress
1456 # -- Hosts configuration for the gateway ingress, passed through the `tpl` function to allow templating
1458 - host: gateway.loki.example.com
1461 # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
1463 # -- TLS configuration for the gateway ingress. Hosts passed through the `tpl` function to allow templating
1465 - secretName: loki-gateway-tls
1467 - gateway.loki.example.com
1468 # Basic auth configuration
1470 # -- Enables basic authentication for the gateway
1472 # @schema type:[string, null]
1473 # -- The basic auth username for the gateway
1475 # @schema type:[string, null]
1476 # -- The basic auth password for the gateway
1478 # -- Uses the specified users from the `loki.tenants` list to create the htpasswd file.
1479 # if `loki.tenants` is not set, the `gateway.basicAuth.username` and `gateway.basicAuth.password` are used.
1480 # The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
1482 # @default -- Either `loki.tenants` or `gateway.basicAuth.username` and `gateway.basicAuth.password`.
1484 {{- with $tenants := .Values.loki.tenants }}
1485 {{- range $t := $tenants }}
1486 {{- $username := required "All tenants must have a 'name' set" $t.name }}
1487 {{- if $passwordHash := $t.passwordHash }}
1488 {{- printf "%s:%s\n" $username $passwordHash }}
1489 {{- else if $password := $t.password }}
1490 {{- printf "%s\n" (htpasswd $username $password) }}
1492 {{- fail "All tenants must have a 'password' or 'passwordHash' set" }}
1496 {{- printf "%s\n" (htpasswd (required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username) (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password)) }}
1498 # @schema type:[string, null]
1499 # -- Existing basic auth secret to use. Must contain '.htpasswd'
1500 existingSecret: null
1501 # -- Gateway API routes configuration. Mutually exclusive with gateway.ingress.
1502 # Use either ingress or route, but not both at once.
1503 # Each entry in the map creates a separate HTTPRoute resource. The key "main" produces
1504 # a route named after the gateway fullname; any other key appends the key as a suffix.
1505 # This allows defining multiple routes, e.g. one HTTPRoute and one GRPCRoute.
1508 # -- Specifies whether this Gateway API route should be created
1510 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1beta1.
1511 # If not set, the latest available version will be auto-detected.
1513 # -- Set the route kind. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
1515 # @schema additionalProperties:{"type":"string"}
1516 # -- Additional annotations for the route
1518 # @schema additionalProperties:{"type":"string"}
1519 # -- Additional labels for the route
1521 # -- Hostnames for the route
1523 # - gateway.loki.example.com
1524 # -- Parent gateway references to attach the route to
1526 # - name: my-gateway
1527 # namespace: gateway-namespace
1528 # -- Additional rules to prepend before the default catch-all rule.
1529 # Each entry is rendered into spec.rules as written (templating is supported),
1530 # so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules
1531 # with no backendRefs (e.g. RequestRedirect, URLRewrite).
1532 # Useful for advanced routing logic (e.g. header-based routing, auth policies, redirects).
1533 # Note: the chart-generated rule that points at the gateway service is always rendered
1534 # for this route — additionalRules are prepended, not a replacement.
1535 # Example HTTP-to-HTTPS redirect:
1538 # - type: RequestRedirect
1543 # - path: { type: PathPrefix, value: / }
1545 # -- Matches for the default rule. Defaults to match all paths.
1550 # -- Filters for the default rule
1552 # -- Timeouts for the default rule
1554 # @schema skipProperties:true;additionalProperties:true
1555 # -- liveness probe for the nginx container in the gateway pods.
1557 # @schema skipProperties:true;additionalProperties:true
1558 # Configures the readiness probe for the gateway
1563 initialDelaySeconds: 15
1565 # @schema skipProperties:true;additionalProperties:true
1566 # -- startup probe for the nginx container in the gateway pods.
1569 # -- Which schema to be used when building URLs. Can be 'http' or 'https'.
1571 # -- Enable listener for IPv6, disable on IPv4-only systems
1573 # -- NGINX log format
1575 main '$remote_addr - $remote_user [$time_local] $status '
1576 '"$request" $body_bytes_sent "$http_referer" '
1577 '"$http_user_agent" "$http_x_forwarded_for"';
1578 # -- Allows appending custom configuration to the server block
1580 # -- Allows appending custom configuration to the http block, passed through the `tpl` function to allow templating
1582 # -- Allows appending custom configuration inside every location block, useful for authentication or setting headers that are not inherited from the server block, passed through the `tpl` function to allow templating.
1584 {{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}
1585 # -- Allows customizing the `client_max_body_size` directive
1586 clientMaxBodySize: 4M
1587 # -- Whether ssl should be appended to the listen directive of the server block or not.
1589 # @schema type:[string, null]
1590 # -- Override Read URL
1592 # @schema type:[string, null]
1593 # -- Override Write URL
1594 customWriteUrl: null
1595 # @schema type:[string, null]
1596 # -- Override Backend URL
1597 customBackendUrl: null
1598 # -- Allows overriding the DNS resolver address nginx will use.
1600 # -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
1601 # @default -- See values.yaml
1603 {{- include "loki.nginxFile" . -}}
1605 # -- Whether gateway metrics should be exported
1609 repository: chainguard-private/access-log-exporter
1610 tag: 0.5.1-r1@sha256:1efae15625b89b54a32ddf87b6d0bd360717654126f3445560fffe402693e255
1611 pullPolicy: IfNotPresent
1612 # @schema additionalProperties:true
1616 # -- Container resize policy for the gateway metrics exporter
1619 # - resourceName: cpu
1620 # restartPolicy: NotRequired
1621 # - resourceName: memory
1622 # restartPolicy: RestartContainer
1624 # @schema skipProperties:true;additionalProperties:true
1625 # -- The SecurityContext for memcached exporter containers
1626 containerSecurityContext:
1627 allowPrivilegeEscalation: false
1628 readOnlyRootFilesystem: true
1632 type: RuntimeDefault
1637 # -- Extra args to add to the exporter container.
1639 # @schema skipProperties:true;additionalProperties:true
1640 # -- Liveness probe for memcached exporter
1645 initialDelaySeconds: 30
1649 # @schema skipProperties:true;additionalProperties:true
1650 # -- Readiness probe for memcached exporter
1655 initialDelaySeconds: 5
1659 # @schema skipProperties:true;additionalProperties:true
1660 # -- Startup probe for memcached exporter
1663 # @schema additionalProperties:{"type":"string"}
1664 # -- Annotations for the gateway metrics exporter service.
1665 # Use this instead of gateway.service.annotations to avoid propagating
1666 # annotations (e.g. external-dns) to the exporter ClusterIP service.
1668 # @schema additionalProperties:{"type":"string"}
1669 # -- Labels for the gateway metrics exporter service.
1671# -- Ingress configuration Use either this ingress or the gateway, but not both at once.
1672# If you enable this, make sure to disable the gateway.
1673# You'll need to supply authn configuration for your ingress controller.
1676 ingressClassName: ""
1677 # @schema additionalProperties:{"type":"string"}
1679 # @schema additionalProperties:{"type":"string"}
1680 # nginx.ingress.kubernetes.io/auth-type: basic
1681 # nginx.ingress.kubernetes.io/auth-secret: loki-distributed-basic-auth
1682 # nginx.ingress.kubernetes.io/auth-secret-type: auth-map
1683 # nginx.ingress.kubernetes.io/configuration-snippet: |
1684 # proxy_set_header X-Scope-OrgID $remote_user;
1686 # blackbox.monitoring.exclude: "true"
1688 # -- Paths that are exposed by Loki Distributor.
1689 # If deployment mode is Distributed, the requests are forwarded to the service:.
1690 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service:.
1691 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service:
1696 # -- Paths that are exposed by Loki Query Frontend.
1697 # If deployment mode is Distributed, the requests are forwarded to the service.
1698 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service`.
1699 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1702 # this path covers labels and labelValues endpoints
1706 - /loki/api/v1/query
1707 - /loki/api/v1/query_range
1709 # this path covers labels and labelValues endpoints
1710 - /loki/api/v1/label
1711 - /loki/api/v1/labels
1712 - /loki/api/v1/series
1713 - /loki/api/v1/index/stats
1714 - /loki/api/v1/index/volume
1715 - /loki/api/v1/index/volume_range
1716 - /loki/api/v1/format_query
1717 - /loki/api/v1/detected_field
1718 - /loki/api/v1/detected_fields
1719 - /loki/api/v1/detected_labels
1720 - /loki/api/v1/patterns
1721 # this path covers UI API
1723 # -- Paths that are exposed by Loki Ruler.
1724 # If deployment mode is Distributed, the requests are forwarded to the service.
1725 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1726 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service
1729 - /api/prom/api/v1/rules
1730 - /api/prom/api/v1/alerts
1731 - /loki/api/v1/rules
1732 - /prometheus/api/v1/rules
1733 - /prometheus/api/v1/alerts
1734 # -- Paths that are exposed by Loki Compactor.
1735 # If deployment mode is Distributed, the requests are forwarded to the service.
1736 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1737 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1739 - /loki/api/v1/delete
1740 # -- Hosts configuration for the ingress, passed through the `tpl` function to allow templating
1743 # -- TLS configuration for the ingress. Hosts passed through the `tpl` function to allow templating
1747# secretName: loki-distributed-tls
1749# -- Gateway API routes for direct routing to Loki services, bypassing the nginx gateway.
1750# Use either this or the top-level ingress, but not both at once.
1751# Each entry in the map creates a separate HTTPRoute resource. The key "main" produces
1752# a route named after the loki fullname; any other key appends the key as a suffix.
1753# This allows defining multiple routes, e.g. one HTTPRoute and one GRPCRoute.
1756 # -- Specifies whether this Gateway API route should be created
1758 # -- Gateway API version to use. Auto-detected from cluster capabilities if empty.
1760 # -- Kind of the route resource. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
1762 # @schema additionalProperties:{"type":"string"}
1763 # -- Annotations for the route
1765 # @schema additionalProperties:{"type":"string"}
1766 # -- Labels for the route
1768 # -- Hostnames for the route
1770 # -- Parent references for the route (required for Gateway API)
1772 # -- Additional rules to prepend before the generated path-routing rules.
1773 # Each entry is rendered into spec.rules as written (templating is supported),
1774 # so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules
1775 # with no backendRefs (e.g. RequestRedirect, URLRewrite).
1777 # @schema type:[integer, null]
1778 # -- Backend port override for all generated rules.
1779 # When unset, GRPCRoute automatically uses loki.server.grpc_listen_port (default 9095)
1780 # and all other kinds use loki.server.http_listen_port (default 3100).
1782 # -- Paths routed to each Loki service group. The target service depends on the deployment mode.
1783 # To produce a route that contains only `additionalRules` and no chart-generated path rules
1784 # (for example, a dedicated HTTP-to-HTTPS redirect route), set every entry below to an empty
1785 # list — e.g. `distributor: []`, `queryFrontend: []`, `ruler: []`, `compactor: []`.
1787 # -- Paths that are exposed by Loki Distributor.
1788 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.distributorFullname"}}`.
1789 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.writeFullname"}}`.
1790 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.fullname"}}`
1795 # -- Paths that are exposed by Loki Query Frontend.
1796 # If deployment mode is Distributed, the requests are forwarded to the service.
1797 # If deployment mode is SimpleScalable, the requests are forwarded to read k8s service.
1798 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1801 # this path covers labels and labelValues endpoints
1805 - /loki/api/v1/query
1806 - /loki/api/v1/query_range
1808 # this path covers labels and labelValues endpoints
1809 - /loki/api/v1/label
1810 - /loki/api/v1/labels
1811 - /loki/api/v1/series
1812 - /loki/api/v1/index/stats
1813 - /loki/api/v1/index/volume
1814 - /loki/api/v1/index/volume_range
1815 - /loki/api/v1/format_query
1816 - /loki/api/v1/detected_field
1817 - /loki/api/v1/detected_fields
1818 - /loki/api/v1/detected_labels
1819 - /loki/api/v1/patterns
1820 # this path covers UI API
1822 # -- Paths that are exposed by Loki Ruler.
1823 # If deployment mode is Distributed, the requests are forwarded to the service.
1824 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1825 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service.
1828 - /api/prom/api/v1/rules
1829 - /api/prom/api/v1/alerts
1830 - /loki/api/v1/rules
1831 - /prometheus/api/v1/rules
1832 - /prometheus/api/v1/alerts
1833 # -- Paths that are exposed by Loki Compactor.
1834 # If deployment mode is Distributed, the requests are forwarded to the service.
1835 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1836 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service.
1838 - /loki/api/v1/delete
1839######################################################################################################################
1843######################################################################################################################
1845# -- Options that may be necessary when performing a migration from another helm chart
1847 # -- When migrating from a distributed chart like loki-distributed or enterprise-logs
1849 # -- Set to true if migrating from a distributed helm chart
1851 # -- If migrating from a distributed service, provide the distributed deployment's
1852 # memberlist service DNS so the new deployment can join its ring.
1853 memberlistService: ""
1854######################################################################################################################
1856# Single Binary Deployment
1858# For small Loki installations up to a few 10's of GB per day, or for testing and development.
1860######################################################################################################################
1862# -- Pod Disruption Budget for single binary deployment. Deprecated in favor of `singleBinary.podDisruptionBudget`
1865# Configuration for the single binary node(s)
1867 # -- Enable the single binary component. Requires `loki.deploymentMode` to be set to `SingleBinary`.
1869 # -- Kind of read deployment. StatefulSet and Deployment are supported.
1871 # @schema type:[integer, null]
1872 # -- Number of replicas for the single binary. Set to null to omit spec.replicas from the workload,
1873 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
1875 # -- EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed.
1876 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
1877 statefulSetRecreateJob:
1879 # @schema skipProperties:true;additionalProperties:true
1880 # -- UpdateStrategy or Strategy for single binary.
1884 # -- Whether to enable the rules sidecar
1887 # -- Enable autoscaling
1889 # -- Minimum autoscaling replicas for the single binary
1891 # -- Maximum autoscaling replicas for the single binary
1893 # @schema type:[integer, null]
1894 # -- Target CPU utilisation percentage for the single binary
1895 targetCPUUtilizationPercentage: 60
1896 # @schema type:[integer, null]
1897 # -- Target memory utilisation percentage for the single binary
1898 targetMemoryUtilizationPercentage: null
1899 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
1904 # name: loki_lines_total
1906 # type: AverageValue
1908 # @schema skipProperties:true;additionalProperties:true
1909 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
1911 # -- Enable autoscaling behaviours
1913 # -- define scale down policies, must conform to HPAScalingRules
1915 # -- define scale up policies, must conform to HPAScalingRules
1918 # -- Enable KEDA autoscaling for the single binary. Mutually exclusive with autoscaling.enabled
1920 # @schema type:[integer, null]
1921 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
1922 pollingInterval: null
1923 # -- Minimum replicas for KEDA autoscaling
1925 # -- Maximum replicas for KEDA autoscaling
1927 # @schema type:[integer, null]
1928 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
1929 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
1930 cooldownPeriod: null
1931 # @schema additionalProperties:true
1932 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
1933 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
1935 # @schema skipProperties:true;additionalProperties:true
1936 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
1937 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
1939 # -- KEDA triggers for the single binary.
1940 # Ref: https://keda.sh/docs/latest/scalers/
1943 # @schema type:[string, null]
1944 # -- The Docker registry for the single binary image. Overrides `loki.image.registry`
1946 # @schema type:[string, null]
1947 # -- Docker image repository for the single binary image. Overrides `loki.image.repository`
1949 # @schema type:[string, null]
1950 # -- Docker image tag for the single binary image. Overrides `loki.image.tag`
1952 # @schema type:[string, null]
1953 # -- The name of the PriorityClass for single binary pods
1954 priorityClassName: null
1955 # @schema additionalProperties:{"type":"string"}
1956 # -- Annotations for single binary StatefulSet
1958 # @schema additionalProperties:{"type":"string"}
1959 # -- Additional labels for single binary StatefulSet
1961 # @schema additionalProperties:{"type":"string"}
1962 # -- Annotations for single binary pods
1964 # @schema additionalProperties:{"type":"string"}
1965 # -- Additional labels for each `single binary` pod
1967 # @schema additionalProperties:{"type":"string"}
1968 # -- Additional selector labels for each `single binary` pod
1970 podDisruptionBudget:
1971 # -- Enable Pod Disruption Budget
1973 # @schema additionalProperties:{"type":"string"}
1974 # -- Annotations for Pod Disruption Budget
1976 # @schema additionalProperties:{"type":"string"}
1977 # -- Labels for Pod Disruption Budget
1979 # @schema type:[string, integer, null]
1980 # -- Pod Disruption Budget minAvailable
1982 # @schema type:[string, integer, null]
1983 # -- Pod Disruption Budget maxUnavailable
1984 maxUnavailable: null
1985 # @schema type:[string, null]
1986 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
1987 unhealthyPodEvictionPolicy: null
1989 # @schema additionalProperties:{"type":"string"}
1990 # -- Annotations for single binary Service
1992 # @schema additionalProperties:{"type":"string"}
1993 # -- Additional labels for single binary Service
1995 # -- Service Type for single binary Service
1997 # -- trafficDistribution single binary Service
1998 trafficDistribution: ""
1999 # -- Session affinity for single binary Service
2001 # @schema additionalProperties:true
2002 # -- Session affinity config for single binary Service
2003 sessionAffinityConfig: {}
2004 # -- ipFamilyPolicy for single binary Service
2005 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2007 # -- ipFamilies for single binary Service
2008 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2010 # -- Adds the appProtocol field to the single binary service. This allows single binary to work with istio protocol selection.
2012 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2015 # @schema additionalProperties:{"type":"string"}
2016 # -- Additional annotations for headless single binary Service
2018 # @schema additionalProperties:{"type":"string"}
2019 # -- Additional labels for single binary Service
2021 # -- Comma-separated list of Loki modules to load for the single binary
2023 # -- Labels for single binary service
2025 # -- Environment variables to add to the single binary pods
2027 # -- Environment variables from secrets or configmaps to add to the single binary pods
2029 # @schema type:[string, array, null]
2030 # -- Extra containers to add to the single binary loki pod
2032 # @schema type:[string, array, null]
2033 # -- Init containers to add to the single binary pods
2035 # -- Volume mounts to add to the single binary pods
2036 extraVolumeMounts: []
2037 # -- Volumes to add to the single binary pods
2039 # @schema additionalProperties:true
2040 # -- Resource requests and limits for the single binary
2042 # -- Container resize policy for the single binary
2045 # - resourceName: cpu
2046 # restartPolicy: NotRequired
2047 # - resourceName: memory
2048 # restartPolicy: RestartContainer
2050 # -- Grace period to allow the single binary to shutdown before it is killed
2051 terminationGracePeriodSeconds: 30
2052 # @schema type:[boolean, null]
2053 # -- Use the host's user namespace in the single binary pods
2055 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2056 # -- Affinity for single binary pods.
2057 # @default -- Hard node anti-affinity
2058 # The value will be passed through tpl.
2061 requiredDuringSchedulingIgnoredDuringExecution:
2064 app.kubernetes.io/component: single-binary
2065 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2066 app.kubernetes.io/instance: '{{ .Release.Name }}'
2067 topologyKey: kubernetes.io/hostname
2068 # @schema item:object
2069 # -- Topology Spread Constraints for single binary pods
2070 # The value will be passed through tpl.
2071 topologySpreadConstraints: []
2072 # @schema additionalProperties:true
2074 # @schema additionalProperties:true
2075 # -- Node selector for single binary pods
2077 # -- Tolerations for single binary pods
2079 # -- The default is to deploy all pods in parallel.
2080 podManagementPolicy: "Parallel"
2082 # -- What to do with the volume when the StatefulSet is scaled down.
2084 # -- What to do with the volumes when the StatefulSet is deleted.
2086 # -- Enable StatefulSetAutoDeletePVC feature
2087 enableStatefulSetAutoDeletePVC: false
2088 # -- Enable persistent disk
2090 # -- Set access modes on the PersistentVolumeClaim
2093 # -- Size of persistent disk
2095 # @schema type:[string, null]
2096 # -- Storage class to be used.
2097 # If defined, storageClassName: <storageClass>.
2098 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2099 # If empty or set to null, no storageClassName spec is
2100 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2102 # @schema type:[object, null]
2103 # -- Selector for persistent disk
2105 # @schema additionalProperties:{"type":"string"}
2106 # -- Annotations for volume claim
2108 # @schema additionalProperties:{"type":"string"}
2109 # -- Labels for volume claim
2111 # @schema skipProperties:true;additionalProperties:true
2112 # -- Parameters used for the `storage` volume when persistence.enabled is false.
2113 # Allows replacing the default emptyDir volume with a custom volume definition.
2114 # For example, to use an existing PVC:
2115 # dataVolumeParameters:
2116 # persistentVolumeClaim:
2117 # claimName: my-existing-pvc
2118 dataVolumeParameters: {}
2119######################################################################################################################
2121# Simple Scalable Deployment (SSD) Mode
2123# For small to medium size Loki deployments up to around 1 TB/day, this is the default mode for this helm chart
2125######################################################################################################################
2127# Configuration for the write pod(s)
2129 # -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2131 # -- Kind of write workload. StatefulSet and Deployment are supported.
2133 # -- Override for the write fullname. By default, this is generated using the fullname template with "-backend"
2134 fullnameOverride: '{{ include "loki.name" . }}-write'
2135 # -- EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed.
2136 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2137 statefulSetRecreateJob:
2139 # @schema type:[integer, null]
2140 # -- Number of replicas for the write. Set to null to omit spec.replicas from the workload,
2141 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2143 # @schema skipProperties:true;additionalProperties:true
2144 # -- UpdateStrategy or Strategy for the write.
2149 # -- Enable autoscaling for the write.
2151 # -- Minimum autoscaling replicas for the write.
2153 # -- Maximum autoscaling replicas for the write.
2155 # @schema type:[integer, null]
2156 # -- Target CPU utilisation percentage for the write.
2157 targetCPUUtilizationPercentage: 60
2158 # @schema type:[integer, null]
2159 # -- Target memory utilization percentage for the write.
2160 targetMemoryUtilizationPercentage: null
2161 # @schema skipProperties:true;additionalProperties:true
2162 # -- Behavior policies while scaling.
2164 # -- see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details
2175 stabilizationWindowSeconds: 3600
2177 # -- Enable KEDA autoscaling for the write. Mutually exclusive with autoscaling.enabled
2179 # @schema type:[integer, null]
2180 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2181 pollingInterval: null
2182 # -- Minimum replicas for KEDA autoscaling
2184 # -- Maximum replicas for KEDA autoscaling
2186 # @schema type:[integer, null]
2187 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2188 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2189 cooldownPeriod: null
2190 # @schema additionalProperties:true
2191 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2192 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2194 # @schema skipProperties:true;additionalProperties:true
2195 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2196 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2198 # -- KEDA triggers for the write.
2199 # Ref: https://keda.sh/docs/latest/scalers/
2202 # @schema type:[string, null]
2203 # -- The Docker registry for the write image. Overrides `loki.image.registry`
2205 # @schema type:[string, null]
2206 # -- Docker image repository for the write image. Overrides `loki.image.repository`
2208 # @schema type:[string, null]
2209 # -- Docker image tag for the write image. Overrides `loki.image.tag`
2211 # @schema type:[string, null]
2212 # -- The name of the PriorityClass for write pods
2213 priorityClassName: null
2214 # @schema additionalProperties:{"type":"string"}
2215 # -- Annotations for write StatefulSet
2217 # @schema additionalProperties:{"type":"string"}
2218 # -- Additional labels for write StatefulSet
2220 # @schema additionalProperties:{"type":"string"}
2221 # -- Annotations for write pods
2223 # @schema additionalProperties:{"type":"string"}
2224 # -- Additional labels for each `write` pod
2226 # @schema additionalProperties:{"type":"string"}
2227 # -- Additional selector labels for each `write` pod
2230 # @schema additionalProperties:{"type":"string"}
2231 # -- Annotations for write Service
2233 # @schema additionalProperties:{"type":"string"}
2234 # -- Additional labels for write Service
2236 # -- Service Type for write Service
2238 # -- trafficDistribution for write Service
2239 trafficDistribution: ""
2240 # -- Session affinity for write Service
2242 # @schema additionalProperties:true
2243 # -- Session affinity config for write Service
2244 sessionAffinityConfig: {}
2245 # -- ipFamilyPolicy for write Service
2246 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2248 # -- ipFamilies for write Service
2249 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2251 # -- Adds the appProtocol field to the write service. This allows write to work with istio protocol selection.
2253 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2256 # @schema additionalProperties:{"type":"string"}
2257 # -- Additional annotations for headless SimpleScalable write Service
2259 # @schema additionalProperties:{"type":"string"}
2260 # -- Additional labels for headless SimpleScalable write Service
2262 # -- Additional CLI args for the write
2264 # -- Environment variables to add to the write pods
2266 # -- Environment variables from secrets or configmaps to add to the write pods
2268 # -- Lifecycle for the write container
2270 # @schema type:[string, array, null]
2271 # -- Init containers to add to the write pods
2273 # @schema type:[string, array, null]
2274 # -- Containers to add to the write pods
2276 # -- Volume mounts to add to the write pods
2277 extraVolumeMounts: []
2278 # -- Volumes to add to the write pods
2280 # -- volumeClaimTemplates to add to StatefulSet
2281 extraVolumeClaimTemplates: []
2282 # @schema additionalProperties:true
2283 # -- Resource requests and limits for the write
2285 # -- Container resize policy for the write
2288 # - resourceName: cpu
2289 # restartPolicy: NotRequired
2290 # - resourceName: memory
2291 # restartPolicy: RestartContainer
2293 # -- Grace period to allow the write to shutdown before it is killed. Especially for the ingester,
2294 # this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring
2295 # all data and to successfully leave the member ring on shutdown.
2296 terminationGracePeriodSeconds: 300
2297 # @schema type:[boolean, null]
2298 # -- Use the host's user namespace in the write pods.
2300 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2301 # -- Affinity for write pods.
2302 # @default -- Hard node anti-affinity
2303 # The value will be passed through tpl.
2306 requiredDuringSchedulingIgnoredDuringExecution:
2309 app.kubernetes.io/component: write
2310 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2311 app.kubernetes.io/instance: '{{ .Release.Name }}'
2312 topologyKey: kubernetes.io/hostname
2313 # @schema additionalProperties:true
2314 # -- DNS config for write pods
2316 # @schema type:[string, integer, null];deprecated:true
2317 # -- Pod Disruption Budget maxUnavailable
2318 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2320 podDisruptionBudget:
2321 # -- Enable Pod Disruption Budget
2323 # @schema additionalProperties:{"type":"string"}
2324 # -- Annotations for Pod Disruption Budget
2326 # @schema additionalProperties:{"type":"string"}
2327 # -- Labels for Pod Disruption Budget
2329 # @schema type:[string, integer, null]
2330 # -- Pod Disruption Budget minAvailable
2332 # @schema type:[string, integer, null]
2333 # -- Pod Disruption Budget maxUnavailable
2334 maxUnavailable: null
2335 # @schema type:[string, null]
2336 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
2337 unhealthyPodEvictionPolicy: null
2338 # @schema additionalProperties:true
2339 # -- Node selector for write pods
2341 # @schema item:object
2342 # -- Topology Spread Constraints for write pods
2343 # The value will be passed through tpl.
2344 topologySpreadConstraints: []
2346 # -- The default is to deploy all pods in parallel.
2347 podManagementPolicy: "Parallel"
2349 # -- Enable volume claims in pod spec
2350 volumeClaimsEnabled: true
2351 # -- Set access modes on the PersistentVolumeClaim
2354 # @schema skipProperties:true;additionalProperties:true
2355 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
2356 dataVolumeParameters:
2358 # -- What to do with the volume when the StatefulSet is scaled down.
2360 # -- What to do with the volumes when the StatefulSet is deleted.
2362 # -- Enable StatefulSetAutoDeletePVC feature
2363 enableStatefulSetAutoDeletePVC: false
2364 # -- Size of persistent disk
2366 # @schema type:[string, null]
2367 # -- Storage class to be used.
2368 # If defined, storageClassName: <storageClass>.
2369 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2370 # If empty or set to null, no storageClassName spec is
2371 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2373 # @schema type:[string, null]
2374 # -- Volume attributes class name to be used.
2375 # If empty or set to null, no volumeAttributesClassName spec is set.
2376 # Requires Kubernetes 1.31
2377 volumeAttributesClassName: null
2378 # @schema type:[object, null]
2379 # -- Selector for persistent disk
2381 # @schema additionalProperties:{"type":"string"}
2382 # -- Annotations for volume claim
2384 # @schema additionalProperties:{"type":"string"}
2385 # -- Labels for volume claim
2388 # -- Specifies whether a ServiceAccount should be created
2390 # @schema type:[string, null]
2391 # -- The name of the ServiceAccount to use.
2392 # If not set and create is true, a name is generated using the fullname template
2394 # @schema item:object;itemProperties:{"name": {"type": "string"}}
2395 # -- Image pull secrets for the service account
2396 imagePullSecrets: []
2397 # @schema additionalProperties:{"type":"string"}
2398 # -- Annotations for the service account
2400 # @schema additionalProperties:{"type":"string"}
2401 # -- Labels for the service account
2403 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2404 automountServiceAccountToken: true
2405# -- Configuration for the read pod(s)
2407 # -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2409 # -- Kind of read deployment. StatefulSet and Deployment are supported.
2411 # -- Override for the read fullname. By default, this is generated using the fullname template with "-backend"
2412 fullnameOverride: '{{ include "loki.name" . }}-read'
2413 # @schema type:[integer, null]
2414 # -- Number of replicas for the read. Set to null to omit spec.replicas from the workload,
2415 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2417 # @schema skipProperties:true;additionalProperties:true
2418 # -- UpdateStrategy or Strategy for the read.
2422 # @schema type:[string, integer, null]
2423 # -- Pod Disruption Budget maxUnavailable
2426 # -- Enable autoscaling for the read, this is only used if `queryIndex.enabled: true`
2428 # -- Minimum autoscaling replicas for the read
2430 # -- Maximum autoscaling replicas for the read
2432 # @schema type:[integer, null]
2433 # -- Target CPU utilisation percentage for the read
2434 targetCPUUtilizationPercentage: 60
2435 # @schema type:[integer, null]
2436 # -- Target memory utilisation percentage for the read
2437 targetMemoryUtilizationPercentage: null
2438 # @schema skipProperties:true;additionalProperties:true
2439 # -- Behavior policies while scaling.
2442 # stabilizationWindowSeconds: 300
2448 # stabilizationWindowSeconds: 300
2452 # periodSeconds: 180
2454 # -- Enable KEDA autoscaling for the read. Mutually exclusive with autoscaling.enabled
2456 # @schema type:[integer, null]
2457 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2458 pollingInterval: null
2459 # -- Minimum replicas for KEDA autoscaling
2461 # -- Maximum replicas for KEDA autoscaling
2463 # @schema type:[integer, null]
2464 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2465 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2466 cooldownPeriod: null
2467 # @schema additionalProperties:true
2468 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2469 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2471 # @schema skipProperties:true;additionalProperties:true
2472 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2473 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2475 # -- KEDA triggers for the read.
2476 # Ref: https://keda.sh/docs/latest/scalers/
2479 # @schema type:[string, null]
2480 # -- The Docker registry for the read image. Overrides `loki.image.registry`
2482 # @schema type:[string, null]
2483 # -- Docker image repository for the read image. Overrides `loki.image.repository`
2485 # @schema type:[string, null]
2486 # -- Docker image tag for the read image. Overrides `loki.image.tag`
2488 # @schema type:[string, null]
2489 # -- The name of the PriorityClass for read pods
2490 priorityClassName: null
2491 # @schema additionalProperties:{"type":"string"}
2492 # -- Annotations for read deployment
2494 # @schema additionalProperties:{"type":"string"}
2495 # -- Additional labels for read deployment
2497 # @schema additionalProperties:{"type":"string"}
2498 # -- Annotations for read pods
2500 # @schema additionalProperties:{"type":"string"}
2501 # -- Additional labels for each `read` pod
2503 # @schema additionalProperties:{"type":"string"}
2504 # -- Additional selector labels for each `read` pod
2507 # @schema additionalProperties:{"type":"string"}
2508 # -- Annotations for read Service
2510 # @schema additionalProperties:{"type":"string"}
2511 # -- Additional labels for read Service
2513 # -- Service Type for read Service
2515 # -- trafficDistribution for read Service
2516 trafficDistribution: ""
2517 # -- Session affinity for read Service
2519 # @schema additionalProperties:true
2520 # -- Session affinity config for read Service
2521 sessionAffinityConfig: {}
2522 # -- ipFamilyPolicy for read Service
2523 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2525 # -- ipFamilies for read Service
2526 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2528 # -- Adds the appProtocol field to the read service. This allows read to work with istio protocol selection.
2530 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2533 # @schema additionalProperties:{"type":"string"}
2534 # -- Additional annotations for headless SimpleScalable read Service
2536 # @schema additionalProperties:{"type":"string"}
2537 # -- Additional labels for headless SimpleScalable read Service
2539 # -- Additional CLI args for the read
2541 # @schema type:[string, array, null]
2542 # -- init containers to add to the read pods
2544 # @schema type:[string, array, null]
2545 # -- Containers to add to the read pods
2547 # -- Environment variables to add to the read pods
2549 # -- Environment variables from secrets or configmaps to add to the read pods
2551 # -- Lifecycle for the read container
2553 # -- Volume mounts to add to the read pods
2554 extraVolumeMounts: []
2555 # -- Volumes to add to the read pods
2557 # @schema additionalProperties:true
2558 # -- Resource requests and limits for the read
2560 # -- Container resize policy for the read
2563 # - resourceName: cpu
2564 # restartPolicy: NotRequired
2565 # - resourceName: memory
2566 # restartPolicy: RestartContainer
2568 # @schema skipProperties:true;additionalProperties:true
2569 # -- liveness probe settings for read pods. If empty, applies no livenessProbe
2571 # @schema skipProperties:true;additionalProperties:true
2572 # -- startup probe for the read pods. If empty, applies no startupProbe
2574 # -- Grace period to allow the read to shutdown before it is killed
2575 terminationGracePeriodSeconds: 30
2576 # @schema type:[boolean, null]
2577 # -- Use the host's user namespace in the read pods.
2579 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2580 # -- Affinity for read pods.
2581 # @default -- Hard node anti-affinity
2582 # The value will be passed through tpl.
2585 requiredDuringSchedulingIgnoredDuringExecution:
2588 app.kubernetes.io/component: read
2589 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2590 app.kubernetes.io/instance: '{{ .Release.Name }}'
2591 topologyKey: kubernetes.io/hostname
2592 # @schema additionalProperties:true
2593 # -- DNS config for read pods
2595 # @schema type:[string, integer, null];deprecated:true
2596 # -- Pod Disruption Budget maxUnavailable
2597 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2599 podDisruptionBudget:
2600 # -- Enable Pod Disruption Budget for read pods
2602 # @schema additionalProperties:{"type":"string"}
2603 # -- Annotations for read Pod Disruption Budget
2605 # @schema additionalProperties:{"type":"string"}
2606 # -- Labels for read Pod Disruption Budget
2608 # @schema type:[string, integer, null]
2609 # -- Pod Disruption Budget minAvailable
2611 # @schema type:[string, integer, null]
2612 # -- Pod Disruption Budget maxUnavailable
2613 maxUnavailable: null
2614 # @schema type:[string, null]
2615 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
2616 unhealthyPodEvictionPolicy: null
2617 # @schema additionalProperties:true
2618 # -- Node selector for read pods
2620 # @schema item:object
2621 # -- Topology Spread Constraints for read pods
2622 # The value will be passed through tpl.
2623 topologySpreadConstraints: []
2625 # -- The default is to deploy all pods in parallel.
2627 # -- Specifies whether a ServiceAccount should be created
2629 # @schema type:[string, null]
2630 # -- The name of the ServiceAccount to use.
2631 # If not set and create is true, a name is generated using the fullname template
2633 # @schema item:object;itemProperties:{"name": {"type": "string"}}
2634 # -- Image pull secrets for the service account
2635 imagePullSecrets: []
2636 # @schema additionalProperties:{"type":"string"}
2637 # -- Annotations for the service account
2639 # @schema additionalProperties:{"type":"string"}
2640 # -- Labels for the service account
2642 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2643 automountServiceAccountToken: true
2644# -- Configuration for the backend pod(s)
2646 # -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2648 # -- Kind of backend workload. StatefulSet and Deployment are supported.
2650 # -- Override for the backend fullname. By default, this is generated using the fullname template with "-backend"
2651 fullnameOverride: '{{ include "loki.name" . }}-backend'
2652 # -- EXPERIMENTAL: Enable creating a Job to recreate the backend StatefulSet when the compactor configuration is changed.
2653 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2654 statefulSetRecreateJob:
2656 # @schema type:[integer, null]
2657 # -- Number of replicas for the backend. Set to null to omit spec.replicas from the workload,
2658 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2660 # @schema skipProperties:true;additionalProperties:true
2661 # -- UpdateStrategy or Strategy for the backend.
2665 # -- Whether to enable the rules sidecar
2667 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2668 automountServiceAccountToken: true
2670 # -- Enable autoscaling for the backend.
2672 # -- Minimum autoscaling replicas for the backend.
2674 # -- Maximum autoscaling replicas for the backend.
2676 # @schema type:[integer, null]
2677 # -- Target CPU utilization percentage for the backend.
2678 targetCPUUtilizationPercentage: 60
2679 # @schema type:[integer, null]
2680 # -- Target memory utilization percentage for the backend.
2681 targetMemoryUtilizationPercentage: null
2682 # @schema skipProperties:true;additionalProperties:true
2683 # -- Behavior policies while scaling.
2686 # stabilizationWindowSeconds: 300
2692 # stabilizationWindowSeconds: 300
2696 # periodSeconds: 180
2698 # -- Enable KEDA autoscaling for the backend. Mutually exclusive with autoscaling.enabled
2700 # @schema type:[integer, null]
2701 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2702 pollingInterval: null
2703 # -- Minimum replicas for KEDA autoscaling
2705 # -- Maximum replicas for KEDA autoscaling
2707 # @schema type:[integer, null]
2708 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2709 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2710 cooldownPeriod: null
2711 # @schema additionalProperties:true
2712 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2713 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2715 # @schema skipProperties:true;additionalProperties:true
2716 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2717 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2719 # -- KEDA triggers for the backend.
2720 # Ref: https://keda.sh/docs/latest/scalers/
2723 # @schema type:[string, null]
2724 # -- The Docker registry for the backend image. Overrides `loki.image.registry`
2726 # @schema type:[string, null]
2727 # -- Docker image repository for the backend image. Overrides `loki.image.repository`
2729 # @schema type:[string, null]
2730 # -- Docker image tag for the backend image. Overrides `loki.image.tag`
2732 # @schema type:[string, null]
2733 # -- The name of the PriorityClass for backend pods
2734 priorityClassName: null
2735 # @schema additionalProperties:{"type":"string"}
2736 # -- Annotations for backend StatefulSet
2738 # @schema additionalProperties:{"type":"string"}
2739 # -- Additional labels for backend StatefulSet
2741 # @schema additionalProperties:{"type":"string"}
2742 # -- Annotations for backend pods
2744 # @schema additionalProperties:{"type":"string"}
2745 # -- Additional labels for each `backend` pod
2747 # @schema additionalProperties:{"type":"string"}
2748 # -- Additional selector labels for each `backend` pod
2751 # @schema additionalProperties:{"type":"string"}
2752 # -- Annotations for backend Service
2754 # @schema additionalProperties:{"type":"string"}
2755 # -- Additional labels for backend Service
2757 # -- Service type for backend Service
2759 # -- trafficDistribution for backend Service
2760 trafficDistribution: ""
2761 # -- Session affinity for backend Service
2763 # @schema additionalProperties:true
2764 # -- Session affinity config for backend Service
2765 sessionAffinityConfig: {}
2766 # -- ipFamilyPolicy for backend Service
2767 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2769 # -- ipFamilies for backend Service
2770 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2772 # -- Adds the appProtocol field to the backend service. This allows backend to work with istio protocol selection.
2774 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2777 # @schema additionalProperties:{"type":"string"}
2778 # -- Additional annotations for headless Distributed compactor Service
2780 # @schema additionalProperties:{"type":"string"}
2781 # -- Additional labels for headless Distributed compactor Service
2783 # -- Additional CLI args for the backend
2785 # -- Environment variables to add to the backend pods
2787 # -- Environment variables from secrets or configmaps to add to the backend pods
2789 # @schema type:[string, array, null]
2790 # -- Init containers to add to the backend pods
2792 # @schema type:[string, array, null]
2793 # -- Containers to add to the backend pods
2795 # -- Volume mounts to add to the backend pods
2796 extraVolumeMounts: []
2797 # -- Volumes to add to the backend pods
2799 # @schema additionalProperties:true
2800 # -- Resource requests and limits for the backend
2802 # -- Container resize policy for the backend
2805 # - resourceName: cpu
2806 # restartPolicy: NotRequired
2807 # - resourceName: memory
2808 # restartPolicy: RestartContainer
2810 # -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingester,
2811 # this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring
2812 # all data and to successfully leave the member ring on shutdown.
2813 terminationGracePeriodSeconds: 300
2814 # @schema type:[boolean, null]
2815 # -- Use the host's user namespace in the backend pods.
2817 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2818 # -- Affinity for backend pods.
2819 # @default -- Hard node anti-affinity
2820 # The value will be passed through tpl.
2823 requiredDuringSchedulingIgnoredDuringExecution:
2826 app.kubernetes.io/component: backend
2827 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2828 app.kubernetes.io/instance: '{{ .Release.Name }}'
2829 topologyKey: kubernetes.io/hostname
2830 # @schema additionalProperties:true
2831 # -- DNS config for backend pods
2833 # @schema type:[string, integer, null];deprecated:true
2834 # -- Pod Disruption Budget maxUnavailable
2835 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2837 podDisruptionBudget:
2838 # -- Enable Pod Disruption Budget
2840 # @schema additionalProperties:{"type":"string"}
2841 # -- Annotations for Pod Disruption Budget
2843 # @schema additionalProperties:{"type":"string"}
2844 # -- Labels for Pod Disruption Budget
2846 # @schema type:[string, integer, null]
2847 # -- Pod Disruption Budget minAvailable
2849 # @schema type:[string, integer, null]
2850 # -- Pod Disruption Budget maxUnavailable
2851 maxUnavailable: null
2852 # @schema type:[string, null]
2853 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
2854 unhealthyPodEvictionPolicy: null
2855 # @schema additionalProperties:true
2856 # -- Node selector for backend pods
2858 # @schema item:object
2859 # -- Topology Spread Constraints for backend pods
2860 # The value will be passed through tpl.
2861 topologySpreadConstraints: []
2863 # -- The default is to deploy all pods in parallel.
2864 podManagementPolicy: "Parallel"
2866 # -- Enable volume claims in pod spec
2868 # -- Enable volume claims in pod spec. Deprecated in favor of `persistence.enabled`.
2869 volumeClaimsEnabled: true
2870 # -- Set access modes on the PersistentVolumeClaim
2873 # @schema skipProperties:true;additionalProperties:true
2874 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
2875 dataVolumeParameters:
2877 # -- What to do with the volume when the StatefulSet is scaled down.
2879 # -- What to do with the volumes when the StatefulSet is deleted.
2881 # -- Enable StatefulSetAutoDeletePVC feature
2882 enableStatefulSetAutoDeletePVC: true
2883 # -- Size of persistent disk
2885 # @schema type:[string, null]
2886 # -- Storage class to be used.
2887 # If defined, storageClassName: <storageClass>.
2888 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2889 # If empty or set to null, no storageClassName spec is
2890 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2892 # @schema type:[string, null]
2893 # -- Volume attributes class name to be used.
2894 # If empty or set to null, no volumeAttributesClassName spec is set.
2895 # Requires Kubernetes 1.31
2896 volumeAttributesClassName: null
2897 # @schema type:[object, null]
2898 # -- Selector for persistent disk
2900 # @schema additionalProperties:{"type":"string"}
2901 # -- Annotations for volume claim
2903 # @schema additionalProperties:{"type":"string"}
2904 # -- Labels for volume claim
2907 # -- Specifies whether a ServiceAccount should be created
2909 # @schema type:[string, null]
2910 # -- The name of the ServiceAccount to use.
2911 # If not set and create is true, a name is generated using the fullname template
2913 # @schema item:object;itemProperties:{"name": {"type": "string"}}
2914 # -- Image pull secrets for the service account
2915 imagePullSecrets: []
2916 # @schema additionalProperties:{"type":"string"}
2917 # -- Annotations for the service account
2919 # @schema additionalProperties:{"type":"string"}
2920 # -- Labels for the service account
2922 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2923 automountServiceAccountToken: true
2924######################################################################################################################
2928# For large Loki deployments ingesting more than 1 TB/day
2930######################################################################################################################
2932# -- Configuration for the ingester
2934 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
2936 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
2938 # -- EXPERIMENTAL: Enable creating a Job to recreate the ingester StatefulSet
2939 ## Only applicable if `ingester.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2940 statefulSetRecreateJob:
2942 # @schema skipProperties:true;additionalProperties:true
2943 # -- UpdateStrategy or Strategy for the ingester.
2946 # -- PodManagementPolicy for the ingester StatefulSet. Only applicable if `compactor.kind` is StatefulSet.
2947 ## OrderedReady and Parallel are supported.
2948 podManagementPolicy: Parallel
2949 # @schema type:[integer, null]
2950 # -- Number of replicas for the ingester, when zoneAwareReplication.enabled is true, the total
2951 # number of replicas will match this value with each zone having 1/3rd of the total replicas.
2952 # Set to null to omit spec.replicas from the StatefulSet, allowing an external controller
2953 # (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2955 # @schema additionalProperties:true
2956 # -- DNSConfig for ingester pods
2958 # -- hostAliases to add
2960 # @schema type:[boolean, null]
2964 # -- Use the host's user namespace in the ingester
2967 # -- Enable autoscaling for the ingester
2969 # -- Minimum autoscaling replicas for the ingester
2971 # -- Maximum autoscaling replicas for the ingester
2973 # @schema type:[integer, null]
2974 # -- Target CPU utilisation percentage for the ingester
2975 targetCPUUtilizationPercentage: 60
2976 # @schema type:[integer, null]
2977 # -- Target memory utilisation percentage for the ingester
2978 targetMemoryUtilizationPercentage: null
2979 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2984 # name: loki_lines_total
2986 # type: AverageValue
2988 # @schema skipProperties:true;additionalProperties:true
2989 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
2991 # -- Enable autoscaling behaviours
2993 # -- define scale down policies, must conform to HPAScalingRules
2995 # -- define scale up policies, must conform to HPAScalingRules
2998 # -- Enable KEDA autoscaling for the ingester. Mutually exclusive with autoscaling.enabled
3000 # @schema type:[integer, null]
3001 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3002 pollingInterval: null
3003 # -- Minimum replicas for KEDA autoscaling
3005 # -- Maximum replicas for KEDA autoscaling
3007 # @schema type:[integer, null]
3008 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3009 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3010 cooldownPeriod: null
3011 # @schema additionalProperties:true
3012 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3013 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3015 # @schema skipProperties:true;additionalProperties:true
3016 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3017 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3019 # -- KEDA triggers for the ingester.
3020 # Ref: https://keda.sh/docs/latest/scalers/
3023 # @schema type:[string, null]
3024 # -- The Docker registry for the ingester image. Overrides `loki.image.registry`
3026 # @schema type:[string, null]
3027 # -- Docker image repository for the ingester image. Overrides `loki.image.repository`
3029 # @schema type:[string, null]
3030 # -- Docker image tag for the ingester image. Overrides `loki.image.tag`
3032 # @schema type:[string, null]
3033 # -- Command to execute instead of defined in Docker image
3035 # @schema additionalProperties:{"type":"string"}
3036 # -- Labels for ingester
3038 # @schema additionalProperties:{"type":"string"}
3039 # -- Annotations for ingester
3041 # @schema additionalProperties:{"type":"string"}
3042 # -- Labels for ingester pods. Keys used by the workload selectors
3043 # (`app.kubernetes.io/name`, `app.kubernetes.io/instance`, `app.kubernetes.io/component`
3044 # and, with zoneAwareReplication, `name` and `rollout-group`) are reserved and
3045 # ignored here: the latter are also used by the per-zone headless Services and
3046 # grafana/rollout-operator.
3048 # @schema additionalProperties:{"type":"string"}
3049 # -- Annotations for ingester pods
3051 # @schema type:[string, null]
3052 # -- The name of the PriorityClass for ingester pods
3053 priorityClassName: null
3054 # @schema additionalProperties:{"type":"string"};deprecated:true
3055 # -- Labels for ingester service
3056 # @deprecated -- This option is deprecated in favor of `ingester.service.labels`
3058 # @schema additionalProperties:{"type":"string"};deprecated:true
3059 # -- Annotations for ingester service
3060 # @deprecated -- This option is deprecated in favor of `ingester.service.annotations`
3061 serviceAnnotations: {}
3062 # @schema type:string;deprecated:true
3063 # -- Service type for ingester service
3064 # @deprecated -- This option is deprecated in favor of `ingester.service.type`
3065 serviceType: "ClusterIP"
3067 # @schema additionalProperties:{"type":"string"}
3068 # -- Annotations for ingester Service
3070 # @schema additionalProperties:{"type":"string"}
3071 # -- Additional labels for ingester Service
3073 # -- Service Type for ingester Service
3075 # -- trafficDistribution for ingester Service
3076 trafficDistribution: ""
3077 # -- Session affinity for ingester Service
3079 # @schema additionalProperties:true
3080 # -- Session affinity config for ingester Service
3081 sessionAffinityConfig: {}
3082 # -- ipFamilyPolicy for ingester Service
3083 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3085 # -- ipFamilies for ingester Service
3086 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3088 # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
3090 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3093 # @schema additionalProperties:{"type":"string"}
3094 # -- Additional annotations for headless Distributed ingester Service
3096 # @schema additionalProperties:{"type":"string"}
3097 # -- Additional labels for headless Distributed ingester Service
3099 # -- Additional CLI args for the ingester
3101 # -- Environment variables to add to the ingester pods
3103 # -- Environment variables from secrets or configmaps to add to the ingester pods
3105 # -- Volume mounts to add to the ingester pods
3106 extraVolumeMounts: []
3107 # -- Volumes to add to the ingester pods
3109 # @schema additionalProperties:true
3110 # -- Resource requests and limits for the ingester
3112 # -- Container resize policy for the ingester
3115 # - resourceName: cpu
3116 # restartPolicy: NotRequired
3117 # - resourceName: memory
3118 # restartPolicy: RestartContainer
3120 # @schema type:[string, array, null]
3121 # -- Containers to add to the ingester pods
3123 # @schema type:[string, array, null]
3124 # -- Init containers to add to the ingester pods
3126 # -- Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor,
3127 # this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring
3128 # all data and to successfully leave the member ring on shutdown.
3129 terminationGracePeriodSeconds: 300
3130 # -- Lifecycle for the ingester container
3132 # @schema item:object
3133 # -- topologySpread for ingester pods.
3134 # @default -- Defaults to allow skew no more than 1 node
3135 # The value will be passed through tpl.
3136 topologySpreadConstraints:
3138 topologyKey: kubernetes.io/hostname
3139 whenUnsatisfiable: ScheduleAnyway
3142 app.kubernetes.io/component: ingester
3143 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3144 app.kubernetes.io/instance: '{{ .Release.Name }}'
3145 # @schema type:[object, null];skipProperties:true;additionalProperties:true
3146 # -- Affinity for ingester pods. Ignored if zoneAwareReplication is enabled.
3147 # @default -- Hard node anti-affinity
3148 # The value will be passed through tpl.
3151 requiredDuringSchedulingIgnoredDuringExecution:
3154 app.kubernetes.io/component: ingester
3155 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3156 app.kubernetes.io/instance: '{{ .Release.Name }}'
3157 topologyKey: kubernetes.io/hostname
3158 # @schema type:[string, integer, null];deprecated:true
3159 # -- Pod Disruption Budget maxUnavailable
3160 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3162 podDisruptionBudget:
3163 # -- Enable Pod Disruption Budget
3165 # @schema additionalProperties:{"type":"string"}
3166 # -- Annotations for Pod Disruption Budget
3168 # @schema additionalProperties:{"type":"string"}
3169 # -- Labels for Pod Disruption Budget
3171 # @schema type:[string, integer, null]
3172 # -- Pod Disruption Budget minAvailable
3174 # @schema type:[string, integer, null]
3175 # -- Pod Disruption Budget maxUnavailable
3176 maxUnavailable: null
3177 # @schema type:[string, null]
3178 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
3179 unhealthyPodEvictionPolicy: null
3180 # @schema additionalProperties:true
3181 # -- Node selector for ingester pods
3183 # -- Tolerations for ingester pods
3185 # @schema skipProperties:true;additionalProperties:true
3186 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
3188 # @schema skipProperties:true;additionalProperties:true
3189 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
3191 # @schema skipProperties:true;additionalProperties:true
3192 # -- startup probe settings for ingester pods. If empty use `loki.startupProbe`
3194 # @schema skipProperties:true;additionalProperties:true
3195 # -- UpdateStrategy for the ingester StatefulSets.
3197 # -- One of 'OnDelete' or 'RollingUpdate'
3199 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
3203 # -- Enable creating PVCs which is required when using boltdb-shipper
3205 # -- Use emptyDir with ramdisk for storage. **Please note that all data in ingester will be lost on pod restart**
3207 # -- List of the ingester PVCs
3208 # @notationType -- list
3211 # -- Set access modes on the PersistentVolumeClaim
3215 # @schema type:[string, null]
3216 # -- Storage class to be used.
3217 # If defined, storageClassName: <storageClass>.
3218 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3219 # If empty or set to null, no storageClassName spec is
3220 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3222 # @schema type:[string, null]
3223 # -- Volume attributes class name to be used.
3224 # If empty or set to null, no volumeAttributesClassName spec is set.
3225 # Requires Kubernetes 1.31
3226 volumeAttributesClassName: null
3229 # -- Enable StatefulSetAutoDeletePVC feature
3230 enableStatefulSetAutoDeletePVC: false
3234 # -- Specifies whether a ServiceAccount should be created
3236 # @schema type:[string, null]
3237 # -- The name of the ServiceAccount to use.
3238 # If not set and create is true, a name is generated using the fullname template
3240 # @schema item:object;itemProperties:{"name": {"type": "string"}}
3241 # -- Image pull secrets for the service account
3242 imagePullSecrets: []
3243 # @schema additionalProperties:{"type":"string"}
3244 # -- Annotations for the service account
3246 # @schema additionalProperties:{"type":"string"}
3247 # -- Labels for the service account
3249 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3250 automountServiceAccountToken: true
3251 # @schema additionalProperties:true;deprecated:true
3252 # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
3253 # @deprecated -- This option is deprecated in favor of `ingester.service.appProtocol`
3255 # @schema type:string;deprecated:true
3256 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3257 # @deprecated -- This option is deprecated in favor of `ingester.service.appProtocol.grpc`
3259 # -- trafficDistribution for ingester service
3260 trafficDistribution: ""
3261 # -- Enabling zone awareness on ingesters will create 3 statefulests where all writes will send a replica to each zone.
3262 # This is primarily intended to accelerate rollout operations by allowing for multiple ingesters within a single
3263 # zone to be shutdown and restart simultaneously (the remaining 2 zones will be guaranteed to have at least one copy
3265 # Note: This can be used to run Loki over multiple cloud provider availability zones however this is not currently
3266 # recommended as Loki is not optimized for this and cross zone network traffic costs can become extremely high
3267 # extremely quickly. Even with zone awareness enabled, it is recommended to run Loki in a single availability zone.
3268 zoneAwareReplication:
3269 # -- Enable zone awareness.
3271 # -- The percent of replicas in each zone that will be restarted at once. In a value of 0-100
3272 maxUnavailablePct: 33
3273 # -- zoneA configuration
3275 # @schema type:[object, null]
3276 # @schema additionalProperties:true
3277 # -- optionally define a node selector for this zone
3279 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3280 # The value will be passed through tpl.
3282 # @schema additionalProperties:{"type":"string"}
3283 # -- Specific annotations to add to zone A statefulset
3285 # @schema additionalProperties:{"type":"string"}
3286 # -- Specific annotations to add to zone A pods
3288 # -- Persistence overrides applied only to the zone A StatefulSet.
3290 # @schema type:[string, null]
3291 # -- Storage class to use for every PVC in zone A. Overrides the `storageClass` of each entry in
3292 # `ingester.persistence.claims` for this zone only. Use this when you have one StorageClass per
3293 # availability zone (for example a topology-pinned EBS/PD StorageClass). If null, the
3294 # claim-level `storageClass` is used as before, preserving existing behavior.
3295 # If set to "-", `storageClassName: ""` is rendered, which disables dynamic provisioning.
3298 # @schema type:[object, null]
3299 # @schema additionalProperties:true
3300 # -- optionally define a node selector for this zone
3302 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3303 # The value will be passed through tpl.
3305 # @schema additionalProperties:{"type":"string"}
3306 # -- Specific annotations to add to zone B statefulset
3308 # @schema additionalProperties:{"type":"string"}
3309 # -- Specific annotations to add to zone B pods
3311 # -- Persistence overrides applied only to the zone B StatefulSet.
3313 # @schema type:[string, null]
3314 # -- Storage class to use for every PVC in zone B. See
3315 # `ingester.zoneAwareReplication.zoneA.persistence.storageClass` for details. If null, the
3316 # claim-level `storageClass` is used as before.
3319 # @schema type:[object, null]
3320 # @schema additionalProperties:true
3321 # -- optionally define a node selector for this zone
3323 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3324 # The value will be passed through tpl.
3326 # @schema additionalProperties:{"type":"string"}
3327 # -- Specific annotations to add to zone C statefulset
3329 # @schema additionalProperties:{"type":"string"}
3330 # -- Specific annotations to add to zone C pods
3332 # -- Persistence overrides applied only to the zone C StatefulSet.
3334 # @schema type:[string, null]
3335 # -- Storage class to use for every PVC in zone C. See
3336 # `ingester.zoneAwareReplication.zoneA.persistence.storageClass` for details. If null, the
3337 # claim-level `storageClass` is used as before.
3339 # -- The migration block allows migrating non zone aware ingesters to zone aware ingesters.
3342 excludeDefaultZone: false
3345 # @schema type:[string, null]
3346 # optionally allow adding arbitrary prefix to the ingester rollout-group label
3347 rolloutGroupPrefix: null
3348 # optionally allow adding 'loki-' prefix to ingester name label
3349 addIngesterNamePrefix: false
3350# -- Configuration for the distributor
3352 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3354 # @schema type:[integer, null]
3355 # -- Number of replicas for the distributor. Set to null to omit spec.replicas from the workload,
3356 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3358 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3360 # @schema skipProperties:true;additionalProperties:true
3361 # -- UpdateStrategy or Strategy for the distributor.
3365 # @schema type:[string, integer, null]
3366 # -- Pod Disruption Budget maxUnavailable
3368 # -- hostAliases to add
3370 # @schema type:[boolean, null]
3374 # -- Use the host's user namespace in the distributor
3376 # @schema additionalProperties:true
3377 # -- DNSConfig for distributor pods
3380 # -- Enable autoscaling for the distributor
3382 # -- Minimum autoscaling replicas for the distributor
3384 # -- Maximum autoscaling replicas for the distributor
3386 # @schema type:[integer, null]
3387 # -- Target CPU utilisation percentage for the distributor
3388 targetCPUUtilizationPercentage: 60
3389 # @schema type:[integer, null]
3390 # -- Target memory utilisation percentage for the distributor
3391 targetMemoryUtilizationPercentage: null
3392 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3397 # name: loki_lines_total
3399 # type: AverageValue
3401 # @schema skipProperties:true;additionalProperties:true
3402 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3404 # -- Enable autoscaling behaviours
3406 # -- define scale down policies, must conform to HPAScalingRules
3408 # -- define scale up policies, must conform to HPAScalingRules
3411 # -- Enable KEDA autoscaling for the distributor. Mutually exclusive with autoscaling.enabled
3413 # @schema type:[integer, null]
3414 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3415 pollingInterval: null
3416 # -- Minimum replicas for KEDA autoscaling
3418 # -- Maximum replicas for KEDA autoscaling
3420 # @schema type:[integer, null]
3421 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3422 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3423 cooldownPeriod: null
3424 # @schema additionalProperties:true
3425 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3426 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3428 # @schema skipProperties:true;additionalProperties:true
3429 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3430 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3432 # -- KEDA triggers for the distributor.
3433 # Ref: https://keda.sh/docs/latest/scalers/
3436 # @schema type:[string, null]
3437 # -- The Docker registry for the distributor image. Overrides `loki.image.registry`
3439 # @schema type:[string, null]
3440 # -- Docker image repository for the distributor image. Overrides `loki.image.repository`
3442 # @schema type:[string, null]
3443 # -- Docker image tag for the distributor image. Overrides `loki.image.tag`
3445 # @schema type:[string, null]
3446 # -- Command to execute instead of defined in Docker image
3448 # @schema type:[string, null]
3449 # -- The name of the PriorityClass for distributor pods
3450 priorityClassName: null
3451 # @schema additionalProperties:{"type":"string"}
3452 # -- Labels for distributor
3454 # @schema additionalProperties:{"type":"string"}
3455 # -- Annotations for distributor
3457 # @schema additionalProperties:{"type":"string"}
3458 # -- Labels for distributor pods
3460 # @schema additionalProperties:{"type":"string"}
3461 # -- Annotations for distributor pods
3463 # @schema additionalProperties:{"type":"string"};deprecated:true
3464 # -- Labels for distributor service
3465 # @deprecated -- This option is deprecated in favor of `ingester.service.labels`
3467 # @schema additionalProperties:{"type":"string"};deprecated:true
3468 # -- Annotations for distributor service
3469 # @deprecated -- This option is deprecated in favor of `ingester.service.annotations`
3470 serviceAnnotations: {}
3471 # @schema type:string;deprecated:true
3472 # -- Service type for distributor service
3473 # @deprecated -- This option is deprecated in favor of `ingester.service.type`
3474 serviceType: "ClusterIP"
3476 # @schema additionalProperties:{"type":"string"}
3477 # -- Annotations for distributor Service
3479 # @schema additionalProperties:{"type":"string"}
3480 # -- Additional labels for distributor Service
3482 # -- Service Type for distributor Service
3484 # -- trafficDistribution for distributor Service
3485 trafficDistribution: ""
3486 # -- Session affinity for distributor Service
3488 # @schema additionalProperties:true
3489 # -- Session affinity config for distributor Service
3490 sessionAffinityConfig: {}
3491 # -- ipFamilyPolicy for distributor Service
3492 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3494 # -- ipFamilies for distributor Service
3495 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3497 # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
3499 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3502 # @schema additionalProperties:{"type":"string"}
3503 # -- Additional annotations for headless Distributed compactor Service
3505 # @schema additionalProperties:{"type":"string"}
3506 # -- Additional labels for headless Distributed compactor Service
3508 # -- Additional CLI args for the distributor
3510 # -- Environment variables to add to the distributor pods
3512 # -- Environment variables from secrets or configmaps to add to the distributor pods
3514 # -- Volume mounts to add to the distributor pods
3515 extraVolumeMounts: []
3516 # -- Volumes to add to the distributor pods
3518 # @schema additionalProperties:true
3519 # -- Resource requests and limits for the distributor
3521 # -- Container resize policy for the distributor
3524 # - resourceName: cpu
3525 # restartPolicy: NotRequired
3526 # - resourceName: memory
3527 # restartPolicy: RestartContainer
3529 # @schema type:[string, array, null]
3530 # -- Init containers to add to the distributor pods
3532 # @schema type:[string, array, null]
3533 # -- Containers to add to the distributor pods
3535 # @schema type:[string, null]
3536 # -- On SIGTERM, report 503 on /ready and wait this long before shutdown so the LB drains the pod before connections are cut.
3537 # "0s" (default) disables. When enabling, keep terminationGracePeriodSeconds above shutdownDelay + server.graceful_shutdown_timeout.
3539 # -- Grace period to allow the distributor to shutdown before it is killed
3540 terminationGracePeriodSeconds: 30
3541 podDisruptionBudget:
3542 # -- Enable Pod Disruption Budget
3544 # @schema additionalProperties:{"type":"string"}
3545 # -- Annotations for Pod Disruption Budget
3547 # @schema additionalProperties:{"type":"string"}
3548 # -- Labels for Pod Disruption Budget
3550 # @schema type:[string, integer, null]
3551 # -- Pod Disruption Budget minAvailable
3553 # @schema type:[string, integer, null]
3554 # -- Pod Disruption Budget maxUnavailable
3555 maxUnavailable: null
3556 # @schema type:[string, null]
3557 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
3558 unhealthyPodEvictionPolicy: null
3559 # @schema type:[object, null];skipProperties:true;additionalProperties:true
3560 # -- Affinity for distributor pods.
3561 # @default -- Hard node anti-affinity
3562 # The value will be passed through tpl.
3565 requiredDuringSchedulingIgnoredDuringExecution:
3568 app.kubernetes.io/component: distributor
3569 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3570 app.kubernetes.io/instance: '{{ .Release.Name }}'
3571 topologyKey: kubernetes.io/hostname
3572 # @schema type:[string, integer, null];deprecated:true
3573 # -- Pod Disruption Budget maxUnavailable
3574 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3575 maxUnavailable: null
3576 # @schema type:[string, integer]
3577 # -- Max Surge for distributor pods
3579 # @schema additionalProperties:true
3580 # -- Node selector for distributor pods
3582 # @schema item:object
3583 # -- Topology Spread Constraints for distributor pods
3584 # The value will be passed through tpl.
3585 topologySpreadConstraints: []
3587 # @schema additionalProperties:true;deprecated:true
3588 # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
3589 # @deprecated -- This option is deprecated in favor of `distributor.service.appProtocol`
3591 # @schema type:string;deprecated:true
3592 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3593 # @deprecated -- This option is deprecated in favor of `distributor.service.appProtocol.grpc`
3595 # -- trafficDistribution for distributor service
3596 trafficDistribution: ""
3598 # -- Specifies whether a ServiceAccount should be created
3600 # @schema type:[string, null]
3601 # -- The name of the ServiceAccount to use.
3602 # If not set and create is true, a name is generated using the fullname template
3604 # @schema item:object;itemProperties:{"name": {"type": "string"}}
3605 # -- Image pull secrets for the service account
3606 imagePullSecrets: []
3607 # @schema additionalProperties:{"type":"string"}
3608 # -- Annotations for the service account
3610 # @schema additionalProperties:{"type":"string"}
3611 # -- Labels for the service account
3613 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3614 automountServiceAccountToken: true
3615# -- Configuration for the querier
3617 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3619 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3621 # @schema type:[integer, null]
3622 # -- Number of replicas for the querier. Set to null to omit spec.replicas from the workload,
3623 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3625 # @schema skipProperties:true;additionalProperties:true
3626 # -- Strategy for the querier.
3631 # @schema type:[string, integer, null]
3632 # -- Pod Disruption Budget maxUnavailable
3634 # -- hostAliases to add
3636 # @schema type:[boolean, null]
3640 # -- Use the host's user namespace in the querier
3643 # -- Enable autoscaling for the querier, this is only used if `indexGateway.enabled: true`
3645 # -- Minimum autoscaling replicas for the querier
3647 # -- Maximum autoscaling replicas for the querier
3649 # @schema type:[integer, null]
3650 # -- Target CPU utilisation percentage for the querier
3651 targetCPUUtilizationPercentage: 60
3652 # @schema type:[integer, null]
3653 # -- Target memory utilisation percentage for the querier
3654 targetMemoryUtilizationPercentage: null
3655 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3660 # name: loki_inflight_queries
3662 # type: AverageValue
3664 # @schema skipProperties:true;additionalProperties:true
3665 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3667 # -- Enable autoscaling behaviours
3669 # -- define scale down policies, must conform to HPAScalingRules
3671 # -- define scale up policies, must conform to HPAScalingRules
3674 # -- Enable KEDA autoscaling for the querier. Mutually exclusive with autoscaling.enabled
3676 # @schema type:[integer, null]
3677 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3678 pollingInterval: null
3679 # -- Minimum replicas for KEDA autoscaling
3681 # -- Maximum replicas for KEDA autoscaling
3683 # @schema type:[integer, null]
3684 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3685 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3686 cooldownPeriod: null
3687 # @schema additionalProperties:true
3688 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3689 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3691 # @schema skipProperties:true;additionalProperties:true
3692 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3693 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3695 # -- KEDA triggers for the querier. Defaults to a Prometheus trigger using inflight requests.
3698 name: querier_autoscaling_metric
3700 serverAddress: "{{ .Values.defaults.kedaAutoscaling.prometheusAddress }}"
3701 query: sum(max_over_time(loki_query_scheduler_inflight_requests{quantile="0.75"}[2m]))
3703 unsafeSsl: "{{ .Values.defaults.kedaAutoscaling.unsafeSsl }}"
3704 ignoreNullValues: "{{ .Values.defaults.kedaAutoscaling.ignoreNullValues }}"
3705 customHeaders: "{{ .Values.defaults.kedaAutoscaling.customHeaders }}"
3706 authModes: "{{ .Values.defaults.kedaAutoscaling.authentication.authModes }}"
3708 # @schema type:[string, null]
3709 # -- The Docker registry for the querier image. Overrides `loki.image.registry`
3711 # @schema type:[string, null]
3712 # -- Docker image repository for the querier image. Overrides `loki.image.repository`
3714 # @schema type:[string, null]
3715 # -- Docker image tag for the querier image. Overrides `loki.image.tag`
3717 # @schema type:[string, null]
3718 # -- Command to execute instead of defined in Docker image
3720 # @schema type:[string, null]
3721 # -- The name of the PriorityClass for querier pods
3722 priorityClassName: null
3723 # @schema additionalProperties:{"type":"string"}
3724 # -- Labels for querier
3726 # @schema additionalProperties:{"type":"string"}
3727 # -- Annotations for querier
3729 # @schema additionalProperties:{"type":"string"}
3730 # -- Labels for querier pods
3732 # @schema additionalProperties:{"type":"string"}
3733 # -- Annotations for querier pods
3735 # @schema additionalProperties:{"type":"string"};deprecated:true
3736 # -- Labels for querier service
3737 # @deprecated -- This option is deprecated in favor of `querier.service.labels`
3739 # @schema additionalProperties:{"type":"string"};deprecated:true
3740 # -- Annotations for querier service
3741 # @deprecated -- This option is deprecated in favor of `querier.service.annotations`
3742 serviceAnnotations: {}
3743 # @schema type:string;deprecated:true
3744 # -- Service type for querier service
3745 # @deprecated -- This option is deprecated in favor of `querier.service.type`
3746 serviceType: "ClusterIP"
3748 # @schema additionalProperties:{"type":"string"}
3749 # -- Annotations for querier Service
3751 # @schema additionalProperties:{"type":"string"}
3752 # -- Additional labels for querier Service
3754 # -- Service Type for querier Service
3756 # -- trafficDistribution for querier Service
3757 trafficDistribution: ""
3758 # -- Session affinity for querier Service
3760 # @schema additionalProperties:true
3761 # -- Session affinity config for querier Service
3762 sessionAffinityConfig: {}
3763 # -- ipFamilyPolicy for querier Service
3764 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3766 # -- ipFamilies for querier Service
3767 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3769 # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
3771 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3774 # @schema additionalProperties:{"type":"string"}
3775 # -- Additional annotations for headless Distributed compactor Service
3777 # @schema additionalProperties:{"type":"string"}
3778 # -- Additional labels for headless Distributed compactor Service
3780 # -- Additional CLI args for the querier
3782 # -- Environment variables to add to the querier pods
3784 # -- Environment variables from secrets or configmaps to add to the querier pods
3786 # -- Volume mounts to add to the querier pods
3787 extraVolumeMounts: []
3788 # -- Volumes to add to the querier pods
3790 # @schema additionalProperties:true
3791 # -- Resource requests and limits for the querier
3793 # -- Container resize policy for the querier
3796 # - resourceName: cpu
3797 # restartPolicy: NotRequired
3798 # - resourceName: memory
3799 # restartPolicy: RestartContainer
3801 # @schema type:[string, array, null]
3802 # -- Containers to add to the querier pods
3804 # @schema type:[string, array, null]
3805 # -- Init containers to add to the querier pods
3807 # -- Grace period to allow the querier to shutdown before it is killed
3808 terminationGracePeriodSeconds: 30
3809 podDisruptionBudget:
3810 # -- Enable Pod Disruption Budget
3812 # @schema additionalProperties:{"type":"string"}
3813 # -- Annotations for Pod Disruption Budget
3815 # @schema additionalProperties:{"type":"string"}
3816 # -- Labels for Pod Disruption Budget
3818 # @schema type:[string, integer, null]
3819 # -- Pod Disruption Budget minAvailable
3821 # @schema type:[string, integer, null]
3822 # -- Pod Disruption Budget maxUnavailable
3823 maxUnavailable: null
3824 # @schema type:[string, null]
3825 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
3826 unhealthyPodEvictionPolicy: null
3827 # @schema item:object
3828 # -- topologySpread for querier pods.
3829 # @default -- Defaults to allow skew no more then 1 node
3830 # The value will be passed through tpl.
3831 topologySpreadConstraints:
3833 topologyKey: kubernetes.io/hostname
3834 whenUnsatisfiable: ScheduleAnyway
3837 app.kubernetes.io/component: querier
3838 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3839 app.kubernetes.io/instance: '{{ .Release.Name }}'
3840 # @schema type:[object, null];skipProperties:true;additionalProperties:true
3841 # -- Affinity for querier pods.
3842 # @default -- Hard node anti-affinity
3843 # The value will be passed through tpl.
3846 requiredDuringSchedulingIgnoredDuringExecution:
3849 app.kubernetes.io/component: querier
3850 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3851 app.kubernetes.io/instance: '{{ .Release.Name }}'
3852 topologyKey: kubernetes.io/hostname
3853 # @schema type:[string, integer, null];deprecated:true
3854 # -- Pod Disruption Budget maxUnavailable
3855 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3856 maxUnavailable: null
3857 # @schema type:[string, integer]
3858 # -- Max Surge for querier pods
3860 # @schema additionalProperties:true
3861 # -- Node selector for querier pods
3863 # -- Tolerations for querier pods
3865 # @schema additionalProperties:true
3866 # -- DNSConfig for querier pods
3868 # @schema additionalProperties:true;deprecated:true
3869 # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
3870 # @deprecated -- This option is deprecated in favor of `querier.service.appProtocol`
3872 # @schema type:string;deprecated:true
3873 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3874 # @deprecated -- This option is deprecated in favor of `querier.service.appProtocol.grpc`
3876 # -- trafficDistribution for querier service
3877 trafficDistribution: ""
3879 # -- Specifies whether a ServiceAccount should be created
3881 # @schema type:[string, null]
3882 # -- The name of the ServiceAccount to use.
3883 # If not set and create is true, a name is generated using the fullname template
3885 # @schema item:object;itemProperties:{"name": {"type": "string"}}
3886 # -- Image pull secrets for the service account
3887 imagePullSecrets: []
3888 # @schema additionalProperties:{"type":"string"}
3889 # -- Annotations for the service account
3891 # @schema additionalProperties:{"type":"string"}
3892 # -- Labels for the service account
3894 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3895 automountServiceAccountToken: true
3896# -- Configuration for the query-frontend
3898 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3900 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3902 # @schema type:[integer, null]
3903 # -- Number of replicas for the query-frontend. Set to null to omit spec.replicas from the workload,
3904 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3906 # @schema skipProperties:true;additionalProperties:true
3907 # -- Strategy for the querier.
3912 # @schema type:[string, integer, null]
3913 # -- Pod Disruption Budget maxUnavailable
3915 # -- hostAliases to add
3917 # @schema type:[boolean, null]
3921 # -- Use the host's user namespace in the query-frontend
3924 # -- Enable autoscaling for the query-frontend
3926 # -- Minimum autoscaling replicas for the query-frontend
3928 # -- Maximum autoscaling replicas for the query-frontend
3930 # @schema type:[integer, null]
3931 # -- Target CPU utilisation percentage for the query-frontend
3932 targetCPUUtilizationPercentage: 60
3933 # @schema type:[integer, null]
3934 # -- Target memory utilisation percentage for the query-frontend
3935 targetMemoryUtilizationPercentage: null
3936 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3941 # name: loki_query_rate
3943 # type: AverageValue
3945 # @schema skipProperties:true;additionalProperties:true
3946 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3948 # -- Enable autoscaling behaviours
3950 # -- define scale down policies, must conform to HPAScalingRules
3952 # -- define scale up policies, must conform to HPAScalingRules
3955 # -- Enable KEDA autoscaling for the query-frontend. Mutually exclusive with autoscaling.enabled
3957 # @schema type:[integer, null]
3958 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3959 pollingInterval: null
3960 # -- Minimum replicas for KEDA autoscaling
3962 # -- Maximum replicas for KEDA autoscaling
3964 # @schema type:[integer, null]
3965 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3966 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3967 cooldownPeriod: null
3968 # @schema additionalProperties:true
3969 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3970 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3972 # @schema skipProperties:true;additionalProperties:true
3973 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3974 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3976 # -- KEDA triggers for the query-frontend.
3977 # Ref: https://keda.sh/docs/latest/scalers/
3980 # @schema type:[string, null]
3981 # -- The Docker registry for the query-frontend image. Overrides `loki.image.registry`
3983 # @schema type:[string, null]
3984 # -- Docker image repository for the query-frontend image. Overrides `loki.image.repository`
3986 # @schema type:[string, null]
3987 # -- Docker image tag for the query-frontend image. Overrides `loki.image.tag`
3989 # @schema type:[string, null]
3990 # -- Command to execute instead of defined in Docker image
3992 # @schema type:[string, null]
3993 # -- The name of the PriorityClass for query-frontend pods
3994 priorityClassName: null
3995 # @schema additionalProperties:{"type":"string"}
3996 # -- Labels for query-frontend
3998 # @schema additionalProperties:{"type":"string"}
3999 # -- Annotations for query-frontend
4001 # @schema additionalProperties:{"type":"string"}
4002 # -- Labels for query-frontend pods
4004 # @schema additionalProperties:{"type":"string"}
4005 # -- Annotations for query-frontend pods
4007 # @schema additionalProperties:{"type":"string"};deprecated:true
4008 # -- Labels for query-frontend service
4009 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.labels`
4011 # @schema additionalProperties:{"type":"string"};deprecated:true
4012 # -- Annotations for query-frontend service
4013 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.annotations`
4014 serviceAnnotations: {}
4015 # @schema type:string;deprecated:true
4016 # -- Service type for query-frontend service
4017 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.type`
4018 serviceType: "ClusterIP"
4020 # @schema additionalProperties:{"type":"string"}
4021 # -- Annotations for query-frontend Service
4023 # @schema additionalProperties:{"type":"string"}
4024 # -- Additional labels for query-frontend Service
4026 # -- Service Type for query-frontend Service
4028 # -- trafficDistribution for query-frontend Service
4029 trafficDistribution: ""
4030 # -- Session affinity for query-frontend Service
4032 # @schema additionalProperties:true
4033 # -- Session affinity config for query-frontend Service
4034 sessionAffinityConfig: {}
4035 # -- ipFamilyPolicy for query-frontend Service
4036 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4038 # -- ipFamilies for query-frontend Service
4039 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4041 # -- Adds the appProtocol field to the query-frontend service. This allows query-frontend to work with istio protocol selection.
4043 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4046 # @schema additionalProperties:{"type":"string"}
4047 # -- Additional annotations for headless Distributed compactor Service
4049 # @schema additionalProperties:{"type":"string"}
4050 # -- Additional labels for headless Distributed compactor Service
4052 # -- Additional CLI args for the query-frontend
4054 # -- Environment variables to add to the query-frontend pods
4056 # -- Environment variables from secrets or configmaps to add to the query-frontend pods
4058 # -- Volume mounts to add to the query-frontend pods
4059 extraVolumeMounts: []
4060 # -- Volumes to add to the query-frontend pods
4062 # @schema additionalProperties:true
4063 # -- Resource requests and limits for the query-frontend
4065 # -- Container resize policy for the query-frontend
4068 # - resourceName: cpu
4069 # restartPolicy: NotRequired
4070 # - resourceName: memory
4071 # restartPolicy: RestartContainer
4073 # @schema type:[string, array, null]
4074 # -- init containers to add to the query-frontend pods
4076 # @schema type:[string, array, null]
4077 # -- Containers to add to the query-frontend pods
4079 # -- Grace period to allow the query-frontend to shutdown before it is killed
4080 terminationGracePeriodSeconds: 30
4081 podDisruptionBudget:
4082 # -- Enable Pod Disruption Budget
4084 # @schema additionalProperties:{"type":"string"}
4085 # -- Annotations for Pod Disruption Budget
4087 # @schema additionalProperties:{"type":"string"}
4088 # -- Labels for Pod Disruption Budget
4090 # @schema type:[string, integer, null]
4091 # -- Pod Disruption Budget minAvailable
4093 # @schema type:[string, integer, null]
4094 # -- Pod Disruption Budget maxUnavailable
4095 maxUnavailable: null
4096 # @schema type:[string, null]
4097 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4098 unhealthyPodEvictionPolicy: null
4099 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4100 # -- Affinity for query-frontend pods.
4101 # @default -- Hard node anti-affinity
4102 # The value will be passed through tpl.
4105 requiredDuringSchedulingIgnoredDuringExecution:
4108 app.kubernetes.io/component: query-frontend
4109 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4110 app.kubernetes.io/instance: '{{ .Release.Name }}'
4111 topologyKey: kubernetes.io/hostname
4112 # @schema type:[string, integer, null];deprecated:true
4113 # -- Pod Disruption Budget maxUnavailable
4114 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4115 maxUnavailable: null
4116 # @schema additionalProperties:true
4117 # -- Node selector for query-frontend pods
4119 # @schema item:object
4120 # -- Topology Spread Constraints for query-frontend pods
4121 # The value will be passed through tpl.
4122 topologySpreadConstraints: []
4124 # @schema additionalProperties:true;deprecated:true
4125 # -- Adds the appProtocol field to the queryFrontend service. This allows queryFrontend to work with istio protocol selection.
4126 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.appProtocol`
4128 # @schema type:string;deprecated:true
4129 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4130 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.appProtocol.grpc`
4132 # -- Enable load balancer port for query-frontend
4135 # -- trafficDistribution for query-frontend service
4136 trafficDistribution: ""
4138 # -- Specifies whether a ServiceAccount should be created
4140 # @schema type:[string, null]
4141 # -- The name of the ServiceAccount to use.
4142 # If not set and create is true, a name is generated using the fullname template
4144 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4145 # -- Image pull secrets for the service account
4146 imagePullSecrets: []
4147 # @schema additionalProperties:{"type":"string"}
4148 # -- Annotations for the service account
4150 # @schema additionalProperties:{"type":"string"}
4151 # -- Labels for the service account
4153 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4154 automountServiceAccountToken: true
4155# -- Configuration for the query-scheduler
4157 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4159 # -- Kind of query-scheduler deployment. StatefulSet and Deployment are supported.
4161 # @schema type:[integer, null]
4162 # -- Number of replicas for the query-scheduler.
4163 # It should be lower than `-querier.max-concurrent` to avoid generating back-pressure in queriers;
4164 # it's also recommended that this value evenly divides the latter
4165 # Set to null to omit spec.replicas from the workload, allowing an external controller
4166 # (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4168 # @schema skipProperties:true;additionalProperties:true
4169 # -- Strategy for the query-scheduler.
4174 # @schema type:[string, integer, null]
4175 # -- Pod Disruption Budget maxUnavailable
4177 # @schema additionalProperties:true
4178 # -- DNSConfig for query-scheduler
4180 # -- hostAliases to add
4182 # @schema type:[boolean, null]
4186 # -- Use the host's user namespace in the query-scheduler
4189 # @schema type:[string, null]
4190 # -- The Docker registry for the query-scheduler image. Overrides `loki.image.registry`
4192 # @schema type:[string, null]
4193 # -- Docker image repository for the query-scheduler image. Overrides `loki.image.repository`
4195 # @schema type:[string, null]
4196 # -- Docker image tag for the query-scheduler image. Overrides `loki.image.tag`
4198 # @schema type:[string, null]
4199 # -- The name of the PriorityClass for query-scheduler pods
4200 priorityClassName: null
4201 # @schema additionalProperties:{"type":"string"}
4202 # -- Labels for query-scheduler
4204 # @schema additionalProperties:{"type":"string"}
4205 # -- Annotations for query-scheduler
4207 # @schema additionalProperties:{"type":"string"}
4208 # -- Labels for query-scheduler pods
4210 # @schema additionalProperties:{"type":"string"}
4211 # -- Annotations for query-scheduler pods
4213 # @schema additionalProperties:{"type":"string"};deprecated:true
4214 # -- Labels for query-scheduler service
4215 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.labels`
4217 # @schema additionalProperties:{"type":"string"};deprecated:true
4218 # -- Annotations for query-scheduler service
4219 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.annotations`
4220 serviceAnnotations: {}
4221 # @schema type:string;deprecated:true
4222 # -- Service type for query-scheduler service
4223 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.type`
4224 serviceType: "ClusterIP"
4226 # @schema additionalProperties:{"type":"string"}
4227 # -- Annotations for query-scheduler Service
4229 # @schema additionalProperties:{"type":"string"}
4230 # -- Additional labels for query-scheduler Service
4232 # -- Service Type for query-scheduler Service
4234 # -- trafficDistribution for query-scheduler Service
4235 trafficDistribution: ""
4236 # -- Session affinity for query-scheduler Service
4238 # @schema additionalProperties:true
4239 # -- Session affinity config for query-scheduler Service
4240 sessionAffinityConfig: {}
4241 # -- ipFamilyPolicy for query-scheduler Service
4242 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4244 # -- ipFamilies for query-scheduler Service
4245 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4247 # -- Adds the appProtocol field to the query-scheduler service. This allows query-scheduler to work with istio protocol selection.
4249 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4252 # @schema additionalProperties:{"type":"string"}
4253 # -- Additional annotations for headless Distributed compactor Service
4255 # @schema additionalProperties:{"type":"string"}
4256 # -- Additional labels for headless Distributed compactor Service
4258 # -- Additional CLI args for the query-scheduler
4260 # -- Environment variables to add to the query-scheduler pods
4262 # -- Environment variables from secrets or configmaps to add to the query-scheduler pods
4264 # -- Volume mounts to add to the query-scheduler pods
4265 extraVolumeMounts: []
4266 # -- Volumes to add to the query-scheduler pods
4268 # @schema additionalProperties:true
4269 # -- Resource requests and limits for the query-scheduler
4271 # -- Container resize policy for the query-scheduler
4274 # - resourceName: cpu
4275 # restartPolicy: NotRequired
4276 # - resourceName: memory
4277 # restartPolicy: RestartContainer
4279 # @schema type:[string, array, null]
4280 # -- init containers to add to the query-scheduler pods
4282 # @schema type:[string, array, null]
4283 # -- Containers to add to the query-scheduler pods
4285 # -- Grace period to allow the query-scheduler to shutdown before it is killed
4286 terminationGracePeriodSeconds: 30
4287 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4288 # -- Affinity for query-scheduler pods.
4289 # @default -- Hard node anti-affinity
4290 # The value will be passed through tpl.
4293 requiredDuringSchedulingIgnoredDuringExecution:
4296 app.kubernetes.io/component: query-scheduler
4297 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4298 app.kubernetes.io/instance: '{{ .Release.Name }}'
4299 topologyKey: kubernetes.io/hostname
4300 # @schema type:[string, integer, null];deprecated:true
4301 # -- Pod Disruption Budget maxUnavailable
4302 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4304 podDisruptionBudget:
4305 # -- Enable Pod Disruption Budget
4307 # @schema additionalProperties:{"type":"string"}
4308 # -- Annotations for Pod Disruption Budget
4310 # @schema additionalProperties:{"type":"string"}
4311 # -- Labels for Pod Disruption Budget
4313 # @schema type:[string, integer, null]
4314 # -- Pod Disruption Budget minAvailable
4316 # @schema type:[string, integer, null]
4317 # -- Pod Disruption Budget maxUnavailable
4318 maxUnavailable: null
4319 # @schema type:[string, null]
4320 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4321 unhealthyPodEvictionPolicy: null
4322 # @schema additionalProperties:true
4323 # -- Node selector for query-scheduler pods
4325 # @schema item:object
4326 # -- Topology Spread Constraints for query-scheduler pods
4327 # The value will be passed through tpl.
4328 topologySpreadConstraints: []
4330 # @schema additionalProperties:true;deprecated:true
4331 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4332 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.appProtocol`
4335 # -- trafficDistribution for query-scheduler service
4336 trafficDistribution: ""
4338 # -- Specifies whether a ServiceAccount should be created
4340 # @schema type:[string, null]
4341 # -- The name of the ServiceAccount to use.
4342 # If not set and create is true, a name is generated using the fullname template
4344 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4345 # -- Image pull secrets for the service account
4346 imagePullSecrets: []
4347 # @schema additionalProperties:{"type":"string"}
4348 # -- Annotations for the service account
4350 # @schema additionalProperties:{"type":"string"}
4351 # -- Labels for the service account
4353 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4354 automountServiceAccountToken: true
4355# -- Configuration for the index-gateway
4357 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4359 # -- Kind of index-gateway deployment. StatefulSet and Deployment are supported.
4361 # -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
4362 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4363 statefulSetRecreateJob:
4365 # @schema type:[integer, null]
4366 # -- Number of replicas for the index-gateway. Set to null to omit spec.replicas from the workload,
4367 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4369 # -- Whether the index gateway should join the memberlist hashring
4370 joinMemberlist: true
4371 # @schema additionalProperties:true
4372 # -- DNSConfig for index-gateway pods
4374 # -- hostAliases to add
4376 # @schema type:[boolean, null]
4380 # -- Use the host's user namespace in the index-gateway
4383 # @schema type:[string, null]
4384 # -- The Docker registry for the index-gateway image. Overrides `loki.image.registry`
4386 # @schema type:[string, null]
4387 # -- Docker image repository for the index-gateway image. Overrides `loki.image.repository`
4389 # @schema type:[string, null]
4390 # -- Docker image tag for the index-gateway image. Overrides `loki.image.tag`
4392 # @schema type:[string, null]
4393 # -- The name of the PriorityClass for index-gateway pods
4394 priorityClassName: null
4395 # @schema additionalProperties:{"type":"string"}
4396 # -- Labels for index-gateway
4398 # @schema additionalProperties:{"type":"string"}
4399 # -- Annotations for index-gateway
4401 # @schema additionalProperties:{"type":"string"}
4402 # -- Labels for index-gateway pods
4404 # @schema additionalProperties:{"type":"string"}
4405 # -- Annotations for index-gateway pods
4407 # @schema additionalProperties:{"type":"string"};deprecated:true
4408 # -- Labels for index-gateway service
4409 # @deprecated -- This option is deprecated in favor of `indexGateway.service.labels`
4411 # @schema additionalProperties:{"type":"string"};deprecated:true
4412 # -- Annotations for index-gateway service
4413 # @deprecated -- This option is deprecated in favor of `indexGateway.service.annotations`
4414 serviceAnnotations: {}
4415 # @schema type:string;deprecated:true
4416 # -- Service type for index-gateway service
4417 # @deprecated -- This option is deprecated in favor of `indexGateway.service.type`
4418 serviceType: "ClusterIP"
4420 # @schema additionalProperties:{"type":"string"}
4421 # -- Annotations for index-gateway Service
4423 # @schema additionalProperties:{"type":"string"}
4424 # -- Additional labels for index-gateway Service
4426 # -- Service Type for index-gateway Service
4428 # -- trafficDistribution for index-gateway Service
4429 trafficDistribution: ""
4430 # -- Session affinity for index-gateway Service
4432 # @schema additionalProperties:true
4433 # -- Session affinity config for index-gateway Service
4434 sessionAffinityConfig: {}
4435 # -- ipFamilyPolicy for index-gateway Service
4436 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4438 # -- ipFamilies for index-gateway Service
4439 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4441 # -- Adds the appProtocol field to the index-gateway service. This allows index-gateway to work with istio protocol selection.
4443 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4446 # @schema additionalProperties:{"type":"string"}
4447 # -- Additional annotations for headless Distributed compactor Service
4449 # @schema additionalProperties:{"type":"string"}
4450 # -- Additional labels for headless Distributed compactor Service
4452 # -- Additional CLI args for the index-gateway
4454 # -- Environment variables to add to the index-gateway pods
4456 # -- Environment variables from secrets or configmaps to add to the index-gateway pods
4458 # -- Volume mounts to add to the index-gateway pods
4459 extraVolumeMounts: []
4460 # -- Volumes to add to the index-gateway pods
4462 # @schema additionalProperties:true
4463 # -- Resource requests and limits for the index-gateway
4465 # -- Container resize policy for the index-gateway
4468 # - resourceName: cpu
4469 # restartPolicy: NotRequired
4470 # - resourceName: memory
4471 # restartPolicy: RestartContainer
4473 # @schema type:[string, array, null]
4474 # -- Containers to add to the index-gateway pods
4476 # @schema type:[string, array, null]
4477 # -- Init containers to add to the index-gateway pods
4479 # -- Grace period to allow the index-gateway to shutdown before it is killed.
4480 terminationGracePeriodSeconds: 300
4481 podDisruptionBudget:
4482 # -- Enable Pod Disruption Budget
4484 # @schema additionalProperties:{"type":"string"}
4485 # -- Annotations for Pod Disruption Budget
4487 # @schema additionalProperties:{"type":"string"}
4488 # -- Labels for Pod Disruption Budget
4490 # @schema type:[string, integer, null]
4491 # -- Pod Disruption Budget minAvailable
4493 # @schema type:[string, integer, null]
4494 # -- Pod Disruption Budget maxUnavailable
4495 maxUnavailable: null
4496 # @schema type:[string, null]
4497 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4498 unhealthyPodEvictionPolicy: null
4499 # -- Lifecycle for the index-gateway container
4501 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4502 # -- Affinity for index-gateway pods.
4503 # @default -- Hard node anti-affinity
4504 # The value will be passed through tpl.
4507 requiredDuringSchedulingIgnoredDuringExecution:
4510 app.kubernetes.io/component: index-gateway
4511 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4512 app.kubernetes.io/instance: '{{ .Release.Name }}'
4513 topologyKey: kubernetes.io/hostname
4514 # @schema type:[string, integer, null];deprecated:true
4515 # -- Pod Disruption Budget maxUnavailable
4516 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4517 maxUnavailable: null
4518 # @schema additionalProperties:true
4519 # -- Node selector for index-gateway pods
4521 # @schema item:object
4522 # -- Topology Spread Constraints for index-gateway pods
4523 # The value will be passed through tpl.
4524 topologySpreadConstraints: []
4527 # -- Enable creating PVCs which is required when using boltdb-shipper
4529 # -- Set access modes on the PersistentVolumeClaim
4532 # @schema skipProperties:true;additionalProperties:true
4533 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
4534 dataVolumeParameters:
4536 # -- Size of persistent disk
4538 # @schema type:[string, null]
4539 # -- Storage class to be used.
4540 # If defined, storageClassName: <storageClass>.
4541 # If set to "-", storageClassName: "", which disables dynamic provisioning.
4542 # If empty or set to null, no storageClassName spec is
4543 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4545 # @schema type:[string, null]
4546 # -- Volume attributes class name to be used.
4547 # If empty or set to null, no volumeAttributesClassName spec is set.
4548 # Requires Kubernetes 1.31
4549 volumeAttributesClassName: null
4550 # @schema additionalProperties:{"type":"string"}
4551 # -- Annotations for index gateway PVCs
4553 # @schema additionalProperties:{"type":"string"}
4554 # -- Labels for index gateway PVCs
4556 # -- Enable StatefulSetAutoDeletePVC feature
4557 enableStatefulSetAutoDeletePVC: false
4560 # @schema additionalProperties:true;deprecated:true
4561 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4562 # @deprecated -- This option is deprecated in favor of `indexGateway.service.appProtocol`
4565 # -- trafficDistribution for index-gateway service
4566 trafficDistribution: ""
4567 # @schema skipProperties:true;additionalProperties:true
4568 # -- UpdateStrategy for the index-gateway workload.
4570 # -- One of 'OnDelete' or 'RollingUpdate'
4572 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
4576 # -- Specifies whether a ServiceAccount should be created
4578 # @schema type:[string, null]
4579 # -- The name of the ServiceAccount to use.
4580 # If not set and create is true, a name is generated using the fullname template
4582 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4583 # -- Image pull secrets for the service account
4584 imagePullSecrets: []
4585 # @schema additionalProperties:{"type":"string"}
4586 # -- Annotations for the service account
4588 # @schema additionalProperties:{"type":"string"}
4589 # -- Labels for the service account
4591 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4592 automountServiceAccountToken: true
4593# -- Configuration for the compactor
4595 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4597 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
4599 # -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
4600 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4601 statefulSetRecreateJob:
4603 # @schema type:[integer, null]
4604 # -- Number of replicas for the compactor. Set to null to omit spec.replicas from the workload,
4605 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4607 # @schema skipProperties:true;additionalProperties:true
4608 # -- UpdateStrategy or Strategy for the compactor.
4612 # -- PodManagementPolicy for the compactor StatefulSet. Only applicable if `compactor.kind` is StatefulSet.
4613 ## OrderedReady and Parallel are supported.
4614 podManagementPolicy: Parallel
4615 # -- hostAliases to add
4617 # @schema type:[boolean, null]
4621 # -- Use the host's user namespace in the compactor
4623 # @schema additionalProperties:true
4624 # -- DNSConfig for compactor pods
4627 # @schema type:[string, null]
4628 # -- The Docker registry for the compactor image. Overrides `loki.image.registry`
4630 # @schema type:[string, null]
4631 # -- Docker image repository for the compactor image. Overrides `loki.image.repository`
4633 # @schema type:[string, null]
4634 # -- Docker image tag for the compactor image. Overrides `loki.image.tag`
4636 # @schema type:[string, null]
4637 # -- Command to execute instead of defined in Docker image
4639 # @schema type:[string, null]
4640 # -- The name of the PriorityClass for compactor pods
4641 priorityClassName: null
4642 # @schema additionalProperties:{"type":"string"}
4643 # -- Labels for compactor
4645 # @schema additionalProperties:{"type":"string"}
4646 # -- Annotations for compactor
4648 # @schema additionalProperties:{"type":"string"}
4649 # -- Labels for compactor pods
4651 # @schema additionalProperties:{"type":"string"}
4652 # -- Annotations for compactor pods
4654 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4655 # -- Affinity for compactor pods.
4656 # @default -- Hard node anti-affinity
4657 # The value will be passed through tpl.
4660 requiredDuringSchedulingIgnoredDuringExecution:
4663 app.kubernetes.io/component: compactor
4664 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4665 app.kubernetes.io/instance: '{{ .Release.Name }}'
4666 topologyKey: kubernetes.io/hostname
4667 # @schema additionalProperties:{"type":"string"};deprecated:true
4668 # -- Labels for compactor service
4669 # @deprecated -- This option is deprecated in favor of `compactor.service.labels`
4671 # @schema additionalProperties:{"type":"string"};deprecated:true
4672 # -- Annotations for compactor service
4673 # @deprecated -- This option is deprecated in favor of `compactor.service.annotations`
4674 serviceAnnotations: {}
4675 # @schema type:string;deprecated:true
4676 # -- Service type for compactor service
4677 # @deprecated -- This option is deprecated in favor of `compactor.service.type`
4678 serviceType: "ClusterIP"
4680 # @schema additionalProperties:{"type":"string"}
4681 # -- Annotations for compactor Service
4683 # @schema additionalProperties:{"type":"string"}
4684 # -- Additional labels for compactor Service
4686 # -- Service Type for compactor Service
4688 # -- trafficDistribution for compactor Service
4689 trafficDistribution: ""
4690 # -- Session affinity for compactor Service
4692 # @schema additionalProperties:true
4693 # -- Session affinity config for compactor Service
4694 sessionAffinityConfig: {}
4695 # -- ipFamilyPolicy for compactor Service
4696 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4698 # -- ipFamilies for compactor Service
4699 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4701 # -- Adds the appProtocol field to the compactor service. This allows compactor to work with istio protocol selection.
4703 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4706 # @schema additionalProperties:{"type":"string"}
4707 # -- Additional annotations for headless Distributed compactor Service
4709 # @schema additionalProperties:{"type":"string"}
4710 # -- Additional labels for headless Distributed compactor Service
4712 # -- Additional CLI args for the compactor
4714 # -- Environment variables to add to the compactor pods
4716 # -- Environment variables from secrets or configmaps to add to the compactor pods
4718 # -- Volume mounts to add to the compactor pods
4719 extraVolumeMounts: []
4720 # -- Volumes to add to the compactor pods
4722 # @schema skipProperties:true;additionalProperties:true
4723 # -- readiness probe settings for compactor pods. If empty, use `loki.readinessProbe`
4725 # @schema skipProperties:true;additionalProperties:true
4726 # -- liveness probe settings for compactor pods. If empty use `loki.livenessProbe`
4728 # @schema skipProperties:true;additionalProperties:true
4729 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
4731 # @schema additionalProperties:true
4732 # -- Resource requests and limits for the compactor
4734 # -- Container resize policy for the compactor
4737 # - resourceName: cpu
4738 # restartPolicy: NotRequired
4739 # - resourceName: memory
4740 # restartPolicy: RestartContainer
4742 # @schema type:[string, array, null]
4743 # -- Containers to add to the compactor pods
4745 # @schema type:[string, array, null]
4746 # -- Init containers to add to the compactor pods
4748 # -- Grace period to allow the compactor to shutdown before it is killed
4749 terminationGracePeriodSeconds: 30
4750 # @schema additionalProperties:true
4751 # -- Node selector for compactor pods
4753 # -- Tolerations for compactor pods
4755 # @schema additionalProperties:true;deprecated:true
4756 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4757 # @deprecated -- This option is deprecated in favor of `compactor.service.appProtocol`
4761 # -- Enable creating PVCs for the compactor
4763 # -- Storage type for the compactor. pvc and ephemeral are supported.
4765 # @schema type:[string, null]
4766 # -- Storage class to be used.
4767 # If defined, storageClassName: <storageClass>.
4768 # If set to "-", storageClassName: "", which disables dynamic provisioning.
4769 # If empty or set to null, no storageClassName spec is
4770 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4772 # -- Set access modes on the PersistentVolumeClaim
4775 # -- Size of persistent disk
4777 # @schema type:[string, null]
4778 # -- Size of persistent disk
4779 # -- Volume attributes class name to be used.
4780 # If empty or set to null, no volumeAttributesClassName spec is set.
4781 # Requires Kubernetes 1.31
4782 volumeAttributesClassName: null
4783 # @schema additionalProperties:{"type":"string"}
4784 # -- Annotations for the generated volumeClaimTemplate.
4786 # @schema additionalProperties:{"type":"string"}
4787 # -- Labels for the generated volumeClaimTemplate.
4789 # @schema type:[object, null]
4790 # -- Selector for the generated volumeClaimTemplate.
4792 # @schema skipProperties:true;additionalProperties:true
4793 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
4794 dataVolumeParameters:
4796 # -- List of the compactor PVCs. Deprecated in favor of `compactor.persistence.dataVolumeParameters` and `compactor.persistence.size`.
4797 # @notationType -- list
4800 # -- Set access modes on the PersistentVolumeClaim
4804 # @schema type:[string, null]
4805 # -- Storage class to be used.
4806 # If defined, storageClassName: <storageClass>.
4807 # If set to "-", storageClassName: "", which disables dynamic provisioning.
4808 # If empty or set to null, no storageClassName spec is
4809 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4811 # @schema type:[string, null]
4812 # -- Volume attributes class name to be used.
4813 # If empty or set to null, no volumeAttributesClassName spec is set.
4814 # Requires Kubernetes 1.31
4815 volumeAttributesClassName: null
4816 # @schema additionalProperties:{"type":"string"}
4817 # -- Annotations for compactor PVCs
4819 # @schema additionalProperties:{"type":"string"}
4820 # -- Labels for compactor PVCs
4824 # -- Enable StatefulSetAutoDeletePVC feature
4825 enableStatefulSetAutoDeletePVC: false
4830 # @schema type:[string, null]
4831 # -- The name of the ServiceAccount to use for the compactor.
4832 # If not set and create is true, a name is generated by appending
4833 # "-compactor" to the common ServiceAccount.
4835 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4836 # -- Image pull secrets for the compactor service account
4837 imagePullSecrets: []
4838 # @schema additionalProperties:{"type":"string"}
4839 # -- Annotations for the compactor service account
4841 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4842 automountServiceAccountToken: true
4843# -- Configuration for the bloom-gateway
4845 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4847 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
4849 # -- Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed.
4850 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4851 statefulSetRecreateJob:
4853 # -- Number of replicas for the bloom-gateway
4855 # -- hostAliases to add
4857 # @schema type:[boolean, null]
4861 # -- Use the host's user namespace in the bloom-gateway
4863 # @schema skipProperties:true;additionalProperties:true
4864 # -- UpdateStrategy or Strategy for the pattern ingester.
4868 # @schema additionalProperties:true
4869 # -- DNSConfig for bloom-gateway pods
4872 # @schema type:[string, null]
4873 # -- The Docker registry for the bloom-gateway image. Overrides `loki.image.registry`
4875 # @schema type:[string, null]
4876 # -- Docker image repository for the bloom-gateway image. Overrides `loki.image.repository`
4878 # @schema type:[string, null]
4879 # -- Docker image tag for the bloom-gateway image. Overrides `loki.image.tag`
4881 # @schema type:[string, null]
4882 # -- Command to execute instead of defined in Docker image
4884 # @schema type:[string, null]
4885 # -- The name of the PriorityClass for bloom-gateway pods
4886 priorityClassName: null
4887 # @schema additionalProperties:{"type":"string"}
4888 # -- Labels for bloom-builder
4890 # @schema additionalProperties:{"type":"string"}
4891 # -- Annotations for bloom-builder
4893 # @schema additionalProperties:{"type":"string"}
4894 # -- Labels for bloom-gateway pods
4896 # @schema additionalProperties:{"type":"string"}
4897 # -- Annotations for bloom-gateway pods
4899 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4900 # -- Affinity for bloom-gateway pods.
4901 # @default -- Hard node anti-affinity
4902 # The value will be passed through tpl.
4905 requiredDuringSchedulingIgnoredDuringExecution:
4908 app.kubernetes.io/component: bloom-gateway
4909 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4910 app.kubernetes.io/instance: '{{ .Release.Name }}'
4911 topologyKey: kubernetes.io/hostname
4912 # @schema additionalProperties:{"type":"string"};deprecated:true
4913 # -- Labels for bloom-gateway service
4914 # @deprecated -- This option is deprecated in favor of `bloomGateway.service.labels`
4916 # @schema additionalProperties:{"type":"string"};deprecated:true
4917 # -- Annotations for bloom-gateway service
4918 # @deprecated -- This option is deprecated in favor of `bloomGateway.service.annotations`
4919 serviceAnnotations: {}
4921 # @schema additionalProperties:{"type":"string"}
4922 # -- Annotations for bloom-gateway Service
4924 # @schema additionalProperties:{"type":"string"}
4925 # -- Additional labels for bloom-gateway Service
4927 # -- Service Type for bloom-gateway Service
4929 # -- trafficDistribution for bloom-gateway Service
4930 trafficDistribution: ""
4931 # -- Session affinity for bloom-gateway Service
4933 # @schema additionalProperties:true
4934 # -- Session affinity config for bloom-gateway Service
4935 sessionAffinityConfig: {}
4936 # -- ipFamilyPolicy for bloom-gateway Service
4937 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4939 # -- ipFamilies for bloom-gateway Service
4940 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4942 # -- Adds the appProtocol field to the bloom-gateway service. This allows bloom-gateway to work with istio protocol selection.
4944 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4947 # @schema additionalProperties:{"type":"string"}
4948 # -- Additional annotations for headless Distributed compactor Service
4950 # @schema additionalProperties:{"type":"string"}
4951 # -- Additional labels for headless Distributed compactor Service
4953 # -- Additional CLI args for the bloom-gateway
4955 # -- Environment variables to add to the bloom-gateway pods
4957 # -- Environment variables from secrets or configmaps to add to the bloom-gateway pods
4959 # -- Volume mounts to add to the bloom-gateway pods
4960 extraVolumeMounts: []
4961 # -- Volumes to add to the bloom-gateway pods
4963 # @schema skipProperties:true;additionalProperties:true
4964 # -- readiness probe settings for bloom-gateway pods. If empty, use `loki.readinessProbe`
4966 # @schema skipProperties:true;additionalProperties:true
4967 # -- liveness probe settings for bloom-gateway pods. If empty use `loki.livenessProbe`
4969 # @schema skipProperties:true;additionalProperties:true
4970 # -- startup probe settings for bloom-gateway pods. If empty, use `loki.startupProbe`
4972 # @schema additionalProperties:true
4973 # -- Resource requests and limits for the bloom-gateway
4975 # -- Container resize policy for the bloom-gateway
4978 # - resourceName: cpu
4979 # restartPolicy: NotRequired
4980 # - resourceName: memory
4981 # restartPolicy: RestartContainer
4983 # @schema type:[string, array, null]
4984 # -- Containers to add to the bloom-gateway pods
4986 # @schema type:[string, array, null]
4987 # -- Init containers to add to the bloom-gateway pods
4989 # -- Grace period to allow the bloom-gateway to shutdown before it is killed
4990 terminationGracePeriodSeconds: 30
4991 podDisruptionBudget:
4992 # -- Enable Pod Disruption Budget
4994 # @schema additionalProperties:{"type":"string"}
4995 # -- Annotations for Pod Disruption Budget
4997 # @schema additionalProperties:{"type":"string"}
4998 # -- Labels for Pod Disruption Budget
5000 # @schema type:[string, integer, null]
5001 # -- Pod Disruption Budget minAvailable
5003 # @schema type:[string, integer, null]
5004 # -- Pod Disruption Budget maxUnavailable
5005 maxUnavailable: null
5006 # @schema type:[string, null]
5007 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5008 unhealthyPodEvictionPolicy: null
5009 # @schema additionalProperties:true
5010 # -- Node selector for bloom-gateway pods
5012 # -- Tolerations for bloom-gateway pods
5014 # @schema additionalProperties:true;deprecated:true
5015 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5016 # @deprecated -- This option is deprecated in favor of `bloomGateway.service.appProtocol`
5019 # -- The default is to deploy all pods in parallel.
5020 podManagementPolicy: "Parallel"
5022 # -- Enable creating PVCs for the bloom-gateway
5024 # @schema additionalProperties:{"type":"string"}
5025 # -- Annotations for bloom-gateway PVCs
5027 # @schema additionalProperties:{"type":"string"}
5028 # -- Labels for bloom gateway PVCs
5030 # -- List of the bloom-gateway PVCs
5031 # @notationType -- list
5034 # -- Set access modes on the PersistentVolumeClaim
5037 # -- Size of persistent disk
5039 # @schema type:[string, null]
5040 # -- Storage class to be used.
5041 # If defined, storageClassName: <storageClass>.
5042 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5043 # If empty or set to null, no storageClassName spec is
5044 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5046 # @schema type:[string, null]
5047 # -- Volume attributes class name to be used.
5048 # If empty or set to null, no volumeAttributesClassName spec is set.
5049 # Requires Kubernetes 1.31
5050 volumeAttributesClassName: null
5051 # -- Enable StatefulSetAutoDeletePVC feature
5052 enableStatefulSetAutoDeletePVC: false
5056 # -- Specifies whether a ServiceAccount should be created
5058 # @schema type:[string, null]
5059 # -- The name of the ServiceAccount to use.
5060 # If not set and create is true, a name is generated using the fullname template
5062 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5063 # -- Image pull secrets for the service account
5064 imagePullSecrets: []
5065 # @schema additionalProperties:{"type":"string"}
5066 # -- Annotations for the service account
5068 # @schema additionalProperties:{"type":"string"}
5069 # -- Labels for the service account
5071 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5072 automountServiceAccountToken: true
5073# -- Configuration for the bloom-planner
5075 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5077 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5079 # -- Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed.
5080 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5081 statefulSetRecreateJob:
5083 # -- Number of replicas for the bloom-planner
5085 # -- hostAliases to add
5087 # @schema type:[boolean, null]
5091 # -- Use the host's user namespace in the bloom-planner
5093 # @schema additionalProperties:true
5094 # -- DNSConfig for bloom-planner pods
5096 # @schema skipProperties:true;additionalProperties:true
5097 # -- UpdateStrategy or Strategy for the pattern ingester.
5102 # @schema type:[string, null]
5103 # -- The Docker registry for the bloom-planner image. Overrides `loki.image.registry`
5105 # @schema type:[string, null]
5106 # -- Docker image repository for the bloom-planner image. Overrides `loki.image.repository`
5108 # @schema type:[string, null]
5109 # -- Docker image tag for the bloom-planner image. Overrides `loki.image.tag`
5111 # @schema type:[string, null]
5112 # -- Command to execute instead of defined in Docker image
5114 # @schema type:[string, null]
5115 # -- The name of the PriorityClass for bloom-planner pods
5116 priorityClassName: null
5117 # @schema additionalProperties:{"type":"string"}
5118 # -- Labels for bloom-builder
5120 # @schema additionalProperties:{"type":"string"}
5121 # -- Annotations for bloom-builder
5123 # @schema additionalProperties:{"type":"string"}
5124 # -- Labels for bloom-planner pods
5126 # @schema additionalProperties:{"type":"string"}
5127 # -- Annotations for bloom-planner pods
5129 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5130 # -- Affinity for bloom-planner pods.
5131 # @default -- Hard node anti-affinity
5132 # The value will be passed through tpl.
5135 requiredDuringSchedulingIgnoredDuringExecution:
5138 app.kubernetes.io/component: bloom-planner
5139 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5140 app.kubernetes.io/instance: '{{ .Release.Name }}'
5141 topologyKey: kubernetes.io/hostname
5142 # @schema additionalProperties:{"type":"string"};deprecated:true
5143 # -- Labels for bloom-planner service
5144 # @deprecated -- This option is deprecated in favor of `bloomPlanner.service.labels`
5146 # @schema additionalProperties:{"type":"string"};deprecated:true
5147 # -- Annotations for bloom-planner service
5148 # @deprecated -- This option is deprecated in favor of `bloomPlanner.service.annotations`
5149 serviceAnnotations: {}
5151 # @schema additionalProperties:{"type":"string"}
5152 # -- Annotations for bloom-planner Service
5154 # @schema additionalProperties:{"type":"string"}
5155 # -- Additional labels for bloom-planner Service
5157 # -- Service Type for bloom-planner Service
5159 # -- trafficDistribution for bloom-planner Service
5160 trafficDistribution: ""
5161 # -- Session affinity for bloom-planner Service
5163 # @schema additionalProperties:true
5164 # -- Session affinity config for bloom-planner Service
5165 sessionAffinityConfig: {}
5166 # -- ipFamilyPolicy for bloom-planner Service
5167 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5169 # -- ipFamilies for bloom-planner Service
5170 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5172 # -- Adds the appProtocol field to the bloom-planner service. This allows bloom-planner to work with istio protocol selection.
5174 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5177 # @schema additionalProperties:{"type":"string"}
5178 # -- Additional annotations for headless Distributed compactor Service
5180 # @schema additionalProperties:{"type":"string"}
5181 # -- Additional labels for headless Distributed compactor Service
5183 # -- Additional CLI args for the bloom-planner
5185 # -- Environment variables to add to the bloom-planner pods
5187 # -- Environment variables from secrets or configmaps to add to the bloom-planner pods
5189 # -- Volume mounts to add to the bloom-planner pods
5190 extraVolumeMounts: []
5191 # -- Volumes to add to the bloom-planner pods
5193 # @schema skipProperties:true;additionalProperties:true
5194 # -- readiness probe settings for bloom-planner pods. If empty, use `loki.readinessProbe`
5196 # @schema skipProperties:true;additionalProperties:true
5197 # -- liveness probe settings for bloom-planner pods. If empty use `loki.livenessProbe`
5199 # @schema skipProperties:true;additionalProperties:true
5200 # -- startup probe settings for bloom-planner pods. If empty use `loki.startupProbe`
5202 # @schema additionalProperties:true
5203 # -- Resource requests and limits for the bloom-planner
5205 # -- Container resize policy for the bloom-planner
5208 # - resourceName: cpu
5209 # restartPolicy: NotRequired
5210 # - resourceName: memory
5211 # restartPolicy: RestartContainer
5213 # @schema type:[string, array, null]
5214 # -- Containers to add to the bloom-planner pods
5216 # @schema type:[string, array, null]
5217 # -- Init containers to add to the bloom-planner pods
5219 # -- Grace period to allow the bloom-planner to shutdown before it is killed
5220 terminationGracePeriodSeconds: 30
5221 podDisruptionBudget:
5222 # -- Enable Pod Disruption Budget
5224 # @schema additionalProperties:{"type":"string"}
5225 # -- Annotations for Pod Disruption Budget
5227 # @schema additionalProperties:{"type":"string"}
5228 # -- Labels for Pod Disruption Budget
5230 # @schema type:[string, integer, null]
5231 # -- Pod Disruption Budget minAvailable
5233 # @schema type:[string, integer, null]
5234 # -- Pod Disruption Budget maxUnavailable
5235 maxUnavailable: null
5236 # @schema type:[string, null]
5237 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5238 unhealthyPodEvictionPolicy: null
5239 # @schema additionalProperties:true
5240 # -- Node selector for bloom-planner pods
5242 # -- Tolerations for bloom-planner pods
5244 # @schema additionalProperties:true;deprecated:true
5245 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5246 # @deprecated -- This option is deprecated in favor of `bloomPlanner.service.appProtocol`
5249 # -- The default is to deploy all pods in parallel.
5250 podManagementPolicy: "Parallel"
5252 # -- Enable creating PVCs for the bloom-planner
5254 # -- List of the bloom-planner PVCs
5255 # @notationType -- list
5258 # -- Set access modes on the PersistentVolumeClaim
5261 # -- Size of persistent disk
5263 # @schema type:[string, null]
5264 # -- Storage class to be used.
5265 # If defined, storageClassName: <storageClass>.
5266 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5267 # If empty or set to null, no storageClassName spec is
5268 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5270 # @schema type:[string, null]
5271 # -- Volume attributes class name to be used.
5272 # If empty or set to null, no volumeAttributesClassName spec is set.
5273 # Requires Kubernetes 1.31
5274 volumeAttributesClassName: null
5275 # @schema additionalProperties:{"type":"string"}
5276 # -- Annotations for bloom-planner PVCs
5278 # @schema additionalProperties:{"type":"string"}
5279 # -- Labels for bloom planner PVCs
5281 # -- Enable StatefulSetAutoDeletePVC feature
5282 enableStatefulSetAutoDeletePVC: false
5286 # -- Specifies whether a ServiceAccount should be created
5288 # @schema type:[string, null]
5289 # -- The name of the ServiceAccount to use.
5290 # If not set and create is true, a name is generated using the fullname template
5292 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5293 # -- Image pull secrets for the service account
5294 imagePullSecrets: []
5295 # @schema additionalProperties:{"type":"string"}
5296 # -- Annotations for the service account
5298 # @schema additionalProperties:{"type":"string"}
5299 # -- Labels for the service account
5301 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5302 automountServiceAccountToken: true
5303# -- Configuration for the bloom-builder
5305 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5307 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5309 # -- Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
5310 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5311 statefulSetRecreateJob:
5313 # @schema type:[integer, null]
5314 # -- Number of replicas for the bloom-builder. Set to null to omit spec.replicas from the workload,
5315 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5317 # -- hostAliases to add
5319 # @schema type:[boolean, null]
5323 # -- Use the host's user namespace in the boom-builder
5325 # @schema additionalProperties:true
5326 # -- DNSConfig for bloom-builder pods
5329 # -- Enable autoscaling for the bloom-builder
5331 # -- Minimum autoscaling replicas for the bloom-builder
5333 # -- Maximum autoscaling replicas for the bloom-builder
5335 # @schema type:[integer, null]
5336 # -- Target CPU utilisation percentage for the bloom-builder
5337 targetCPUUtilizationPercentage: 60
5338 # @schema type:[integer, null]
5339 # -- Target memory utilisation percentage for the bloom-builder
5340 targetMemoryUtilizationPercentage: null
5341 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
5346 # name: loki_query_rate
5348 # type: AverageValue
5350 # @schema skipProperties:true;additionalProperties:true
5351 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
5353 # -- Enable autoscaling behaviours
5355 # -- define scale down policies, must conform to HPAScalingRules
5357 # -- define scale up policies, must conform to HPAScalingRules
5360 # -- Enable KEDA autoscaling for the bloom-builder. Mutually exclusive with autoscaling.enabled
5362 # @schema type:[integer, null]
5363 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
5364 pollingInterval: null
5365 # -- Minimum replicas for KEDA autoscaling
5367 # -- Maximum replicas for KEDA autoscaling
5369 # @schema type:[integer, null]
5370 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
5371 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
5372 cooldownPeriod: null
5373 # @schema additionalProperties:true
5374 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
5375 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
5377 # @schema skipProperties:true;additionalProperties:true
5378 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
5379 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
5381 # -- KEDA triggers for the bloom-builder.
5382 # Ref: https://keda.sh/docs/latest/scalers/
5385 # @schema type:[string, null]
5386 # -- The Docker registry for the bloom-builder image. Overrides `loki.image.registry`
5388 # @schema type:[string, null]
5389 # -- Docker image repository for the bloom-builder image. Overrides `loki.image.repository`
5391 # @schema type:[string, null]
5392 # -- Docker image tag for the bloom-builder image. Overrides `loki.image.tag`
5394 # @schema type:[string, null]
5395 # -- Command to execute instead of defined in Docker image
5397 # @schema type:[string, null]
5398 # -- The name of the PriorityClass for bloom-builder pods
5399 priorityClassName: null
5400 # @schema additionalProperties:{"type":"string"}
5401 # -- Labels for bloom-builder
5403 # @schema additionalProperties:{"type":"string"}
5404 # -- Annotations for bloom-builder
5406 # @schema additionalProperties:{"type":"string"}
5407 # -- Labels for bloom-builder pods
5409 # @schema additionalProperties:{"type":"string"}
5410 # -- Annotations for bloom-builder pods
5412 # @schema additionalProperties:{"type":"string"};deprecated:true
5413 # -- Labels for bloom-builder service
5414 # @deprecated -- This option is deprecated in favor of `bloomBuilder.service.labels`
5416 # @schema additionalProperties:{"type":"string"};deprecated:true
5417 # -- Annotations for bloom-builder service
5418 # @deprecated -- This option is deprecated in favor of `bloomBuilder.service.annotations`
5419 serviceAnnotations: {}
5421 # @schema additionalProperties:{"type":"string"}
5422 # -- Annotations for bloom-builder Service
5424 # @schema additionalProperties:{"type":"string"}
5425 # -- Additional labels for bloom-builder Service
5427 # -- Service Type for bloom-builder Service
5429 # -- trafficDistribution for bloom-builder Service
5430 trafficDistribution: ""
5431 # -- Session affinity for bloom-builder Service
5433 # @schema additionalProperties:true
5434 # -- Session affinity config for bloom-builder Service
5435 sessionAffinityConfig: {}
5436 # -- ipFamilyPolicy for bloom-builder Service
5437 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5439 # -- ipFamilies for bloom-builder Service
5440 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5442 # -- Adds the appProtocol field to the bloom-builder service. This allows bloom-builder to work with istio protocol selection.
5444 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5447 # @schema additionalProperties:{"type":"string"}
5448 # -- Additional annotations for headless Distributed compactor Service
5450 # @schema additionalProperties:{"type":"string"}
5451 # -- Additional labels for headless Distributed compactor Service
5453 # -- Additional CLI args for the bloom-builder
5455 # -- Environment variables to add to the bloom-builder pods
5457 # -- Environment variables from secrets or configmaps to add to the bloom-builder pods
5459 # -- Volume mounts to add to the bloom-builder pods
5460 extraVolumeMounts: []
5461 # -- Volumes to add to the bloom-builder pods
5463 # @schema additionalProperties:true
5464 # -- Resource requests and limits for the bloom-builder
5466 # -- Container resize policy for the bloom-builder
5469 # - resourceName: cpu
5470 # restartPolicy: NotRequired
5471 # - resourceName: memory
5472 # restartPolicy: RestartContainer
5474 # @schema type:[string, array, null]
5475 # -- Init containers to add to the bloom-builder pods
5477 # @schema type:[string, array, null]
5478 # -- Containers to add to the bloom-builder pods
5480 # -- Grace period to allow the bloom-builder to shutdown before it is killed
5481 terminationGracePeriodSeconds: 30
5482 podDisruptionBudget:
5483 # -- Enable Pod Disruption Budget
5485 # @schema additionalProperties:{"type":"string"}
5486 # -- Annotations for Pod Disruption Budget
5488 # @schema additionalProperties:{"type":"string"}
5489 # -- Labels for Pod Disruption Budget
5491 # @schema type:[string, integer, null]
5492 # -- Pod Disruption Budget minAvailable
5494 # @schema type:[string, integer, null]
5495 # -- Pod Disruption Budget maxUnavailable
5496 maxUnavailable: null
5497 # @schema type:[string, null]
5498 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5499 unhealthyPodEvictionPolicy: null
5500 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5501 # -- Affinity for bloom-builder pods.
5502 # @default -- Hard node anti-affinity
5503 # The value will be passed through tpl.
5506 requiredDuringSchedulingIgnoredDuringExecution:
5509 app.kubernetes.io/component: bloom-builder
5510 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5511 app.kubernetes.io/instance: '{{ .Release.Name }}'
5512 topologyKey: kubernetes.io/hostname
5513 # @schema type:[string, integer, null];deprecated:true
5514 # -- Pod Disruption Budget maxUnavailable
5515 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5516 maxUnavailable: null
5517 # @schema additionalProperties:true
5518 # -- Node selector for bloom-builder pods
5520 # -- Tolerations for bloom-builder pods
5522 # @schema additionalProperties:true;deprecated:true
5523 # -- Adds the appProtocol field to the queryFrontend service. This allows bloomBuilder to work with istio protocol selection.
5524 # @deprecated -- This option is deprecated in favor of `bloomBuilder.service.appProtocol`
5526 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5528 # @schema skipProperties:true;additionalProperties:true
5529 # -- Update strategy for bloom-builder deployment
5533 # @schema type:[string, integer, null]
5534 # -- Pod Disruption Budget maxUnavailable
5537 # -- Enable generic ephemeral volume-backed storage for the bloom-builder `data` volume.
5539 # -- Storage type for the bloom-builder. pvc and ephemeral are supported.
5541 # -- Set access modes on the generated volumeClaimTemplate.
5544 # -- Size of the generated volumeClaimTemplate.
5546 # @schema type:[string, null]
5547 # -- Storage class to be used for the generated volumeClaimTemplate.
5548 # If defined, storageClassName: <storageClass>.
5549 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5550 # If empty or set to null, no storageClassName spec is set, choosing the default provisioner.
5552 # @schema type:[string, null]
5553 # -- Volume attributes class name to be used for the generated volumeClaimTemplate.
5554 # If empty or set to null, no volumeAttributesClassName spec is set.
5555 # Requires Kubernetes 1.31
5556 volumeAttributesClassName: null
5557 # @schema type:[object, null]
5558 # -- Selector for the generated volumeClaimTemplate.
5560 # @schema additionalProperties:{"type":"string"}
5561 # -- Annotations for the generated volumeClaimTemplate.
5563 # @schema additionalProperties:{"type":"string"}
5564 # -- Labels for the generated volumeClaimTemplate.
5567 # -- Specifies whether a ServiceAccount should be created
5569 # @schema type:[string, null]
5570 # -- The name of the ServiceAccount to use.
5571 # If not set and create is true, a name is generated using the fullname template
5573 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5574 # -- Image pull secrets for the service account
5575 imagePullSecrets: []
5576 # @schema additionalProperties:{"type":"string"}
5577 # -- Annotations for the service account
5579 # @schema additionalProperties:{"type":"string"}
5580 # -- Labels for the service account
5582 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5583 automountServiceAccountToken: true
5584# -- Configuration for the pattern ingester
5586 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5588 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5590 # -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
5591 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5592 statefulSetRecreateJob:
5594 # @schema type:[integer, null]
5595 # -- Number of replicas for the pattern ingester. Set to null to omit spec.replicas from the workload,
5596 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5598 # @schema skipProperties:true;additionalProperties:true
5599 # -- UpdateStrategy or Strategy for the pattern ingester.
5603 # @schema additionalProperties:true
5604 # -- DNSConfig for pattern ingester pods
5606 # -- hostAliases to add
5608 # @schema type:[boolean, null]
5612 # -- Use the host's user namespace in the pattern ingester
5615 # @schema type:[string, null]
5616 # -- The Docker registry for the pattern ingester image. Overrides `loki.image.registry`
5618 # @schema type:[string, null]
5619 # -- Docker image repository for the pattern ingester image. Overrides `loki.image.repository`
5621 # @schema type:[string, null]
5622 # -- Docker image tag for the pattern ingester image. Overrides `loki.image.tag`
5624 # @schema type:[string, null]
5625 # -- Command to execute instead of defined in Docker image
5627 # @schema type:[string, null]
5628 # -- The name of the PriorityClass for pattern ingester pods
5629 priorityClassName: null
5630 # @schema additionalProperties:{"type":"string"}
5631 # -- Labels for pattern ingester
5633 # @schema additionalProperties:{"type":"string"}
5634 # -- Annotations for pattern ingester
5636 # @schema additionalProperties:{"type":"string"}
5637 # -- Labels for pattern ingester pods
5639 # @schema additionalProperties:{"type":"string"}
5640 # -- Annotations for pattern ingester pods
5642 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5643 # -- Affinity for pattern ingester pods.
5644 # @default -- Hard node anti-affinity
5645 # The value will be passed through tpl.
5648 requiredDuringSchedulingIgnoredDuringExecution:
5651 app.kubernetes.io/component: pattern-ingester
5652 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5653 app.kubernetes.io/instance: '{{ .Release.Name }}'
5654 topologyKey: kubernetes.io/hostname
5655 # @schema type:[string, integer, null];deprecated:true
5656 # -- Pod Disruption Budget maxUnavailable
5657 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5658 maxUnavailable: null
5659 # -- Additional CLI args for the pattern ingester
5661 # -- Environment variables to add to the pattern ingester pods
5663 # -- Environment variables from secrets or configmaps to add to the pattern ingester pods
5665 # -- Volume mounts to add to the pattern ingester pods
5666 extraVolumeMounts: []
5667 # -- Volumes to add to the pattern ingester pods
5669 # @schema skipProperties:true;additionalProperties:true
5670 # -- readiness probe settings for pattern ingester pods. If empty, use `loki.readinessProbe`
5672 # @schema skipProperties:true;additionalProperties:true
5673 # -- liveness probe settings for pattern ingester pods. If empty use `loki.livenessProbe`
5675 # @schema skipProperties:true;additionalProperties:true
5676 # -- startup probe settings for pattern ingester pods. If empty use `loki.startupProbe`
5678 # @schema additionalProperties:true
5679 # -- Resource requests and limits for the pattern ingester
5681 # -- Container resize policy for the pattern ingester
5684 # - resourceName: cpu
5685 # restartPolicy: NotRequired
5686 # - resourceName: memory
5687 # restartPolicy: RestartContainer
5689 # @schema type:[string, array, null]
5690 # -- Containers to add to the pattern ingester pods
5692 # @schema type:[string, array, null]
5693 # -- Init containers to add to the pattern ingester pods
5695 # -- Grace period to allow the pattern ingester to shutdown before it is killed
5696 terminationGracePeriodSeconds: 30
5697 podDisruptionBudget:
5698 # -- Enable Pod Disruption Budget
5700 # @schema additionalProperties:{"type":"string"}
5701 # -- Annotations for Pod Disruption Budget
5703 # @schema additionalProperties:{"type":"string"}
5704 # -- Labels for Pod Disruption Budget
5706 # @schema type:[string, integer, null]
5707 # -- Pod Disruption Budget minAvailable
5709 # @schema type:[string, integer, null]
5710 # -- Pod Disruption Budget maxUnavailable
5711 maxUnavailable: null
5712 # @schema type:[string, null]
5713 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5714 unhealthyPodEvictionPolicy: null
5715 # @schema additionalProperties:true
5716 # -- Node selector for pattern ingester pods
5718 # @schema item:object
5719 # -- Topology Spread Constraints for pattern ingester pods
5720 # The value will be passed through tpl.
5721 topologySpreadConstraints: []
5723 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5727 # -- Enable creating PVCs for the pattern ingester
5729 # -- Size of persistent disk
5731 # @schema type:[string, null]
5732 # -- Storage class to be used.
5733 # If defined, storageClassName: <storageClass>.
5734 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5735 # If empty or set to null, no storageClassName spec is
5736 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5738 # -- List of the pattern ingester PVCs
5739 # @notationType -- list
5742 # -- Set access modes on the PersistentVolumeClaim
5746 # @schema type:[string, null]
5747 # -- Storage class to be used.
5748 # If defined, storageClassName: <storageClass>.
5749 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5750 # If empty or set to null, no storageClassName spec is
5751 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5753 # @schema type:[string, null]
5754 # -- Volume attributes class name to be used.
5755 # If empty or set to null, no volumeAttributesClassName spec is set.
5756 # Requires Kubernetes 1.31
5757 volumeAttributesClassName: null
5758 # @schema additionalProperties:{"type":"string"}
5759 # -- Annotations for pattern ingester PVCs
5761 # @schema additionalProperties:{"type":"string"}
5762 # -- Labels for pattern ingester PVCs
5766 # -- Enable StatefulSetAutoDeletePVC feature
5767 enableStatefulSetAutoDeletePVC: false
5771 # -- Specifies whether a ServiceAccount should be created
5773 # @schema type:[string, null]
5774 # -- The name of the ServiceAccount to use.
5775 # If not set and create is true, a name is generated using the fullname template
5777 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5778 # -- Image pull secrets for the service account
5779 imagePullSecrets: []
5780 # @schema additionalProperties:{"type":"string"}
5781 # -- Annotations for the service account
5783 # @schema additionalProperties:{"type":"string"}
5784 # -- Labels for the service account
5786 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5787 automountServiceAccountToken: true
5788# -- Configuration for the ruler
5790 # -- The ruler component is optional and can be disabled if desired.
5792 # -- Kind of ruler deployment. StatefulSet and Deployment are supported.
5794 # -- EXPERIMENTAL: Enable creating a Job to recreate the ruler StatefulSet when the ruler configuration is changed.
5795 ## Only applicable if `ruler.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5796 statefulSetRecreateJob:
5798 # -- Whether to enable the rules sidecar
5800 # @schema type:[integer, null]
5801 # -- Number of replicas for the ruler. Set to null to omit spec.replicas from the workload,
5802 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5804 # -- hostAliases to add
5806 # @schema type:[boolean, null]
5810 # -- Use the host's user namespace in the ruler
5813 # @schema type:[string, null]
5814 # -- The Docker registry for the ruler image. Overrides `loki.image.registry`
5816 # @schema type:[string, null]
5817 # -- Docker image repository for the ruler image. Overrides `loki.image.repository`
5819 # @schema type:[string, null]
5820 # -- Docker image tag for the ruler image. Overrides `loki.image.tag`
5822 # @schema type:[string, null]
5823 # -- Command to execute instead of defined in Docker image
5825 # @schema type:[string, null]
5826 # -- The name of the PriorityClass for ruler pods
5827 priorityClassName: null
5828 # @schema additionalProperties:{"type":"string"}
5829 # -- Labels for ruler
5831 # @schema additionalProperties:{"type":"string"}
5832 # -- Annotations for ruler
5834 # @schema additionalProperties:{"type":"string"}
5835 # -- Labels for ruler pods
5837 # @schema additionalProperties:{"type":"string"}
5838 # -- Annotations for ruler pods
5840 # @schema additionalProperties:{"type":"string"};deprecated:true
5841 # -- Labels for ruler service
5842 # @deprecated -- This option is deprecated in favor of `ruler.service.labels`
5844 # @schema additionalProperties:{"type":"string"};deprecated:true
5845 # -- Annotations for ruler service
5846 # @deprecated -- This option is deprecated in favor of `ruler.service.annotations`
5847 serviceAnnotations: {}
5849 # @schema additionalProperties:{"type":"string"}
5850 # -- Annotations for ruler Service
5852 # @schema additionalProperties:{"type":"string"}
5853 # -- Additional labels for ruler Service
5855 # -- Service Type for ruler Service
5857 # -- trafficDistribution for ruler Service
5858 trafficDistribution: ""
5859 # -- Session affinity for ruler Service
5861 # @schema additionalProperties:true
5862 # -- Session affinity config for ruler Service
5863 sessionAffinityConfig: {}
5864 # -- ipFamilyPolicy for ruler Service
5865 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5867 # -- ipFamilies for ruler Service
5868 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5870 # -- Adds the appProtocol field to the ruler service. This allows ruler to work with istio protocol selection.
5872 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5875 # @schema additionalProperties:{"type":"string"}
5876 # -- Additional annotations for headless Distributed compactor Service
5878 # @schema additionalProperties:{"type":"string"}
5879 # -- Additional labels for headless Distributed compactor Service
5881 # -- Additional CLI args for the ruler
5883 # -- Environment variables to add to the ruler pods
5885 # -- Environment variables from secrets or configmaps to add to the ruler pods
5887 # -- Volume mounts to add to the ruler pods
5888 extraVolumeMounts: []
5889 # -- Volumes to add to the ruler pods
5891 # @schema additionalProperties:true
5892 # -- Resource requests and limits for the ruler
5894 # -- Container resize policy for the ruler
5897 # - resourceName: cpu
5898 # restartPolicy: NotRequired
5899 # - resourceName: memory
5900 # restartPolicy: RestartContainer
5902 # @schema type:[string, array, null]
5903 # -- Containers to add to the ruler pods
5905 # @schema type:[string, array, null]
5906 # -- Init containers to add to the ruler pods
5908 # -- Grace period to allow the ruler to shutdown before it is killed
5909 terminationGracePeriodSeconds: 300
5910 podDisruptionBudget:
5911 # -- Enable Pod Disruption Budget
5913 # @schema additionalProperties:{"type":"string"}
5914 # -- Annotations for Pod Disruption Budget
5916 # @schema additionalProperties:{"type":"string"}
5917 # -- Labels for Pod Disruption Budget
5919 # @schema type:[string, integer, null]
5920 # -- Pod Disruption Budget minAvailable
5922 # @schema type:[string, integer, null]
5923 # -- Pod Disruption Budget maxUnavailable
5924 maxUnavailable: null
5925 # @schema type:[string, null]
5926 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5927 unhealthyPodEvictionPolicy: null
5928 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5929 # -- Affinity for ruler pods.
5930 # @default -- Hard node anti-affinity
5931 # The value will be passed through tpl.
5934 requiredDuringSchedulingIgnoredDuringExecution:
5937 app.kubernetes.io/component: ruler
5938 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5939 app.kubernetes.io/instance: '{{ .Release.Name }}'
5940 topologyKey: kubernetes.io/hostname
5941 # @schema type:[string, integer, null];deprecated:true
5942 # -- Pod Disruption Budget maxUnavailable
5943 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5944 maxUnavailable: null
5945 # @schema additionalProperties:true
5946 # -- Node selector for ruler pods
5948 # @schema item:object
5949 # -- Topology Spread Constraints for ruler pods
5950 # The value will be passed through tpl.
5951 topologySpreadConstraints: []
5953 # @schema additionalProperties:true
5954 # -- DNSConfig for ruler pods
5957 # -- Enable creating PVCs which is required when using recording rules
5959 # -- Set access modes on the PersistentVolumeClaim
5962 # -- Size of persistent disk
5964 # @schema type:[string, null]
5965 # -- Storage class to be used.
5966 # If defined, storageClassName: <storageClass>.
5967 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5968 # If empty or set to null, no storageClassName spec is
5969 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5971 # @schema type:[string, null]
5972 # -- Volume attributes class name to be used.
5973 # If empty or set to null, no volumeAttributesClassName spec is set.
5974 # Requires Kubernetes 1.31
5975 volumeAttributesClassName: null
5976 # @schema additionalProperties:{"type":"string"}
5977 # -- Annotations for ruler PVCs
5979 # @schema additionalProperties:{"type":"string"}
5980 # -- Labels for ruler PVCs
5982 # @schema additionalProperties:true;deprecated:true
5983 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5984 # @deprecated -- This option is deprecated in favor of `ruler.service.appProtocol`
5987 # -- Directories containing rules files. If used, you must also configure `loki.rulerConfig.storage` to use local storage.
5992 # - name: should_fire
5994 # - alert: HighPercentageError
5996 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
5998 # sum(rate({app="foo", env="production"}[5m])) by (job)
6004 # summary: High error rate
6005 # - name: credentials_leak
6007 # - alert: http-credentials-leaked
6009 # message: "{{ $labels.job }} is leaking http basic auth credentials."
6010 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
6013 # severity: critical
6018 # - alert: HighThroughputLogStreams
6019 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
6024 # - name: should_fire
6026 # - alert: HighPercentageError
6028 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
6030 # sum(rate({app="foo", env="production"}[5m])) by (job)
6036 # summary: High error rate
6037 # - name: credentials_leak
6039 # - alert: http-credentials-leaked
6041 # message: "{{ $labels.job }} is leaking http basic auth credentials."
6042 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
6045 # severity: critical
6050 # - alert: HighThroughputLogStreams
6051 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
6055 # -- Specifies whether a ServiceAccount should be created
6057 # @schema type:[string, null]
6058 # -- The name of the ServiceAccount to use.
6059 # If not set and create is true, a name is generated using the fullname template
6061 # @schema item:object;itemProperties:{"name": {"type": "string"}}
6062 # -- Image pull secrets for the service account
6063 imagePullSecrets: []
6064 # @schema additionalProperties:{"type":"string"}
6065 # -- Annotations for the service account
6067 # @schema additionalProperties:{"type":"string"}
6068 # -- Labels for the service account
6070 # -- Set this toggle to false to opt out of automounting API credentials for the service account
6071 automountServiceAccountToken: true
6072# -- Configuration for the overrides-exporter
6074 # -- The overrides-exporter component is optional and can be disabled if desired.
6076 # -- Kind of backend workload. StatefulSet and Deployment are supported.
6078 # @schema type:[integer, null]
6079 # -- Number of replicas for the overrides-exporter. Set to null to omit spec.replicas from the workload,
6080 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
6082 # @schema additionalProperties:true
6083 # -- DNSConfig for overrides-exporter
6085 # -- hostAliases to add
6087 # @schema type:[boolean, null]
6091 # -- Use the host's user namespace in the overrides-exporter
6094 # @schema type:[string, null]
6095 # -- The Docker registry for the overrides-exporter image. Overrides `loki.image.registry`
6097 # @schema type:[string, null]
6098 # -- Docker image repository for the overrides-exporter image. Overrides `loki.image.repository`
6100 # @schema type:[string, null]
6101 # -- Docker image tag for the overrides-exporter image. Overrides `loki.image.tag`
6103 # @schema type:[string, null]
6104 # -- Command to execute instead of defined in Docker image
6106 # @schema type:[string, null]
6107 # -- The name of the PriorityClass for overrides-exporter pods
6108 priorityClassName: null
6109 # @schema additionalProperties:{"type":"string"}
6110 # -- Labels for overrides-exporter
6112 # @schema additionalProperties:{"type":"string"}
6113 # -- Annotations for overrides-exporter
6115 # @schema additionalProperties:{"type":"string"}
6116 # -- Labels for overrides-exporter pods
6118 # @schema additionalProperties:{"type":"string"}
6119 # -- Annotations for overrides-exporter pods
6121 # @schema additionalProperties:{"type":"string"};deprecated:true
6122 # -- Labels for overrides-exporter service
6123 # @deprecated -- This option is deprecated in favor of `overridesExporter.service.labels`
6125 # @schema additionalProperties:{"type":"string"};deprecated:true
6126 # -- Annotations for overrides-exporter service
6127 # @deprecated -- This option is deprecated in favor of `overridesExporter.service.annotations`
6128 serviceAnnotations: {}
6130 # @schema additionalProperties:{"type":"string"}
6131 # -- Annotations for overrides-exporter Service
6133 # @schema additionalProperties:{"type":"string"}
6134 # -- Additional labels for overrides-exporter Service
6136 # -- Service Type for overrides-exporter Service
6138 # -- trafficDistribution for overrides-exporter Service
6139 trafficDistribution: ""
6140 # -- Session affinity for overrides-exporter Service
6142 # @schema additionalProperties:true
6143 # -- Session affinity config for overrides-exporter Service
6144 sessionAffinityConfig: {}
6145 # -- ipFamilyPolicy for overrides-exporter Service
6146 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6148 # -- ipFamilies for overrides-exporter Service
6149 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6151 # -- Adds the appProtocol field to the overrides-exporter service. This allows overrides-exporter to work with istio protocol selection.
6153 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
6156 # @schema additionalProperties:{"type":"string"}
6157 # -- Additional annotations for headless overridesExporter service
6159 # @schema additionalProperties:{"type":"string"}
6160 # -- Additional labels for headless overridesExporter Service
6162 # -- Additional CLI args for the overrides-exporter
6164 # -- Environment variables to add to the overrides-exporter pods
6166 # -- Environment variables from secrets or configmaps to add to the overrides-exporter pods
6168 # -- Volume mounts to add to the overrides-exporter pods
6169 extraVolumeMounts: []
6170 # -- Volumes to add to the overrides-exporter pods
6172 # @schema additionalProperties:true
6173 # -- Resource requests and limits for the overrides-exporter
6175 # -- Container resize policy for the overrides-exporter
6178 # - resourceName: cpu
6179 # restartPolicy: NotRequired
6180 # - resourceName: memory
6181 # restartPolicy: RestartContainer
6183 # @schema type:[string, array, null]
6184 # -- Containers to add to the overrides-exporter pods
6186 # @schema type:[string, array, null]
6187 # -- Init containers to add to the overrides-exporter pods
6189 # -- Grace period to allow the overrides-exporter to shutdown before it is killed
6190 terminationGracePeriodSeconds: 300
6191 podDisruptionBudget:
6192 # -- Enable Pod Disruption Budget
6194 # @schema additionalProperties:{"type":"string"}
6195 # -- Annotations for Pod Disruption Budget
6197 # @schema additionalProperties:{"type":"string"}
6198 # -- Labels for Pod Disruption Budget
6200 # @schema type:[string, integer, null]
6201 # -- Pod Disruption Budget minAvailable
6203 # @schema type:[string, integer, null]
6204 # -- Pod Disruption Budget maxUnavailable
6205 maxUnavailable: null
6206 # @schema type:[string, null]
6207 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
6208 unhealthyPodEvictionPolicy: null
6209 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6210 # -- Affinity for overrides-exporter pods.
6211 # @default -- Hard node anti-affinity
6212 # The value will be passed through tpl.
6215 requiredDuringSchedulingIgnoredDuringExecution:
6218 app.kubernetes.io/component: overrides-exporter
6219 app.kubernetes.io/name: '{{ include "loki.name" . }}'
6220 app.kubernetes.io/instance: '{{ .Release.Name }}'
6221 topologyKey: kubernetes.io/hostname
6222 # @schema type:[string, integer, null];deprecated:true
6223 # -- Pod Disruption Budget maxUnavailable
6224 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6225 maxUnavailable: null
6226 # @schema additionalProperties:true
6227 # -- Node selector for overrides-exporter pods
6229 # @schema item:object
6230 # -- Topology Spread Constraints for overrides-exporter pods
6231 # The value will be passed through tpl.
6232 topologySpreadConstraints: []
6234 # @schema additionalProperties:true;deprecated:true
6235 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
6236 # @deprecated -- This option is deprecated in favor of `overridesExporter.service.appProtocol`
6240 # -- Specifies whether a ServiceAccount should be created
6242 # @schema type:[string, null]
6243 # -- The name of the ServiceAccount to use.
6244 # If not set and create is true, a name is generated using the fullname template
6246 # @schema item:object;itemProperties:{"name": {"type": "string"}}
6247 # -- Image pull secrets for the service account
6248 imagePullSecrets: []
6249 # @schema additionalProperties:{"type":"string"}
6250 # -- Annotations for the service account
6252 # @schema additionalProperties:{"type":"string"}
6253 # -- Labels for the service account
6255 # -- Set this toggle to false to opt out of automounting API credentials for the service account
6256 automountServiceAccountToken: true
6257# You can use a self hosted memcached by setting enabled to false and providing addresses.
6259 # -- Enable the built in memcached server provided by the chart
6262 # -- Memcached Docker image registry
6264 # -- Memcached Docker image repository
6265 repository: chainguard-private/memcached
6266 # -- Memcached Docker image tag
6267 tag: 1.6.45-r5@sha256:698e1e9fc39d7be386e70d6ebfb4348833d3f3aa3329d8b253368b84d14cb068
6268 # -- Memcached Docker image pull policy
6269 pullPolicy: IfNotPresent
6270 # @schema skipProperties:true;additionalProperties:true
6271 # -- The SecurityContext override for memcached pods
6278 type: RuntimeDefault
6279 # @schema type:[string, null]
6280 # -- The name of the PriorityClass for memcached pods
6281 priorityClassName: null
6282 # @schema skipProperties:true;additionalProperties:true
6283 # -- The SecurityContext for memcached containers
6284 containerSecurityContext:
6285 readOnlyRootFilesystem: true
6288 allowPrivilegeEscalation: false
6291 type: RuntimeDefault
6292 # @schema skipProperties:true;additionalProperties:true
6293 # -- Readiness probe for memcached pods (probe port defaults to container port)
6297 initialDelaySeconds: 5
6301 # @schema skipProperties:true;additionalProperties:true
6302 # -- Liveness probe for memcached pods
6306 initialDelaySeconds: 30
6310 # @schema skipProperties:true;additionalProperties:true
6311 # -- Startup probe for memcached pods
6314 # -- Specifies whether a ServiceAccount should be created
6316 # @schema type:[string, null]
6317 # -- The name of the ServiceAccount to use.
6318 # If not set and create is true, a name is generated using the fullname template
6320 # @schema item:object;itemProperties:{"name": {"type": "string"}}
6321 # -- Image pull secrets for the service account
6322 imagePullSecrets: []
6323 # @schema additionalProperties:{"type":"string"}
6324 # -- Annotations for the service account
6326 # @schema additionalProperties:{"type":"string"}
6327 # -- Labels for the service account
6329 # -- Set this toggle to false to opt out of automounting API credentials for the service account
6330 automountServiceAccountToken: false
6332 # -- Whether memcached metrics should be exported
6335 # -- Memcached exporter Docker image registry
6337 # -- Memcached exporter Docker image repository
6338 repository: chainguard-private/memcached-exporter
6339 # -- Memcached exporter Docker image tag
6340 tag: 0.18.0-r0@sha256:fb9b52c200114c623352d5af48b0fdc0620ce514d550800d30b35b090d66357d
6341 # -- Memcached exporter Docker image pull policy
6342 pullPolicy: IfNotPresent
6343 # @schema additionalProperties:true
6347 # -- Container resize policy for the memcached exporter
6350 # - resourceName: cpu
6351 # restartPolicy: NotRequired
6352 # - resourceName: memory
6353 # restartPolicy: RestartContainer
6355 # @schema skipProperties:true;additionalProperties:true
6356 # -- The SecurityContext for memcached exporter containers
6357 containerSecurityContext:
6358 readOnlyRootFilesystem: true
6361 allowPrivilegeEscalation: false
6364 type: RuntimeDefault
6365 # -- Extra args to add to the exporter container.
6368 # memcached.tls.enable: true
6369 # memcached.tls.cert-file: /certs/cert.crt
6370 # memcached.tls.key-file: /certs/cert.key
6371 # memcached.tls.ca-file: /certs/ca.crt
6372 # memcached.tls.insecure-skip-verify: false
6373 # memcached.tls.server-name: memcached
6375 # @schema skipProperties:true;additionalProperties:true
6376 # -- Liveness probe for memcached exporter
6381 initialDelaySeconds: 30
6385 # @schema skipProperties:true;additionalProperties:true
6386 # -- Readiness probe for memcached exporter
6391 initialDelaySeconds: 5
6395 # @schema skipProperties:true;additionalProperties:true
6396 # -- Startup probe for memcached exporter
6399 # -- Specifies whether memcached based results-cache should be enabled
6401 # -- Comma separated addresses list in DNS Service Discovery format
6402 addresses: dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "results-cache") }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
6403 # -- Specify how long cached results should be stored in the results-cache before being expired
6404 defaultValidity: 12h
6405 # -- Memcached operation timeout
6407 # -- Total number of results-cache replicas
6409 # -- Port of the results-cache service
6411 # -- Amount of memory allocated to results-cache for object storage (in MB).
6412 allocatedMemory: 1024
6413 # -- Amount of cpu allocated to results-cache for object storage (in integer or millicores).
6415 # -- Maximum item results-cache for memcached (in MB).
6417 # -- Maximum number of connections allowed
6418 connectionLimit: 16384
6419 # -- Max memory to use for cache write back
6420 writebackSizeLimit: 500MB
6421 # -- Max number of objects to use for cache write back
6422 writebackBuffer: 500000
6423 # -- Number of parallel threads for cache write back
6424 writebackParallelism: 1
6425 # -- Extra init containers for results-cache pods
6427 # @schema additionalProperties:{"type":"string"}
6428 # -- Annotations for the results-cache pods
6430 # @schema additionalProperties:true
6431 # -- Node selector for results-cache pods
6433 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6434 # -- Affinity for results-cache pods
6436 # @schema item:object
6437 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
6438 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
6439 topologySpreadConstraints: []
6440 # topologyKey: kubernetes.io/hostname
6441 # whenUnsatisfiable: ScheduleAnyway
6442 # -- Tolerations for results-cache pods
6444 # @schema type:[string, integer, null];deprecated:true
6445 # -- Pod Disruption Budget maxUnavailable
6446 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6448 podDisruptionBudget:
6449 # -- Enable Pod Disruption Budget
6451 # @schema additionalProperties:{"type":"string"}
6452 # -- Annotations for Pod Disruption Budget
6454 # @schema additionalProperties:{"type":"string"}
6455 # -- Labels for Pod Disruption Budget
6457 # @schema type:[string, integer, null]
6458 # -- Pod Disruption Budget minAvailable
6460 # @schema type:[string, integer, null]
6461 # -- Pod Disruption Budget maxUnavailable
6462 maxUnavailable: null
6463 # @schema type:[string, null]
6464 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
6465 unhealthyPodEvictionPolicy: null
6466 # @schema additionalProperties:true
6467 # -- DNSConfig for results-cache
6469 # @schema type:[string, null]
6470 # -- The name of the PriorityClass for results-cache pods
6471 priorityClassName: null
6472 # @schema type:[boolean, null]
6473 # -- Use the host's user namespace in results-cache pods
6475 # @schema additionalProperties:{"type":"string"}
6476 # -- Labels for results-cache pods
6478 # @schema additionalProperties:{"type":"string"}
6479 # -- Annotations for results-cache pods
6481 # -- Management policy for results-cache pods
6482 podManagementPolicy: Parallel
6483 # -- Grace period to allow the results-cache to shutdown before it is killed
6484 terminationGracePeriodSeconds: 60
6485 # @schema skipProperties:true;additionalProperties:true
6486 # -- Stateful results-cache strategy
6489 # -- Add extended options for results-cache memcached container. The format is the same as for the memcached -o/--extend flag.
6491 # extraExtendedOptions: 'tls,modern,track_sizes'
6492 extraExtendedOptions: ""
6493 # -- Additional CLI args for results-cache
6495 # @schema type:[array, null]
6496 # -- Additional containers to be added to the results-cache pod.
6498 # -- Additional volumes to be added to the results-cache pod (applies to both memcached and exporter containers).
6501 # - name: extra-volume
6503 # secretName: extra-volume-secret
6505 # -- Additional volume mounts to be added to the results-cache pod (applies to both memcached and exporter containers).
6507 # extraVolumeMounts:
6508 # - name: extra-volume
6509 # mountPath: /etc/extra-volume
6511 extraVolumeMounts: []
6512 # @schema additionalProperties:true
6513 # -- Resource requests and limits for the results-cache
6514 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
6516 # -- Container resize policy for the results-cache
6519 # - resourceName: cpu
6520 # restartPolicy: NotRequired
6521 # - resourceName: memory
6522 # restartPolicy: RestartContainer
6524 # -- Service annotations and labels
6526 # @schema additionalProperties:{"type":"string"}
6528 # @schema additionalProperties:{"type":"string"}
6530 # -- Persistence settings for the results-cache
6532 # -- Enable creating PVCs for the results-cache
6534 # -- Size of persistent disk, must be in G or Gi
6536 # @schema type:[string, null]
6537 # -- Storage class to be used.
6538 # If defined, storageClassName: <storageClass>.
6539 # If set to "-", storageClassName: "", which disables dynamic provisioning.
6540 # If empty or set to null, no storageClassName spec is
6541 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6543 # @schema type:[string, null]
6544 # -- Volume attributes class name to be used.
6545 # If empty or set to null, no volumeAttributesClassName spec is set.
6546 # Requires Kubernetes 1.31
6547 volumeAttributesClassName: null
6548 # -- Volume mount path
6550 # @schema additionalProperties:{"type":"string"}
6551 # -- PVC additional labels
6554 # -- Append to the name of the resources to make names different for l1 and l2
6556 # -- Specifies whether memcached based chunks-cache should be enabled
6558 # -- Comma separated addresses list in DNS Service Discovery format
6559 addresses: 'dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "chunks-cache" "suffix" $.Values.chunksCache.suffix ) }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}'
6560 # -- Batchsize for sending and receiving chunks from chunks cache
6562 # -- Parallel threads for sending and receiving chunks from chunks cache
6564 # -- Memcached operation timeout
6566 # -- Specify how long cached chunks should be stored in the chunks-cache before being expired
6568 # -- Total number of chunks-cache replicas
6570 # -- Port of the chunks-cache service
6572 # -- Amount of memory allocated to chunks-cache for object storage (in MB).
6573 allocatedMemory: 8192
6574 # -- Amount of cpu allocated to chunks-cache for object storage (in integer or millicores).
6576 # -- Maximum item memory for chunks-cache (in MB).
6578 # -- Maximum number of connections allowed
6579 connectionLimit: 16384
6580 # -- Max memory to use for cache write back
6581 writebackSizeLimit: 500MB
6582 # -- Max number of objects to use for cache write back
6583 writebackBuffer: 500000
6584 # -- Number of parallel threads for cache write back
6585 writebackParallelism: 1
6586 # -- Extra init containers for chunks-cache pods
6588 # @schema additionalProperties:{"type":"string"}
6589 # -- Annotations for the chunks-cache pods
6591 # @schema additionalProperties:true
6592 # -- Node selector for chunks-cache pods
6594 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6595 # -- Affinity for chunks-cache pods
6597 # @schema item:object
6598 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
6599 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
6600 topologySpreadConstraints: []
6601 # topologyKey: kubernetes.io/hostname
6602 # whenUnsatisfiable: ScheduleAnyway
6603 # -- Tolerations for chunks-cache pods
6605 # @schema type:[string, integer, null];deprecated:true
6606 # -- Pod Disruption Budget maxUnavailable
6607 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6609 podDisruptionBudget:
6610 # -- Enable Pod Disruption Budget
6612 # @schema additionalProperties:{"type":"string"}
6613 # -- Annotations for Pod Disruption Budget
6615 # @schema additionalProperties:{"type":"string"}
6616 # -- Labels for Pod Disruption Budget
6618 # @schema type:[string, integer, null]
6619 # -- Pod Disruption Budget minAvailable
6621 # @schema type:[string, integer, null]
6622 # -- Pod Disruption Budget maxUnavailable
6623 maxUnavailable: null
6624 # @schema type:[string, null]
6625 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
6626 unhealthyPodEvictionPolicy: null
6627 # @schema additionalProperties:true
6628 # -- DNSConfig for chunks-cache
6630 # @schema type:[string, null]
6631 # -- The name of the PriorityClass for chunks-cache pods
6632 priorityClassName: null
6633 # @schema type:[boolean, null]
6634 # -- Use the host's user namespace in chunks-cache pods
6636 # @schema additionalProperties:{"type":"string"}
6637 # -- Labels for chunks-cache pods
6639 # @schema additionalProperties:{"type":"string"}
6640 # -- Annotations for chunks-cache pods
6642 # -- Management policy for chunks-cache pods
6643 podManagementPolicy: Parallel
6644 # -- Grace period to allow the chunks-cache to shutdown before it is killed
6645 terminationGracePeriodSeconds: 60
6646 # @schema skipProperties:true;additionalProperties:true
6647 # -- Stateful chunks-cache strategy
6650 # -- Add extended options for chunks-cache memcached container. The format is the same as for the memcached -o/--extend flag.
6652 # extraExtendedOptions: 'tls,no_hashexpand'
6653 extraExtendedOptions: ""
6654 # -- Additional CLI args for chunks-cache
6656 # @schema type:[array, null]
6657 # -- Additional containers to be added to the chunks-cache pod.
6659 # -- Additional volumes to be added to the chunks-cache pod (applies to both memcached and exporter containers).
6662 # - name: extra-volume
6664 # secretName: extra-volume-secret
6666 # -- Additional volume mounts to be added to the chunks-cache pod (applies to both memcached and exporter containers).
6668 # extraVolumeMounts:
6669 # - name: extra-volume
6670 # mountPath: /etc/extra-volume
6672 extraVolumeMounts: []
6673 # @schema additionalProperties:true
6674 # -- Resource requests and limits for the chunks-cache
6675 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
6677 # -- Container resize policy for the chunks-cache
6680 # - resourceName: cpu
6681 # restartPolicy: NotRequired
6682 # - resourceName: memory
6683 # restartPolicy: RestartContainer
6685 # -- Service annotations and labels
6687 # @schema additionalProperties:{"type":"string"}
6689 # @schema additionalProperties:{"type":"string"}
6691 # -- Persistence settings for the chunks-cache
6693 # -- Enable creating PVCs for the chunks-cache
6695 # -- Size of persistent disk, must be in G or Gi
6697 # @schema type:[string, null]
6698 # -- Storage class to be used.
6699 # If defined, storageClassName: <storageClass>.
6700 # If set to "-", storageClassName: "", which disables dynamic provisioning.
6701 # If empty or set to null, no storageClassName spec is
6702 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6704 # @schema type:[string, null]
6705 # -- Volume attributes class name to be used.
6706 # If empty or set to null, no volumeAttributesClassName spec is set.
6707 # Requires Kubernetes 1.31
6708 volumeAttributesClassName: null
6709 # -- Volume mount path
6711 # @schema additionalProperties:{"type":"string"}
6713 # -- l2 memcache configuration
6715 # -- Append to the name of the resources to make names different for l1 and l2
6717 # -- The age of chunks should be transferred from l1 cache to l2
6719 l2ChunkCacheHandoff: 345600s
6720 # -- Specifies whether memcached based chunks-cache-l2 should be enabled
6722 # -- Comma separated addresses list in DNS Service Discovery format
6723 addresses: 'dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "chunks-cache" "suffix" $.Values.chunksCache.l2.suffix ) }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}'
6724 # -- Batchsize for sending and receiving chunks from chunks cache
6726 # -- Parallel threads for sending and receiving chunks from chunks cache
6728 # -- Memcached operation timeout
6730 # -- Specify how long cached chunks should be stored in the chunks-cache-l2 before being expired
6732 # -- Total number of chunks-cache-l2 replicas
6734 # -- Port of the chunks-cache-l2 service
6736 # -- Amount of memory allocated to chunks-cache-l2 for object storage (in MB).
6737 allocatedMemory: 8192
6738 # -- Amount of cpu allocated to chunks-cache-l2 for object storage (in integer or millicores).
6740 # -- Maximum item memory for chunks-cache-l2 (in MB).
6742 # -- Maximum number of connections allowed
6743 connectionLimit: 16384
6744 # -- Max memory to use for cache write back
6745 writebackSizeLimit: 500MB
6746 # -- Max number of objects to use for cache write back
6747 writebackBuffer: 500000
6748 # -- Number of parallel threads for cache write back
6749 writebackParallelism: 1
6750 # -- Extra init containers for chunks-cache-l2 pods
6752 # @schema additionalProperties:{"type":"string"}
6753 # -- Annotations for the chunks-cache-l2 pods
6755 # @schema additionalProperties:true
6756 # -- Node selector for chunks-cach-l2 pods
6758 # @schema skipProperties:true;additionalProperties:true
6759 # -- Affinity for chunks-cache-l2 pods
6761 # @schema item:object
6762 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
6763 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
6764 topologySpreadConstraints: []
6765 # topologyKey: kubernetes.io/hostname
6766 # whenUnsatisfiable: ScheduleAnyway
6767 # -- Tolerations for chunks-cache-l2 pods
6769 # @schema type:[string, integer, null];deprecated:true
6770 # -- Pod Disruption Budget maxUnavailable
6771 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6773 podDisruptionBudget:
6774 # -- Enable Pod Disruption Budget
6776 # @schema additionalProperties:{"type":"string"}
6777 # -- Annotations for Pod Disruption Budget
6779 # @schema additionalProperties:{"type":"string"}
6780 # -- Labels for Pod Disruption Budget
6784 # unhealthyPodEvictionPolicy: IfHealthyBudget
6785 # @schema additionalProperties:true
6786 # -- DNSConfig for chunks-cache-l2
6788 # @schema type:[string, null]
6789 # -- The name of the PriorityClass for chunks-cache-l2 pods
6790 priorityClassName: null
6791 # @schema type:[boolean, null]
6792 # -- Use the host's user namespace in chunks-cache-l2 pods
6794 # @schema additionalProperties:{"type":"string"}
6795 # -- Labels for chunks-cache-l2 pods
6797 # @schema additionalProperties:{"type":"string"}
6798 # -- Annotations for chunks-cache-l2 pods
6800 # -- Management policy for chunks-cache-l2 pods
6801 podManagementPolicy: Parallel
6802 # -- Grace period to allow the chunks-cache-l2 to shutdown before it is killed
6803 terminationGracePeriodSeconds: 60
6804 # @schema skipProperties:true;additionalProperties:true
6805 # -- Stateful chunks-cache strategy
6808 # -- Add extended options for chunks-cache-l2 memcached container. The format is the same as for the memcached -o/--extend flag.
6810 # extraExtendedOptions: 'tls,no_hashexpand'
6811 extraExtendedOptions: ""
6812 # -- Additional CLI args for chunks-cache-l2
6814 # @schema type:[array, null]
6815 # -- Additional containers to be added to the chunks-cache-l2 pod.
6817 # -- Additional volumes to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
6820 # - name: extra-volume
6822 # secretName: extra-volume-secret
6824 # -- Additional volume mounts to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
6826 # extraVolumeMounts:
6827 # - name: extra-volume
6828 # mountPath: /etc/extra-volume
6830 extraVolumeMounts: []
6831 # @schema additionalProperties:true
6832 # -- Resource requests and limits for the chunks-cache-l2
6833 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
6835 # -- Container resize policy for the chunks-cache-l2
6838 # - resourceName: cpu
6839 # restartPolicy: NotRequired
6840 # - resourceName: memory
6841 # restartPolicy: RestartContainer
6843 # -- Service annotations and labels
6845 # @schema additionalProperties:{"type":"string"}
6847 # @schema additionalProperties:{"type":"string"}
6849 # -- Persistence settings for the chunks-cache-l2
6851 # -- Enable creating PVCs for the chunks-cache-l2
6853 # -- Size of persistent disk, must be in G or Gi
6855 # @schema type:[string, null]
6856 # -- Storage class to be used.
6857 # If defined, storageClassName: <storageClass>.
6858 # If set to "-", storageClassName: "", which disables dynamic provisioning.
6859 # If empty or set to null, no storageClassName spec is
6860 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6862 # @schema type:[string, null]
6863 # -- Volume attributes class name to be used.
6864 # If empty or set to null, no volumeAttributesClassName spec is set.
6865 # Requires Kubernetes 1.31
6866 volumeAttributesClassName: null
6867 # -- Volume mount path
6869 # @schema additionalProperties:{"type":"string"}
6871######################################################################################################################
6873# Subchart configurations
6875######################################################################################################################
6877# @schema skipProperties:true;additionalProperties:true
6878# -- Setting for the Grafana Rollout Operator https://github.com/grafana/helm-charts/tree/main/charts/rollout-operator
6881 # @schema skipProperties:true;additionalProperties:true
6882 # -- podSecurityContext is the pod security context for the rollout operator.
6883 # When installing on OpenShift, override podSecurityContext settings with
6886 # podSecurityContext:
6896 type: RuntimeDefault
6897 # @schema skipProperties:true;additionalProperties:true
6898 # Set the container security context
6900 readOnlyRootFilesystem: true
6903 allowPrivilegeEscalation: false
6906 type: RuntimeDefault
6908 # -- Enable the rollout-operator webhooks. See https://github.com/grafana/rollout-operator/#webhooks.
6909 # Note that the webhooks require custom resource definitions. If upgrading, manually apply the files in the `crds` directory.
6911 # -- Timeout in seconds for the prepare-downscale mutating webhook. Must be between 1 and 30.
6913 # -- Validating and mutating webhook failure policy. `Ignore` or `Fail`.
6914 failurePolicy: "Ignore"
6915# -- Ignore MinIO deprecation validation when `minio.enabled=true`. This is a temporary compatibility escape hatch.
6916ignoreMinioDeprecation: false
6917# @schema skipProperties:true;additionalProperties:true
6918# -- Configuration for the minio subchart (deprecated)
6922 # Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
6923 # https://docs.min.io/docs/minio-erasure-code-quickstart-guide
6924 # Since we only have 1 replica, that means 2 drives must be used.
6928 rootPassword: supersecretpassword
6929 # The first user in the list below is used for Loki authentication.
6930 # You can add additional users if desired; they will not impact Loki.
6931 # `accessKey` = username, `secretKey` = password
6933 - accessKey: logs-user
6934 secretKey: supersecretpassword
6945 # @schema additionalProperties:{"type":"string"}
6947 # @schema additionalProperties:true
6952 # @schema type:[string, null]
6953 # Allow the address used by Loki to refer to Minio to be overridden
6955# @schema type:[array, object, string, null]
6956# Create extra manifests via values
6957# Can be a list or dictionary, both are passed through `tpl`. If dict, keys are ignored and only values are used.
6958# Objects can also be defined as multiline strings, useful for templating field names
6963# name: loki-alerting-rules
6965# loki-alerting-rules.yaml: |-
6971# sum(count_over_time({app="loki"} |~ "error")) > 0
6977# message: "loki has encountered errors"
6983# name: loki-distributed-basic-auth
6985# {{- range .Values.loki.tenants }}
6986# {{ .name }}: {{ b64enc .password | quote }}
6992 # -- The Docker registry and image for the k8s sidecar
6993 repository: chainguard-private/k8s-sidecar
6994 # -- Docker image tag
6996 # -- Docker image sha. If empty, no sha will be used
6997 sha: sha256:60b17aa0968a174544c42649aa8dd41997e628fdfac2fd2252e17a80fbe1e7d9
6998 # -- Docker image pull policy
6999 pullPolicy: IfNotPresent
7000 # @schema additionalProperties:true
7001 # -- Resource requests and limits for the sidecar
7003 # -- Container resize policy for the sidecar
7006 # - resourceName: cpu
7007 # restartPolicy: NotRequired
7008 # - resourceName: memory
7009 # restartPolicy: RestartContainer
7018 # @schema skipProperties:true;additionalProperties:true
7019 # -- The SecurityContext for the sidecar.
7021 readOnlyRootFilesystem: true
7025 allowPrivilegeEscalation: false
7027 type: RuntimeDefault
7028 # -- Set to true to skip tls verification for kube api calls.
7029 skipTlsVerify: false
7030 # -- Set to true to disable strict x509 verification for kube api calls.
7031 disableX509StrictVerification: false
7032 # -- Ensure that rule files aren't conflicting and being overwritten by prefixing their name with the namespace they are defined in.
7033 enableUniqueFilenames: false
7034 # @schema skipProperties:true;additionalProperties:true
7035 # -- Readiness probe definition.
7042 initialDelaySeconds: 3
7046 # @schema skipProperties:true;additionalProperties:true
7047 # -- Liveness probe definition.
7054 initialDelaySeconds: 30
7058 # @schema skipProperties:true;additionalProperties:true
7059 # -- Startup probe definition.
7063 # -- Whether or not to create a sidecar to ingest rule from specific ConfigMaps and/or Secrets.
7065 # -- Label that the configmaps/secrets with rules will be marked with.
7067 # -- Label value that the configmaps/secrets with rules will be set to.
7069 # -- Folder into which the rules will be placed.
7071 # @schema type:[string, null]
7072 # -- The annotation overwriting the folder value.
7073 # The annotation value can be either an absolute or a relative path. Relative paths will be relative to FOLDER.
7074 # Useful for multi-tenancy setups.
7075 folderAnnotation: null
7076 # @schema type:[string, null]
7077 # -- Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
7078 # Otherwise the namespace in which the sidecar is running will be used.
7079 # It's also possible to specify 'ALL' to search in all namespaces.
7080 searchNamespace: null
7081 # -- Method to use to detect ConfigMap changes. With WATCH the sidecar will do a WATCH request, with SLEEP it will list all ConfigMaps, then sleep for 60 seconds.
7083 # -- Search in configmap, secret, or both.
7085 # @schema type:[string, null]
7086 # -- Absolute path to the shell script to execute after a configmap or secret has been reloaded.
7088 # -- WatchServerTimeout: request to the server, asking it to cleanly close the connection after that.
7089 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S.
7090 watchServerTimeout: 60
7092 # -- WatchClientTimeout: is a client-side timeout, configuring your local socket.
7093 # If you have a network outage dropping all packets with no RST/FIN,
7094 # this is how long your client waits before realizing & dropping the connection.
7095 # Defaults to 66sec.
7096 watchClientTimeout: 60
7097 # -- Log level of the sidecar container.
7099 # -- Health Server port of the sidecar container.
7101# -- Monitoring section determines which monitoring features to enable
7103 # @schema type:[string, null]
7104 # -- Alternative namespace to deploy all monitoring resources (ServiceMonitor, PrometheusRule, ConfigMap dashboards) in.
7105 # Defaults to the release namespace.
7107 # -- Label name for the app_instance label injected into scraped metrics and recording rules.
7108 appInstanceLabelName: 'app_instance'
7109 # -- Value for the app_instance label injected into scraped metrics and recording rules.
7110 # Supports Helm templating.
7111 appInstanceLabelValue: '{{ include "loki.fullname" . }}'
7113 # -- When enabled, shows the cluster variable in dashboards.
7114 # If clusterName is also set, the chart adds 'cluster' labels to scraped
7115 # metrics, recording rules, and alerts, and includes 'cluster' in recording
7116 # rule aggregations. If clusterName is left empty, only dashboard changes
7117 # are applied — use this when an external tool (e.g. Grafana Alloy) manages
7118 # cluster label injection and PromQL rewriting.
7120 # -- Value for the 'cluster' label. Supports Helm templating.
7121 # When empty, recording rules and alerts are not modified — only dashboards
7122 # show the cluster variable.
7123 # e.g. clusterName: '{{ .Values.global.clusterName }}'
7125 # Dashboards for monitoring Loki
7127 # -- If enabled, create configmap resources with dashboards for monitoring Loki
7129 # @schema additionalProperties:{"type":"string"}
7130 # -- Additional annotations for the dashboards ConfigMap resources
7132 # @schema additionalProperties:{"type":"string"}
7133 # -- Labels for the dashboards ConfigMap resources
7135 grafana_dashboard: "1"
7136 # -- Timezone for the default dashboards
7137 defaultDashboardsTimezone: utc
7138 # -- Editable flag for the default dashboards
7139 defaultDashboardsEditable: true
7140 # -- Default interval for Grafana dashboards
7141 defaultDashboardsInterval: 1m
7143 # -- If enabled, GrafanaOperator resources for Grafana Operator are created to deploy the dashboards.
7145 # @schema additionalProperties:{"type":"string"}
7146 # -- Additional annotations for the GrafanaOperator resources
7148 # @schema additionalProperties:{"type":"string"}
7149 # -- Additional labels for the GrafanaOperator resources
7151 # -- How frequently the operator should resync resources (in duration format)
7153 # @schema type:[string, null]
7154 # -- Which folder contains all dashboards in Grafana
7155 ## This folder will be created on the Root level
7156 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
7159 # @schema type:[string, null]
7160 # -- Which UID of the target folder contains all dashboards in Grafana
7161 ## This allows you to use subfolder hierarchy
7162 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
7165 # @schema type:[string, null]
7166 # -- Which GrafanaFolder reference contains all dashboards in Grafana
7167 ## This allows you to use subfolder hierarchy.
7168 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
7171 # @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector
7172 # -- instanceSelector for the GrafanaDashboard resources
7173 ## The grafana-operator matches this against the labels on your Grafana CR
7174 ## An empty selector (the default) matches every Grafana instance
7175 instanceSelector: {}
7176 # -- Recording rules for monitoring Loki, required for some dashboards
7178 # -- If enabled, create a PrometheusRule resource with Loki recording rules
7180 # @schema additionalProperties:{"type":"string"}
7181 # -- Additional labels for the PrometheusRule resource
7183 # @schema additionalProperties:{"type":"string"}
7184 # -- Additional annotations for the PrometheusRule resource
7186 # -- Additional labels applied to all individual recording rules
7187 additionalRuleLabels: {}
7188 # -- Additional annotations applied to all individual recording rules
7189 additionalRuleAnnotations: {}
7190 # -- Extra label dimensions added to all by() aggregation clauses in recording rules
7191 additionalAggregationLabels: []
7192 # -- Alert rules for monitoring Loki
7194 # -- If enabled, create a PrometheusRule resource with Loki alert rules
7196 # -- Additional labels for the alerts PrometheusRule resource
7198 # -- Additional annotations for the alerts PrometheusRule resource
7200 # -- Selectively disable individual alerts by name.
7201 # e.g.: disabled: { LokiRequestErrors: true }
7203 # -- Override for/severity on individual alerts.
7204 # e.g.: overrides: { LokiRequestErrors: { for: 5m, severity: warning } }
7206 # -- Global keepFiringFor applied to all alert rules
7208 # -- Additional labels applied to all individual alert rules
7209 additionalRuleLabels: {}
7210 # -- Additional annotations applied to all individual alert rules
7211 additionalRuleAnnotations: {}
7212 # -- Extra label dimensions added to all by() aggregation clauses in alert expressions
7213 additionalAggregationLabels: []
7214 # -- Additional PrometheusRule objects to create alongside the chart-managed ones.
7215 # Each key becomes the resource name suffix; the value must contain a 'groups' key
7216 # with standard Prometheus rule groups. Can contain both recording rules and alerts.
7218 # additionalPrometheusRules:
7221 # - name: my-loki-alerts
7223 # - alert: MyLokiAlert
7224 # expr: 'up{job="loki"} == 0'
7225 additionalPrometheusRules: {}
7226 # -- ServiceMonitor configuration
7228 # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
7230 # -- Namespace selector for ServiceMonitor resources
7231 namespaceSelector: {}
7232 # @schema additionalProperties:{"type":"string"}
7233 # -- ServiceMonitor annotations
7235 # @schema additionalProperties:{"type":"string"}
7236 # -- Additional ServiceMonitor labels
7238 # -- ServiceMonitor scrape interval
7239 # Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at
7240 # least 1/4 rate interval.
7242 # @schema type:[string, null]
7243 # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
7245 # -- ServiceMonitor relabel configs to apply to samples before scraping
7246 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
7248 # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
7249 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
7250 metricRelabelings: []
7251 # -- ServiceMonitor will use http by default, but you can pick https as well
7253 # @schema type:[object, null]
7254 # -- ServiceMonitor will use these tlsConfig settings to make the health check requests
7256 # -- ServiceMonitor job label prefix will be used to generate the job label for the scraped metrics.
7257 # -- The job label is required for the included dashboards to work.
7258 jobPrefix: '{{ include "loki.namespace" $ }}/'
7260# -- DEPRECATED Configuration for the table-manager. The table-manager is only necessary when using a deprecated
7261# index type such as Cassandra, Bigtable, or DynamoDB, it has not been necessary since loki introduced self-
7262# contained index types like 'boltdb-shipper' and 'tsdb'. This will be removed in a future helm chart.
7264 # -- Specifies whether the table-manager should be enabled
7267 # @schema type:[string, null]
7268 # -- The Docker registry for the table-manager image. Overrides `loki.image.registry`
7270 # @schema type:[string, null]
7271 # -- Docker image repository for the table-manager image. Overrides `loki.image.repository`
7273 # @schema type:[string, null]
7274 # -- Docker image tag for the table-manager image. Overrides `loki.image.tag`
7276 # @schema type:[string, null]
7277 # -- Command to execute instead of defined in Docker image
7279 # @schema type:[string, null]
7280 # -- The name of the PriorityClass for table-manager pods
7281 priorityClassName: null
7282 # @schema additionalProperties:{"type":"string"}
7283 # -- Labels for table-manager pods
7285 # @schema additionalProperties:{"type":"string"}
7286 # -- Annotations for table-manager deployment
7288 # @schema additionalProperties:{"type":"string"}
7289 # -- Annotations for table-manager pods
7292 # @schema additionalProperties:{"type":"string"}
7293 # -- Annotations for table-manager Service
7295 # @schema additionalProperties:{"type":"string"}
7296 # -- Additional labels for table-manager Service
7298 # -- Service Type for table-manager Service
7300 # -- trafficDistribution for table-manager Service
7301 trafficDistribution: ""
7302 # -- Session affinity for table-manager Service
7304 # @schema additionalProperties:true
7305 # -- Session affinity config for table-manager Service
7306 sessionAffinityConfig: {}
7307 # -- ipFamilyPolicy for table-manager Service
7308 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
7310 # -- ipFamilies for table-manager Service
7311 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
7313 # -- Adds the appProtocol field to the table-manager service. This allows table-manager to work with istio protocol selection.
7315 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
7318 # @schema additionalProperties:{"type":"string"}
7319 # -- Additional annotations for headless tableManager Service
7321 # @schema additionalProperties:{"type":"string"}
7322 # -- Additional labels for headless tableManager compactor Service
7324 # -- Additional CLI args for the table-manager
7326 # -- Environment variables to add to the table-manager pods
7328 # -- Environment variables from secrets or configmaps to add to the table-manager pods
7330 # -- Volume mounts to add to the table-manager pods
7331 extraVolumeMounts: []
7332 # -- Volumes to add to the table-manager pods
7334 # @schema additionalProperties:true
7335 # -- Resource requests and limits for the table-manager
7337 # -- Container resize policy for the table-manager
7340 # - resourceName: cpu
7341 # restartPolicy: NotRequired
7342 # - resourceName: memory
7343 # restartPolicy: RestartContainer
7345 # @schema type:[string, array, null]
7346 # -- Containers to add to the table-manager pods
7348 # -- Grace period to allow the table-manager to shutdown before it is killed
7349 terminationGracePeriodSeconds: 30
7350 # @schema type:[boolean, null]
7351 # -- Use the host's user namespace in table-manager pods
7353 # @schema type:[object, null];skipProperties:true;additionalProperties:true
7354 # -- Affinity for table-manager pods.
7355 # @default -- Hard node and anti-affinity
7356 # The value will be passed through tpl.
7359 requiredDuringSchedulingIgnoredDuringExecution:
7362 app.kubernetes.io/component: table-manager
7363 app.kubernetes.io/name: '{{ include "loki.name" . }}'
7364 app.kubernetes.io/instance: '{{ .Release.Name }}'
7365 topologyKey: kubernetes.io/hostname
7366 # @schema additionalProperties:true
7367 # -- DNS config table-manager pods
7369 # @schema additionalProperties:true
7370 # -- Node selector for table-manager pods
7372 # -- Tolerations for table-manager pods
7374 # -- Enable deletes by retention
7375 retention_deletes_enabled: false
7376 # @schema type:[string, integer]
7377 # -- Set retention period
7380 # -- Specifies whether a ServiceAccount should be created
7382 # @schema type:[string, null]
7383 # -- The name of the ServiceAccount to use.
7384 # If not set and create is true, a name is generated using the fullname template
7386 # @schema item:object;itemProperties:{"name": {"type": "string"}}
7387 # -- Image pull secrets for the service account
7388 imagePullSecrets: []
7389 # @schema additionalProperties:{"type":"string"}
7390 # -- Annotations for the service account
7392 # @schema additionalProperties:{"type":"string"}
7393 # -- Labels for the service account
7395 # -- Set this toggle to false to opt out of automounting API credentials for the service account
7396 automountServiceAccountToken: true