1# $schema: ./values.schema.json
2# helm-schema-args: --schema-root.additional-properties=false
4# -- Overrides the version used to determine compatibility of resources with the target Kubernetes cluster.
5# This is useful when using `helm template`, because then helm will use the client version of kubectl as the Kubernetes version,
6# 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# -- Not used by this chart. Lets a parent chart use `<alias>.enabled` as the condition of its Loki dependency
10# without failing schema validation.
13 # @schema type:[string, null]
14 # -- Overrides the Docker registry globally for all images (standard format).
15 # This has the highest precedence and overrides every component-level image.registry value.
18 # @schema type:[string, null]
19 # -- Overrides the Docker registry globally for all images (deprecated, use global.imageRegistry).
20 # This has lower precedence than global.imageRegistry, but higher precedence than component-level image.registry values.
22 # @schema type:[string, null]
23 # -- Overrides the priorityClassName for all pods
24 priorityClassName: null
25 # -- configures cluster domain ("cluster.local" by default)
26 clusterDomain: "cluster.local"
27 # -- configures DNS service name
28 dnsService: "kube-dns"
29 # -- configures DNS service namespace
30 dnsNamespace: "kube-system"
31 # -- Common additional CLI arguments for all jobs (that is, -log.level debug, -config.expand-env=true or -log-config-reverse-order)
32 # (deprecated, use defaults.extraArgs)
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 environment variables to add to all pods directly managed by this chart.
36 # (deprecated, use defaults.extraEnv)
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.
39 # -- Common source of environment injections to add to all pods directly managed by this chart.
40 # (deprecated, use defaults.extraEnvFrom)
41 # 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.
42 # For example to inject values from a Secret, use:
47 # -- Common volumes to add to all pods directly managed by this chart.
48 # (deprecated, use defaults.extraVolumes)
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 # -- Common mount points to add to all pods directly managed by this chart.
52 # (deprecated, use defaults.extraVolumeMounts)
53 # 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.
55# -- Overrides the chart's name
57# -- Overrides the chart's computed fullname
59# -- Overrides the chart's namespace
61# -- Image pull secrets for Docker images
63# -- Deployment mode lets you specify how to deploy Loki.
65# - 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.
66# - 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.
67# - Distributed: Loki is deployed as individual microservices. The most complicated but most capable, useful for large installs, typically over 1TB/day.
68# There are also 2 additional modes used for migrating between deployment modes:
69# - Monolithic<->SimpleScalable (deprecated: SingleBinary<->SimpleScalable): Migrate from SingleBinary to SimpleScalable (or vice versa)
70# - SimpleScalable<->Distributed: Migrate from SimpleScalable to Distributed (or vice versa)
71# Note: SimpleScalable and Distributed REQUIRE the use of object storage.
72# Ref: https://grafana.com/docs/loki/latest/get-started/deployment-modes/
73deploymentMode: Monolithic
74# @schema additionalProperties:{"type":"string"}
75# -- Labels to be added to resources
77######################################################################################################################
79# Defaults applied to loki components only. Not applied to loki-canary, memcache, gateway/nginx or other components.
81######################################################################################################################
84 # -- Fraction of the container memory limit used to compute GOMEMLIMIT (e.g. 0.85 = 85%).
85 # Set to 0 to disable automatic GOMEMLIMIT injection.
86 goMemLimitFactor: 0.85
87 # -- Value to set for GOGC alongside GOMEMLIMIT. Lowering below the default of 100 reduces
88 # heap growth between GC cycles, working in tandem with GOMEMLIMIT to smooth memory usage.
89 # Set to 0 to disable automatic GOGC injection.
91 # @schema additionalProperties:true
92 # -- DNSConfig for loki pods
94 # -- hostAliases for loki pods
96 # @schema type:[boolean, null]
100 # -- Use the host's user namespace for loki pods
102 # @schema type:[string, null]
103 # -- The name of the PriorityClass for loki pods
104 priorityClassName: ""
105 # @schema skipProperties:true;additionalProperties:true
106 # -- The SecurityContext for loki pods
107 podSecurityContext: {}
108 # -- Grace period to allow the gateway to shutdown before it is killed
109 terminationGracePeriodSeconds: 30
110 # @schema type:[string, null]
111 # -- Command to execute instead of defined in Docker image
113 # -- Common additional CLI arguments for loki pods
115 # -- Common environment variables to add to all pods directly managed by this chart.
117 # -- Common source of environment injections to add to all pods directly managed by this chart.
118 # For example to inject values from a Secret, use:
123 # -- Common volumes to add to all pods directly managed by this chart.
125 # -- Common mount points to add to all pods directly managed by this chart.
126 extraVolumeMounts: []
127 # @schema skipProperties:true;additionalProperties:true
128 # -- The SecurityContext for Loki containers for loki pods
129 containerSecurityContext: {}
130 # @schema skipProperties:true;additionalProperties:true
131 # -- Configures the liveness probe for loki pods
133 # @schema skipProperties:true;additionalProperties:true
134 # -- Configures the readiness probe for loki pods
136 # @schema skipProperties:true;additionalProperties:true
137 # -- Configures the startup probe for loki pods
139 # @schema additionalProperties:true
140 # -- Node selector for loki pods
142 # -- Tolerations for loki pods
144 # -- Set this toggle to false to opt out of automounting API credentials for the service account
145 automountServiceAccountToken: true
146 # @schema additionalProperties:{"type":"string"}
147 # -- Annotations for loki Deployments/StatefulSets
149 # @schema additionalProperties:{"type":"string"}
150 # -- Additional labels for loki Deployments/StatefulSets
152 # @schema additionalProperties:{"type":"string"}
153 # -- Annotations for loki pods
155 # @schema additionalProperties:{"type":"string"}
156 # -- Additional labels for loki pod
158 # -- Should enableServiceLinks be enabled. Default to enable
159 enableServiceLinks: true
161 # @schema additionalProperties:{"type":"string"}
162 # -- Common annotations for all non-headless services
164 # @schema additionalProperties:{"type":"string"}
165 # -- Common labels for all non-headless services
167 # -- trafficDistribution for services
168 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
169 trafficDistribution: ""
170 # -- ipFamilyPolicy for all services
171 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
173 # -- ipFamilies for all services
174 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
176 # -- publishNotReadyAddresses for all services. Set to false so a pod's Service endpoint is
177 # withdrawn as soon as it becomes unready, instead of staying routable for the full termination
178 # window. Overridable per component via <component>.service.publishNotReadyAddresses.
179 publishNotReadyAddresses: true
181 # @schema additionalProperties:{"type":"string"}
182 # -- Common annotations for all headless services
184 # @schema additionalProperties:{"type":"string"}
185 # -- Common labels for all headless services
187 # -- KEDA autoscaling shared configuration for all components that support KEDA
189 # -- Prometheus server address for KEDA triggers
190 prometheusAddress: ""
191 # -- Whether to skip SSL verification when connecting to Prometheus
193 # -- Whether to ignore null values from Prometheus queries
194 ignoreNullValues: true
195 # -- Custom HTTP headers to include in Prometheus requests. Useful for multi-tenant setups (e.g. "X-Scope-OrgID=tenant1")
197 # -- Interval (seconds) to poll each trigger. Overridable per component.
199 # -- Period (seconds) to wait after the last trigger reported active before scaling back to 0. Overridable per component.
201 # -- KEDA trigger authentication settings. Ref: https://keda.sh/docs/latest/concepts/authentication/
203 # -- Enable TriggerAuthentication for KEDA triggers
205 # -- Authentication modes for the trigger (e.g. "bearer", "basic")
207 # -- Secret key references for TriggerAuthentication
209 statefulSetRecreateJob:
210 # -- 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.
214 repository: chainguard-private/kubectl
215 # -- Overrides the image tag. Defaults to .Capabilities.KubeVersion.Version
216 tag: 1.36.6-r0@sha256:ee39cb869edaeb20fe734b23733fb4ddd3f5d482a26c683554b1b4237f986663
217######################################################################################################################
219# Base Loki Configs including kubernetes configurations and configurations for Loki itself,
220# see below for more specifics on Loki's configuration.
222######################################################################################################################
223# -- Configuration for running Loki
224# @default -- See values.yaml
226 # @schema skipProperties:true;additionalProperties:true
227 # Configures the liveness probe for all of the Loki pods
230 path: /loki/api/v1/status/buildinfo
236 # @schema skipProperties:true;additionalProperties:true
237 # Configures the readiness probe for all of the Loki pods
243 initialDelaySeconds: 15
247 # @schema skipProperties:true;additionalProperties:true
248 # Configures the startup probe for all of the Loki pods
251 # -- The Docker registry
253 # -- Docker image repository
254 repository: chainguard-private/loki
255 # @schema type:[string, null]
256 # -- Overrides the image tag whose default is the chart's appVersion
258 # @schema type:[string, null]
259 # -- Overrides the image tag with an image digest
260 digest: sha256:c939937ec7304c156c26ee9626ada59160ba089b7f5130196ae71cee07319697
261 # -- Docker image pull policy
262 pullPolicy: IfNotPresent
263 # @schema additionalProperties:{"type":"string"}
264 # -- Common annotations for all deployments/StatefulSets
266 # @schema additionalProperties:{"type":"string"}
267 # -- Common annotations for all pods
269 # @schema additionalProperties:{"type":"string"}
270 # -- Common labels for all pods
272 # @schema additionalProperties:{"type":"string"}
273 # -- Common annotations for all non-headless services
274 serviceAnnotations: {}
275 # @schema additionalProperties:{"type":"string"}
276 # -- Common labels for all non-headless services
278 # -- The number of old ReplicaSets to retain to allow rollback
279 revisionHistoryLimit: 10
280 # @schema skipProperties:true;additionalProperties:true
281 # -- The SecurityContext for Loki pods
284 fsGroupChangePolicy: OnRootMismatch
290 # @schema skipProperties:true;additionalProperties:true
291 # -- The SecurityContext for Loki containers
292 containerSecurityContext:
293 readOnlyRootFilesystem: true
297 allowPrivilegeEscalation: false
300 # -- Should enableServiceLinks be enabled. Default to enable
301 enableServiceLinks: true
302 # @schema additionalProperties:true
303 # -- DNS config for Loki pods
305 ######################################################################################################################
309 # There are several ways to pass configuration to Loki, listing them here in order of our preference for how
310 # you should use this chart.
311 # 1. Use the templated value of loki.config below and the corresponding override sections which follow.
312 # This allows us to set a lot of important Loki configurations and defaults and also allows us to maintain them
313 # over time as Loki changes and evolves.
314 # 2. Use the loki.structuredConfig section.
315 # This will completely override the templated value of loki.config, so you MUST provide the entire Loki config
316 # including any configuration that we set in loki.config unless you explicitly are trying to change one of those
317 # values and are not able to do so with the templated sections.
318 # If you choose this approach the burden is on you to maintain any changes we make to the templated config.
319 # 3. Use an existing secret or configmap to provide the configuration.
320 # This option is mostly provided for folks who have external processes which provide or modify the configuration.
321 # When using this option you can specify a different name for loki.generatedConfigObjectName and configObjectName
322 # if you have a process which takes the generated config and modifies it, or you can stop the chart from generating
323 # a config entirely by setting loki.generatedConfigObjectName to
325 ######################################################################################################################
327 # -- Defines what kind of object stores the configuration, a ConfigMap or a Secret.
328 # 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).
329 # 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).
330 configStorageType: ConfigMap
331 # -- The name of the object which Loki will mount as a volume containing the config.
332 # 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.
333 # The value will be passed through tpl.
334 configObjectName: '{{ include "loki.name" . }}'
335 # -- The name of the Secret or ConfigMap that will be created by this chart.
336 # If empty, no configmap or secret will be created.
337 # The value will be passed through tpl.
338 generatedConfigObjectName: '{{ include "loki.name" . }}'
339 # -- Config file contents for Loki
340 # @default -- See values.yaml
342 auth_enabled: {{ .Values.loki.auth_enabled }}
344 {{- with .Values.loki.server }}
346 {{- toYaml . | nindent 2}}
349 {{- with .Values.loki.pattern_ingester }}
351 {{- tpl (. | toYaml) $ | nindent 4 }}
355 {{- if .Values.loki.memberlistConfig }}
356 {{- toYaml .Values.loki.memberlistConfig | nindent 2 }}
358 {{- if .Values.loki.extraMemberlistConfig}}
359 {{- toYaml .Values.loki.extraMemberlistConfig | nindent 2}}
362 - {{ include "loki.memberlist" . }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
363 {{- with .Values.migrate.fromDistributed }}
365 - {{ .memberlistService }}
370 {{- with .Values.loki.ingester }}
372 {{- tpl (. | toYaml) $ | nindent 4 }}
375 {{- with .Values.loki.ingester_client }}
377 {{- tpl (. | toYaml) $ | nindent 4 }}
380 {{- with .Values.loki.block_builder }}
382 {{- tpl (. | toYaml) $ | nindent 4 }}
385 {{- if .Values.loki.commonConfig}}
387 {{- toYaml .Values.loki.commonConfig | nindent 2}}
389 {{- include "loki.commonStorageConfig" . | nindent 4}}
392 {{- with .Values.loki.limits_config }}
394 {{- tpl (. | toYaml) $ | nindent 4 }}
398 file: /etc/loki/runtime-config/runtime-config.yaml
400 {{- if .Values.chunksCache.enabled }}
401 {{- with .Values.chunksCache }}
404 default_validity: {{ .defaultValidity }}
406 writeback_goroutines: {{ .writebackParallelism }}
407 writeback_buffer: {{ .writebackBuffer }}
408 writeback_size_limit: {{ .writebackSizeLimit }}
410 batch_size: {{ .batchSize }}
411 parallelism: {{ .parallelism }}
413 addresses: {{ .addresses }}
414 consistent_hash: true
415 timeout: {{ .timeout }}
418 {{- with .Values.chunksCache.l2 }}
420 l2_chunk_cache_handoff: {{ .l2ChunkCacheHandoff }}
421 chunk_cache_config_l2:
422 default_validity: {{ .defaultValidity }}
424 writeback_goroutines: {{ .writebackParallelism }}
425 writeback_buffer: {{ .writebackBuffer }}
426 writeback_size_limit: {{ .writebackSizeLimit }}
428 batch_size: {{ .batchSize }}
429 parallelism: {{ .parallelism }}
431 addresses: {{ .addresses }}
432 consistent_hash: true
433 timeout: {{ .timeout }}
439 {{- if .Values.loki.schemaConfig }}
441 {{- toYaml .Values.loki.schemaConfig | nindent 2}}
444 {{- if .Values.loki.useTestSchema }}
446 {{- toYaml .Values.loki.testSchemaConfig | nindent 2}}
449 {{- if .Values.ruler.enabled }}
450 {{ include "loki.rulerConfig" . }}
453 {{- if and .Values.loki.storage.use_thanos_objstore .Values.ruler.enabled}}
455 {{- include "loki.rulerThanosStorageConfig" . | nindent 2 }}
458 {{- if or .Values.tableManager.retention_deletes_enabled .Values.tableManager.retention_period }}
460 retention_deletes_enabled: {{ .Values.tableManager.retention_deletes_enabled }}
461 retention_period: {{ .Values.tableManager.retention_period }}
465 align_queries_with_step: true
466 {{- with .Values.loki.query_range }}
467 {{- tpl (. | toYaml) $ | nindent 2 }}
469 {{- if .Values.resultsCache.enabled }}
470 {{- with .Values.resultsCache }}
474 default_validity: {{ .defaultValidity }}
476 writeback_goroutines: {{ .writebackParallelism }}
477 writeback_buffer: {{ .writebackBuffer }}
478 writeback_size_limit: {{ .writebackSizeLimit }}
480 addresses: {{ .addresses }}
481 consistent_hash: true
482 timeout: {{ .timeout }}
487 {{- with .Values.loki.storage_config }}
489 {{- if not (hasKey $.Values.loki.storage_config "use_thanos_objstore") }}
490 use_thanos_objstore: {{ $.Values.loki.storage.use_thanos_objstore }}
492 {{- tpl (. | toYaml) $ | nindent 4 }}
495 {{- with .Values.loki.query_scheduler }}
497 {{- tpl (. | toYaml) $ | nindent 4 }}
500 {{- with .Values.loki.compactor }}
502 {{- tpl (. | toYaml) $ | nindent 4 }}
505 {{- with .Values.loki.compactor_grpc_client }}
506 compactor_grpc_client:
507 {{- tpl (. | toYaml) $ | nindent 4 }}
510 {{- with .Values.loki.analytics }}
512 {{- tpl (. | toYaml) $ | nindent 4 }}
515 {{- if .Values.loki.ui.enabled }}
519 {{- with .Values.loki.querier }}
521 {{- tpl (. | toYaml) $ | nindent 4 }}
524 {{- with .Values.loki.index_gateway }}
526 {{- tpl (. | toYaml) $ | nindent 4 }}
529 {{- with .Values.loki.frontend }}
531 {{- tpl (. | toYaml) $ | nindent 4 }}
534 {{- with .Values.loki.frontend_worker }}
536 {{- tpl (. | toYaml) $ | nindent 4 }}
539 {{- with .Values.loki.distributor }}
541 {{- tpl (. | toYaml) $ | nindent 4 }}
545 enabled: {{ .Values.loki.tracing.enabled }}
547 {{- with .Values.loki.bloom_build }}
549 {{- tpl (. | toYaml) $ | nindent 4 }}
552 {{- with .Values.loki.bloom_gateway }}
554 {{- tpl (. | toYaml) $ | nindent 4 }}
557 {{- with .Values.loki.operational_config }}
559 {{- tpl (. | toYaml) $ | nindent 4 }}
561 # Should authentication be enabled
563 # @schema skipProperties:true;additionalProperties:true
564 # -- memberlist configuration (overrides embedded default)
566 # @schema skipProperties:true;additionalProperties:true
567 # -- Extra memberlist configuration
568 extraMemberlistConfig:
569 abort_if_cluster_join_fails: true
576 # @schema item:object
577 # @schema itemProperties:{"name":{"type":"string","minLength":1},"password":{"type":["string","null"]},"passwordHash":{"type":["string","null"]},"basicAuthUsername":{"type":["string","null"]},"clientCertificateCN":{"type":"array","items":{"type":"string","minLength":1},"uniqueItems":true},"jwtSubClaim":{"type":"array","items":{"type":"string","minLength":1},"uniqueItems":true}}
578 # @schema allOf:[{"type":"array","items":{"required":["name"]}}]
579 # -- Tenants used by the gateway for authentication and `X-Scope-OrgID` mapping. Only `name`, `password`, and `passwordHash` are supported by both gateway implementations; `basicAuthUsername`, `clientCertificateCN`, and `jwtSubClaim` are supported only when `gateway.type` is `envoy`. `name` is the value assigned to `X-Scope-OrgID` and the default Basic Auth username. It can be a single Loki tenant ID or, when multi-tenant queries are enabled, a pipe-separated list of tenant IDs. `jwtSubClaim` entries are rendered with `tpl`, allowing values such as `system:serviceaccount:{{ .Release.Namespace }}:loki-canary`. Envoy Basic Auth accepts a `{SHA}` `passwordHash`, or derives one from `password`; JWT-only Envoy tenants do not need either.<br><br>
583 # - name: "test-user-1"<br>
584 # password: "test-password-1"<br>
585 # - name: "test-user-2"<br>
586 # passwordHash: "$2y$10$7O40CaY1yz7fu9O24k2/u.ct/wELYHRBsn25v/7AyuQ8E8hrLqpva" # NGINX: generated using `htpasswd -nbBC10 test-user-2 test-password-2`
587 # # Map requests authenticated as the dedicated user "grafana" to all three tenants by<br>
588 # # setting X-Scope-OrgID to "cluster1|cluster2|cluster3".<br>
589 # - name: "cluster1|cluster2|cluster3"<br>
590 # basicAuthUsername: "grafana"<br>
591 # clientCertificateCN:<br>
592 # - "grafana-client"<br>
594 # - "system:serviceaccount:grafana:grafana"
597 # @schema skipProperties:true;additionalProperties:true
598 # -- Check https://grafana.com/docs/loki/latest/configuration/#server for more info on the server configuration.
600 graceful_shutdown_timeout: 5s
601 grpc_listen_port: 9095
602 grpc_server_min_time_between_pings: '10s'
603 grpc_server_ping_without_stream_allowed: true
604 grpc_server_max_concurrent_streams: 1000
605 grpc_server_max_recv_msg_size: 104857600
606 grpc_server_max_send_msg_size: 104857600
607 http_listen_port: 3100
608 http_server_idle_timeout: 30s
609 http_server_read_timeout: 10m0s
610 http_server_write_timeout: 10m0s
613 # -- trafficDistribution for services
614 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
615 trafficDistribution: ""
616 # -- ipFamilyPolicy for all services
617 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
619 # -- ipFamilies for all services
620 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
623 # @schema additionalProperties:{"type":"string"}
624 # -- Additional annotations for headless Loki services
626 # @schema skipProperties:true;additionalProperties:true
629 reject_old_samples: true
630 reject_old_samples_max_age: 168h
631 max_cache_freshness_per_query: 10m
632 split_queries_by_interval: 15m
635 # -- Provides a reloadable runtime configuration file for some specific configuration
637 # @schema skipProperties:true;additionalProperties:true
638 # -- Check https://grafana.com/docs/loki/latest/configuration/#common_config for more info on how to provide a common configuration
640 path_prefix: /var/loki
641 replication_factor: 3
642 # -- The gRPC address of the compactor. The use of compactor_grpc_address is preferred over compactor_address.
643 # If a customized compactor_address is set, compactor_grpc_address should be set to an empty string.
644 compactor_grpc_address: '{{ include "loki.compactorAddress" . }}'
645 # @schema skipProperties:true;additionalProperties:true
646 # -- Storage config. Providing this will automatically populate all necessary storage configs in the templated config.
647 # -- In case of using thanos storage, enable use_thanos_objstore and the configuration should be done inside the object_store section.
649 # Loki requires a bucket for chunks and the ruler.
650 # Please provide these values if you are using object storage.
656 # @schema type:[string, null]
658 # @schema type:[string, null]
660 # @schema type:[string, null]
662 # @schema type:[string, null]
663 secretAccessKey: null
664 # @schema type:[string, null]
666 # @schema type:[string, null]
667 signatureVersion: null
668 s3ForcePathStyle: false
671 # -- Check https://grafana.com/docs/loki/latest/configure/#s3_storage_config for more info on how to provide a backoff_config
673 disable_dualstack: false
679 # @schema type:[string, null]
681 # @schema type:[string, null]
683 # @schema type:[string, null]
684 connectionString: null
685 useManagedIdentity: false
686 useFederatedToken: false
687 # @schema type:[string, null]
689 # @schema type:[string, null]
691 # @schema type:[string, null]
693 # @schema type:[string, null]
696 # @schema type:[string, null]
698 # @schema type:[string, null]
700 # @schema type:[string, null]
702 # @schema type:[string, null]
704 # @schema type:[string, null]
705 user_domain_name: null
706 # @schema type:[string, null]
708 # @schema type:[string, null]
710 # @schema type:[string, null]
712 # @schema type:[string, null]
714 # @schema type:[string, null]
716 # @schema type:[string, null]
718 # @schema type:[string, null]
720 # @schema type:[string, null]
721 project_domain_id: null
722 # @schema type:[string, null]
723 project_domain_name: null
724 # @schema type:[string, null]
726 # @schema type:[string, null]
728 # @schema type:[string, null]
730 # @schema type:[string, null]
731 connect_timeout: null
732 # @schema type:[string, null]
733 request_timeout: null
735 chunks_directory: /var/loki/chunks
736 rules_directory: /var/loki/rules
737 # Loki now supports using thanos storage clients for connecting to object storage backend.
738 # This will become the default way to configure storage in a future releases.
739 use_thanos_objstore: false
740 # @schema skipProperties:true;additionalProperties:true
742 # Type of object store. Valid options are: s3, gcs, azure
744 # @schema type:[string, null]
745 # Optional prefix for storage keys
747 # S3 configuration (when type is "s3")
749 # @schema type:[string, null]
752 # @schema type:[string, null]
755 # @schema type:[string, null]
756 # Optional access key
758 # @schema type:[string, null]
759 # Optional secret key
760 secret_access_key: null
761 # Optional. Enable if using self-signed TLS
763 # Optional server-side encryption configuration
765 # Optional HTTP client configuration
767 # GCS configuration (when type is "gcs")
769 # @schema type:[string, null]
772 # @schema type:[string, null]
773 # Optional service account JSON
774 service_account: null
775 # Azure configuration (when type is "azure")
777 # @schema type:[string, null]
778 # Storage account name
780 # @schema type:[string, null]
781 # Optional storage account key
783 # -- Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas
785 # -- a real Loki install requires a proper schemaConfig defined above this, however for testing or playing around
786 # you can enable useTestSchema
788 # @schema skipProperties:true;additionalProperties:true
793 object_store: filesystem
798 # @schema skipProperties:true;additionalProperties:true
799 ## A separate loki ruler storage configuration can be provided via rulerStorage.storage section:
803 # -- Check https://grafana.com/docs/loki/latest/configuration/#ruler for more info on configuring ruler
806 dir: /var/loki/ruler-wal
807 # -- Storage for the ruler. If defining rules in `ruler.directories`, this must be configured to use local storage as shown below.
811 # directory: /etc/loki/rules
812 # @schema skipProperties:true;additionalProperties:true
813 # -- Structured loki configuration, takes precedence over `loki.config`, `loki.schemaConfig`, `loki.storageConfig`
815 # @schema skipProperties:true;additionalProperties:true
816 # -- Additional query scheduler config
818 # @schema skipProperties:true;additionalProperties:true
819 # -- Additional storage config
822 index_gateway_client:
823 server_address: '{{ include "loki.indexGatewayAddress" . }}'
825 index_gateway_client:
826 server_address: '{{ include "loki.indexGatewayAddress" . }}'
828 working_directory: /var/loki/data/bloomshipper
833 # @schema skipProperties:true;additionalProperties:true
834 # -- Optional compactor configuration
836 # @schema skipProperties:true;additionalProperties:true
837 # -- Optional compactor grpc client configuration
838 compactor_grpc_client: {}
839 # @schema skipProperties:true;additionalProperties:true
840 # -- Optional pattern ingester configuration
843 # @schema skipProperties:true;additionalProperties:true
844 # -- Optional analytics configuration
846 # @schema skipProperties:true;additionalProperties:true
847 # -- Optional Loki UI: Provides access to a operators UI for Loki distributed. When enabled UI will be available at /ui/ of loki-gateway
849 # Disabled by default for backwards compatibility. Enable to use the Loki UI.
852 # enable gateway proxying to UI under /ui
854 # @schema skipProperties:true;additionalProperties:true
855 # -- Optional querier configuration
857 # @schema skipProperties:true;additionalProperties:true
858 # -- Optional querier configuration
860 # @schema skipProperties:true;additionalProperties:true
861 # -- Optional ingester configuration
864 flush_on_shutdown: true
865 # @schema skipProperties:true;additionalProperties:true
866 # -- Optional ingester client configuration
868 # @schema skipProperties:true;additionalProperties:true
869 # -- Optional block builder configuration
871 # @schema skipProperties:true;additionalProperties:true
872 # -- Optional index gateway configuration
875 # @schema skipProperties:true;additionalProperties:true
877 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
878 tail_proxy_url: '{{ include "loki.querierAddress" . }}'
879 # @schema skipProperties:true;additionalProperties:true
881 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
882 # @schema skipProperties:true;additionalProperties:true
883 # -- Optional distributor configuration
885 # @schema skipProperties:true;additionalProperties:true
889 # @schema skipProperties:true;additionalProperties:true
893 planner_address: '{{ include "loki.bloomPlannerAddress" . }}'
894 # @schema skipProperties:true;additionalProperties:true
898 addresses: '{{ include "loki.bloomGatewayAddresses" . }}'
899 # @schema skipProperties:true;additionalProperties:true
900 # -- Optional operational configuration
901 operational_config: {}
902######################################################################################################################
906######################################################################################################################
908# -- Section for configuring optional Helm test
911 # -- Used to directly query the metrics endpoint of the canary for testing, this approach avoids needing prometheus for testing.
912 # This in a newer approach to using prometheusAddress such that tests do not have a dependency on prometheus
913 canaryServiceAddress: 'http://{{ include "loki.resourceName" (dict "ctx" $ "component" "canary") }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}:3500/metrics'
914 # -- Address of the prometheus server to query for the test. This overrides any value set for canaryServiceAddress.
915 # This is kept for backward compatibility and may be removed in future releases. Previous value was 'http://prometheus:9090'
916 prometheusAddress: ""
917 # -- Number of times to retry the test before failing
919 # @schema additionalProperties:{"type":"string"}
920 # -- Additional labels for the test pods
922 # @schema additionalProperties:{"type":"string"}
923 # -- Additional annotations for test pods
925 # -- Image to use for loki canary
927 # -- The Docker registry
929 # -- Docker image repository
930 repository: grafana/loki-helm-test
931 # -- Overrides the image tag whose default is the chart's appVersion
933 # @schema type:[string, null]
934 # -- Overrides the image tag with an image digest
936 # -- Docker image pull policy
937 pullPolicy: IfNotPresent
938 # @schema type:[boolean, null]
939 # -- Use the host's user namespace in test pods
941# The Loki canary pushes logs to and queries from this loki installation to test
942# that it's working correctly
945 # -- The type of the loki canary k8s rollout. This can be a DaemonSet or Deployment.
947 # -- If true, the canary will send directly to Loki via the address configured for verification --
948 # -- If false, it will write to stdout and an Agent will be needed to scrape and send the logs --
950 # @schema type:[string, null]
951 # -- If set overwrites the default value set by loki.host helper function. Use this if gateway not enabled.
953 # -- The name of the label to look for at loki when doing the checks.
955 # @schema additionalProperties:{"type":"string"}
956 # -- Additional annotations for the `loki-canary` Daemonset
958 # @schema additionalProperties:{"type":"string"}
959 # -- Additional labels for the `loki-canary` Daemonset
961 # @schema additionalProperties:{"type":"string"}
962 # -- Additional annotations for each `loki-canary` pod
964 # @schema additionalProperties:{"type":"string"}
965 # -- Additional labels for each `loki-canary` pod
967 # -- The number of old ReplicaSets to retain to allow rollback
968 revisionHistoryLimit: 10
970 # @schema additionalProperties:{"type":"string"}
971 # -- Annotations for loki-canary Service
973 # @schema additionalProperties:{"type":"string"}
974 # -- Additional labels for loki-canary Service
976 # -- Additional CLI arguments for the 'loki-canary' command
978 # -- Environment variables to add to the canary pods
980 # -- Environment variables from secrets or configmaps to add to the canary pods
982 # -- Volume mounts to add to the canary pods
983 extraVolumeMounts: []
984 # -- Volumes to add to the canary pods
986 # @schema additionalProperties:true
987 # -- Resource requests and limits for the canary
989 # -- Container resize policy for the canary
992 # - resourceName: cpu
993 # restartPolicy: NotRequired
994 # - resourceName: memory
995 # restartPolicy: RestartContainer
997 # @schema additionalProperties:true
998 # -- DNS config for canary pods
1000 # @schema additionalProperties:true
1001 # -- Node selector for canary pods
1003 # -- Tolerations for canary pods
1005 # @schema type:[object, null];skipProperties:true;additionalProperties:true
1006 # -- Affinity for canary pods
1008 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1009 automountServiceAccountToken: false
1010 # @schema type:[string, null]
1011 # -- The name of the PriorityClass for loki-canary pods
1012 priorityClassName: null
1013 # @schema type:[boolean, null]
1014 # -- Use the host's user namespace in loki-canary pods
1016 podDisruptionBudget:
1017 # -- Enable Pod Disruption Budget
1019 # @schema additionalProperties:{"type":"string"}
1020 # -- Annotations for Pod Disruption Budget
1022 # @schema additionalProperties:{"type":"string"}
1023 # -- Labels for Pod Disruption Budget
1025 # @schema type:[string, integer, null]
1026 # -- Pod Disruption Budget minAvailable
1028 # @schema type:[string, integer, null]
1029 # -- Pod Disruption Budget maxUnavailable
1030 maxUnavailable: null
1031 # @schema type:[string, null]
1032 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
1033 unhealthyPodEvictionPolicy: null
1034 # @schema skipProperties:true;additionalProperties:true
1035 # -- The SecurityContext for loki-canary pods
1038 fsGroupChangePolicy: OnRootMismatch
1043 type: RuntimeDefault
1044 # @schema skipProperties:true;additionalProperties:true
1045 # -- The SecurityContext for loki-canary containers
1046 containerSecurityContext:
1047 readOnlyRootFilesystem: true
1051 allowPrivilegeEscalation: false
1053 type: RuntimeDefault
1054 # -- Image to use for loki canary
1056 # -- The Docker registry
1058 # -- Docker image repository
1059 repository: chainguard-private/loki-canary
1060 # @schema type:[string, null]
1061 # -- Overrides the image tag whose default is the chart's appVersion
1063 # @schema type:[string, null]
1064 # -- Overrides the image tag with an image digest
1065 digest: sha256:6128b7c9910ec66864169ff1f2fa33d929600ae026a204f81403ff9cdfda52a1
1066 # -- Docker image pull policy
1067 pullPolicy: IfNotPresent
1068 # @schema skipProperties:true;additionalProperties:true
1074 initialDelaySeconds: 15
1076 # @schema skipProperties:true;additionalProperties:true
1077 # -- Readiness probe
1082 initialDelaySeconds: 15
1084 # @schema skipProperties:true;additionalProperties:true
1087 # @schema skipProperties:true;additionalProperties:true
1088 # -- Update strategy for the `loki-canary` Daemonset pods
1092 # @schema type:[string, integer, null]
1093 # -- Pod Disruption Budget maxUnavailable
1095 # -- Replicas for `loki-canary` when using a Deployment
1097 # -- Tenant to use for loki-canary
1099 # -- Name of the tenant for loki-canary
1100 name: "self-monitoring"
1101 # @schema type:[string, null]
1102 # -- Password of the gateway for Basic auth for loki-canary
1105 # -- Use a projected Kubernetes ServiceAccount token with loki-canary's `-bearer-token-file` option instead of Basic Auth. Requires a loki-canary build that supports this option.
1107 # -- Requested audience for the projected ServiceAccount token. Rendered with `tpl`; this must match an Envoy JWT audience when audience validation is enabled.
1108 audience: '{{ include "loki.name" . }}.{{ include "loki.namespace" . }}'
1109 # @schema minimum:600;maximum:31536000
1110 # -- Lifetime in seconds for the projected ServiceAccount token.
1111 expirationSeconds: 3600
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: false
1130######################################################################################################################
1132# Service Accounts and Kubernetes RBAC
1134######################################################################################################################
1136 # -- Specifies whether a ServiceAccount should be created
1138 # @schema type:[string, null]
1139 # -- The name of the ServiceAccount to use.
1140 # If not set and create is true, a name is generated using the fullname template
1142 # @schema item:object;itemProperties:{"name": {"type": "string"}}
1143 # -- Image pull secrets for the service account
1144 imagePullSecrets: []
1145 # @schema additionalProperties:{"type":"string"}
1146 # -- Annotations for the service account
1148 # @schema additionalProperties:{"type":"string"}
1149 # -- Labels for the service account
1151 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1152 automountServiceAccountToken: true
1155 # -- For OpenShift set sccEnabled to 'true' to use the SecurityContextConstraints.
1157 # -- Toggle this to true to allow the use of hostPath volumes on OpenShift
1158 sccAllowHostDirVolumePlugin: false
1159 # -- Whether to install RBAC in the namespace only or cluster-wide. Useful if you want to watch ConfigMap globally.
1161######################################################################################################################
1163# Network Policy configuration
1165######################################################################################################################
1167 # -- Specifies whether Network Policies should be created
1170 # @schema item:string
1171 # -- CIDRs allowed for Envoy gateway JWKS egress in the standard NetworkPolicy. Empty permits the configured JWKS port to any destination because Kubernetes NetworkPolicy cannot select the API server Service by name.
1174 # -- Specifies the Pods which are allowed to access the metrics port.
1175 # As this is cross-namespace communication, you also need the namespaceSelector.
1177 # -- Specifies the namespaces which are allowed to access the metrics port
1178 namespaceSelector: {}
1179 # -- Specifies specific network CIDRs which are allowed to access the metrics port.
1180 # In case you use namespaceSelector, you also have to specify your kubelet networks here.
1181 # The metrics ports are also used for probes.
1184 # -- Specifies the Pods which are allowed to access the http port.
1185 # As this is cross-namespace communication, you also need the namespaceSelector.
1187 # -- Specifies the namespaces which are allowed to access the http port
1188 namespaceSelector: {}
1190 # @schema type:[string, integer]
1191 # -- Specify the Alertmanager port used for alerting
1193 # -- Specifies the Alertmanager Pods.
1194 # As this is cross-namespace communication, you also need the namespaceSelector.
1196 # -- Specifies the namespace the Alertmanager is running in
1197 namespaceSelector: {}
1199 # -- Specify the port used for external storage, e.g. AWS S3
1201 # -- Specifies specific network CIDRs you want to limit access to
1204 # @schema type:[string, integer, null]
1205 # -- (int) Specify the port used for discovery
1207 # -- Specifies the Pods labels used for discovery.
1208 # As this is cross-namespace communication, you also need the namespaceSelector.
1210 # -- Specifies the namespace the discovery Pods are running in
1211 namespaceSelector: {}
1212######################################################################################################################
1214# Global memberlist configuration
1216######################################################################################################################
1218# Configuration for the memberlist service
1219# The service selects pods labeled `app.kubernetes.io/part-of: memberlist` and is used as the seed list for
1220# `memberlist.join_members`. Only components that always run a memberlist listener get this label. Components that
1221# only use memberlist with some configurations (query-frontend, query-scheduler, index-gateway, bloom components,
1222# overrides-exporter; all of them when `loki.ui.enabled` is true) still join the cluster through these seed nodes.
1225 publishNotReadyAddresses: false
1226 # @schema additionalProperties:{"type":"string"}
1228######################################################################################################################
1230# Gateway and Ingress
1232# By default this chart will deploy a Nginx container to act as a gateway which handles routing of traffic
1233# and can also do auth.
1235# If you would prefer you can optionally disable this and enable using k8s ingress to do the incoming routing.
1237######################################################################################################################
1239# Configuration for the gateway
1241 # -- Specifies whether the gateway should be enabled
1243 # @schema enum:[nginx, envoy]
1244 # -- Selects the gateway proxy implementation. The Envoy implementation is EXPERIMENTAL and opt-in; its values under `gateway.envoyConfig` and the rendered Envoy configuration may change in minor releases.
1246 # -- Number of replicas for the gateway
1248 # -- Default container port
1250 # -- Enable logging of 2xx and 3xx HTTP requests
1251 verboseLogging: true
1253 # -- Enable autoscaling for the gateway
1255 # -- Minimum autoscaling replicas for the gateway
1257 # -- Maximum autoscaling replicas for the gateway
1259 # @schema type:[integer, null]
1260 # -- Target CPU utilisation percentage for the gateway
1261 targetCPUUtilizationPercentage: 60
1262 # @schema type:[integer, null]
1263 # -- Target memory utilisation percentage for the gateway
1264 targetMemoryUtilizationPercentage: null
1265 # @schema skipProperties:true;additionalProperties:true
1266 # -- See `kubectl explain deployment.spec.strategy` for more
1267 # -- ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1268 # -- Behavior policies while scaling.
1271 # stabilizationWindowSeconds: 300
1277 # stabilizationWindowSeconds: 300
1281 # periodSeconds: 180
1283 # -- Enable KEDA autoscaling for the gateway. Mutually exclusive with autoscaling.enabled
1285 # @schema type:[integer, null]
1286 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
1287 pollingInterval: null
1288 # -- Minimum replicas for KEDA autoscaling
1290 # -- Maximum replicas for KEDA autoscaling
1292 # @schema type:[integer, null]
1293 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
1294 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
1295 cooldownPeriod: null
1296 # @schema additionalProperties:true
1297 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
1298 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
1300 # @schema skipProperties:true;additionalProperties:true
1301 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
1302 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
1304 # -- KEDA triggers for the gateway.
1305 # Ref: https://keda.sh/docs/latest/scalers/
1310 # -- The Docker registry for the NGINX gateway image
1312 # -- The NGINX gateway image repository
1313 repository: chainguard-private/nginx
1314 # -- The NGINX gateway image tag
1316 # @schema type:[string, null]
1317 # -- Overrides the NGINX gateway image tag with an image digest
1318 digest: sha256:3dc4aaa8f54b385a451239560f799418902e5e06c46468501e77b9835fb6f9ca
1319 # -- The NGINX gateway image pull policy
1320 pullPolicy: IfNotPresent
1323 # -- The Docker registry for the Envoy gateway image
1325 # -- The Envoy gateway image repository
1326 repository: envoyproxy/envoy
1327 # renovate: docker=docker.io/envoyproxy/envoy
1328 # -- The Envoy gateway image tag. Uses the official distroless variant by default.
1329 tag: distroless-v1.39.1
1330 # @schema type:[string, null]
1331 # -- Overrides the Envoy gateway image tag with an image digest
1333 # -- The Envoy gateway image pull policy
1334 pullPolicy: IfNotPresent
1335 # @schema type:[string, null]
1336 # -- The name of the PriorityClass for gateway pods
1337 priorityClassName: null
1338 # @schema additionalProperties:{"type":"string"}
1339 # -- Annotations for gateway deployment
1341 # @schema additionalProperties:{"type":"string"}
1342 # -- Annotations for gateway pods
1344 # @schema additionalProperties:{"type":"string"}
1345 # -- Additional labels for gateway pods
1347 # -- Additional CLI args for the gateway
1349 # -- Environment variables to add to the gateway pods
1351 # -- Environment variables from secrets or configmaps to add to the gateway pods
1353 # -- Lifecycle for the gateway container
1355 # -- Volumes to add to the gateway pods
1357 # -- Volume mounts to add to the gateway pods
1358 extraVolumeMounts: []
1359 # @schema skipProperties:true;additionalProperties:true
1360 # -- The SecurityContext for gateway containers
1367 type: RuntimeDefault
1368 # @schema skipProperties:true;additionalProperties:true
1369 # -- The SecurityContext for gateway containers
1370 containerSecurityContext:
1371 readOnlyRootFilesystem: true
1375 type: "RuntimeDefault"
1376 allowPrivilegeEscalation: false
1377 # @schema type:[boolean, null]
1378 # -- Use the host's user namespace in the gateway
1380 # @schema additionalProperties:true
1381 # -- Resource requests and limits for the gateway
1383 # -- Container resize policy for the gateway
1386 # - resourceName: cpu
1387 # restartPolicy: NotRequired
1388 # - resourceName: memory
1389 # restartPolicy: RestartContainer
1391 # @schema type:[array, null]
1392 # -- Containers to add to the gateway pods
1394 # -- Grace period to allow the gateway to shutdown before it is killed
1395 terminationGracePeriodSeconds: 30
1396 podDisruptionBudget:
1397 # -- Enable Pod Disruption Budget
1399 # @schema additionalProperties:{"type":"string"}
1400 # -- Annotations for Pod Disruption Budget
1402 # @schema additionalProperties:{"type":"string"}
1403 # -- Labels for Pod Disruption Budget
1405 # @schema type:[string, integer, null]
1406 # -- Pod Disruption Budget minAvailable
1408 # @schema type:[string, integer, null]
1409 # -- Pod Disruption Budget maxUnavailable
1410 maxUnavailable: null
1411 # @schema type:[string, null]
1412 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
1413 unhealthyPodEvictionPolicy: null
1414 # @schema type:[object, null];skipProperties:true;additionalProperties:true
1415 # -- Affinity for gateway pods.
1416 # @default -- Hard node anti-affinity
1417 # The value will be passed through tpl.
1420 requiredDuringSchedulingIgnoredDuringExecution:
1423 app.kubernetes.io/component: gateway
1424 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1425 app.kubernetes.io/instance: '{{ .Release.Name }}'
1426 topologyKey: kubernetes.io/hostname
1427 # @schema additionalProperties:true
1428 # -- DNS config for gateway pods
1430 # @schema additionalProperties:true
1431 # -- Node selector for gateway pods
1433 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1434 automountServiceAccountToken: false
1435 # @schema item:object
1436 # -- Topology Spread Constraints for gateway pods
1437 # The value will be passed through tpl.
1438 topologySpreadConstraints: []
1440 # Gateway service configuration
1442 # -- Port of the gateway service
1444 # -- Type of the gateway service
1446 # @schema type:[string, null]
1447 # -- ClusterIP of the gateway service
1449 # @schema type:[integer, null]
1450 # -- (int) Node port if service type is NodePort
1452 # @schema type:[string, null]
1453 # -- Load balancer IPO address if service type is LoadBalancer
1454 loadBalancerIP: null
1455 # @schema additionalProperties:{"type":"string"}
1456 # -- Annotations for the gateway service
1458 # @schema additionalProperties:{"type":"string"}
1459 # -- Labels for gateway service
1461 # -- trafficDistribution for gateway Service
1462 trafficDistribution: ""
1463 # -- Session affinity for gateway Service
1465 # @schema additionalProperties:true
1466 # -- Session affinity config for gateway Service
1467 sessionAffinityConfig: {}
1468 # -- ipFamilyPolicy for gateway Service
1469 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1471 # -- ipFamilies for gateway Service
1472 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
1475 # -- Specifies whether a ServiceAccount should be created
1477 # @schema type:[string, null]
1478 # -- The name of the ServiceAccount to use.
1479 # If not set and create is true, a name is generated using the fullname template
1481 # @schema item:object;itemProperties:{"name": {"type": "string"}}
1482 # -- Image pull secrets for the service account
1483 imagePullSecrets: []
1484 # @schema additionalProperties:{"type":"string"}
1485 # -- Annotations for the service account
1487 # @schema additionalProperties:{"type":"string"}
1488 # -- Labels for the service account
1490 # -- Set this toggle to false to opt out of automounting API credentials for the service account
1491 automountServiceAccountToken: false
1492 # Gateway ingress configuration
1494 # -- Specifies whether an ingress for the gateway should be created
1496 # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
1497 ingressClassName: ""
1498 # @schema additionalProperties:{"type":"string"}
1499 # -- Annotations for the gateway ingress
1501 # @schema additionalProperties:{"type":"string"}
1502 # -- Labels for the gateway ingress
1504 # -- Hosts configuration for the gateway ingress, passed through the `tpl` function to allow templating
1506 - host: gateway.loki.example.com
1509 # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
1511 # -- TLS configuration for the gateway ingress. Hosts passed through the `tpl` function to allow templating
1513 - secretName: loki-gateway-tls
1515 - gateway.loki.example.com
1516 # Basic auth configuration
1518 # -- Enables basic authentication for the gateway
1520 # @schema type:[string, null]
1521 # -- The basic auth username for the gateway
1523 # @schema type:[string, null]
1524 # -- The basic auth password. The Envoy gateway derives its required `{SHA}` hash from this value.
1526 # @schema type:[string, null]
1527 # -- The `{SHA}` password hash for the Envoy gateway when `loki.tenants` is empty. This takes precedence over `password`. Generate it with `printf %s 'password' | openssl dgst -sha1 -binary | openssl base64 -A` and prefix the result with `{SHA}`.
1529 # -- Uses the specified users from the `loki.tenants` list to create the htpasswd file.
1530 # If `loki.tenants` is not set, the `gateway.basicAuth.username` and matching password value are used.
1531 # The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
1532 # high CPU load. The native Envoy Basic Auth filter requires `{SHA}` password hashes; NGINX supports
1533 # the existing bcrypt hashes. Envoy derives `{SHA}` hashes from plaintext password inputs.
1534 # @default -- Either `loki.tenants` or `gateway.basicAuth.username` and password or passwordHash.
1536 {{- $isEnvoy := eq .Values.gateway.type "envoy" }}
1537 {{- with $tenants := .Values.loki.tenants }}
1538 {{- range $t := $tenants }}
1539 {{- $tenantName := required "All tenants must have a 'name' set" $t.name }}
1540 {{- $username := ternary ($t.basicAuthUsername | default $tenantName) $tenantName $isEnvoy }}
1541 {{- if and $isEnvoy (or $t.passwordHash $t.password) }}
1542 {{- $passwordHash := $t.passwordHash }}
1543 {{- if not $passwordHash }}
1544 {{- $passwordHash = include "loki.gatewayEnvoySHA1" (required "All tenants must have a 'password' or 'passwordHash' set" $t.password) }}
1546 {{- if not (regexMatch "^\\{SHA\\}[A-Za-z0-9+/]{27}=$" $passwordHash) }}
1547 {{- fail "Envoy Basic Auth passwordHash values must contain a valid {SHA} Base64-encoded SHA-1 digest" }}
1549 {{- printf "%s:%s\n" $username $passwordHash }}
1550 {{- else if $isEnvoy }}
1551 {{- if not (or $t.jwtSubClaim $t.clientCertificateCN) }}
1552 {{- fail (printf "Tenant %q must set 'password' or 'passwordHash', or an Envoy identity (jwtSubClaim or clientCertificateCN)" $tenantName) }}
1555 {{- if $passwordHash := $t.passwordHash }}
1556 {{- printf "%s:%s\n" $username $passwordHash }}
1557 {{- else if $password := $t.password }}
1558 {{- printf "%s\n" (htpasswd $username $password) }}
1560 {{- fail "All tenants must have a 'password' or 'passwordHash' set" }}
1565 {{- $username := required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username }}
1567 {{- $passwordHash := .Values.gateway.basicAuth.passwordHash }}
1568 {{- if not $passwordHash }}
1569 {{- $passwordHash = include "loki.gatewayEnvoySHA1" (required "'gateway.basicAuth.password' or 'gateway.basicAuth.passwordHash' is required for the Envoy gateway" .Values.gateway.basicAuth.password) }}
1571 {{- if not (regexMatch "^\\{SHA\\}[A-Za-z0-9+/]{27}=$" $passwordHash) }}
1572 {{- fail "gateway.basicAuth.passwordHash must use the {SHA} format for the Envoy gateway" }}
1574 {{- printf "%s:%s\n" $username $passwordHash }}
1576 {{- printf "%s\n" (htpasswd $username (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password)) }}
1579 # @schema type:[string, null]
1580 # -- Existing basic auth secret to use. Must contain `.htpasswd`; Envoy requires every entry to use the `{SHA}` format. Envoy reads this file at startup; after rotating an existing Secret, restart the gateway Deployment or change gateway.podAnnotations to trigger a rollout.
1581 existingSecret: null
1582 # -- Gateway API routes configuration. Mutually exclusive with gateway.ingress.
1583 # Use either ingress or route, but not both at once.
1584 # Each entry in the map creates a separate HTTPRoute resource. The key "main" produces
1585 # a route named after the gateway fullname; any other key appends the key as a suffix.
1586 # This allows defining multiple routes, e.g. one HTTPRoute and one GRPCRoute.
1589 # -- Specifies whether this Gateway API route should be created
1591 # -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1beta1.
1592 # If not set, the latest available version will be auto-detected.
1594 # -- Set the route kind. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
1596 # @schema additionalProperties:{"type":"string"}
1597 # -- Additional annotations for the route
1599 # @schema additionalProperties:{"type":"string"}
1600 # -- Additional labels for the route
1602 # -- Hostnames for the route. Optional: when empty, the route inherits the hostnames of the
1603 # listeners it is attached to, e.g. the ones of a ListenerSet referenced in `parentRefs`.
1605 # - gateway.loki.example.com
1606 # -- Parent references to attach the route to. A Gateway or a ListenerSet (see `listenerSet`).
1608 # - name: my-gateway
1609 # namespace: gateway-namespace
1610 # -- Additional rules to prepend before the default catch-all rule.
1611 # Each entry is rendered into spec.rules as written (templating is supported),
1612 # so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules
1613 # with no backendRefs (e.g. RequestRedirect, URLRewrite).
1614 # Useful for advanced routing logic (e.g. header-based routing, auth policies, redirects).
1615 # Note: the chart-generated rule that points at the gateway service is always rendered
1616 # for this route — additionalRules are prepended, not a replacement.
1617 # Example HTTP-to-HTTPS redirect:
1620 # - type: RequestRedirect
1625 # - path: { type: PathPrefix, value: / }
1627 # -- Matches for the default rule. Defaults to match all paths.
1632 # -- Filters for the default rule
1634 # -- Timeouts for the default rule
1636 # @schema skipProperties:true;additionalProperties:true
1637 # -- Liveness probe for the selected gateway container. Envoy defaults to `/livez` on its HTTP listener when this is empty.
1639 # @schema skipProperties:true;additionalProperties:true
1640 # -- Readiness probe for the gateway. The default remains compatible with custom NGINX configurations. Envoy replaces this default with HTTP `/ready` on `gateway.envoyConfig.adminPort`; custom probes are preserved.
1645 initialDelaySeconds: 15
1647 # @schema skipProperties:true;additionalProperties:true
1648 # -- Startup probe for the selected gateway container.
1651 # -- Which schema to be used when building upstream URLs. Can be `http` or `https`. Also used by the generated Envoy configuration.
1653 # -- Enable listener for IPv6, disable on IPv4-only systems
1655 # -- NGINX log format
1657 main '$remote_addr - $remote_user [$time_local] $status '
1658 '"$request" $body_bytes_sent "$http_referer" '
1659 '"$http_user_agent" "$http_x_forwarded_for"';
1660 # -- Allows appending custom configuration to the server block
1662 # -- Allows appending custom configuration to the http block, passed through the `tpl` function to allow templating
1664 # -- 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.
1666 {{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}
1667 # -- Allows customizing the `client_max_body_size` directive
1668 clientMaxBodySize: 4M
1669 # -- Whether ssl should be appended to the listen directive of the server block or not.
1671 # @schema type:[string, null]
1672 # -- Override Read URL. Also used by the generated Envoy configuration, which accepts scheme, host and port only (no path).
1674 # @schema type:[string, null]
1675 # -- Override Write URL. Also used by the generated Envoy configuration, which accepts scheme, host and port only (no path).
1676 customWriteUrl: null
1677 # @schema type:[string, null]
1678 # -- Override Backend URL. Also used by the generated Envoy configuration, which accepts scheme, host and port only (no path).
1679 customBackendUrl: null
1680 # -- Allows overriding the DNS resolver address nginx will use.
1682 # -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
1683 # @default -- See values.yaml
1685 {{- include "loki.nginxFile" . -}}
1686 # -- EXPERIMENTAL: Settings for the Envoy gateway implementation, used when `gateway.type` is `envoy`.
1687 # @default -- See values.yaml
1689 # -- Dual-stack Envoy administration port used by the readiness probe. Only `/ready` is accessible unless gateway metrics are enabled, which also allows `/stats/prometheus`.
1691 # -- Enable an IPv4-compatible IPv6 listener for dual-stack gateway pods.
1693 # -- Timeout for connections from Envoy to Loki components.
1695 # -- Request timeout. Use `0s` for streaming Loki requests.
1697 # -- Idle timeout for downstream HTTP streams.
1698 streamIdleTimeout: 600s
1699 # -- Enable TCP keep-alive on listener and upstream connections.
1701 # -- Use HTTP/2 over cleartext (h2c) for Loki upstreams. WebSocket streams automatically use HTTP/1.1.
1704 # -- CA bundle for HTTPS Loki upstreams. The default is present in the Envoy distroless image. Mount a custom CA with gateway.extraVolumes and gateway.extraVolumeMounts when needed.
1705 caCertificateFile: /etc/ssl/certs/ca-certificates.crt
1706 # -- Disable certificate chain and hostname verification for HTTPS Loki upstreams. Use only when explicitly required.
1707 insecureSkipVerify: false
1708 # -- Envoy access log format. Logs are written to stdout; `/livez` is always excluded.
1710 [%START_TIME%] "%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%" %RESPONSE_CODE% %RESPONSE_FLAGS% %BYTES_RECEIVED% %BYTES_SENT% %DURATION% %UPSTREAM_HOST% "%REQ(USER-AGENT)%" "%REQ(X-FORWARDED-FOR)%"
1712 # -- Terminate TLS at Envoy. Required when tenants define `clientCertificateCN`.
1714 # @schema type:[string, null]
1715 # -- Secret containing the server certificate/private key and, for client-certificate authentication, the client CA.
1716 existingSecret: null
1717 # -- Secret key containing the PEM server certificate.
1718 certificateFile: tls.crt
1719 # -- Secret key containing the PEM server private key.
1720 privateKeyFile: tls.key
1721 # -- Secret key containing the CA certificates used to verify client certificates.
1722 clientCAFile: ca.crt
1724 # -- Verify bearer JWTs with a remote JWKS before mapping `jwtSubClaim` values to Loki tenants. Defaults target the Kubernetes ServiceAccount issuer.
1726 # -- Expected JWT issuer (`iss`).
1727 issuer: 'https://kubernetes.default.svc.{{ .Values.global.clusterDomain }}'
1728 # @schema item:string
1729 # -- Allowed JWT audiences (`aud`). Each value is rendered with `tpl`; the default matches the loki-canary projected ServiceAccount token. Leave empty to skip audience validation.
1731 - '{{ include "loki.name" . }}.{{ include "loki.namespace" . }}'
1733 # -- HTTPS or HTTP URI used by Envoy to fetch the JWKS. The value is rendered with `tpl`. The default is the Kubernetes ServiceAccount JWKS endpoint, addressed by its absolute DNS name to skip resolver search-domain lookups.
1734 uri: 'https://kubernetes.default.svc.{{ .Values.global.clusterDomain }}./openid/v1/jwks'
1735 # @schema type:[string, null]
1736 # -- File whose contents Envoy sends as `Authorization: Bearer` when fetching the JWKS, through a loopback credential-injector listener. The default path is a projected token of the gateway ServiceAccount that the chart mounts and Envoy reloads on rotation; the Kubernetes API accepts it for the JWKS endpoint without extra RBAC. Point this at another mounted file for a different credential, or set it to `null` to fetch the JWKS anonymously.
1737 bearerTokenFile: /etc/envoy/kubernetes/token
1738 # -- Loopback port of the Envoy listener that adds the bearer token to JWKS requests. Only bound on 127.0.0.1 inside the gateway pod. Used when `bearerTokenFile` is set.
1739 credentialInjectorPort: 9902
1740 # -- Timeout for each remote JWKS request.
1743 # -- Number of times Envoy retries a failed JWKS request (connection failure, reset or 5xx) with a short exponential backoff before giving up on that fetch. Retries during startup keep the listener from serving JWT requests until the JWKS arrives, which also covers the first fetch racing the loopback credential-injector listener. Set to `0` to disable retries.
1745 # -- How long Envoy caches the fetched JWKS.
1747 # -- Fetch the JWKS asynchronously during listener initialization.
1749 # -- CA bundle used to validate an HTTPS JWKS endpoint. The Kubernetes root CA is mounted here when JWT verification is enabled. Override this for an external issuer.
1750 caCertificateFile: /etc/envoy/kubernetes/ca.crt
1751 # -- Config file contents for Envoy. Passed through the `tpl` function to allow templating.
1752 # @default -- See values.yaml
1754 {{- include "loki.envoyFile" . -}}
1755 # @schema additionalProperties:{"type":"string"}
1756 # -- Additional Envoy configuration files. Keys are mounted in `/etc/envoy` and values are passed through `tpl`. The name `envoy.yaml` is reserved.
1759 # -- Whether gateway metrics should be exposed. NGINX uses the exporter sidecar; Envoy exposes native Prometheus metrics.
1762 # -- NGINX access log exporter image registry. Not used by the Envoy gateway.
1764 # -- NGINX access log exporter image repository. Not used by the Envoy gateway.
1765 repository: chainguard-private/access-log-exporter
1766 # -- NGINX access log exporter image tag. Not used by the Envoy gateway.
1767 tag: 0.5.2-r2@sha256:6413f4948ce99637dc081e23ed476639b1c54e5d73b7734601382ac6636d3b80
1768 # -- NGINX access log exporter image pull policy. Not used by the Envoy gateway.
1769 pullPolicy: IfNotPresent
1770 # @schema additionalProperties:true
1771 # -- Resource requests and limits for the NGINX metrics exporter. Not used by the Envoy gateway.
1775 # -- Container resize policy for the NGINX gateway metrics exporter. Not used by the Envoy gateway.
1778 # - resourceName: cpu
1779 # restartPolicy: NotRequired
1780 # - resourceName: memory
1781 # restartPolicy: RestartContainer
1783 # @schema skipProperties:true;additionalProperties:true
1784 # -- The SecurityContext for the NGINX gateway metrics exporter. Not used by the Envoy gateway.
1785 containerSecurityContext:
1786 allowPrivilegeEscalation: false
1787 readOnlyRootFilesystem: true
1791 type: RuntimeDefault
1796 # -- Extra args to add to the NGINX gateway metrics exporter. Not used by the Envoy gateway.
1798 # @schema skipProperties:true;additionalProperties:true
1799 # -- Liveness probe for the NGINX gateway metrics exporter. Not used by the Envoy gateway.
1804 initialDelaySeconds: 30
1808 # @schema skipProperties:true;additionalProperties:true
1809 # -- Readiness probe for the NGINX gateway metrics exporter. Not used by the Envoy gateway.
1814 initialDelaySeconds: 5
1818 # @schema skipProperties:true;additionalProperties:true
1819 # -- Startup probe for the NGINX gateway metrics exporter. Not used by the Envoy gateway.
1822 # @schema additionalProperties:{"type":"string"}
1823 # -- Annotations for the gateway metrics exporter service.
1824 # Use this instead of gateway.service.annotations to avoid propagating
1825 # annotations (e.g. external-dns) to the exporter ClusterIP service.
1827 # @schema additionalProperties:{"type":"string"}
1828 # -- Labels for the gateway metrics exporter service.
1830# -- Ingress configuration Use either this ingress or the gateway, but not both at once.
1831# If you enable this, make sure to disable the gateway.
1832# You'll need to supply authn configuration for your ingress controller.
1835 ingressClassName: ""
1836 # @schema additionalProperties:{"type":"string"}
1838 # @schema additionalProperties:{"type":"string"}
1839 # nginx.ingress.kubernetes.io/auth-type: basic
1840 # nginx.ingress.kubernetes.io/auth-secret: loki-distributed-basic-auth
1841 # nginx.ingress.kubernetes.io/auth-secret-type: auth-map
1842 # nginx.ingress.kubernetes.io/configuration-snippet: |
1843 # proxy_set_header X-Scope-OrgID $remote_user;
1845 # blackbox.monitoring.exclude: "true"
1847 # -- Paths that are exposed by Loki Distributor.
1848 # If deployment mode is Distributed, the requests are forwarded to the service:.
1849 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service:.
1850 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service:
1855 # -- Paths that are exposed by Loki Query Frontend.
1856 # If deployment mode is Distributed, the requests are forwarded to the service.
1857 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service`.
1858 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1861 # this path covers labels and labelValues endpoints
1865 - /loki/api/v1/query
1866 - /loki/api/v1/query_range
1868 # this path covers labels and labelValues endpoints
1869 - /loki/api/v1/label
1870 - /loki/api/v1/labels
1871 - /loki/api/v1/series
1872 - /loki/api/v1/index/stats
1873 - /loki/api/v1/index/volume
1874 - /loki/api/v1/index/volume_range
1875 - /loki/api/v1/format_query
1876 - /loki/api/v1/detected_field
1877 - /loki/api/v1/detected_fields
1878 - /loki/api/v1/detected_labels
1879 - /loki/api/v1/patterns
1880 # this path covers UI API
1882 # -- Paths that are exposed by Loki Ruler.
1883 # If deployment mode is Distributed, the requests are forwarded to the service.
1884 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1885 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service
1888 - /api/prom/api/v1/rules
1889 - /api/prom/api/v1/alerts
1890 - /loki/api/v1/rules
1891 - /prometheus/api/v1/rules
1892 - /prometheus/api/v1/alerts
1893 # -- Paths that are exposed by Loki Compactor.
1894 # If deployment mode is Distributed, the requests are forwarded to the service.
1895 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1896 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1898 - /loki/api/v1/delete
1899 # -- Hosts configuration for the ingress, passed through the `tpl` function to allow templating
1902 # -- TLS configuration for the ingress. Hosts passed through the `tpl` function to allow templating
1906# secretName: loki-distributed-tls
1908# -- Gateway API routes for direct routing to Loki services, bypassing the nginx gateway.
1909# Use either this or the top-level ingress, but not both at once.
1910# Each entry in the map creates a separate HTTPRoute resource. The key "main" produces
1911# a route named after the loki fullname; any other key appends the key as a suffix.
1912# This allows defining multiple routes, e.g. one HTTPRoute and one GRPCRoute.
1915 # -- Specifies whether this Gateway API route should be created
1917 # -- Gateway API version to use. Auto-detected from cluster capabilities if empty.
1919 # -- Kind of the route resource. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute
1921 # @schema additionalProperties:{"type":"string"}
1922 # -- Annotations for the route
1924 # @schema additionalProperties:{"type":"string"}
1925 # -- Labels for the route
1927 # -- Hostnames for the route. Optional: when empty, the route inherits the hostnames of the
1928 # listeners it is attached to, e.g. the ones of a ListenerSet referenced in `parentRefs`.
1930 # -- Parent references for the route (required for Gateway API). A Gateway or a ListenerSet (see `listenerSet`).
1932 # - name: my-gateway
1933 # namespace: gateway-namespace
1934 # -- Additional rules to prepend before the generated path-routing rules.
1935 # Each entry is rendered into spec.rules as written (templating is supported),
1936 # so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules
1937 # with no backendRefs (e.g. RequestRedirect, URLRewrite).
1939 # @schema type:[integer, null]
1940 # -- Backend port override for all generated rules.
1941 # When unset, GRPCRoute automatically uses loki.server.grpc_listen_port (default 9095)
1942 # and all other kinds use loki.server.http_listen_port (default 3100).
1944 # -- Paths routed to each Loki service group. The target service depends on the deployment mode.
1945 # To produce a route that contains only `additionalRules` and no chart-generated path rules
1946 # (for example, a dedicated HTTP-to-HTTPS redirect route), set every entry below to an empty
1947 # list — e.g. `distributor: []`, `queryFrontend: []`, `ruler: []`, `compactor: []`.
1949 # -- Paths that are exposed by Loki Distributor.
1950 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.distributorFullname"}}`.
1951 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.writeFullname"}}`.
1952 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.fullname"}}`
1957 # -- Paths that are exposed by Loki Query Frontend.
1958 # If deployment mode is Distributed, the requests are forwarded to the service.
1959 # If deployment mode is SimpleScalable, the requests are forwarded to read k8s service.
1960 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service`
1963 # this path covers labels and labelValues endpoints
1967 - /loki/api/v1/query
1968 - /loki/api/v1/query_range
1970 # this path covers labels and labelValues endpoints
1971 - /loki/api/v1/label
1972 - /loki/api/v1/labels
1973 - /loki/api/v1/series
1974 - /loki/api/v1/index/stats
1975 - /loki/api/v1/index/volume
1976 - /loki/api/v1/index/volume_range
1977 - /loki/api/v1/format_query
1978 - /loki/api/v1/detected_field
1979 - /loki/api/v1/detected_fields
1980 - /loki/api/v1/detected_labels
1981 - /loki/api/v1/patterns
1982 # this path covers UI API
1984 # -- Paths that are exposed by Loki Ruler.
1985 # If deployment mode is Distributed, the requests are forwarded to the service.
1986 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1987 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service.
1990 - /api/prom/api/v1/rules
1991 - /api/prom/api/v1/alerts
1992 - /loki/api/v1/rules
1993 - /prometheus/api/v1/rules
1994 - /prometheus/api/v1/alerts
1995 # -- Paths that are exposed by Loki Compactor.
1996 # If deployment mode is Distributed, the requests are forwarded to the service.
1997 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service.
1998 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service.
2000 - /loki/api/v1/delete
2001# -- BETA: Configure Gateway API ListenerSet resources for the chart here.
2002# ListenerSet allows attaching additional listeners to an existing Gateway.
2003# More listener sets can be added by adding a dictionary key like the 'main' entry.
2004# The key "main" produces a ListenerSet named after the loki fullname; any other key appends the key as a suffix.
2005# Attach a route to it with a parentRef of `kind: ListenerSet` in `route.*.parentRefs` or `gateway.route.*.parentRefs`.
2006# The parent Gateway must allow ListenerSets via `spec.allowedListeners`.
2007# Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
2008# [[ref]](https://gateway-api.sigs.k8s.io/reference/api-spec/main/spec/#listenerset)
2011 # -- Enables or disables the listener set
2013 # -- Set the ListenerSet apiVersion, e.g. gateway.networking.k8s.io/v1
2014 apiVersion: gateway.networking.k8s.io/v1
2015 # @schema additionalProperties:{"type":"string"}
2016 # -- Annotations for the ListenerSet
2018 # @schema additionalProperties:{"type":"string"}
2019 # -- Labels for the ListenerSet
2021 # -- Reference to the parent Gateway this ListenerSet attaches to
2024 # namespace: default
2025 # group: gateway.networking.k8s.io
2028 # -- List of listeners to attach to the parent Gateway (templating is supported)
2033 # hostname: loki.example.com
2041######################################################################################################################
2045######################################################################################################################
2047# -- Options that may be necessary when performing a migration from another helm chart
2049 # -- When migrating from a distributed chart like loki-distributed or enterprise-logs
2051 # -- Set to true if migrating from a distributed helm chart
2053 # -- If migrating from a distributed service, provide the distributed deployment's
2054 # memberlist service DNS so the new deployment can join its ring.
2055 memberlistService: ""
2056######################################################################################################################
2058# Single Binary Deployment
2060# For small Loki installations up to a few 10's of GB per day, or for testing and development.
2062######################################################################################################################
2064# -- Pod Disruption Budget for single binary deployment. Deprecated in favor of `singleBinary.podDisruptionBudget`
2067# Configuration for the single binary node(s)
2069 # -- Enable the single binary component. Requires `loki.deploymentMode` to be set to `SingleBinary`.
2071 # -- Kind of read deployment. StatefulSet and Deployment are supported.
2073 # @schema type:[integer, null]
2074 # -- Number of replicas for the single binary. Set to null to omit spec.replicas from the workload,
2075 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2077 # -- EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed.
2078 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2079 statefulSetRecreateJob:
2081 # @schema skipProperties:true;additionalProperties:true
2082 # -- UpdateStrategy or Strategy for single binary.
2086 # -- Whether to enable the rules sidecar
2089 # -- Enable autoscaling
2091 # -- Minimum autoscaling replicas for the single binary
2093 # -- Maximum autoscaling replicas for the single binary
2095 # @schema type:[integer, null]
2096 # -- Target CPU utilisation percentage for the single binary
2097 targetCPUUtilizationPercentage: 60
2098 # @schema type:[integer, null]
2099 # -- Target memory utilisation percentage for the single binary
2100 targetMemoryUtilizationPercentage: null
2101 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2106 # name: loki_lines_total
2108 # type: AverageValue
2110 # @schema skipProperties:true;additionalProperties:true
2111 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
2113 # -- Enable autoscaling behaviours
2115 # -- define scale down policies, must conform to HPAScalingRules
2117 # -- define scale up policies, must conform to HPAScalingRules
2120 # -- Enable KEDA autoscaling for the single binary. Mutually exclusive with autoscaling.enabled
2122 # @schema type:[integer, null]
2123 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2124 pollingInterval: null
2125 # -- Minimum replicas for KEDA autoscaling
2127 # -- Maximum replicas for KEDA autoscaling
2129 # @schema type:[integer, null]
2130 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2131 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2132 cooldownPeriod: null
2133 # @schema additionalProperties:true
2134 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2135 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2137 # @schema skipProperties:true;additionalProperties:true
2138 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2139 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2141 # -- KEDA triggers for the single binary.
2142 # Ref: https://keda.sh/docs/latest/scalers/
2145 # @schema type:[string, null]
2146 # -- The Docker registry for the single binary image. Overrides `loki.image.registry`
2148 # @schema type:[string, null]
2149 # -- Docker image repository for the single binary image. Overrides `loki.image.repository`
2151 # @schema type:[string, null]
2152 # -- Docker image tag for the single binary image. Overrides `loki.image.tag`
2154 # @schema type:[string, null]
2155 # -- The name of the PriorityClass for single binary pods
2156 priorityClassName: null
2157 # @schema additionalProperties:{"type":"string"}
2158 # -- Annotations for single binary StatefulSet
2160 # @schema additionalProperties:{"type":"string"}
2161 # -- Additional labels for single binary StatefulSet
2163 # @schema additionalProperties:{"type":"string"}
2164 # -- Annotations for single binary pods
2166 # @schema additionalProperties:{"type":"string"}
2167 # -- Additional labels for each `single binary` pod
2169 # @schema additionalProperties:{"type":"string"}
2170 # -- Additional selector labels for each `single binary` pod
2172 podDisruptionBudget:
2173 # -- Enable Pod Disruption Budget
2175 # @schema additionalProperties:{"type":"string"}
2176 # -- Annotations for Pod Disruption Budget
2178 # @schema additionalProperties:{"type":"string"}
2179 # -- Labels for Pod Disruption Budget
2181 # @schema type:[string, integer, null]
2182 # -- Pod Disruption Budget minAvailable
2184 # @schema type:[string, integer, null]
2185 # -- Pod Disruption Budget maxUnavailable
2186 maxUnavailable: null
2187 # @schema type:[string, null]
2188 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
2189 unhealthyPodEvictionPolicy: null
2191 # @schema additionalProperties:{"type":"string"}
2192 # -- Annotations for single binary Service
2194 # @schema additionalProperties:{"type":"string"}
2195 # -- Additional labels for single binary Service
2197 # -- Service Type for single binary Service
2199 # -- trafficDistribution single binary Service
2200 trafficDistribution: ""
2201 # -- Session affinity for single binary Service
2203 # @schema additionalProperties:true
2204 # -- Session affinity config for single binary Service
2205 sessionAffinityConfig: {}
2206 # -- ipFamilyPolicy for single binary Service
2207 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2209 # -- ipFamilies for single binary Service
2210 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2212 # -- Adds the appProtocol field to the single binary service. This allows single binary to work with istio protocol selection.
2214 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2217 # @schema additionalProperties:{"type":"string"}
2218 # -- Additional annotations for headless single binary Service
2220 # @schema additionalProperties:{"type":"string"}
2221 # -- Additional labels for single binary Service
2223 # -- Comma-separated list of Loki modules to load for the single binary
2225 # -- Labels for single binary service
2227 # -- Environment variables to add to the single binary pods
2229 # -- Environment variables from secrets or configmaps to add to the single binary pods
2231 # @schema type:[string, array, null]
2232 # -- Extra containers to add to the single binary loki pod
2234 # @schema type:[string, array, null]
2235 # -- Init containers to add to the single binary pods
2237 # -- Volume mounts to add to the single binary pods
2238 extraVolumeMounts: []
2239 # -- Volumes to add to the single binary pods
2241 # @schema additionalProperties:true
2242 # -- Resource requests and limits for the single binary
2244 # -- Container resize policy for the single binary
2247 # - resourceName: cpu
2248 # restartPolicy: NotRequired
2249 # - resourceName: memory
2250 # restartPolicy: RestartContainer
2252 # -- Grace period to allow the single binary to shutdown before it is killed
2253 terminationGracePeriodSeconds: 30
2254 # @schema type:[boolean, null]
2255 # -- Use the host's user namespace in the single binary pods
2257 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2258 # -- Affinity for single binary pods.
2259 # @default -- Hard node anti-affinity
2260 # The value will be passed through tpl.
2263 requiredDuringSchedulingIgnoredDuringExecution:
2266 app.kubernetes.io/component: single-binary
2267 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2268 app.kubernetes.io/instance: '{{ .Release.Name }}'
2269 topologyKey: kubernetes.io/hostname
2270 # @schema item:object
2271 # -- Topology Spread Constraints for single binary pods
2272 # The value will be passed through tpl.
2273 topologySpreadConstraints: []
2274 # @schema additionalProperties:true
2276 # @schema additionalProperties:true
2277 # -- Node selector for single binary pods
2279 # -- Tolerations for single binary pods
2281 # -- The default is to deploy all pods in parallel.
2282 podManagementPolicy: "Parallel"
2284 # -- What to do with the volume when the StatefulSet is scaled down.
2286 # -- What to do with the volumes when the StatefulSet is deleted.
2288 # -- Enable StatefulSetAutoDeletePVC feature
2289 enableStatefulSetAutoDeletePVC: false
2290 # -- Enable persistent disk
2292 # -- Set access modes on the PersistentVolumeClaim
2295 # -- Size of persistent disk
2297 # @schema type:[string, null]
2298 # -- Storage class to be used.
2299 # If defined, storageClassName: <storageClass>.
2300 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2301 # If empty or set to null, no storageClassName spec is
2302 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2304 # @schema type:[object, null]
2305 # -- Selector for persistent disk
2307 # @schema additionalProperties:{"type":"string"}
2308 # -- Annotations for volume claim
2310 # @schema additionalProperties:{"type":"string"}
2311 # -- Labels for volume claim
2313 # @schema skipProperties:true;additionalProperties:true
2314 # -- Parameters used for the `storage` volume when persistence.enabled is false.
2315 # Allows replacing the default emptyDir volume with a custom volume definition.
2316 # For example, to use an existing PVC:
2317 # dataVolumeParameters:
2318 # persistentVolumeClaim:
2319 # claimName: my-existing-pvc
2320 dataVolumeParameters: {}
2321######################################################################################################################
2323# Simple Scalable Deployment (SSD) Mode
2325# For small to medium size Loki deployments up to around 1 TB/day, this is the default mode for this helm chart
2327######################################################################################################################
2329# Configuration for the write pod(s)
2331 # -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2333 # -- Kind of write workload. StatefulSet and Deployment are supported.
2335 # -- Override for the write fullname. By default, this is generated using the fullname template with "-backend"
2336 fullnameOverride: '{{ include "loki.name" . }}-write'
2337 # -- EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed.
2338 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2339 statefulSetRecreateJob:
2341 # @schema type:[integer, null]
2342 # -- Number of replicas for the write. Set to null to omit spec.replicas from the workload,
2343 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2345 # @schema skipProperties:true;additionalProperties:true
2346 # -- UpdateStrategy or Strategy for the write.
2351 # -- Enable autoscaling for the write.
2353 # -- Minimum autoscaling replicas for the write.
2355 # -- Maximum autoscaling replicas for the write.
2357 # @schema type:[integer, null]
2358 # -- Target CPU utilisation percentage for the write.
2359 targetCPUUtilizationPercentage: 60
2360 # @schema type:[integer, null]
2361 # -- Target memory utilization percentage for the write.
2362 targetMemoryUtilizationPercentage: null
2363 # @schema skipProperties:true;additionalProperties:true
2364 # -- Behavior policies while scaling.
2366 # -- see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details
2377 stabilizationWindowSeconds: 3600
2379 # -- Enable KEDA autoscaling for the write. Mutually exclusive with autoscaling.enabled
2381 # @schema type:[integer, null]
2382 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2383 pollingInterval: null
2384 # -- Minimum replicas for KEDA autoscaling
2386 # -- Maximum replicas for KEDA autoscaling
2388 # @schema type:[integer, null]
2389 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2390 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2391 cooldownPeriod: null
2392 # @schema additionalProperties:true
2393 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2394 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2396 # @schema skipProperties:true;additionalProperties:true
2397 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2398 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2400 # -- KEDA triggers for the write.
2401 # Ref: https://keda.sh/docs/latest/scalers/
2404 # @schema type:[string, null]
2405 # -- The Docker registry for the write image. Overrides `loki.image.registry`
2407 # @schema type:[string, null]
2408 # -- Docker image repository for the write image. Overrides `loki.image.repository`
2410 # @schema type:[string, null]
2411 # -- Docker image tag for the write image. Overrides `loki.image.tag`
2413 # @schema type:[string, null]
2414 # -- The name of the PriorityClass for write pods
2415 priorityClassName: null
2416 # @schema additionalProperties:{"type":"string"}
2417 # -- Annotations for write StatefulSet
2419 # @schema additionalProperties:{"type":"string"}
2420 # -- Additional labels for write StatefulSet
2422 # @schema additionalProperties:{"type":"string"}
2423 # -- Annotations for write pods
2425 # @schema additionalProperties:{"type":"string"}
2426 # -- Additional labels for each `write` pod
2428 # @schema additionalProperties:{"type":"string"}
2429 # -- Additional selector labels for each `write` pod
2432 # @schema additionalProperties:{"type":"string"}
2433 # -- Annotations for write Service
2435 # @schema additionalProperties:{"type":"string"}
2436 # -- Additional labels for write Service
2438 # -- Service Type for write Service
2440 # -- trafficDistribution for write Service
2441 trafficDistribution: ""
2442 # -- Session affinity for write Service
2444 # @schema additionalProperties:true
2445 # -- Session affinity config for write Service
2446 sessionAffinityConfig: {}
2447 # -- ipFamilyPolicy for write Service
2448 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2450 # -- ipFamilies for write Service
2451 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2453 # -- Adds the appProtocol field to the write service. This allows write to work with istio protocol selection.
2455 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2458 # @schema additionalProperties:{"type":"string"}
2459 # -- Additional annotations for headless SimpleScalable write Service
2461 # @schema additionalProperties:{"type":"string"}
2462 # -- Additional labels for headless SimpleScalable write Service
2464 # -- Additional CLI args for the write
2466 # -- Environment variables to add to the write pods
2468 # -- Environment variables from secrets or configmaps to add to the write pods
2470 # -- Lifecycle for the write container
2472 # @schema type:[string, array, null]
2473 # -- Init containers to add to the write pods
2475 # @schema type:[string, array, null]
2476 # -- Containers to add to the write pods
2478 # -- Volume mounts to add to the write pods
2479 extraVolumeMounts: []
2480 # -- Volumes to add to the write pods
2482 # -- volumeClaimTemplates to add to StatefulSet
2483 extraVolumeClaimTemplates: []
2484 # @schema additionalProperties:true
2485 # -- Resource requests and limits for the write
2487 # -- Container resize policy for the write
2490 # - resourceName: cpu
2491 # restartPolicy: NotRequired
2492 # - resourceName: memory
2493 # restartPolicy: RestartContainer
2495 # -- Grace period to allow the write to shutdown before it is killed. Especially for the ingester,
2496 # this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring
2497 # all data and to successfully leave the member ring on shutdown.
2498 terminationGracePeriodSeconds: 300
2499 # @schema type:[boolean, null]
2500 # -- Use the host's user namespace in the write pods.
2502 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2503 # -- Affinity for write pods.
2504 # @default -- Hard node anti-affinity
2505 # The value will be passed through tpl.
2508 requiredDuringSchedulingIgnoredDuringExecution:
2511 app.kubernetes.io/component: write
2512 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2513 app.kubernetes.io/instance: '{{ .Release.Name }}'
2514 topologyKey: kubernetes.io/hostname
2515 # @schema additionalProperties:true
2516 # -- DNS config for write pods
2518 # @schema type:[string, integer, null];deprecated:true
2519 # -- Pod Disruption Budget maxUnavailable
2520 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2522 podDisruptionBudget:
2523 # -- Enable Pod Disruption Budget
2525 # @schema additionalProperties:{"type":"string"}
2526 # -- Annotations for Pod Disruption Budget
2528 # @schema additionalProperties:{"type":"string"}
2529 # -- Labels for Pod Disruption Budget
2531 # @schema type:[string, integer, null]
2532 # -- Pod Disruption Budget minAvailable
2534 # @schema type:[string, integer, null]
2535 # -- Pod Disruption Budget maxUnavailable
2536 maxUnavailable: null
2537 # @schema type:[string, null]
2538 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
2539 unhealthyPodEvictionPolicy: null
2540 # @schema additionalProperties:true
2541 # -- Node selector for write pods
2543 # @schema item:object
2544 # -- Topology Spread Constraints for write pods
2545 # The value will be passed through tpl.
2546 topologySpreadConstraints: []
2548 # -- The default is to deploy all pods in parallel.
2549 podManagementPolicy: "Parallel"
2551 # -- Enable volume claims in pod spec
2552 volumeClaimsEnabled: true
2553 # -- Set access modes on the PersistentVolumeClaim
2556 # @schema skipProperties:true;additionalProperties:true
2557 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
2558 dataVolumeParameters:
2560 # -- What to do with the volume when the StatefulSet is scaled down.
2562 # -- What to do with the volumes when the StatefulSet is deleted.
2564 # -- Enable StatefulSetAutoDeletePVC feature
2565 enableStatefulSetAutoDeletePVC: false
2566 # -- Size of persistent disk
2568 # @schema type:[string, null]
2569 # -- Storage class to be used.
2570 # If defined, storageClassName: <storageClass>.
2571 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2572 # If empty or set to null, no storageClassName spec is
2573 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2575 # @schema type:[string, null]
2576 # -- Volume attributes class name to be used.
2577 # If empty or set to null, no volumeAttributesClassName spec is set.
2578 # Requires Kubernetes 1.31
2579 volumeAttributesClassName: null
2580 # @schema type:[object, null]
2581 # -- Selector for persistent disk
2583 # @schema additionalProperties:{"type":"string"}
2584 # -- Annotations for volume claim
2586 # @schema additionalProperties:{"type":"string"}
2587 # -- Labels for volume claim
2590 # -- Specifies whether a ServiceAccount should be created
2592 # @schema type:[string, null]
2593 # -- The name of the ServiceAccount to use.
2594 # If not set and create is true, a name is generated using the fullname template
2596 # @schema item:object;itemProperties:{"name": {"type": "string"}}
2597 # -- Image pull secrets for the service account
2598 imagePullSecrets: []
2599 # @schema additionalProperties:{"type":"string"}
2600 # -- Annotations for the service account
2602 # @schema additionalProperties:{"type":"string"}
2603 # -- Labels for the service account
2605 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2606 automountServiceAccountToken: true
2607# -- Configuration for the read pod(s)
2609 # -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2611 # -- Kind of read deployment. StatefulSet and Deployment are supported.
2613 # -- Override for the read fullname. By default, this is generated using the fullname template with "-backend"
2614 fullnameOverride: '{{ include "loki.name" . }}-read'
2615 # @schema type:[integer, null]
2616 # -- Number of replicas for the read. Set to null to omit spec.replicas from the workload,
2617 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2619 # @schema skipProperties:true;additionalProperties:true
2620 # -- UpdateStrategy or Strategy for the read.
2624 # @schema type:[string, integer, null]
2625 # -- Pod Disruption Budget maxUnavailable
2628 # -- Enable autoscaling for the read, this is only used if `queryIndex.enabled: true`
2630 # -- Minimum autoscaling replicas for the read
2632 # -- Maximum autoscaling replicas for the read
2634 # @schema type:[integer, null]
2635 # -- Target CPU utilisation percentage for the read
2636 targetCPUUtilizationPercentage: 60
2637 # @schema type:[integer, null]
2638 # -- Target memory utilisation percentage for the read
2639 targetMemoryUtilizationPercentage: null
2640 # @schema skipProperties:true;additionalProperties:true
2641 # -- Behavior policies while scaling.
2644 # stabilizationWindowSeconds: 300
2650 # stabilizationWindowSeconds: 300
2654 # periodSeconds: 180
2656 # -- Enable KEDA autoscaling for the read. Mutually exclusive with autoscaling.enabled
2658 # @schema type:[integer, null]
2659 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2660 pollingInterval: null
2661 # -- Minimum replicas for KEDA autoscaling
2663 # -- Maximum replicas for KEDA autoscaling
2665 # @schema type:[integer, null]
2666 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2667 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2668 cooldownPeriod: null
2669 # @schema additionalProperties:true
2670 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2671 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2673 # @schema skipProperties:true;additionalProperties:true
2674 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2675 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2677 # -- KEDA triggers for the read.
2678 # Ref: https://keda.sh/docs/latest/scalers/
2681 # @schema type:[string, null]
2682 # -- The Docker registry for the read image. Overrides `loki.image.registry`
2684 # @schema type:[string, null]
2685 # -- Docker image repository for the read image. Overrides `loki.image.repository`
2687 # @schema type:[string, null]
2688 # -- Docker image tag for the read image. Overrides `loki.image.tag`
2690 # @schema type:[string, null]
2691 # -- The name of the PriorityClass for read pods
2692 priorityClassName: null
2693 # @schema additionalProperties:{"type":"string"}
2694 # -- Annotations for read deployment
2696 # @schema additionalProperties:{"type":"string"}
2697 # -- Additional labels for read deployment
2699 # @schema additionalProperties:{"type":"string"}
2700 # -- Annotations for read pods
2702 # @schema additionalProperties:{"type":"string"}
2703 # -- Additional labels for each `read` pod
2705 # @schema additionalProperties:{"type":"string"}
2706 # -- Additional selector labels for each `read` pod
2709 # @schema additionalProperties:{"type":"string"}
2710 # -- Annotations for read Service
2712 # @schema additionalProperties:{"type":"string"}
2713 # -- Additional labels for read Service
2715 # -- Service Type for read Service
2717 # -- trafficDistribution for read Service
2718 trafficDistribution: ""
2719 # -- Session affinity for read Service
2721 # @schema additionalProperties:true
2722 # -- Session affinity config for read Service
2723 sessionAffinityConfig: {}
2724 # -- ipFamilyPolicy for read Service
2725 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2727 # -- ipFamilies for read Service
2728 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2730 # -- Adds the appProtocol field to the read service. This allows read to work with istio protocol selection.
2732 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2735 # @schema additionalProperties:{"type":"string"}
2736 # -- Additional annotations for headless SimpleScalable read Service
2738 # @schema additionalProperties:{"type":"string"}
2739 # -- Additional labels for headless SimpleScalable read Service
2741 # -- Additional CLI args for the read
2743 # @schema type:[string, array, null]
2744 # -- init containers to add to the read pods
2746 # @schema type:[string, array, null]
2747 # -- Containers to add to the read pods
2749 # -- Environment variables to add to the read pods
2751 # -- Environment variables from secrets or configmaps to add to the read pods
2753 # -- Lifecycle for the read container
2755 # -- Volume mounts to add to the read pods
2756 extraVolumeMounts: []
2757 # -- Volumes to add to the read pods
2759 # @schema additionalProperties:true
2760 # -- Resource requests and limits for the read
2762 # -- Container resize policy for the read
2765 # - resourceName: cpu
2766 # restartPolicy: NotRequired
2767 # - resourceName: memory
2768 # restartPolicy: RestartContainer
2770 # @schema skipProperties:true;additionalProperties:true
2771 # -- liveness probe settings for read pods. If empty, applies no livenessProbe
2773 # @schema skipProperties:true;additionalProperties:true
2774 # -- startup probe for the read pods. If empty, applies no startupProbe
2776 # -- Grace period to allow the read to shutdown before it is killed
2777 terminationGracePeriodSeconds: 30
2778 # @schema type:[boolean, null]
2779 # -- Use the host's user namespace in the read pods.
2781 # @schema type:[object, null];skipProperties:true;additionalProperties:true
2782 # -- Affinity for read pods.
2783 # @default -- Hard node anti-affinity
2784 # The value will be passed through tpl.
2787 requiredDuringSchedulingIgnoredDuringExecution:
2790 app.kubernetes.io/component: read
2791 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2792 app.kubernetes.io/instance: '{{ .Release.Name }}'
2793 topologyKey: kubernetes.io/hostname
2794 # @schema additionalProperties:true
2795 # -- DNS config for read pods
2797 # @schema type:[string, integer, null];deprecated:true
2798 # -- Pod Disruption Budget maxUnavailable
2799 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
2801 podDisruptionBudget:
2802 # -- Enable Pod Disruption Budget for read pods
2804 # @schema additionalProperties:{"type":"string"}
2805 # -- Annotations for read Pod Disruption Budget
2807 # @schema additionalProperties:{"type":"string"}
2808 # -- Labels for read Pod Disruption Budget
2810 # @schema type:[string, integer, null]
2811 # -- Pod Disruption Budget minAvailable
2813 # @schema type:[string, integer, null]
2814 # -- Pod Disruption Budget maxUnavailable
2815 maxUnavailable: null
2816 # @schema type:[string, null]
2817 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
2818 unhealthyPodEvictionPolicy: null
2819 # @schema additionalProperties:true
2820 # -- Node selector for read pods
2822 # @schema item:object
2823 # -- Topology Spread Constraints for read pods
2824 # The value will be passed through tpl.
2825 topologySpreadConstraints: []
2827 # -- The default is to deploy all pods in parallel.
2829 # -- Specifies whether a ServiceAccount should be created
2831 # @schema type:[string, null]
2832 # -- The name of the ServiceAccount to use.
2833 # If not set and create is true, a name is generated using the fullname template
2835 # @schema item:object;itemProperties:{"name": {"type": "string"}}
2836 # -- Image pull secrets for the service account
2837 imagePullSecrets: []
2838 # @schema additionalProperties:{"type":"string"}
2839 # -- Annotations for the service account
2841 # @schema additionalProperties:{"type":"string"}
2842 # -- Labels for the service account
2844 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2845 automountServiceAccountToken: true
2846# -- Configuration for the backend pod(s)
2848 # -- Enable the component. Requires `loki.deploymentMode` to be set to `SimpleScalable`.
2850 # -- Kind of backend workload. StatefulSet and Deployment are supported.
2852 # -- Override for the backend fullname. By default, this is generated using the fullname template with "-backend"
2853 fullnameOverride: '{{ include "loki.name" . }}-backend'
2854 # -- EXPERIMENTAL: Enable creating a Job to recreate the backend StatefulSet when the compactor configuration is changed.
2855 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
2856 statefulSetRecreateJob:
2858 # @schema type:[integer, null]
2859 # -- Number of replicas for the backend. Set to null to omit spec.replicas from the workload,
2860 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
2862 # @schema skipProperties:true;additionalProperties:true
2863 # -- UpdateStrategy or Strategy for the backend.
2867 # -- Whether to enable the rules sidecar
2869 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2870 automountServiceAccountToken: true
2872 # -- Enable autoscaling for the backend.
2874 # -- Minimum autoscaling replicas for the backend.
2876 # -- Maximum autoscaling replicas for the backend.
2878 # @schema type:[integer, null]
2879 # -- Target CPU utilization percentage for the backend.
2880 targetCPUUtilizationPercentage: 60
2881 # @schema type:[integer, null]
2882 # -- Target memory utilization percentage for the backend.
2883 targetMemoryUtilizationPercentage: null
2884 # @schema skipProperties:true;additionalProperties:true
2885 # -- Behavior policies while scaling.
2888 # stabilizationWindowSeconds: 300
2894 # stabilizationWindowSeconds: 300
2898 # periodSeconds: 180
2900 # -- Enable KEDA autoscaling for the backend. Mutually exclusive with autoscaling.enabled
2902 # @schema type:[integer, null]
2903 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
2904 pollingInterval: null
2905 # -- Minimum replicas for KEDA autoscaling
2907 # -- Maximum replicas for KEDA autoscaling
2909 # @schema type:[integer, null]
2910 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
2911 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
2912 cooldownPeriod: null
2913 # @schema additionalProperties:true
2914 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
2915 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
2917 # @schema skipProperties:true;additionalProperties:true
2918 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
2919 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
2921 # -- KEDA triggers for the backend.
2922 # Ref: https://keda.sh/docs/latest/scalers/
2925 # @schema type:[string, null]
2926 # -- The Docker registry for the backend image. Overrides `loki.image.registry`
2928 # @schema type:[string, null]
2929 # -- Docker image repository for the backend image. Overrides `loki.image.repository`
2931 # @schema type:[string, null]
2932 # -- Docker image tag for the backend image. Overrides `loki.image.tag`
2934 # @schema type:[string, null]
2935 # -- The name of the PriorityClass for backend pods
2936 priorityClassName: null
2937 # @schema additionalProperties:{"type":"string"}
2938 # -- Annotations for backend StatefulSet
2940 # @schema additionalProperties:{"type":"string"}
2941 # -- Additional labels for backend StatefulSet
2943 # @schema additionalProperties:{"type":"string"}
2944 # -- Annotations for backend pods
2946 # @schema additionalProperties:{"type":"string"}
2947 # -- Additional labels for each `backend` pod
2949 # @schema additionalProperties:{"type":"string"}
2950 # -- Additional selector labels for each `backend` pod
2953 # @schema additionalProperties:{"type":"string"}
2954 # -- Annotations for backend Service
2956 # @schema additionalProperties:{"type":"string"}
2957 # -- Additional labels for backend Service
2959 # -- Service type for backend Service
2961 # -- trafficDistribution for backend Service
2962 trafficDistribution: ""
2963 # -- Session affinity for backend Service
2965 # @schema additionalProperties:true
2966 # -- Session affinity config for backend Service
2967 sessionAffinityConfig: {}
2968 # -- ipFamilyPolicy for backend Service
2969 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2971 # -- ipFamilies for backend Service
2972 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
2974 # -- Adds the appProtocol field to the backend service. This allows backend to work with istio protocol selection.
2976 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2979 # @schema additionalProperties:{"type":"string"}
2980 # -- Additional annotations for headless Distributed compactor Service
2982 # @schema additionalProperties:{"type":"string"}
2983 # -- Additional labels for headless Distributed compactor Service
2985 # -- Additional CLI args for the backend
2987 # -- Environment variables to add to the backend pods
2989 # -- Environment variables from secrets or configmaps to add to the backend pods
2991 # @schema type:[string, array, null]
2992 # -- Init containers to add to the backend pods
2994 # @schema type:[string, array, null]
2995 # -- Containers to add to the backend pods
2997 # -- Volume mounts to add to the backend pods
2998 extraVolumeMounts: []
2999 # -- Volumes to add to the backend pods
3001 # @schema additionalProperties:true
3002 # -- Resource requests and limits for the backend
3004 # -- Container resize policy for the backend
3007 # - resourceName: cpu
3008 # restartPolicy: NotRequired
3009 # - resourceName: memory
3010 # restartPolicy: RestartContainer
3012 # -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingester,
3013 # this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring
3014 # all data and to successfully leave the member ring on shutdown.
3015 terminationGracePeriodSeconds: 300
3016 # @schema type:[boolean, null]
3017 # -- Use the host's user namespace in the backend pods.
3019 # @schema type:[object, null];skipProperties:true;additionalProperties:true
3020 # -- Affinity for backend pods.
3021 # @default -- Hard node anti-affinity
3022 # The value will be passed through tpl.
3025 requiredDuringSchedulingIgnoredDuringExecution:
3028 app.kubernetes.io/component: backend
3029 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3030 app.kubernetes.io/instance: '{{ .Release.Name }}'
3031 topologyKey: kubernetes.io/hostname
3032 # @schema additionalProperties:true
3033 # -- DNS config for backend pods
3035 # @schema type:[string, integer, null];deprecated:true
3036 # -- Pod Disruption Budget maxUnavailable
3037 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3039 podDisruptionBudget:
3040 # -- Enable Pod Disruption Budget
3042 # @schema additionalProperties:{"type":"string"}
3043 # -- Annotations for Pod Disruption Budget
3045 # @schema additionalProperties:{"type":"string"}
3046 # -- Labels for Pod Disruption Budget
3048 # @schema type:[string, integer, null]
3049 # -- Pod Disruption Budget minAvailable
3051 # @schema type:[string, integer, null]
3052 # -- Pod Disruption Budget maxUnavailable
3053 maxUnavailable: null
3054 # @schema type:[string, null]
3055 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
3056 unhealthyPodEvictionPolicy: null
3057 # @schema additionalProperties:true
3058 # -- Node selector for backend pods
3060 # @schema item:object
3061 # -- Topology Spread Constraints for backend pods
3062 # The value will be passed through tpl.
3063 topologySpreadConstraints: []
3065 # -- The default is to deploy all pods in parallel.
3066 podManagementPolicy: "Parallel"
3068 # -- Enable volume claims in pod spec
3070 # -- Enable volume claims in pod spec. Deprecated in favor of `persistence.enabled`.
3071 volumeClaimsEnabled: true
3072 # -- Set access modes on the PersistentVolumeClaim
3075 # @schema skipProperties:true;additionalProperties:true
3076 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
3077 dataVolumeParameters:
3079 # -- What to do with the volume when the StatefulSet is scaled down.
3081 # -- What to do with the volumes when the StatefulSet is deleted.
3083 # -- Enable StatefulSetAutoDeletePVC feature
3084 enableStatefulSetAutoDeletePVC: true
3085 # -- Size of persistent disk
3087 # @schema type:[string, null]
3088 # -- Storage class to be used.
3089 # If defined, storageClassName: <storageClass>.
3090 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3091 # If empty or set to null, no storageClassName spec is
3092 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3094 # @schema type:[string, null]
3095 # -- Volume attributes class name to be used.
3096 # If empty or set to null, no volumeAttributesClassName spec is set.
3097 # Requires Kubernetes 1.31
3098 volumeAttributesClassName: null
3099 # @schema type:[object, null]
3100 # -- Selector for persistent disk
3102 # @schema additionalProperties:{"type":"string"}
3103 # -- Annotations for volume claim
3105 # @schema additionalProperties:{"type":"string"}
3106 # -- Labels for volume claim
3109 # -- Specifies whether a ServiceAccount should be created
3111 # @schema type:[string, null]
3112 # -- The name of the ServiceAccount to use.
3113 # If not set and create is true, a name is generated using the fullname template
3115 # @schema item:object;itemProperties:{"name": {"type": "string"}}
3116 # -- Image pull secrets for the service account
3117 imagePullSecrets: []
3118 # @schema additionalProperties:{"type":"string"}
3119 # -- Annotations for the service account
3121 # @schema additionalProperties:{"type":"string"}
3122 # -- Labels for the service account
3124 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3125 automountServiceAccountToken: true
3126######################################################################################################################
3130# For large Loki deployments ingesting more than 1 TB/day
3132######################################################################################################################
3134# -- Configuration for the ingester
3136 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3138 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3140 # -- EXPERIMENTAL: Enable creating a Job to recreate the ingester StatefulSet
3141 ## Only applicable if `ingester.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
3142 statefulSetRecreateJob:
3144 # @schema skipProperties:true;additionalProperties:true
3145 # -- UpdateStrategy or Strategy for the ingester.
3148 # -- PodManagementPolicy for the ingester StatefulSet. Only applicable if `compactor.kind` is StatefulSet.
3149 ## OrderedReady and Parallel are supported.
3150 podManagementPolicy: Parallel
3151 # @schema type:[integer, null]
3152 # -- Number of replicas for the ingester, when zoneAwareReplication.enabled is true, the total
3153 # number of replicas will match this value with each zone having 1/3rd of the total replicas.
3154 # Set to null to omit spec.replicas from the StatefulSet, allowing an external controller
3155 # (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3157 # @schema additionalProperties:true
3158 # -- DNSConfig for ingester pods
3160 # -- hostAliases to add
3162 # @schema type:[boolean, null]
3166 # -- Use the host's user namespace in the ingester
3169 # -- Enable autoscaling for the ingester
3171 # -- Minimum autoscaling replicas for the ingester
3173 # -- Maximum autoscaling replicas for the ingester
3175 # @schema type:[integer, null]
3176 # -- Target CPU utilisation percentage for the ingester
3177 targetCPUUtilizationPercentage: 60
3178 # @schema type:[integer, null]
3179 # -- Target memory utilisation percentage for the ingester
3180 targetMemoryUtilizationPercentage: null
3181 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3186 # name: loki_lines_total
3188 # type: AverageValue
3190 # @schema skipProperties:true;additionalProperties:true
3191 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3193 # -- Enable autoscaling behaviours
3195 # -- define scale down policies, must conform to HPAScalingRules
3197 # -- define scale up policies, must conform to HPAScalingRules
3200 # -- Enable KEDA autoscaling for the ingester. Mutually exclusive with autoscaling.enabled
3202 # @schema type:[integer, null]
3203 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3204 pollingInterval: null
3205 # -- Minimum replicas for KEDA autoscaling
3207 # -- Maximum replicas for KEDA autoscaling
3209 # @schema type:[integer, null]
3210 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3211 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3212 cooldownPeriod: null
3213 # @schema additionalProperties:true
3214 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3215 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3217 # @schema skipProperties:true;additionalProperties:true
3218 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3219 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3221 # -- KEDA triggers for the ingester.
3222 # Ref: https://keda.sh/docs/latest/scalers/
3225 # @schema type:[string, null]
3226 # -- The Docker registry for the ingester image. Overrides `loki.image.registry`
3228 # @schema type:[string, null]
3229 # -- Docker image repository for the ingester image. Overrides `loki.image.repository`
3231 # @schema type:[string, null]
3232 # -- Docker image tag for the ingester image. Overrides `loki.image.tag`
3234 # @schema type:[string, null]
3235 # -- Command to execute instead of defined in Docker image
3237 # @schema additionalProperties:{"type":"string"}
3238 # -- Labels for ingester
3240 # @schema additionalProperties:{"type":"string"}
3241 # -- Annotations for ingester
3243 # @schema additionalProperties:{"type":"string"}
3244 # -- Labels for ingester pods. Keys used by the workload selectors
3245 # (`app.kubernetes.io/name`, `app.kubernetes.io/instance`, `app.kubernetes.io/component`
3246 # and, with zoneAwareReplication, `name` and `rollout-group`) are reserved and
3247 # ignored here: the latter are also used by the per-zone headless Services and
3248 # grafana/rollout-operator.
3250 # @schema additionalProperties:{"type":"string"}
3251 # -- Annotations for ingester pods
3253 # @schema type:[string, null]
3254 # -- The name of the PriorityClass for ingester pods
3255 priorityClassName: null
3256 # @schema additionalProperties:{"type":"string"};deprecated:true
3257 # -- Labels for ingester service
3258 # @deprecated -- This option is deprecated in favor of `ingester.service.labels`
3260 # @schema additionalProperties:{"type":"string"};deprecated:true
3261 # -- Annotations for ingester service
3262 # @deprecated -- This option is deprecated in favor of `ingester.service.annotations`
3263 serviceAnnotations: {}
3264 # @schema type:string;deprecated:true
3265 # -- Service type for ingester service
3266 # @deprecated -- This option is deprecated in favor of `ingester.service.type`
3267 serviceType: "ClusterIP"
3269 # @schema additionalProperties:{"type":"string"}
3270 # -- Annotations for ingester Service
3272 # @schema additionalProperties:{"type":"string"}
3273 # -- Additional labels for ingester Service
3275 # -- Service Type for ingester Service
3277 # -- trafficDistribution for ingester Service
3278 trafficDistribution: ""
3279 # -- Session affinity for ingester Service
3281 # @schema additionalProperties:true
3282 # -- Session affinity config for ingester Service
3283 sessionAffinityConfig: {}
3284 # -- ipFamilyPolicy for ingester Service
3285 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3287 # -- ipFamilies for ingester Service
3288 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3290 # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
3292 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3295 # @schema additionalProperties:{"type":"string"}
3296 # -- Additional annotations for headless Distributed ingester Service
3298 # @schema additionalProperties:{"type":"string"}
3299 # -- Additional labels for headless Distributed ingester Service
3301 # -- Additional CLI args for the ingester
3303 # -- Environment variables to add to the ingester pods
3305 # -- Environment variables from secrets or configmaps to add to the ingester pods
3307 # -- Volume mounts to add to the ingester pods
3308 extraVolumeMounts: []
3309 # -- Volumes to add to the ingester pods
3311 # @schema additionalProperties:true
3312 # -- Resource requests and limits for the ingester
3314 # -- Container resize policy for the ingester
3317 # - resourceName: cpu
3318 # restartPolicy: NotRequired
3319 # - resourceName: memory
3320 # restartPolicy: RestartContainer
3322 # @schema type:[string, array, null]
3323 # -- Containers to add to the ingester pods
3325 # @schema type:[string, array, null]
3326 # -- Init containers to add to the ingester pods
3328 # -- Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor,
3329 # this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring
3330 # all data and to successfully leave the member ring on shutdown.
3331 terminationGracePeriodSeconds: 300
3332 # -- Lifecycle for the ingester container
3334 # @schema item:object
3335 # -- topologySpread for ingester pods.
3336 # @default -- Defaults to allow skew no more than 1 node
3337 # The value will be passed through tpl.
3338 topologySpreadConstraints:
3340 topologyKey: kubernetes.io/hostname
3341 whenUnsatisfiable: ScheduleAnyway
3344 app.kubernetes.io/component: ingester
3345 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3346 app.kubernetes.io/instance: '{{ .Release.Name }}'
3347 # @schema type:[object, null];skipProperties:true;additionalProperties:true
3348 # -- Affinity for ingester pods. Ignored if zoneAwareReplication is enabled.
3349 # @default -- Hard node anti-affinity
3350 # The value will be passed through tpl.
3353 requiredDuringSchedulingIgnoredDuringExecution:
3356 app.kubernetes.io/component: ingester
3357 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3358 app.kubernetes.io/instance: '{{ .Release.Name }}'
3359 topologyKey: kubernetes.io/hostname
3360 # @schema type:[string, integer, null];deprecated:true
3361 # -- Pod Disruption Budget maxUnavailable
3362 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3364 podDisruptionBudget:
3365 # -- Enable Pod Disruption Budget
3367 # @schema additionalProperties:{"type":"string"}
3368 # -- Annotations for Pod Disruption Budget
3370 # @schema additionalProperties:{"type":"string"}
3371 # -- Labels for Pod Disruption Budget
3373 # @schema type:[string, integer, null]
3374 # -- Pod Disruption Budget minAvailable
3376 # @schema type:[string, integer, null]
3377 # -- Pod Disruption Budget maxUnavailable
3378 maxUnavailable: null
3379 # @schema type:[string, null]
3380 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
3381 unhealthyPodEvictionPolicy: null
3382 # @schema additionalProperties:true
3383 # -- Node selector for ingester pods
3385 # -- Tolerations for ingester pods
3387 # @schema skipProperties:true;additionalProperties:true
3388 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
3390 # @schema skipProperties:true;additionalProperties:true
3391 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
3393 # @schema skipProperties:true;additionalProperties:true
3394 # -- startup probe settings for ingester pods. If empty use `loki.startupProbe`
3396 # @schema skipProperties:true;additionalProperties:true
3397 # -- UpdateStrategy for the ingester StatefulSets.
3399 # -- One of 'OnDelete' or 'RollingUpdate'
3401 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
3405 # -- Enable creating PVCs which is required when using boltdb-shipper
3407 # -- Use emptyDir with ramdisk for storage. **Please note that all data in ingester will be lost on pod restart**
3409 # -- List of the ingester PVCs
3410 # @notationType -- list
3413 # -- Set access modes on the PersistentVolumeClaim
3417 # @schema type:[string, null]
3418 # -- Storage class to be used.
3419 # If defined, storageClassName: <storageClass>.
3420 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3421 # If empty or set to null, no storageClassName spec is
3422 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3424 # @schema type:[string, null]
3425 # -- Volume attributes class name to be used.
3426 # If empty or set to null, no volumeAttributesClassName spec is set.
3427 # Requires Kubernetes 1.31
3428 volumeAttributesClassName: null
3431 # -- Enable StatefulSetAutoDeletePVC feature
3432 enableStatefulSetAutoDeletePVC: false
3436 # -- Specifies whether a ServiceAccount should be created
3438 # @schema type:[string, null]
3439 # -- The name of the ServiceAccount to use.
3440 # If not set and create is true, a name is generated using the fullname template
3442 # @schema item:object;itemProperties:{"name": {"type": "string"}}
3443 # -- Image pull secrets for the service account
3444 imagePullSecrets: []
3445 # @schema additionalProperties:{"type":"string"}
3446 # -- Annotations for the service account
3448 # @schema additionalProperties:{"type":"string"}
3449 # -- Labels for the service account
3451 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3452 automountServiceAccountToken: true
3453 # @schema additionalProperties:true;deprecated:true
3454 # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
3455 # @deprecated -- This option is deprecated in favor of `ingester.service.appProtocol`
3457 # @schema type:string;deprecated:true
3458 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3459 # @deprecated -- This option is deprecated in favor of `ingester.service.appProtocol.grpc`
3461 # -- trafficDistribution for ingester service
3462 trafficDistribution: ""
3463 # -- Enabling zone awareness on ingesters will create 3 statefulests where all writes will send a replica to each zone.
3464 # This is primarily intended to accelerate rollout operations by allowing for multiple ingesters within a single
3465 # zone to be shutdown and restart simultaneously (the remaining 2 zones will be guaranteed to have at least one copy
3467 # Note: This can be used to run Loki over multiple cloud provider availability zones however this is not currently
3468 # recommended as Loki is not optimized for this and cross zone network traffic costs can become extremely high
3469 # extremely quickly. Even with zone awareness enabled, it is recommended to run Loki in a single availability zone.
3470 zoneAwareReplication:
3471 # -- Enable zone awareness.
3473 # -- The percent of replicas in each zone that will be restarted at once. In a value of 0-100
3474 maxUnavailablePct: 33
3475 # -- Minimum time the rollout-operator waits between downscales of different ingester zones. Rendered as the
3476 # `grafana.com/min-time-between-zones-downscale` annotation on zones with `prepareDownscale` enabled.
3477 minTimeBetweenZonesDownscale: 30m
3478 # -- zoneA configuration
3480 # @schema type:[object, null]
3481 # @schema additionalProperties:true
3482 # -- optionally define a node selector for this zone
3484 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3485 # The value will be passed through tpl.
3487 # @schema additionalProperties:{"type":"string"}
3488 # -- Specific annotations to add to zone A statefulset
3490 # @schema additionalProperties:{"type":"string"}
3491 # -- Specific annotations to add to zone A pods
3493 # -- Adds the `grafana.com/no-downscale` label so that the rollout-operator rejects any downscale of zone A.
3494 # Takes precedence over `prepareDownscale`. See https://github.com/grafana/rollout-operator#webhooks
3496 # -- Adds the `grafana.com/prepare-downscale` label and annotations so that the rollout-operator calls
3497 # `/ingester/prepare_shutdown` on the zone A ingesters before they are scaled down, letting them flush and leave the ring.
3498 # The rollout-operator then also waits `minTimeBetweenZonesDownscale` between zone downscales, so a single
3499 # Helm upgrade that downscales several zones at once is rejected for the later zones.
3500 # See https://github.com/grafana/rollout-operator#how-scaling-up-and-down-works
3501 prepareDownscale: false
3502 # @schema type:[string, null]
3503 # -- StatefulSet name rendered as the `grafana.com/rollout-downscale-leader` annotation of zone A. The value will be passed through tpl.
3504 # If null, this zone never follows another zone.
3505 downscaleLeader: null
3506 # -- Persistence overrides applied only to the zone A StatefulSet.
3508 # @schema type:[string, null]
3509 # -- Storage class to use for every PVC in zone A. Overrides the `storageClass` of each entry in
3510 # `ingester.persistence.claims` for this zone only. Use this when you have one StorageClass per
3511 # availability zone (for example a topology-pinned EBS/PD StorageClass). If null, the
3512 # claim-level `storageClass` is used as before, preserving existing behavior.
3513 # If set to "-", `storageClassName: ""` is rendered, which disables dynamic provisioning.
3516 # @schema type:[object, null]
3517 # @schema additionalProperties:true
3518 # -- optionally define a node selector for this zone
3520 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3521 # The value will be passed through tpl.
3523 # @schema additionalProperties:{"type":"string"}
3524 # -- Specific annotations to add to zone B statefulset
3526 # @schema additionalProperties:{"type":"string"}
3527 # -- Specific annotations to add to zone B pods
3529 # -- Adds the `grafana.com/no-downscale` label so that the rollout-operator rejects any downscale of zone B.
3530 # Takes precedence over `prepareDownscale`. See https://github.com/grafana/rollout-operator#webhooks
3532 # -- Adds the `grafana.com/prepare-downscale` label and annotations so that the rollout-operator calls
3533 # `/ingester/prepare_shutdown` on the zone B ingesters before they are scaled down, letting them flush and leave the ring.
3534 # The rollout-operator then also waits `minTimeBetweenZonesDownscale` between zone downscales, so a single
3535 # Helm upgrade that downscales several zones at once is rejected for the later zones.
3536 # See https://github.com/grafana/rollout-operator#how-scaling-up-and-down-works
3537 prepareDownscale: false
3538 # @schema type:[string, null]
3539 # -- StatefulSet name rendered as the `grafana.com/rollout-downscale-leader` annotation of zone B. The value will be passed through tpl.
3540 # If null, the zone-a StatefulSet leads this zone when both zones set `prepareDownscale` and the rollout-operator webhooks are enabled.
3541 downscaleLeader: null
3542 # -- Persistence overrides applied only to the zone B StatefulSet.
3544 # @schema type:[string, null]
3545 # -- Storage class to use for every PVC in zone B. See
3546 # `ingester.zoneAwareReplication.zoneA.persistence.storageClass` for details. If null, the
3547 # claim-level `storageClass` is used as before.
3550 # @schema type:[object, null]
3551 # @schema additionalProperties:true
3552 # -- optionally define a node selector for this zone
3554 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
3555 # The value will be passed through tpl.
3557 # @schema additionalProperties:{"type":"string"}
3558 # -- Specific annotations to add to zone C statefulset
3560 # @schema additionalProperties:{"type":"string"}
3561 # -- Specific annotations to add to zone C pods
3563 # -- Adds the `grafana.com/no-downscale` label so that the rollout-operator rejects any downscale of zone C.
3564 # Takes precedence over `prepareDownscale`. See https://github.com/grafana/rollout-operator#webhooks
3566 # -- Adds the `grafana.com/prepare-downscale` label and annotations so that the rollout-operator calls
3567 # `/ingester/prepare_shutdown` on the zone C ingesters before they are scaled down, letting them flush and leave the ring.
3568 # The rollout-operator then also waits `minTimeBetweenZonesDownscale` between zone downscales, so a single
3569 # Helm upgrade that downscales several zones at once is rejected for the later zones.
3570 # See https://github.com/grafana/rollout-operator#how-scaling-up-and-down-works
3571 prepareDownscale: false
3572 # @schema type:[string, null]
3573 # -- StatefulSet name rendered as the `grafana.com/rollout-downscale-leader` annotation of zone C. The value will be passed through tpl.
3574 # If null, the zone-b StatefulSet leads this zone when both zones set `prepareDownscale` and the rollout-operator webhooks are enabled.
3575 downscaleLeader: null
3576 # -- Persistence overrides applied only to the zone C StatefulSet.
3578 # @schema type:[string, null]
3579 # -- Storage class to use for every PVC in zone C. See
3580 # `ingester.zoneAwareReplication.zoneA.persistence.storageClass` for details. If null, the
3581 # claim-level `storageClass` is used as before.
3583 # -- The migration block allows migrating non zone aware ingesters to zone aware ingesters.
3586 # -- Exclude the `zone-default` ingesters from the distributor and ruler ring
3587 # by adding `-distributor.excluded-zones=zone-default`. Enable it once the zone aware
3588 # ingesters receive all writes, before scaling down the default ingesters.
3589 excludeDefaultZone: false
3592 # @schema type:[string, null]
3593 # optionally allow adding arbitrary prefix to the ingester rollout-group label
3594 rolloutGroupPrefix: null
3595 # optionally allow adding 'loki-' prefix to ingester name label
3596 addIngesterNamePrefix: false
3597# -- Configuration for the distributor
3599 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3601 # @schema type:[integer, null]
3602 # -- Number of replicas for the distributor. Set to null to omit spec.replicas from the workload,
3603 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3605 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3607 # @schema skipProperties:true;additionalProperties:true
3608 # -- UpdateStrategy or Strategy for the distributor.
3612 # @schema type:[string, integer, null]
3613 # -- Pod Disruption Budget maxUnavailable
3615 # -- hostAliases to add
3617 # @schema type:[boolean, null]
3621 # -- Use the host's user namespace in the distributor
3623 # @schema additionalProperties:true
3624 # -- DNSConfig for distributor pods
3627 # -- Enable autoscaling for the distributor
3629 # -- Minimum autoscaling replicas for the distributor
3631 # -- Maximum autoscaling replicas for the distributor
3633 # @schema type:[integer, null]
3634 # -- Target CPU utilisation percentage for the distributor
3635 targetCPUUtilizationPercentage: 60
3636 # @schema type:[integer, null]
3637 # -- Target memory utilisation percentage for the distributor
3638 targetMemoryUtilizationPercentage: null
3639 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3644 # name: loki_lines_total
3646 # type: AverageValue
3648 # @schema skipProperties:true;additionalProperties:true
3649 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3651 # -- Enable autoscaling behaviours
3653 # -- define scale down policies, must conform to HPAScalingRules
3655 # -- define scale up policies, must conform to HPAScalingRules
3658 # -- Enable KEDA autoscaling for the distributor. Mutually exclusive with autoscaling.enabled
3660 # @schema type:[integer, null]
3661 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3662 pollingInterval: null
3663 # -- Minimum replicas for KEDA autoscaling
3665 # -- Maximum replicas for KEDA autoscaling
3667 # @schema type:[integer, null]
3668 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3669 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3670 cooldownPeriod: null
3671 # @schema additionalProperties:true
3672 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3673 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3675 # @schema skipProperties:true;additionalProperties:true
3676 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3677 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3679 # -- KEDA triggers for the distributor.
3680 # Ref: https://keda.sh/docs/latest/scalers/
3683 # @schema type:[string, null]
3684 # -- The Docker registry for the distributor image. Overrides `loki.image.registry`
3686 # @schema type:[string, null]
3687 # -- Docker image repository for the distributor image. Overrides `loki.image.repository`
3689 # @schema type:[string, null]
3690 # -- Docker image tag for the distributor image. Overrides `loki.image.tag`
3692 # @schema type:[string, null]
3693 # -- Command to execute instead of defined in Docker image
3695 # @schema type:[string, null]
3696 # -- The name of the PriorityClass for distributor pods
3697 priorityClassName: null
3698 # @schema additionalProperties:{"type":"string"}
3699 # -- Labels for distributor
3701 # @schema additionalProperties:{"type":"string"}
3702 # -- Annotations for distributor
3704 # @schema additionalProperties:{"type":"string"}
3705 # -- Labels for distributor pods
3707 # @schema additionalProperties:{"type":"string"}
3708 # -- Annotations for distributor pods
3710 # @schema additionalProperties:{"type":"string"};deprecated:true
3711 # -- Labels for distributor service
3712 # @deprecated -- This option is deprecated in favor of `ingester.service.labels`
3714 # @schema additionalProperties:{"type":"string"};deprecated:true
3715 # -- Annotations for distributor service
3716 # @deprecated -- This option is deprecated in favor of `ingester.service.annotations`
3717 serviceAnnotations: {}
3718 # @schema type:string;deprecated:true
3719 # -- Service type for distributor service
3720 # @deprecated -- This option is deprecated in favor of `ingester.service.type`
3721 serviceType: "ClusterIP"
3723 # @schema additionalProperties:{"type":"string"}
3724 # -- Annotations for distributor Service
3726 # @schema additionalProperties:{"type":"string"}
3727 # -- Additional labels for distributor Service
3729 # -- Service Type for distributor Service
3731 # -- trafficDistribution for distributor Service
3732 trafficDistribution: ""
3733 # -- Session affinity for distributor Service
3735 # @schema additionalProperties:true
3736 # -- Session affinity config for distributor Service
3737 sessionAffinityConfig: {}
3738 # -- ipFamilyPolicy for distributor Service
3739 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3741 # -- ipFamilies for distributor Service
3742 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
3744 # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
3746 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3749 # @schema additionalProperties:{"type":"string"}
3750 # -- Additional annotations for headless Distributed compactor Service
3752 # @schema additionalProperties:{"type":"string"}
3753 # -- Additional labels for headless Distributed compactor Service
3755 # -- Additional CLI args for the distributor
3757 # -- Environment variables to add to the distributor pods
3759 # -- Environment variables from secrets or configmaps to add to the distributor pods
3761 # -- Volume mounts to add to the distributor pods
3762 extraVolumeMounts: []
3763 # -- Volumes to add to the distributor pods
3765 # @schema additionalProperties:true
3766 # -- Resource requests and limits for the distributor
3768 # -- Container resize policy for the distributor
3771 # - resourceName: cpu
3772 # restartPolicy: NotRequired
3773 # - resourceName: memory
3774 # restartPolicy: RestartContainer
3776 # @schema type:[string, array, null]
3777 # -- Init containers to add to the distributor pods
3779 # @schema type:[string, array, null]
3780 # -- Containers to add to the distributor pods
3782 # @schema type:[string, null]
3783 # -- On SIGTERM, report 503 on /ready and wait this long before shutdown so the LB drains the pod before connections are cut.
3784 # "0s" (default) disables. When enabling, keep terminationGracePeriodSeconds above shutdownDelay + server.graceful_shutdown_timeout.
3786 # -- Grace period to allow the distributor to shutdown before it is killed
3787 terminationGracePeriodSeconds: 30
3788 podDisruptionBudget:
3789 # -- Enable Pod Disruption Budget
3791 # @schema additionalProperties:{"type":"string"}
3792 # -- Annotations for Pod Disruption Budget
3794 # @schema additionalProperties:{"type":"string"}
3795 # -- Labels for Pod Disruption Budget
3797 # @schema type:[string, integer, null]
3798 # -- Pod Disruption Budget minAvailable
3800 # @schema type:[string, integer, null]
3801 # -- Pod Disruption Budget maxUnavailable
3802 maxUnavailable: null
3803 # @schema type:[string, null]
3804 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
3805 unhealthyPodEvictionPolicy: null
3806 # @schema type:[object, null];skipProperties:true;additionalProperties:true
3807 # -- Affinity for distributor pods.
3808 # @default -- Hard node anti-affinity
3809 # The value will be passed through tpl.
3812 requiredDuringSchedulingIgnoredDuringExecution:
3815 app.kubernetes.io/component: distributor
3816 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3817 app.kubernetes.io/instance: '{{ .Release.Name }}'
3818 topologyKey: kubernetes.io/hostname
3819 # @schema type:[string, integer, null];deprecated:true
3820 # -- Pod Disruption Budget maxUnavailable
3821 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
3822 maxUnavailable: null
3823 # @schema type:[string, integer]
3824 # -- Max Surge for distributor pods
3826 # @schema additionalProperties:true
3827 # -- Node selector for distributor pods
3829 # @schema item:object
3830 # -- Topology Spread Constraints for distributor pods
3831 # The value will be passed through tpl.
3832 topologySpreadConstraints: []
3834 # @schema additionalProperties:true;deprecated:true
3835 # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
3836 # @deprecated -- This option is deprecated in favor of `distributor.service.appProtocol`
3838 # @schema type:string;deprecated:true
3839 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3840 # @deprecated -- This option is deprecated in favor of `distributor.service.appProtocol.grpc`
3842 # -- trafficDistribution for distributor service
3843 trafficDistribution: ""
3845 # -- Specifies whether a ServiceAccount should be created
3847 # @schema type:[string, null]
3848 # -- The name of the ServiceAccount to use.
3849 # If not set and create is true, a name is generated using the fullname template
3851 # @schema item:object;itemProperties:{"name": {"type": "string"}}
3852 # -- Image pull secrets for the service account
3853 imagePullSecrets: []
3854 # @schema additionalProperties:{"type":"string"}
3855 # -- Annotations for the service account
3857 # @schema additionalProperties:{"type":"string"}
3858 # -- Labels for the service account
3860 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3861 automountServiceAccountToken: true
3862# -- Configuration for the querier
3864 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
3866 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
3868 # @schema type:[integer, null]
3869 # -- Number of replicas for the querier. Set to null to omit spec.replicas from the workload,
3870 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
3872 # @schema skipProperties:true;additionalProperties:true
3873 # -- Strategy for the querier.
3878 # @schema type:[string, integer, null]
3879 # -- Pod Disruption Budget maxUnavailable
3881 # -- hostAliases to add
3883 # @schema type:[boolean, null]
3887 # -- Use the host's user namespace in the querier
3890 # -- Enable autoscaling for the querier, this is only used if `indexGateway.enabled: true`
3892 # -- Minimum autoscaling replicas for the querier
3894 # -- Maximum autoscaling replicas for the querier
3896 # @schema type:[integer, null]
3897 # -- Target CPU utilisation percentage for the querier
3898 targetCPUUtilizationPercentage: 60
3899 # @schema type:[integer, null]
3900 # -- Target memory utilisation percentage for the querier
3901 targetMemoryUtilizationPercentage: null
3902 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3907 # name: loki_inflight_queries
3909 # type: AverageValue
3911 # @schema skipProperties:true;additionalProperties:true
3912 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
3914 # -- Enable autoscaling behaviours
3916 # -- define scale down policies, must conform to HPAScalingRules
3918 # -- define scale up policies, must conform to HPAScalingRules
3921 # -- Enable KEDA autoscaling for the querier. Mutually exclusive with autoscaling.enabled
3923 # @schema type:[integer, null]
3924 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
3925 pollingInterval: null
3926 # -- Minimum replicas for KEDA autoscaling
3928 # -- Maximum replicas for KEDA autoscaling
3930 # @schema type:[integer, null]
3931 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
3932 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
3933 cooldownPeriod: null
3934 # @schema additionalProperties:true
3935 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
3936 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
3938 # @schema skipProperties:true;additionalProperties:true
3939 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
3940 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
3942 # -- KEDA triggers for the querier. Defaults to a Prometheus trigger using inflight requests.
3943 # The default query tells the two schedulers apart by the `container` label, which Prometheus Operator ServiceMonitors and PodMonitors set.
3944 # Without that label, the ruler-query-scheduler queue also drives querier scaling when `ruler.remoteEvaluationDedicatedQueryPath` is true.
3947 name: querier_autoscaling_metric
3949 serverAddress: "{{ .Values.defaults.kedaAutoscaling.prometheusAddress }}"
3950 query: sum(max_over_time(loki_query_scheduler_inflight_requests{container!="ruler-query-scheduler",quantile="0.75"}[2m]))
3952 unsafeSsl: "{{ .Values.defaults.kedaAutoscaling.unsafeSsl }}"
3953 ignoreNullValues: "{{ .Values.defaults.kedaAutoscaling.ignoreNullValues }}"
3954 customHeaders: "{{ .Values.defaults.kedaAutoscaling.customHeaders }}"
3955 authModes: "{{ .Values.defaults.kedaAutoscaling.authentication.authModes }}"
3957 # @schema type:[string, null]
3958 # -- The Docker registry for the querier image. Overrides `loki.image.registry`
3960 # @schema type:[string, null]
3961 # -- Docker image repository for the querier image. Overrides `loki.image.repository`
3963 # @schema type:[string, null]
3964 # -- Docker image tag for the querier image. Overrides `loki.image.tag`
3966 # @schema type:[string, null]
3967 # -- Command to execute instead of defined in Docker image
3969 # @schema type:[string, null]
3970 # -- The name of the PriorityClass for querier pods
3971 priorityClassName: null
3972 # @schema additionalProperties:{"type":"string"}
3973 # -- Labels for querier
3975 # @schema additionalProperties:{"type":"string"}
3976 # -- Annotations for querier
3978 # @schema additionalProperties:{"type":"string"}
3979 # -- Labels for querier pods
3981 # @schema additionalProperties:{"type":"string"}
3982 # -- Annotations for querier pods
3984 # @schema additionalProperties:{"type":"string"};deprecated:true
3985 # -- Labels for querier service
3986 # @deprecated -- This option is deprecated in favor of `querier.service.labels`
3988 # @schema additionalProperties:{"type":"string"};deprecated:true
3989 # -- Annotations for querier service
3990 # @deprecated -- This option is deprecated in favor of `querier.service.annotations`
3991 serviceAnnotations: {}
3992 # @schema type:string;deprecated:true
3993 # -- Service type for querier service
3994 # @deprecated -- This option is deprecated in favor of `querier.service.type`
3995 serviceType: "ClusterIP"
3997 # @schema additionalProperties:{"type":"string"}
3998 # -- Annotations for querier Service
4000 # @schema additionalProperties:{"type":"string"}
4001 # -- Additional labels for querier Service
4003 # -- Service Type for querier Service
4005 # -- trafficDistribution for querier Service
4006 trafficDistribution: ""
4007 # -- Session affinity for querier Service
4009 # @schema additionalProperties:true
4010 # -- Session affinity config for querier Service
4011 sessionAffinityConfig: {}
4012 # -- ipFamilyPolicy for querier Service
4013 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4015 # -- ipFamilies for querier Service
4016 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4018 # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
4020 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4023 # @schema additionalProperties:{"type":"string"}
4024 # -- Additional annotations for headless Distributed compactor Service
4026 # @schema additionalProperties:{"type":"string"}
4027 # -- Additional labels for headless Distributed compactor Service
4029 # -- Additional CLI args for the querier
4031 # -- Environment variables to add to the querier pods
4033 # -- Environment variables from secrets or configmaps to add to the querier pods
4035 # -- Volume mounts to add to the querier pods
4036 extraVolumeMounts: []
4037 # -- Volumes to add to the querier pods
4039 # @schema additionalProperties:true
4040 # -- Resource requests and limits for the querier
4042 # -- Container resize policy for the querier
4045 # - resourceName: cpu
4046 # restartPolicy: NotRequired
4047 # - resourceName: memory
4048 # restartPolicy: RestartContainer
4050 # @schema type:[string, array, null]
4051 # -- Containers to add to the querier pods
4053 # @schema type:[string, array, null]
4054 # -- Init containers to add to the querier pods
4056 # -- Grace period to allow the querier to shutdown before it is killed
4057 terminationGracePeriodSeconds: 30
4058 podDisruptionBudget:
4059 # -- Enable Pod Disruption Budget
4061 # @schema additionalProperties:{"type":"string"}
4062 # -- Annotations for Pod Disruption Budget
4064 # @schema additionalProperties:{"type":"string"}
4065 # -- Labels for Pod Disruption Budget
4067 # @schema type:[string, integer, null]
4068 # -- Pod Disruption Budget minAvailable
4070 # @schema type:[string, integer, null]
4071 # -- Pod Disruption Budget maxUnavailable
4072 maxUnavailable: null
4073 # @schema type:[string, null]
4074 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4075 unhealthyPodEvictionPolicy: null
4076 # @schema item:object
4077 # -- topologySpread for querier pods.
4078 # @default -- Defaults to allow skew no more then 1 node
4079 # The value will be passed through tpl.
4080 topologySpreadConstraints:
4082 topologyKey: kubernetes.io/hostname
4083 whenUnsatisfiable: ScheduleAnyway
4086 app.kubernetes.io/component: querier
4087 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4088 app.kubernetes.io/instance: '{{ .Release.Name }}'
4089 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4090 # -- Affinity for querier pods.
4091 # @default -- Hard node anti-affinity
4092 # The value will be passed through tpl.
4095 requiredDuringSchedulingIgnoredDuringExecution:
4098 app.kubernetes.io/component: querier
4099 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4100 app.kubernetes.io/instance: '{{ .Release.Name }}'
4101 topologyKey: kubernetes.io/hostname
4102 # @schema type:[string, integer, null];deprecated:true
4103 # -- Pod Disruption Budget maxUnavailable
4104 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4105 maxUnavailable: null
4106 # @schema type:[string, integer]
4107 # -- Max Surge for querier pods
4109 # @schema additionalProperties:true
4110 # -- Node selector for querier pods
4112 # -- Tolerations for querier pods
4114 # @schema additionalProperties:true
4115 # -- DNSConfig for querier pods
4117 # @schema additionalProperties:true;deprecated:true
4118 # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
4119 # @deprecated -- This option is deprecated in favor of `querier.service.appProtocol`
4121 # @schema type:string;deprecated:true
4122 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4123 # @deprecated -- This option is deprecated in favor of `querier.service.appProtocol.grpc`
4125 # -- trafficDistribution for querier service
4126 trafficDistribution: ""
4128 # -- Specifies whether a ServiceAccount should be created
4130 # @schema type:[string, null]
4131 # -- The name of the ServiceAccount to use.
4132 # If not set and create is true, a name is generated using the fullname template
4134 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4135 # -- Image pull secrets for the service account
4136 imagePullSecrets: []
4137 # @schema additionalProperties:{"type":"string"}
4138 # -- Annotations for the service account
4140 # @schema additionalProperties:{"type":"string"}
4141 # -- Labels for the service account
4143 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4144 automountServiceAccountToken: true
4145# -- Configuration for the query-frontend
4147 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4149 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
4151 # @schema type:[integer, null]
4152 # -- Number of replicas for the query-frontend. Set to null to omit spec.replicas from the workload,
4153 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4155 # @schema skipProperties:true;additionalProperties:true
4156 # -- Strategy for the querier.
4161 # @schema type:[string, integer, null]
4162 # -- Pod Disruption Budget maxUnavailable
4164 # -- hostAliases to add
4166 # @schema type:[boolean, null]
4170 # -- Use the host's user namespace in the query-frontend
4173 # -- Enable autoscaling for the query-frontend
4175 # -- Minimum autoscaling replicas for the query-frontend
4177 # -- Maximum autoscaling replicas for the query-frontend
4179 # @schema type:[integer, null]
4180 # -- Target CPU utilisation percentage for the query-frontend
4181 targetCPUUtilizationPercentage: 60
4182 # @schema type:[integer, null]
4183 # -- Target memory utilisation percentage for the query-frontend
4184 targetMemoryUtilizationPercentage: null
4185 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
4190 # name: loki_query_rate
4192 # type: AverageValue
4194 # @schema skipProperties:true;additionalProperties:true
4195 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
4197 # -- Enable autoscaling behaviours
4199 # -- define scale down policies, must conform to HPAScalingRules
4201 # -- define scale up policies, must conform to HPAScalingRules
4204 # -- Enable KEDA autoscaling for the query-frontend. Mutually exclusive with autoscaling.enabled
4206 # @schema type:[integer, null]
4207 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
4208 pollingInterval: null
4209 # -- Minimum replicas for KEDA autoscaling
4211 # -- Maximum replicas for KEDA autoscaling
4213 # @schema type:[integer, null]
4214 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
4215 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
4216 cooldownPeriod: null
4217 # @schema additionalProperties:true
4218 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
4219 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
4221 # @schema skipProperties:true;additionalProperties:true
4222 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
4223 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
4225 # -- KEDA triggers for the query-frontend.
4226 # Ref: https://keda.sh/docs/latest/scalers/
4229 # @schema type:[string, null]
4230 # -- The Docker registry for the query-frontend image. Overrides `loki.image.registry`
4232 # @schema type:[string, null]
4233 # -- Docker image repository for the query-frontend image. Overrides `loki.image.repository`
4235 # @schema type:[string, null]
4236 # -- Docker image tag for the query-frontend image. Overrides `loki.image.tag`
4238 # @schema type:[string, null]
4239 # -- Command to execute instead of defined in Docker image
4241 # @schema type:[string, null]
4242 # -- The name of the PriorityClass for query-frontend pods
4243 priorityClassName: null
4244 # @schema additionalProperties:{"type":"string"}
4245 # -- Labels for query-frontend
4247 # @schema additionalProperties:{"type":"string"}
4248 # -- Annotations for query-frontend
4250 # @schema additionalProperties:{"type":"string"}
4251 # -- Labels for query-frontend pods
4253 # @schema additionalProperties:{"type":"string"}
4254 # -- Annotations for query-frontend pods
4256 # @schema additionalProperties:{"type":"string"};deprecated:true
4257 # -- Labels for query-frontend service
4258 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.labels`
4260 # @schema additionalProperties:{"type":"string"};deprecated:true
4261 # -- Annotations for query-frontend service
4262 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.annotations`
4263 serviceAnnotations: {}
4264 # @schema type:string;deprecated:true
4265 # -- Service type for query-frontend service
4266 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.type`
4267 serviceType: "ClusterIP"
4269 # @schema additionalProperties:{"type":"string"}
4270 # -- Annotations for query-frontend Service
4272 # @schema additionalProperties:{"type":"string"}
4273 # -- Additional labels for query-frontend Service
4275 # -- Service Type for query-frontend Service
4277 # -- trafficDistribution for query-frontend Service
4278 trafficDistribution: ""
4279 # -- Session affinity for query-frontend Service
4281 # @schema additionalProperties:true
4282 # -- Session affinity config for query-frontend Service
4283 sessionAffinityConfig: {}
4284 # -- ipFamilyPolicy for query-frontend Service
4285 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4287 # -- ipFamilies for query-frontend Service
4288 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4290 # -- Adds the appProtocol field to the query-frontend service. This allows query-frontend to work with istio protocol selection.
4292 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4295 # @schema additionalProperties:{"type":"string"}
4296 # -- Additional annotations for headless Distributed compactor Service
4298 # @schema additionalProperties:{"type":"string"}
4299 # -- Additional labels for headless Distributed compactor Service
4301 # -- Additional CLI args for the query-frontend
4303 # -- Environment variables to add to the query-frontend pods
4305 # -- Environment variables from secrets or configmaps to add to the query-frontend pods
4307 # -- Volume mounts to add to the query-frontend pods
4308 extraVolumeMounts: []
4309 # -- Volumes to add to the query-frontend pods
4311 # @schema additionalProperties:true
4312 # -- Resource requests and limits for the query-frontend
4314 # -- Container resize policy for the query-frontend
4317 # - resourceName: cpu
4318 # restartPolicy: NotRequired
4319 # - resourceName: memory
4320 # restartPolicy: RestartContainer
4322 # @schema type:[string, array, null]
4323 # -- init containers to add to the query-frontend pods
4325 # @schema type:[string, array, null]
4326 # -- Containers to add to the query-frontend pods
4328 # -- Grace period to allow the query-frontend to shutdown before it is killed
4329 terminationGracePeriodSeconds: 30
4330 podDisruptionBudget:
4331 # -- Enable Pod Disruption Budget
4333 # @schema additionalProperties:{"type":"string"}
4334 # -- Annotations for Pod Disruption Budget
4336 # @schema additionalProperties:{"type":"string"}
4337 # -- Labels for Pod Disruption Budget
4339 # @schema type:[string, integer, null]
4340 # -- Pod Disruption Budget minAvailable
4342 # @schema type:[string, integer, null]
4343 # -- Pod Disruption Budget maxUnavailable
4344 maxUnavailable: null
4345 # @schema type:[string, null]
4346 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4347 unhealthyPodEvictionPolicy: null
4348 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4349 # -- Affinity for query-frontend pods.
4350 # @default -- Hard node anti-affinity
4351 # The value will be passed through tpl.
4354 requiredDuringSchedulingIgnoredDuringExecution:
4357 app.kubernetes.io/component: query-frontend
4358 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4359 app.kubernetes.io/instance: '{{ .Release.Name }}'
4360 topologyKey: kubernetes.io/hostname
4361 # @schema type:[string, integer, null];deprecated:true
4362 # -- Pod Disruption Budget maxUnavailable
4363 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4364 maxUnavailable: null
4365 # @schema additionalProperties:true
4366 # -- Node selector for query-frontend pods
4368 # @schema item:object
4369 # -- Topology Spread Constraints for query-frontend pods
4370 # The value will be passed through tpl.
4371 topologySpreadConstraints: []
4373 # @schema additionalProperties:true;deprecated:true
4374 # -- Adds the appProtocol field to the queryFrontend service. This allows queryFrontend to work with istio protocol selection.
4375 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.appProtocol`
4377 # @schema type:string;deprecated:true
4378 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4379 # @deprecated -- This option is deprecated in favor of `queryFrontend.service.appProtocol.grpc`
4381 # -- Enable load balancer port for query-frontend
4384 # -- trafficDistribution for query-frontend service
4385 trafficDistribution: ""
4387 # -- Specifies whether a ServiceAccount should be created
4389 # @schema type:[string, null]
4390 # -- The name of the ServiceAccount to use.
4391 # If not set and create is true, a name is generated using the fullname template
4393 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4394 # -- Image pull secrets for the service account
4395 imagePullSecrets: []
4396 # @schema additionalProperties:{"type":"string"}
4397 # -- Annotations for the service account
4399 # @schema additionalProperties:{"type":"string"}
4400 # -- Labels for the service account
4402 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4403 automountServiceAccountToken: true
4404# -- Configuration for the query-scheduler
4406 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4408 # -- Kind of query-scheduler deployment. StatefulSet and Deployment are supported.
4410 # @schema type:[integer, null]
4411 # -- Number of replicas for the query-scheduler.
4412 # It should be lower than `-querier.max-concurrent` to avoid generating back-pressure in queriers;
4413 # it's also recommended that this value evenly divides the latter
4414 # Set to null to omit spec.replicas from the workload, allowing an external controller
4415 # (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4417 # @schema skipProperties:true;additionalProperties:true
4418 # -- Strategy for the query-scheduler.
4423 # @schema type:[string, integer, null]
4424 # -- Pod Disruption Budget maxUnavailable
4426 # @schema additionalProperties:true
4427 # -- DNSConfig for query-scheduler
4429 # -- hostAliases to add
4431 # @schema type:[boolean, null]
4435 # -- Use the host's user namespace in the query-scheduler
4438 # @schema type:[string, null]
4439 # -- The Docker registry for the query-scheduler image. Overrides `loki.image.registry`
4441 # @schema type:[string, null]
4442 # -- Docker image repository for the query-scheduler image. Overrides `loki.image.repository`
4444 # @schema type:[string, null]
4445 # -- Docker image tag for the query-scheduler image. Overrides `loki.image.tag`
4447 # @schema type:[string, null]
4448 # -- The name of the PriorityClass for query-scheduler pods
4449 priorityClassName: null
4450 # @schema additionalProperties:{"type":"string"}
4451 # -- Labels for query-scheduler
4453 # @schema additionalProperties:{"type":"string"}
4454 # -- Annotations for query-scheduler
4456 # @schema additionalProperties:{"type":"string"}
4457 # -- Labels for query-scheduler pods
4459 # @schema additionalProperties:{"type":"string"}
4460 # -- Annotations for query-scheduler pods
4462 # @schema additionalProperties:{"type":"string"};deprecated:true
4463 # -- Labels for query-scheduler service
4464 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.labels`
4466 # @schema additionalProperties:{"type":"string"};deprecated:true
4467 # -- Annotations for query-scheduler service
4468 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.annotations`
4469 serviceAnnotations: {}
4470 # @schema type:string;deprecated:true
4471 # -- Service type for query-scheduler service
4472 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.type`
4473 serviceType: "ClusterIP"
4475 # @schema additionalProperties:{"type":"string"}
4476 # -- Annotations for query-scheduler Service
4478 # @schema additionalProperties:{"type":"string"}
4479 # -- Additional labels for query-scheduler Service
4481 # -- Service Type for query-scheduler Service
4483 # -- trafficDistribution for query-scheduler Service
4484 trafficDistribution: ""
4485 # -- Session affinity for query-scheduler Service
4487 # @schema additionalProperties:true
4488 # -- Session affinity config for query-scheduler Service
4489 sessionAffinityConfig: {}
4490 # -- ipFamilyPolicy for query-scheduler Service
4491 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4493 # -- ipFamilies for query-scheduler Service
4494 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4496 # -- Adds the appProtocol field to the query-scheduler service. This allows query-scheduler to work with istio protocol selection.
4498 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4501 # @schema additionalProperties:{"type":"string"}
4502 # -- Additional annotations for headless Distributed compactor Service
4504 # @schema additionalProperties:{"type":"string"}
4505 # -- Additional labels for headless Distributed compactor Service
4507 # -- Additional CLI args for the query-scheduler
4509 # -- Environment variables to add to the query-scheduler pods
4511 # -- Environment variables from secrets or configmaps to add to the query-scheduler pods
4513 # -- Volume mounts to add to the query-scheduler pods
4514 extraVolumeMounts: []
4515 # -- Volumes to add to the query-scheduler pods
4517 # @schema additionalProperties:true
4518 # -- Resource requests and limits for the query-scheduler
4520 # -- Container resize policy for the query-scheduler
4523 # - resourceName: cpu
4524 # restartPolicy: NotRequired
4525 # - resourceName: memory
4526 # restartPolicy: RestartContainer
4528 # @schema type:[string, array, null]
4529 # -- init containers to add to the query-scheduler pods
4531 # @schema type:[string, array, null]
4532 # -- Containers to add to the query-scheduler pods
4534 # -- Grace period to allow the query-scheduler to shutdown before it is killed
4535 terminationGracePeriodSeconds: 30
4536 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4537 # -- Affinity for query-scheduler pods.
4538 # @default -- Hard node anti-affinity
4539 # The value will be passed through tpl.
4542 requiredDuringSchedulingIgnoredDuringExecution:
4545 app.kubernetes.io/component: query-scheduler
4546 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4547 app.kubernetes.io/instance: '{{ .Release.Name }}'
4548 topologyKey: kubernetes.io/hostname
4549 # @schema type:[string, integer, null];deprecated:true
4550 # -- Pod Disruption Budget maxUnavailable
4551 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4553 podDisruptionBudget:
4554 # -- Enable Pod Disruption Budget
4556 # @schema additionalProperties:{"type":"string"}
4557 # -- Annotations for Pod Disruption Budget
4559 # @schema additionalProperties:{"type":"string"}
4560 # -- Labels for Pod Disruption Budget
4562 # @schema type:[string, integer, null]
4563 # -- Pod Disruption Budget minAvailable
4565 # @schema type:[string, integer, null]
4566 # -- Pod Disruption Budget maxUnavailable
4567 maxUnavailable: null
4568 # @schema type:[string, null]
4569 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4570 unhealthyPodEvictionPolicy: null
4571 # @schema additionalProperties:true
4572 # -- Node selector for query-scheduler pods
4574 # @schema item:object
4575 # -- Topology Spread Constraints for query-scheduler pods
4576 # The value will be passed through tpl.
4577 topologySpreadConstraints: []
4579 # @schema additionalProperties:true;deprecated:true
4580 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4581 # @deprecated -- This option is deprecated in favor of `queryScheduler.service.appProtocol`
4584 # -- trafficDistribution for query-scheduler service
4585 trafficDistribution: ""
4587 # -- Specifies whether a ServiceAccount should be created
4589 # @schema type:[string, null]
4590 # -- The name of the ServiceAccount to use.
4591 # If not set and create is true, a name is generated using the fullname template
4593 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4594 # -- Image pull secrets for the service account
4595 imagePullSecrets: []
4596 # @schema additionalProperties:{"type":"string"}
4597 # -- Annotations for the service account
4599 # @schema additionalProperties:{"type":"string"}
4600 # -- Labels for the service account
4602 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4603 automountServiceAccountToken: true
4604# -- Configuration for the index-gateway
4606 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4608 # -- Kind of index-gateway deployment. StatefulSet and Deployment are supported.
4610 # -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
4611 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4612 statefulSetRecreateJob:
4614 # @schema type:[integer, null]
4615 # -- Number of replicas for the index-gateway. Set to null to omit spec.replicas from the workload,
4616 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4618 # @schema additionalProperties:true
4619 # -- DNSConfig for index-gateway pods
4621 # -- hostAliases to add
4623 # @schema type:[boolean, null]
4627 # -- Use the host's user namespace in the index-gateway
4630 # @schema type:[string, null]
4631 # -- The Docker registry for the index-gateway image. Overrides `loki.image.registry`
4633 # @schema type:[string, null]
4634 # -- Docker image repository for the index-gateway image. Overrides `loki.image.repository`
4636 # @schema type:[string, null]
4637 # -- Docker image tag for the index-gateway image. Overrides `loki.image.tag`
4639 # @schema type:[string, null]
4640 # -- The name of the PriorityClass for index-gateway pods
4641 priorityClassName: null
4642 # @schema additionalProperties:{"type":"string"}
4643 # -- Labels for index-gateway
4645 # @schema additionalProperties:{"type":"string"}
4646 # -- Annotations for index-gateway
4648 # @schema additionalProperties:{"type":"string"}
4649 # -- Labels for index-gateway pods
4651 # @schema additionalProperties:{"type":"string"}
4652 # -- Annotations for index-gateway pods
4654 # @schema additionalProperties:{"type":"string"};deprecated:true
4655 # -- Labels for index-gateway service
4656 # @deprecated -- This option is deprecated in favor of `indexGateway.service.labels`
4658 # @schema additionalProperties:{"type":"string"};deprecated:true
4659 # -- Annotations for index-gateway service
4660 # @deprecated -- This option is deprecated in favor of `indexGateway.service.annotations`
4661 serviceAnnotations: {}
4662 # @schema type:string;deprecated:true
4663 # -- Service type for index-gateway service
4664 # @deprecated -- This option is deprecated in favor of `indexGateway.service.type`
4665 serviceType: "ClusterIP"
4667 # @schema additionalProperties:{"type":"string"}
4668 # -- Annotations for index-gateway Service
4670 # @schema additionalProperties:{"type":"string"}
4671 # -- Additional labels for index-gateway Service
4673 # -- Service Type for index-gateway Service
4675 # -- trafficDistribution for index-gateway Service
4676 trafficDistribution: ""
4677 # -- Session affinity for index-gateway Service
4679 # @schema additionalProperties:true
4680 # -- Session affinity config for index-gateway Service
4681 sessionAffinityConfig: {}
4682 # -- ipFamilyPolicy for index-gateway Service
4683 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4685 # -- ipFamilies for index-gateway Service
4686 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4688 # -- Adds the appProtocol field to the index-gateway service. This allows index-gateway to work with istio protocol selection.
4690 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4693 # @schema additionalProperties:{"type":"string"}
4694 # -- Additional annotations for headless Distributed compactor Service
4696 # @schema additionalProperties:{"type":"string"}
4697 # -- Additional labels for headless Distributed compactor Service
4699 # -- Additional CLI args for the index-gateway
4701 # -- Environment variables to add to the index-gateway pods
4703 # -- Environment variables from secrets or configmaps to add to the index-gateway pods
4705 # -- Volume mounts to add to the index-gateway pods
4706 extraVolumeMounts: []
4707 # -- Volumes to add to the index-gateway pods
4709 # @schema additionalProperties:true
4710 # -- Resource requests and limits for the index-gateway
4712 # -- Container resize policy for the index-gateway
4715 # - resourceName: cpu
4716 # restartPolicy: NotRequired
4717 # - resourceName: memory
4718 # restartPolicy: RestartContainer
4720 # @schema type:[string, array, null]
4721 # -- Containers to add to the index-gateway pods
4723 # @schema type:[string, array, null]
4724 # -- Init containers to add to the index-gateway pods
4726 # -- Grace period to allow the index-gateway to shutdown before it is killed.
4727 terminationGracePeriodSeconds: 300
4728 podDisruptionBudget:
4729 # -- Enable Pod Disruption Budget
4731 # @schema additionalProperties:{"type":"string"}
4732 # -- Annotations for Pod Disruption Budget
4734 # @schema additionalProperties:{"type":"string"}
4735 # -- Labels for Pod Disruption Budget
4737 # @schema type:[string, integer, null]
4738 # -- Pod Disruption Budget minAvailable
4740 # @schema type:[string, integer, null]
4741 # -- Pod Disruption Budget maxUnavailable
4742 maxUnavailable: null
4743 # @schema type:[string, null]
4744 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
4745 unhealthyPodEvictionPolicy: null
4746 # -- Lifecycle for the index-gateway container
4748 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4749 # -- Affinity for index-gateway pods.
4750 # @default -- Hard node anti-affinity
4751 # The value will be passed through tpl.
4754 requiredDuringSchedulingIgnoredDuringExecution:
4757 app.kubernetes.io/component: index-gateway
4758 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4759 app.kubernetes.io/instance: '{{ .Release.Name }}'
4760 topologyKey: kubernetes.io/hostname
4761 # @schema type:[string, integer, null];deprecated:true
4762 # -- Pod Disruption Budget maxUnavailable
4763 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
4764 maxUnavailable: null
4765 # @schema additionalProperties:true
4766 # -- Node selector for index-gateway pods
4768 # @schema item:object
4769 # -- Topology Spread Constraints for index-gateway pods
4770 # The value will be passed through tpl.
4771 topologySpreadConstraints: []
4774 # -- Enable creating PVCs which is required when using boltdb-shipper
4776 # -- Set access modes on the PersistentVolumeClaim
4779 # @schema skipProperties:true;additionalProperties:true
4780 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
4781 dataVolumeParameters:
4783 # -- Size of persistent disk
4785 # @schema type:[string, null]
4786 # -- Storage class to be used.
4787 # If defined, storageClassName: <storageClass>.
4788 # If set to "-", storageClassName: "", which disables dynamic provisioning.
4789 # If empty or set to null, no storageClassName spec is
4790 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
4792 # @schema type:[string, null]
4793 # -- Volume attributes class name to be used.
4794 # If empty or set to null, no volumeAttributesClassName spec is set.
4795 # Requires Kubernetes 1.31
4796 volumeAttributesClassName: null
4797 # @schema additionalProperties:{"type":"string"}
4798 # -- Annotations for index gateway PVCs
4800 # @schema additionalProperties:{"type":"string"}
4801 # -- Labels for index gateway PVCs
4803 # -- Enable StatefulSetAutoDeletePVC feature
4804 enableStatefulSetAutoDeletePVC: false
4807 # @schema additionalProperties:true;deprecated:true
4808 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4809 # @deprecated -- This option is deprecated in favor of `indexGateway.service.appProtocol`
4812 # -- trafficDistribution for index-gateway service
4813 trafficDistribution: ""
4814 # @schema skipProperties:true;additionalProperties:true
4815 # -- UpdateStrategy for the index-gateway workload.
4817 # -- One of 'OnDelete' or 'RollingUpdate'
4819 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
4823 # -- Specifies whether a ServiceAccount should be created
4825 # @schema type:[string, null]
4826 # -- The name of the ServiceAccount to use.
4827 # If not set and create is true, a name is generated using the fullname template
4829 # @schema item:object;itemProperties:{"name": {"type": "string"}}
4830 # -- Image pull secrets for the service account
4831 imagePullSecrets: []
4832 # @schema additionalProperties:{"type":"string"}
4833 # -- Annotations for the service account
4835 # @schema additionalProperties:{"type":"string"}
4836 # -- Labels for the service account
4838 # -- Set this toggle to false to opt out of automounting API credentials for the service account
4839 automountServiceAccountToken: true
4840# -- Configuration for the compactor
4842 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
4844 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
4846 # -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
4847 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
4848 statefulSetRecreateJob:
4850 # @schema type:[integer, null]
4851 # -- Number of replicas for the compactor. Set to null to omit spec.replicas from the workload,
4852 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
4854 # @schema skipProperties:true;additionalProperties:true
4855 # -- UpdateStrategy or Strategy for the compactor.
4859 # -- PodManagementPolicy for the compactor StatefulSet. Only applicable if `compactor.kind` is StatefulSet.
4860 ## OrderedReady and Parallel are supported.
4861 podManagementPolicy: Parallel
4862 # -- hostAliases to add
4864 # @schema type:[boolean, null]
4868 # -- Use the host's user namespace in the compactor
4870 # @schema additionalProperties:true
4871 # -- DNSConfig for compactor pods
4874 # @schema type:[string, null]
4875 # -- The Docker registry for the compactor image. Overrides `loki.image.registry`
4877 # @schema type:[string, null]
4878 # -- Docker image repository for the compactor image. Overrides `loki.image.repository`
4880 # @schema type:[string, null]
4881 # -- Docker image tag for the compactor image. Overrides `loki.image.tag`
4883 # @schema type:[string, null]
4884 # -- Command to execute instead of defined in Docker image
4886 # @schema type:[string, null]
4887 # -- The name of the PriorityClass for compactor pods
4888 priorityClassName: null
4889 # @schema additionalProperties:{"type":"string"}
4890 # -- Labels for compactor
4892 # @schema additionalProperties:{"type":"string"}
4893 # -- Annotations for compactor
4895 # @schema additionalProperties:{"type":"string"}
4896 # -- Labels for compactor pods
4898 # @schema additionalProperties:{"type":"string"}
4899 # -- Annotations for compactor pods
4901 # @schema type:[object, null];skipProperties:true;additionalProperties:true
4902 # -- Affinity for compactor pods.
4903 # @default -- Hard node anti-affinity
4904 # The value will be passed through tpl.
4907 requiredDuringSchedulingIgnoredDuringExecution:
4910 app.kubernetes.io/component: compactor
4911 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4912 app.kubernetes.io/instance: '{{ .Release.Name }}'
4913 topologyKey: kubernetes.io/hostname
4914 # @schema additionalProperties:{"type":"string"};deprecated:true
4915 # -- Labels for compactor service
4916 # @deprecated -- This option is deprecated in favor of `compactor.service.labels`
4918 # @schema additionalProperties:{"type":"string"};deprecated:true
4919 # -- Annotations for compactor service
4920 # @deprecated -- This option is deprecated in favor of `compactor.service.annotations`
4921 serviceAnnotations: {}
4922 # @schema type:string;deprecated:true
4923 # -- Service type for compactor service
4924 # @deprecated -- This option is deprecated in favor of `compactor.service.type`
4925 serviceType: "ClusterIP"
4927 # @schema additionalProperties:{"type":"string"}
4928 # -- Annotations for compactor Service
4930 # @schema additionalProperties:{"type":"string"}
4931 # -- Additional labels for compactor Service
4933 # -- Service Type for compactor Service
4935 # -- trafficDistribution for compactor Service
4936 trafficDistribution: ""
4937 # -- Session affinity for compactor Service
4939 # @schema additionalProperties:true
4940 # -- Session affinity config for compactor Service
4941 sessionAffinityConfig: {}
4942 # -- ipFamilyPolicy for compactor Service
4943 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4945 # -- ipFamilies for compactor Service
4946 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
4948 # -- Adds the appProtocol field to the compactor service. This allows compactor to work with istio protocol selection.
4950 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
4953 # @schema additionalProperties:{"type":"string"}
4954 # -- Additional annotations for headless Distributed compactor Service
4956 # @schema additionalProperties:{"type":"string"}
4957 # -- Additional labels for headless Distributed compactor Service
4959 # -- Additional CLI args for the compactor
4961 # -- Environment variables to add to the compactor pods
4963 # -- Environment variables from secrets or configmaps to add to the compactor pods
4965 # -- Volume mounts to add to the compactor pods
4966 extraVolumeMounts: []
4967 # -- Volumes to add to the compactor pods
4969 # @schema skipProperties:true;additionalProperties:true
4970 # -- readiness probe settings for compactor pods. If empty, use `loki.readinessProbe`
4972 # @schema skipProperties:true;additionalProperties:true
4973 # -- liveness probe settings for compactor pods. If empty use `loki.livenessProbe`
4975 # @schema skipProperties:true;additionalProperties:true
4976 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
4978 # @schema additionalProperties:true
4979 # -- Resource requests and limits for the compactor
4981 # -- Container resize policy for the compactor
4984 # - resourceName: cpu
4985 # restartPolicy: NotRequired
4986 # - resourceName: memory
4987 # restartPolicy: RestartContainer
4989 # @schema type:[string, array, null]
4990 # -- Containers to add to the compactor pods
4992 # @schema type:[string, array, null]
4993 # -- Init containers to add to the compactor pods
4995 # -- Grace period to allow the compactor to shutdown before it is killed
4996 terminationGracePeriodSeconds: 30
4997 # @schema additionalProperties:true
4998 # -- Node selector for compactor pods
5000 # -- Tolerations for compactor pods
5002 # @schema additionalProperties:true;deprecated:true
5003 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5004 # @deprecated -- This option is deprecated in favor of `compactor.service.appProtocol`
5008 # -- Enable creating PVCs for the compactor
5010 # -- Storage type for the compactor. pvc and ephemeral are supported.
5012 # @schema type:[string, null]
5013 # -- Storage class to be used.
5014 # If defined, storageClassName: <storageClass>.
5015 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5016 # If empty or set to null, no storageClassName spec is
5017 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5019 # -- Set access modes on the PersistentVolumeClaim
5022 # -- Size of persistent disk
5024 # @schema type:[string, null]
5025 # -- Size of persistent disk
5026 # -- Volume attributes class name to be used.
5027 # If empty or set to null, no volumeAttributesClassName spec is set.
5028 # Requires Kubernetes 1.31
5029 volumeAttributesClassName: null
5030 # @schema additionalProperties:{"type":"string"}
5031 # -- Annotations for the generated volumeClaimTemplate.
5033 # @schema additionalProperties:{"type":"string"}
5034 # -- Labels for the generated volumeClaimTemplate.
5036 # @schema type:[object, null]
5037 # -- Selector for the generated volumeClaimTemplate.
5039 # @schema skipProperties:true;additionalProperties:true
5040 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
5041 dataVolumeParameters:
5043 # -- List of the compactor PVCs. Deprecated in favor of `compactor.persistence.dataVolumeParameters` and `compactor.persistence.size`.
5044 # @notationType -- list
5047 # -- Set access modes on the PersistentVolumeClaim
5051 # @schema type:[string, null]
5052 # -- Storage class to be used.
5053 # If defined, storageClassName: <storageClass>.
5054 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5055 # If empty or set to null, no storageClassName spec is
5056 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5058 # @schema type:[string, null]
5059 # -- Volume attributes class name to be used.
5060 # If empty or set to null, no volumeAttributesClassName spec is set.
5061 # Requires Kubernetes 1.31
5062 volumeAttributesClassName: null
5063 # @schema additionalProperties:{"type":"string"}
5064 # -- Annotations for compactor PVCs
5066 # @schema additionalProperties:{"type":"string"}
5067 # -- Labels for compactor PVCs
5071 # -- Enable StatefulSetAutoDeletePVC feature
5072 enableStatefulSetAutoDeletePVC: false
5077 # @schema type:[string, null]
5078 # -- The name of the ServiceAccount to use for the compactor.
5079 # If not set and create is true, a name is generated by appending
5080 # "-compactor" to the common ServiceAccount.
5082 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5083 # -- Image pull secrets for the compactor service account
5084 imagePullSecrets: []
5085 # @schema additionalProperties:{"type":"string"}
5086 # -- Annotations for the compactor service account
5088 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5089 automountServiceAccountToken: true
5090# -- Configuration for the bloom-gateway
5092 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5094 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5096 # -- Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed.
5097 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5098 statefulSetRecreateJob:
5100 # -- Number of replicas for the bloom-gateway
5102 # -- hostAliases to add
5104 # @schema type:[boolean, null]
5108 # -- Use the host's user namespace in the bloom-gateway
5110 # @schema skipProperties:true;additionalProperties:true
5111 # -- UpdateStrategy or Strategy for the pattern ingester.
5115 # @schema additionalProperties:true
5116 # -- DNSConfig for bloom-gateway pods
5119 # @schema type:[string, null]
5120 # -- The Docker registry for the bloom-gateway image. Overrides `loki.image.registry`
5122 # @schema type:[string, null]
5123 # -- Docker image repository for the bloom-gateway image. Overrides `loki.image.repository`
5125 # @schema type:[string, null]
5126 # -- Docker image tag for the bloom-gateway image. Overrides `loki.image.tag`
5128 # @schema type:[string, null]
5129 # -- Command to execute instead of defined in Docker image
5131 # @schema type:[string, null]
5132 # -- The name of the PriorityClass for bloom-gateway pods
5133 priorityClassName: null
5134 # @schema additionalProperties:{"type":"string"}
5135 # -- Labels for bloom-builder
5137 # @schema additionalProperties:{"type":"string"}
5138 # -- Annotations for bloom-builder
5140 # @schema additionalProperties:{"type":"string"}
5141 # -- Labels for bloom-gateway pods
5143 # @schema additionalProperties:{"type":"string"}
5144 # -- Annotations for bloom-gateway pods
5146 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5147 # -- Affinity for bloom-gateway pods.
5148 # @default -- Hard node anti-affinity
5149 # The value will be passed through tpl.
5152 requiredDuringSchedulingIgnoredDuringExecution:
5155 app.kubernetes.io/component: bloom-gateway
5156 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5157 app.kubernetes.io/instance: '{{ .Release.Name }}'
5158 topologyKey: kubernetes.io/hostname
5159 # @schema additionalProperties:{"type":"string"};deprecated:true
5160 # -- Labels for bloom-gateway service
5161 # @deprecated -- This option is deprecated in favor of `bloomGateway.service.labels`
5163 # @schema additionalProperties:{"type":"string"};deprecated:true
5164 # -- Annotations for bloom-gateway service
5165 # @deprecated -- This option is deprecated in favor of `bloomGateway.service.annotations`
5166 serviceAnnotations: {}
5168 # @schema additionalProperties:{"type":"string"}
5169 # -- Annotations for bloom-gateway Service
5171 # @schema additionalProperties:{"type":"string"}
5172 # -- Additional labels for bloom-gateway Service
5174 # -- Service Type for bloom-gateway Service
5176 # -- trafficDistribution for bloom-gateway Service
5177 trafficDistribution: ""
5178 # -- Session affinity for bloom-gateway Service
5180 # @schema additionalProperties:true
5181 # -- Session affinity config for bloom-gateway Service
5182 sessionAffinityConfig: {}
5183 # -- ipFamilyPolicy for bloom-gateway Service
5184 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5186 # -- ipFamilies for bloom-gateway Service
5187 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5189 # -- Adds the appProtocol field to the bloom-gateway service. This allows bloom-gateway to work with istio protocol selection.
5191 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5194 # @schema additionalProperties:{"type":"string"}
5195 # -- Additional annotations for headless Distributed compactor Service
5197 # @schema additionalProperties:{"type":"string"}
5198 # -- Additional labels for headless Distributed compactor Service
5200 # -- Additional CLI args for the bloom-gateway
5202 # -- Environment variables to add to the bloom-gateway pods
5204 # -- Environment variables from secrets or configmaps to add to the bloom-gateway pods
5206 # -- Volume mounts to add to the bloom-gateway pods
5207 extraVolumeMounts: []
5208 # -- Volumes to add to the bloom-gateway pods
5210 # @schema skipProperties:true;additionalProperties:true
5211 # -- readiness probe settings for bloom-gateway pods. If empty, use `loki.readinessProbe`
5213 # @schema skipProperties:true;additionalProperties:true
5214 # -- liveness probe settings for bloom-gateway pods. If empty use `loki.livenessProbe`
5216 # @schema skipProperties:true;additionalProperties:true
5217 # -- startup probe settings for bloom-gateway pods. If empty, use `loki.startupProbe`
5219 # @schema additionalProperties:true
5220 # -- Resource requests and limits for the bloom-gateway
5222 # -- Container resize policy for the bloom-gateway
5225 # - resourceName: cpu
5226 # restartPolicy: NotRequired
5227 # - resourceName: memory
5228 # restartPolicy: RestartContainer
5230 # @schema type:[string, array, null]
5231 # -- Containers to add to the bloom-gateway pods
5233 # @schema type:[string, array, null]
5234 # -- Init containers to add to the bloom-gateway pods
5236 # -- Grace period to allow the bloom-gateway to shutdown before it is killed
5237 terminationGracePeriodSeconds: 30
5238 podDisruptionBudget:
5239 # -- Enable Pod Disruption Budget
5241 # @schema additionalProperties:{"type":"string"}
5242 # -- Annotations for Pod Disruption Budget
5244 # @schema additionalProperties:{"type":"string"}
5245 # -- Labels for Pod Disruption Budget
5247 # @schema type:[string, integer, null]
5248 # -- Pod Disruption Budget minAvailable
5250 # @schema type:[string, integer, null]
5251 # -- Pod Disruption Budget maxUnavailable
5252 maxUnavailable: null
5253 # @schema type:[string, null]
5254 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5255 unhealthyPodEvictionPolicy: null
5256 # @schema additionalProperties:true
5257 # -- Node selector for bloom-gateway pods
5259 # -- Tolerations for bloom-gateway pods
5261 # @schema additionalProperties:true;deprecated:true
5262 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5263 # @deprecated -- This option is deprecated in favor of `bloomGateway.service.appProtocol`
5266 # -- The default is to deploy all pods in parallel.
5267 podManagementPolicy: "Parallel"
5269 # -- Enable creating PVCs for the bloom-gateway
5271 # @schema additionalProperties:{"type":"string"}
5272 # -- Annotations for bloom-gateway PVCs
5274 # @schema additionalProperties:{"type":"string"}
5275 # -- Labels for bloom gateway PVCs
5277 # -- List of the bloom-gateway PVCs
5278 # @notationType -- list
5281 # -- Set access modes on the PersistentVolumeClaim
5284 # -- Size of persistent disk
5286 # @schema type:[string, null]
5287 # -- Storage class to be used.
5288 # If defined, storageClassName: <storageClass>.
5289 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5290 # If empty or set to null, no storageClassName spec is
5291 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5293 # @schema type:[string, null]
5294 # -- Volume attributes class name to be used.
5295 # If empty or set to null, no volumeAttributesClassName spec is set.
5296 # Requires Kubernetes 1.31
5297 volumeAttributesClassName: null
5298 # -- Enable StatefulSetAutoDeletePVC feature
5299 enableStatefulSetAutoDeletePVC: false
5303 # -- Specifies whether a ServiceAccount should be created
5305 # @schema type:[string, null]
5306 # -- The name of the ServiceAccount to use.
5307 # If not set and create is true, a name is generated using the fullname template
5309 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5310 # -- Image pull secrets for the service account
5311 imagePullSecrets: []
5312 # @schema additionalProperties:{"type":"string"}
5313 # -- Annotations for the service account
5315 # @schema additionalProperties:{"type":"string"}
5316 # -- Labels for the service account
5318 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5319 automountServiceAccountToken: true
5320# -- Configuration for the bloom-planner
5322 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5324 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5326 # -- Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed.
5327 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5328 statefulSetRecreateJob:
5330 # -- Number of replicas for the bloom-planner
5332 # -- hostAliases to add
5334 # @schema type:[boolean, null]
5338 # -- Use the host's user namespace in the bloom-planner
5340 # @schema additionalProperties:true
5341 # -- DNSConfig for bloom-planner pods
5343 # @schema skipProperties:true;additionalProperties:true
5344 # -- UpdateStrategy or Strategy for the pattern ingester.
5349 # @schema type:[string, null]
5350 # -- The Docker registry for the bloom-planner image. Overrides `loki.image.registry`
5352 # @schema type:[string, null]
5353 # -- Docker image repository for the bloom-planner image. Overrides `loki.image.repository`
5355 # @schema type:[string, null]
5356 # -- Docker image tag for the bloom-planner image. Overrides `loki.image.tag`
5358 # @schema type:[string, null]
5359 # -- Command to execute instead of defined in Docker image
5361 # @schema type:[string, null]
5362 # -- The name of the PriorityClass for bloom-planner pods
5363 priorityClassName: null
5364 # @schema additionalProperties:{"type":"string"}
5365 # -- Labels for bloom-builder
5367 # @schema additionalProperties:{"type":"string"}
5368 # -- Annotations for bloom-builder
5370 # @schema additionalProperties:{"type":"string"}
5371 # -- Labels for bloom-planner pods
5373 # @schema additionalProperties:{"type":"string"}
5374 # -- Annotations for bloom-planner pods
5376 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5377 # -- Affinity for bloom-planner pods.
5378 # @default -- Hard node anti-affinity
5379 # The value will be passed through tpl.
5382 requiredDuringSchedulingIgnoredDuringExecution:
5385 app.kubernetes.io/component: bloom-planner
5386 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5387 app.kubernetes.io/instance: '{{ .Release.Name }}'
5388 topologyKey: kubernetes.io/hostname
5389 # @schema additionalProperties:{"type":"string"};deprecated:true
5390 # -- Labels for bloom-planner service
5391 # @deprecated -- This option is deprecated in favor of `bloomPlanner.service.labels`
5393 # @schema additionalProperties:{"type":"string"};deprecated:true
5394 # -- Annotations for bloom-planner service
5395 # @deprecated -- This option is deprecated in favor of `bloomPlanner.service.annotations`
5396 serviceAnnotations: {}
5398 # @schema additionalProperties:{"type":"string"}
5399 # -- Annotations for bloom-planner Service
5401 # @schema additionalProperties:{"type":"string"}
5402 # -- Additional labels for bloom-planner Service
5404 # -- Service Type for bloom-planner Service
5406 # -- trafficDistribution for bloom-planner Service
5407 trafficDistribution: ""
5408 # -- Session affinity for bloom-planner Service
5410 # @schema additionalProperties:true
5411 # -- Session affinity config for bloom-planner Service
5412 sessionAffinityConfig: {}
5413 # -- ipFamilyPolicy for bloom-planner Service
5414 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5416 # -- ipFamilies for bloom-planner Service
5417 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5419 # -- Adds the appProtocol field to the bloom-planner service. This allows bloom-planner to work with istio protocol selection.
5421 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5424 # @schema additionalProperties:{"type":"string"}
5425 # -- Additional annotations for headless Distributed compactor Service
5427 # @schema additionalProperties:{"type":"string"}
5428 # -- Additional labels for headless Distributed compactor Service
5430 # -- Additional CLI args for the bloom-planner
5432 # -- Environment variables to add to the bloom-planner pods
5434 # -- Environment variables from secrets or configmaps to add to the bloom-planner pods
5436 # -- Volume mounts to add to the bloom-planner pods
5437 extraVolumeMounts: []
5438 # -- Volumes to add to the bloom-planner pods
5440 # @schema skipProperties:true;additionalProperties:true
5441 # -- readiness probe settings for bloom-planner pods. If empty, use `loki.readinessProbe`
5443 # @schema skipProperties:true;additionalProperties:true
5444 # -- liveness probe settings for bloom-planner pods. If empty use `loki.livenessProbe`
5446 # @schema skipProperties:true;additionalProperties:true
5447 # -- startup probe settings for bloom-planner pods. If empty use `loki.startupProbe`
5449 # @schema additionalProperties:true
5450 # -- Resource requests and limits for the bloom-planner
5452 # -- Container resize policy for the bloom-planner
5455 # - resourceName: cpu
5456 # restartPolicy: NotRequired
5457 # - resourceName: memory
5458 # restartPolicy: RestartContainer
5460 # @schema type:[string, array, null]
5461 # -- Containers to add to the bloom-planner pods
5463 # @schema type:[string, array, null]
5464 # -- Init containers to add to the bloom-planner pods
5466 # -- Grace period to allow the bloom-planner to shutdown before it is killed
5467 terminationGracePeriodSeconds: 30
5468 podDisruptionBudget:
5469 # -- Enable Pod Disruption Budget
5471 # @schema additionalProperties:{"type":"string"}
5472 # -- Annotations for Pod Disruption Budget
5474 # @schema additionalProperties:{"type":"string"}
5475 # -- Labels for Pod Disruption Budget
5477 # @schema type:[string, integer, null]
5478 # -- Pod Disruption Budget minAvailable
5480 # @schema type:[string, integer, null]
5481 # -- Pod Disruption Budget maxUnavailable
5482 maxUnavailable: null
5483 # @schema type:[string, null]
5484 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5485 unhealthyPodEvictionPolicy: null
5486 # @schema additionalProperties:true
5487 # -- Node selector for bloom-planner pods
5489 # -- Tolerations for bloom-planner pods
5491 # @schema additionalProperties:true;deprecated:true
5492 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5493 # @deprecated -- This option is deprecated in favor of `bloomPlanner.service.appProtocol`
5496 # -- The default is to deploy all pods in parallel.
5497 podManagementPolicy: "Parallel"
5499 # -- Enable creating PVCs for the bloom-planner
5501 # -- List of the bloom-planner PVCs
5502 # @notationType -- list
5505 # -- Set access modes on the PersistentVolumeClaim
5508 # -- Size of persistent disk
5510 # @schema type:[string, null]
5511 # -- Storage class to be used.
5512 # If defined, storageClassName: <storageClass>.
5513 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5514 # If empty or set to null, no storageClassName spec is
5515 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
5517 # @schema type:[string, null]
5518 # -- Volume attributes class name to be used.
5519 # If empty or set to null, no volumeAttributesClassName spec is set.
5520 # Requires Kubernetes 1.31
5521 volumeAttributesClassName: null
5522 # @schema additionalProperties:{"type":"string"}
5523 # -- Annotations for bloom-planner PVCs
5525 # @schema additionalProperties:{"type":"string"}
5526 # -- Labels for bloom planner PVCs
5528 # -- Enable StatefulSetAutoDeletePVC feature
5529 enableStatefulSetAutoDeletePVC: false
5533 # -- Specifies whether a ServiceAccount should be created
5535 # @schema type:[string, null]
5536 # -- The name of the ServiceAccount to use.
5537 # If not set and create is true, a name is generated using the fullname template
5539 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5540 # -- Image pull secrets for the service account
5541 imagePullSecrets: []
5542 # @schema additionalProperties:{"type":"string"}
5543 # -- Annotations for the service account
5545 # @schema additionalProperties:{"type":"string"}
5546 # -- Labels for the service account
5548 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5549 automountServiceAccountToken: true
5550# -- Configuration for the bloom-builder
5552 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5554 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5556 # -- Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
5557 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5558 statefulSetRecreateJob:
5560 # @schema type:[integer, null]
5561 # -- Number of replicas for the bloom-builder. Set to null to omit spec.replicas from the workload,
5562 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5564 # -- hostAliases to add
5566 # @schema type:[boolean, null]
5570 # -- Use the host's user namespace in the boom-builder
5572 # @schema additionalProperties:true
5573 # -- DNSConfig for bloom-builder pods
5576 # -- Enable autoscaling for the bloom-builder
5578 # -- Minimum autoscaling replicas for the bloom-builder
5580 # -- Maximum autoscaling replicas for the bloom-builder
5582 # @schema type:[integer, null]
5583 # -- Target CPU utilisation percentage for the bloom-builder
5584 targetCPUUtilizationPercentage: 60
5585 # @schema type:[integer, null]
5586 # -- Target memory utilisation percentage for the bloom-builder
5587 targetMemoryUtilizationPercentage: null
5588 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
5593 # name: loki_query_rate
5595 # type: AverageValue
5597 # @schema skipProperties:true;additionalProperties:true
5598 # -- HPA behavior configuration, passed directly as a K8s HPA behavior object.
5600 # -- Enable autoscaling behaviours
5602 # -- define scale down policies, must conform to HPAScalingRules
5604 # -- define scale up policies, must conform to HPAScalingRules
5607 # -- Enable KEDA autoscaling for the bloom-builder. Mutually exclusive with autoscaling.enabled
5609 # @schema type:[integer, null]
5610 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
5611 pollingInterval: null
5612 # -- Minimum replicas for KEDA autoscaling
5614 # -- Maximum replicas for KEDA autoscaling
5616 # @schema type:[integer, null]
5617 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
5618 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
5619 cooldownPeriod: null
5620 # @schema additionalProperties:true
5621 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
5622 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
5624 # @schema skipProperties:true;additionalProperties:true
5625 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
5626 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
5628 # -- KEDA triggers for the bloom-builder.
5629 # Ref: https://keda.sh/docs/latest/scalers/
5632 # @schema type:[string, null]
5633 # -- The Docker registry for the bloom-builder image. Overrides `loki.image.registry`
5635 # @schema type:[string, null]
5636 # -- Docker image repository for the bloom-builder image. Overrides `loki.image.repository`
5638 # @schema type:[string, null]
5639 # -- Docker image tag for the bloom-builder image. Overrides `loki.image.tag`
5641 # @schema type:[string, null]
5642 # -- Command to execute instead of defined in Docker image
5644 # @schema type:[string, null]
5645 # -- The name of the PriorityClass for bloom-builder pods
5646 priorityClassName: null
5647 # @schema additionalProperties:{"type":"string"}
5648 # -- Labels for bloom-builder
5650 # @schema additionalProperties:{"type":"string"}
5651 # -- Annotations for bloom-builder
5653 # @schema additionalProperties:{"type":"string"}
5654 # -- Labels for bloom-builder pods
5656 # @schema additionalProperties:{"type":"string"}
5657 # -- Annotations for bloom-builder pods
5659 # @schema additionalProperties:{"type":"string"};deprecated:true
5660 # -- Labels for bloom-builder service
5661 # @deprecated -- This option is deprecated in favor of `bloomBuilder.service.labels`
5663 # @schema additionalProperties:{"type":"string"};deprecated:true
5664 # -- Annotations for bloom-builder service
5665 # @deprecated -- This option is deprecated in favor of `bloomBuilder.service.annotations`
5666 serviceAnnotations: {}
5668 # @schema additionalProperties:{"type":"string"}
5669 # -- Annotations for bloom-builder Service
5671 # @schema additionalProperties:{"type":"string"}
5672 # -- Additional labels for bloom-builder Service
5674 # -- Service Type for bloom-builder Service
5676 # -- trafficDistribution for bloom-builder Service
5677 trafficDistribution: ""
5678 # -- Session affinity for bloom-builder Service
5680 # @schema additionalProperties:true
5681 # -- Session affinity config for bloom-builder Service
5682 sessionAffinityConfig: {}
5683 # -- ipFamilyPolicy for bloom-builder Service
5684 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5686 # -- ipFamilies for bloom-builder Service
5687 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5689 # -- Adds the appProtocol field to the bloom-builder service. This allows bloom-builder to work with istio protocol selection.
5691 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5694 # @schema additionalProperties:{"type":"string"}
5695 # -- Additional annotations for headless Distributed compactor Service
5697 # @schema additionalProperties:{"type":"string"}
5698 # -- Additional labels for headless Distributed compactor Service
5700 # -- Additional CLI args for the bloom-builder
5702 # -- Environment variables to add to the bloom-builder pods
5704 # -- Environment variables from secrets or configmaps to add to the bloom-builder pods
5706 # -- Volume mounts to add to the bloom-builder pods
5707 extraVolumeMounts: []
5708 # -- Volumes to add to the bloom-builder pods
5710 # @schema additionalProperties:true
5711 # -- Resource requests and limits for the bloom-builder
5713 # -- Container resize policy for the bloom-builder
5716 # - resourceName: cpu
5717 # restartPolicy: NotRequired
5718 # - resourceName: memory
5719 # restartPolicy: RestartContainer
5721 # @schema type:[string, array, null]
5722 # -- Init containers to add to the bloom-builder pods
5724 # @schema type:[string, array, null]
5725 # -- Containers to add to the bloom-builder pods
5727 # -- Grace period to allow the bloom-builder to shutdown before it is killed
5728 terminationGracePeriodSeconds: 30
5729 podDisruptionBudget:
5730 # -- Enable Pod Disruption Budget
5732 # @schema additionalProperties:{"type":"string"}
5733 # -- Annotations for Pod Disruption Budget
5735 # @schema additionalProperties:{"type":"string"}
5736 # -- Labels for Pod Disruption Budget
5738 # @schema type:[string, integer, null]
5739 # -- Pod Disruption Budget minAvailable
5741 # @schema type:[string, integer, null]
5742 # -- Pod Disruption Budget maxUnavailable
5743 maxUnavailable: null
5744 # @schema type:[string, null]
5745 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5746 unhealthyPodEvictionPolicy: null
5747 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5748 # -- Affinity for bloom-builder pods.
5749 # @default -- Hard node anti-affinity
5750 # The value will be passed through tpl.
5753 requiredDuringSchedulingIgnoredDuringExecution:
5756 app.kubernetes.io/component: bloom-builder
5757 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5758 app.kubernetes.io/instance: '{{ .Release.Name }}'
5759 topologyKey: kubernetes.io/hostname
5760 # @schema type:[string, integer, null];deprecated:true
5761 # -- Pod Disruption Budget maxUnavailable
5762 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5763 maxUnavailable: null
5764 # @schema additionalProperties:true
5765 # -- Node selector for bloom-builder pods
5767 # -- Tolerations for bloom-builder pods
5769 # @schema additionalProperties:true;deprecated:true
5770 # -- Adds the appProtocol field to the queryFrontend service. This allows bloomBuilder to work with istio protocol selection.
5771 # @deprecated -- This option is deprecated in favor of `bloomBuilder.service.appProtocol`
5773 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5775 # @schema skipProperties:true;additionalProperties:true
5776 # -- Update strategy for bloom-builder deployment
5780 # @schema type:[string, integer, null]
5781 # -- Pod Disruption Budget maxUnavailable
5784 # -- Enable generic ephemeral volume-backed storage for the bloom-builder `data` volume.
5786 # -- Storage type for the bloom-builder. pvc and ephemeral are supported.
5788 # -- Set access modes on the generated volumeClaimTemplate.
5791 # -- Size of the generated volumeClaimTemplate.
5793 # @schema type:[string, null]
5794 # -- Storage class to be used for the generated volumeClaimTemplate.
5795 # If defined, storageClassName: <storageClass>.
5796 # If set to "-", storageClassName: "", which disables dynamic provisioning.
5797 # If empty or set to null, no storageClassName spec is set, choosing the default provisioner.
5799 # @schema type:[string, null]
5800 # -- Volume attributes class name to be used for the generated volumeClaimTemplate.
5801 # If empty or set to null, no volumeAttributesClassName spec is set.
5802 # Requires Kubernetes 1.31
5803 volumeAttributesClassName: null
5804 # @schema type:[object, null]
5805 # -- Selector for the generated volumeClaimTemplate.
5807 # @schema additionalProperties:{"type":"string"}
5808 # -- Annotations for the generated volumeClaimTemplate.
5810 # @schema additionalProperties:{"type":"string"}
5811 # -- Labels for the generated volumeClaimTemplate.
5814 # -- Specifies whether a ServiceAccount should be created
5816 # @schema type:[string, null]
5817 # -- The name of the ServiceAccount to use.
5818 # If not set and create is true, a name is generated using the fullname template
5820 # @schema item:object;itemProperties:{"name": {"type": "string"}}
5821 # -- Image pull secrets for the service account
5822 imagePullSecrets: []
5823 # @schema additionalProperties:{"type":"string"}
5824 # -- Annotations for the service account
5826 # @schema additionalProperties:{"type":"string"}
5827 # -- Labels for the service account
5829 # -- Set this toggle to false to opt out of automounting API credentials for the service account
5830 automountServiceAccountToken: true
5831# -- Configuration for the pattern ingester
5833 # -- Enable the component. Requires `loki.deploymentMode` to be set to `Distributed`.
5835 # -- Kind of compactor deployment. StatefulSet and Deployment are supported.
5837 # -- EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed.
5838 ## Only applicable if `compactor.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
5839 statefulSetRecreateJob:
5841 # @schema type:[integer, null]
5842 # -- Number of replicas for the pattern ingester. Set to null to omit spec.replicas from the workload,
5843 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
5845 # @schema skipProperties:true;additionalProperties:true
5846 # -- UpdateStrategy or Strategy for the pattern ingester.
5850 # @schema additionalProperties:true
5851 # -- DNSConfig for pattern ingester pods
5853 # -- hostAliases to add
5855 # @schema type:[boolean, null]
5859 # -- Use the host's user namespace in the pattern ingester
5862 # @schema type:[string, null]
5863 # -- The Docker registry for the pattern ingester image. Overrides `loki.image.registry`
5865 # @schema type:[string, null]
5866 # -- Docker image repository for the pattern ingester image. Overrides `loki.image.repository`
5868 # @schema type:[string, null]
5869 # -- Docker image tag for the pattern ingester image. Overrides `loki.image.tag`
5871 # @schema type:[string, null]
5872 # -- Command to execute instead of defined in Docker image
5874 # @schema type:[string, null]
5875 # -- The name of the PriorityClass for pattern ingester pods
5876 priorityClassName: null
5877 # @schema additionalProperties:{"type":"string"}
5878 # -- Labels for pattern ingester
5880 # @schema additionalProperties:{"type":"string"}
5881 # -- Annotations for pattern ingester
5883 # @schema additionalProperties:{"type":"string"}
5884 # -- Labels for pattern ingester pods
5886 # @schema additionalProperties:{"type":"string"}
5887 # -- Annotations for pattern ingester pods
5889 # @schema type:[object, null];skipProperties:true;additionalProperties:true
5890 # -- Affinity for pattern ingester pods.
5891 # @default -- Hard node anti-affinity
5892 # The value will be passed through tpl.
5895 requiredDuringSchedulingIgnoredDuringExecution:
5898 app.kubernetes.io/component: pattern-ingester
5899 app.kubernetes.io/name: '{{ include "loki.name" . }}'
5900 app.kubernetes.io/instance: '{{ .Release.Name }}'
5901 topologyKey: kubernetes.io/hostname
5902 # @schema type:[string, integer, null];deprecated:true
5903 # -- Pod Disruption Budget maxUnavailable
5904 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
5905 maxUnavailable: null
5906 # -- Additional CLI args for the pattern ingester
5908 # -- Environment variables to add to the pattern ingester pods
5910 # -- Environment variables from secrets or configmaps to add to the pattern ingester pods
5912 # -- Volume mounts to add to the pattern ingester pods
5913 extraVolumeMounts: []
5914 # -- Volumes to add to the pattern ingester pods
5916 # @schema skipProperties:true;additionalProperties:true
5917 # -- readiness probe settings for pattern ingester pods. If empty, use `loki.readinessProbe`
5919 # @schema skipProperties:true;additionalProperties:true
5920 # -- liveness probe settings for pattern ingester pods. If empty use `loki.livenessProbe`
5922 # @schema skipProperties:true;additionalProperties:true
5923 # -- startup probe settings for pattern ingester pods. If empty use `loki.startupProbe`
5925 # @schema additionalProperties:true
5926 # -- Resource requests and limits for the pattern ingester
5928 # -- Container resize policy for the pattern ingester
5931 # - resourceName: cpu
5932 # restartPolicy: NotRequired
5933 # - resourceName: memory
5934 # restartPolicy: RestartContainer
5936 # @schema type:[string, array, null]
5937 # -- Containers to add to the pattern ingester pods
5939 # @schema type:[string, array, null]
5940 # -- Init containers to add to the pattern ingester pods
5942 # -- Grace period to allow the pattern ingester to shutdown before it is killed
5943 terminationGracePeriodSeconds: 30
5944 podDisruptionBudget:
5945 # -- Enable Pod Disruption Budget
5947 # @schema additionalProperties:{"type":"string"}
5948 # -- Annotations for Pod Disruption Budget
5950 # @schema additionalProperties:{"type":"string"}
5951 # -- Labels for Pod Disruption Budget
5953 # @schema type:[string, integer, null]
5954 # -- Pod Disruption Budget minAvailable
5956 # @schema type:[string, integer, null]
5957 # -- Pod Disruption Budget maxUnavailable
5958 maxUnavailable: null
5959 # @schema type:[string, null]
5960 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
5961 unhealthyPodEvictionPolicy: null
5962 # @schema additionalProperties:true
5963 # -- Node selector for pattern ingester pods
5965 # @schema item:object
5966 # -- Topology Spread Constraints for pattern ingester pods
5967 # The value will be passed through tpl.
5968 topologySpreadConstraints: []
5971 # @schema additionalProperties:{"type":"string"}
5972 # -- Annotations for pattern ingester Service
5974 # @schema additionalProperties:{"type":"string"}
5975 # -- Additional labels for pattern ingester Service
5977 # -- Service Type for pattern ingester Service
5979 # -- trafficDistribution for pattern ingester Service
5980 trafficDistribution: ""
5981 # -- Session affinity for pattern ingester Service
5983 # @schema additionalProperties:true
5984 # -- Session affinity config for pattern ingester Service
5985 sessionAffinityConfig: {}
5986 # -- ipFamilyPolicy for pattern ingester Service
5987 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5989 # -- ipFamilies for pattern ingester Service
5990 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
5992 # -- Adds the appProtocol field to the pattern ingester service. This allows pattern ingester to work with istio protocol selection.
5994 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
5997 # @schema additionalProperties:{"type":"string"}
5998 # -- Additional annotations for headless pattern ingester Service
6000 # @schema additionalProperties:{"type":"string"}
6001 # -- Additional labels for headless pattern ingester Service
6003 # @schema additionalProperties:true;deprecated:true
6004 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
6005 # @deprecated -- This option is deprecated in favor of `patternIngester.service.appProtocol`
6009 # -- Enable creating PVCs for the pattern ingester
6011 # -- Size of persistent disk
6013 # @schema type:[string, null]
6014 # -- Storage class to be used.
6015 # If defined, storageClassName: <storageClass>.
6016 # If set to "-", storageClassName: "", which disables dynamic provisioning.
6017 # If empty or set to null, no storageClassName spec is
6018 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6020 # -- List of the pattern ingester PVCs
6021 # @notationType -- list
6024 # -- Set access modes on the PersistentVolumeClaim
6028 # @schema type:[string, null]
6029 # -- Storage class to be used.
6030 # If defined, storageClassName: <storageClass>.
6031 # If set to "-", storageClassName: "", which disables dynamic provisioning.
6032 # If empty or set to null, no storageClassName spec is
6033 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6035 # @schema type:[string, null]
6036 # -- Volume attributes class name to be used.
6037 # If empty or set to null, no volumeAttributesClassName spec is set.
6038 # Requires Kubernetes 1.31
6039 volumeAttributesClassName: null
6040 # @schema additionalProperties:{"type":"string"}
6041 # -- Annotations for pattern ingester PVCs
6043 # @schema additionalProperties:{"type":"string"}
6044 # -- Labels for pattern ingester PVCs
6048 # -- Enable StatefulSetAutoDeletePVC feature
6049 enableStatefulSetAutoDeletePVC: false
6053 # -- Specifies whether a ServiceAccount should be created
6055 # @schema type:[string, null]
6056 # -- The name of the ServiceAccount to use.
6057 # If not set and create is true, a name is generated using the fullname template
6059 # @schema item:object;itemProperties:{"name": {"type": "string"}}
6060 # -- Image pull secrets for the service account
6061 imagePullSecrets: []
6062 # @schema additionalProperties:{"type":"string"}
6063 # -- Annotations for the service account
6065 # @schema additionalProperties:{"type":"string"}
6066 # -- Labels for the service account
6068 # -- Set this toggle to false to opt out of automounting API credentials for the service account
6069 automountServiceAccountToken: true
6070# -- Configuration for the ruler
6072 # -- The ruler component is optional and can be disabled if desired.
6074 # -- If set to true, a dedicated query path (`ruler-querier`, `ruler-query-frontend`,
6075 # and `ruler-query-scheduler`) is deployed for the ruler and `ruler.evaluation.mode` is configured to `remote`.
6076 # This isolates ruler queries from other query workloads (API/Grafana).
6077 # Requires a Distributed deployment mode with object storage; rendering fails otherwise.
6078 remoteEvaluationDedicatedQueryPath: false
6079 # -- Kind of ruler deployment. StatefulSet and Deployment are supported.
6081 # -- EXPERIMENTAL: Enable creating a Job to recreate the ruler StatefulSet when the ruler configuration is changed.
6082 ## Only applicable if `ruler.kind` is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet.
6083 statefulSetRecreateJob:
6085 # -- Whether to enable the rules sidecar
6087 # @schema type:[integer, null]
6088 # -- Number of replicas for the ruler. Set to null to omit spec.replicas from the workload,
6089 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
6091 # -- hostAliases to add
6093 # @schema type:[boolean, null]
6097 # -- Use the host's user namespace in the ruler
6100 # @schema type:[string, null]
6101 # -- The Docker registry for the ruler image. Overrides `loki.image.registry`
6103 # @schema type:[string, null]
6104 # -- Docker image repository for the ruler image. Overrides `loki.image.repository`
6106 # @schema type:[string, null]
6107 # -- Docker image tag for the ruler image. Overrides `loki.image.tag`
6109 # @schema type:[string, null]
6110 # -- Command to execute instead of defined in Docker image
6112 # @schema type:[string, null]
6113 # -- The name of the PriorityClass for ruler pods
6114 priorityClassName: null
6115 # @schema additionalProperties:{"type":"string"}
6116 # -- Labels for ruler
6118 # @schema additionalProperties:{"type":"string"}
6119 # -- Annotations for ruler
6121 # @schema additionalProperties:{"type":"string"}
6122 # -- Labels for ruler pods
6124 # @schema additionalProperties:{"type":"string"}
6125 # -- Annotations for ruler pods
6127 # @schema additionalProperties:{"type":"string"};deprecated:true
6128 # -- Labels for ruler service
6129 # @deprecated -- This option is deprecated in favor of `ruler.service.labels`
6131 # @schema additionalProperties:{"type":"string"};deprecated:true
6132 # -- Annotations for ruler service
6133 # @deprecated -- This option is deprecated in favor of `ruler.service.annotations`
6134 serviceAnnotations: {}
6136 # @schema additionalProperties:{"type":"string"}
6137 # -- Annotations for ruler Service
6139 # @schema additionalProperties:{"type":"string"}
6140 # -- Additional labels for ruler Service
6142 # -- Service Type for ruler Service
6144 # -- trafficDistribution for ruler Service
6145 trafficDistribution: ""
6146 # -- Session affinity for ruler Service
6148 # @schema additionalProperties:true
6149 # -- Session affinity config for ruler Service
6150 sessionAffinityConfig: {}
6151 # -- ipFamilyPolicy for ruler Service
6152 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6154 # -- ipFamilies for ruler Service
6155 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6157 # -- Adds the appProtocol field to the ruler service. This allows ruler to work with istio protocol selection.
6159 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
6162 # @schema additionalProperties:{"type":"string"}
6163 # -- Additional annotations for headless Distributed compactor Service
6165 # @schema additionalProperties:{"type":"string"}
6166 # -- Additional labels for headless Distributed compactor Service
6168 # -- Additional CLI args for the ruler
6170 # -- Environment variables to add to the ruler pods
6172 # -- Environment variables from secrets or configmaps to add to the ruler pods
6174 # -- Volume mounts to add to the ruler pods
6175 extraVolumeMounts: []
6176 # -- Volumes to add to the ruler pods
6178 # @schema additionalProperties:true
6179 # -- Resource requests and limits for the ruler
6181 # -- Container resize policy for the ruler
6184 # - resourceName: cpu
6185 # restartPolicy: NotRequired
6186 # - resourceName: memory
6187 # restartPolicy: RestartContainer
6189 # @schema type:[string, array, null]
6190 # -- Containers to add to the ruler pods
6192 # @schema type:[string, array, null]
6193 # -- Init containers to add to the ruler pods
6195 # -- Grace period to allow the ruler to shutdown before it is killed
6196 terminationGracePeriodSeconds: 300
6197 podDisruptionBudget:
6198 # -- Enable Pod Disruption Budget
6200 # @schema additionalProperties:{"type":"string"}
6201 # -- Annotations for Pod Disruption Budget
6203 # @schema additionalProperties:{"type":"string"}
6204 # -- Labels for Pod Disruption Budget
6206 # @schema type:[string, integer, null]
6207 # -- Pod Disruption Budget minAvailable
6209 # @schema type:[string, integer, null]
6210 # -- Pod Disruption Budget maxUnavailable
6211 maxUnavailable: null
6212 # @schema type:[string, null]
6213 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
6214 unhealthyPodEvictionPolicy: null
6215 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6216 # -- Affinity for ruler pods.
6217 # @default -- Hard node anti-affinity
6218 # The value will be passed through tpl.
6221 requiredDuringSchedulingIgnoredDuringExecution:
6224 app.kubernetes.io/component: ruler
6225 app.kubernetes.io/name: '{{ include "loki.name" . }}'
6226 app.kubernetes.io/instance: '{{ .Release.Name }}'
6227 topologyKey: kubernetes.io/hostname
6228 # @schema type:[string, integer, null];deprecated:true
6229 # -- Pod Disruption Budget maxUnavailable
6230 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
6231 maxUnavailable: null
6232 # @schema additionalProperties:true
6233 # -- Node selector for ruler pods
6235 # @schema item:object
6236 # -- Topology Spread Constraints for ruler pods
6237 # The value will be passed through tpl.
6238 topologySpreadConstraints: []
6240 # @schema additionalProperties:true
6241 # -- DNSConfig for ruler pods
6244 # -- Enable creating PVCs which is required when using recording rules
6246 # -- Set access modes on the PersistentVolumeClaim
6249 # -- Size of persistent disk
6251 # @schema type:[string, null]
6252 # -- Storage class to be used.
6253 # If defined, storageClassName: <storageClass>.
6254 # If set to "-", storageClassName: "", which disables dynamic provisioning.
6255 # If empty or set to null, no storageClassName spec is
6256 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
6258 # @schema type:[string, null]
6259 # -- Volume attributes class name to be used.
6260 # If empty or set to null, no volumeAttributesClassName spec is set.
6261 # Requires Kubernetes 1.31
6262 volumeAttributesClassName: null
6263 # @schema additionalProperties:{"type":"string"}
6264 # -- Annotations for ruler PVCs
6266 # @schema additionalProperties:{"type":"string"}
6267 # -- Labels for ruler PVCs
6269 # @schema additionalProperties:true;deprecated:true
6270 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
6271 # @deprecated -- This option is deprecated in favor of `ruler.service.appProtocol`
6274 # -- Directories containing rules files. If used, you must also configure `loki.rulerConfig.storage` to use local storage.
6279 # - name: should_fire
6281 # - alert: HighPercentageError
6283 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
6285 # sum(rate({app="foo", env="production"}[5m])) by (job)
6291 # summary: High error rate
6292 # - name: credentials_leak
6294 # - alert: http-credentials-leaked
6296 # message: "{{ $labels.job }} is leaking http basic auth credentials."
6297 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
6300 # severity: critical
6305 # - alert: HighThroughputLogStreams
6306 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
6311 # - name: should_fire
6313 # - alert: HighPercentageError
6315 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
6317 # sum(rate({app="foo", env="production"}[5m])) by (job)
6323 # summary: High error rate
6324 # - name: credentials_leak
6326 # - alert: http-credentials-leaked
6328 # message: "{{ $labels.job }} is leaking http basic auth credentials."
6329 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
6332 # severity: critical
6337 # - alert: HighThroughputLogStreams
6338 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
6342 # -- Specifies whether a ServiceAccount should be created
6344 # @schema type:[string, null]
6345 # -- The name of the ServiceAccount to use.
6346 # If not set and create is true, a name is generated using the fullname template
6348 # @schema item:object;itemProperties:{"name": {"type": "string"}}
6349 # -- Image pull secrets for the service account
6350 imagePullSecrets: []
6351 # @schema additionalProperties:{"type":"string"}
6352 # -- Annotations for the service account
6354 # @schema additionalProperties:{"type":"string"}
6355 # -- Labels for the service account
6357 # -- Set this toggle to false to opt out of automounting API credentials for the service account
6358 automountServiceAccountToken: true
6359# -- Configuration for the ruler-querier. Only deployed when `deploymentMode` is `Distributed`, `ruler.enabled` is `true`, and `ruler.remoteEvaluationDedicatedQueryPath` is `true`.
6361 # -- Kind of ruler-querier workload. StatefulSet and Deployment are supported.
6363 # @schema type:[integer, null]
6364 # -- Number of replicas for the ruler-querier. Set to null to omit spec.replicas from the workload,
6365 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
6367 # @schema skipProperties:true;additionalProperties:true
6368 # -- Strategy for the ruler-querier.
6373 # @schema type:[string, integer, null]
6374 # -- RollingUpdate maxUnavailable
6376 # -- hostAliases to add
6378 # @schema type:[boolean, null]
6379 # -- Use the host's user namespace in the ruler-querier
6382 # -- Enable autoscaling for the ruler-querier
6384 # -- Minimum autoscaling replicas for the ruler-querier
6386 # -- Maximum autoscaling replicas for the ruler-querier
6388 # @schema type:[integer, null]
6389 # -- Target CPU utilization percentage for the ruler-querier
6390 targetCPUUtilizationPercentage: 60
6391 # @schema type:[integer, null]
6392 # -- Target memory utilization percentage for the ruler-querier
6393 targetMemoryUtilizationPercentage: null
6394 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
6396 # @schema skipProperties:true;additionalProperties:true
6397 # -- HPA behavior configuration, passed directly as a Kubernetes HPA behavior object.
6399 # -- Enable autoscaling behaviors
6401 # -- Define scale down policies, must conform to HPAScalingRules
6403 # -- Define scale up policies, must conform to HPAScalingRules
6406 # -- Enable KEDA autoscaling for the ruler-querier. Mutually exclusive with autoscaling.enabled
6408 # @schema type:[integer, null]
6409 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
6410 pollingInterval: null
6411 # -- Minimum replicas for KEDA autoscaling
6413 # -- Maximum replicas for KEDA autoscaling
6415 # @schema type:[integer, null]
6416 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
6417 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
6418 cooldownPeriod: null
6419 # @schema additionalProperties:true
6420 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
6421 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
6423 # @schema skipProperties:true;additionalProperties:true
6424 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
6425 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
6427 # -- KEDA triggers for the ruler-querier. Defaults to a Prometheus trigger using ruler-query-scheduler inflight requests.
6428 # The default query selects on the `container` label, which Prometheus Operator ServiceMonitors and PodMonitors set.
6429 # Without that label, the query returns no data and the ruler-querier stays at `minReplicas`.
6432 name: ruler_querier_autoscaling_metric
6434 serverAddress: "{{ .Values.defaults.kedaAutoscaling.prometheusAddress }}"
6435 query: sum(max_over_time(loki_query_scheduler_inflight_requests{container="ruler-query-scheduler",quantile="0.75"}[2m]))
6437 unsafeSsl: "{{ .Values.defaults.kedaAutoscaling.unsafeSsl }}"
6438 ignoreNullValues: "{{ .Values.defaults.kedaAutoscaling.ignoreNullValues }}"
6439 customHeaders: "{{ .Values.defaults.kedaAutoscaling.customHeaders }}"
6440 authModes: "{{ .Values.defaults.kedaAutoscaling.authentication.authModes }}"
6442 # @schema type:[string, null]
6443 # -- The Docker registry for the ruler-querier image. Overrides `loki.image.registry`
6445 # @schema type:[string, null]
6446 # -- Docker image repository for the ruler-querier image. Overrides `loki.image.repository`
6448 # @schema type:[string, null]
6449 # -- Docker image tag for the ruler-querier image. Overrides `loki.image.tag`
6451 # @schema type:[string, null]
6452 # -- Overrides the image tag with an image digest. Overrides `loki.image.digest`
6454 # @schema type:[string, null]
6455 # -- Docker image pull policy for the ruler-querier image. Overrides `loki.image.pullPolicy`
6457 # @schema type:[string, null]
6458 # -- Command to execute instead of defined in Docker image
6460 # @schema type:[string, null]
6461 # -- The name of the PriorityClass for ruler-querier pods
6462 priorityClassName: null
6463 # @schema additionalProperties:{"type":"string"}
6464 # -- Labels for ruler-querier
6466 # @schema additionalProperties:{"type":"string"}
6467 # -- Annotations for ruler-querier
6469 # @schema additionalProperties:{"type":"string"}
6470 # -- Labels for ruler-querier pods
6472 # @schema additionalProperties:{"type":"string"}
6473 # -- Annotations for ruler-querier pods
6476 # @schema additionalProperties:{"type":"string"}
6477 # -- Annotations for ruler-querier Service
6479 # @schema additionalProperties:{"type":"string"}
6480 # -- Additional labels for ruler-querier Service
6482 # -- Service Type for ruler-querier Service
6484 # @schema type:[boolean, null]
6485 # -- publishNotReadyAddresses for ruler-querier Service. Defaults to `defaults.service.publishNotReadyAddresses` if not set.
6486 publishNotReadyAddresses: null
6487 # -- trafficDistribution for ruler-querier Service
6488 trafficDistribution: ""
6489 # -- Session affinity for ruler-querier Service
6491 # @schema additionalProperties:true
6492 # -- Session affinity config for ruler-querier Service
6493 sessionAffinityConfig: {}
6494 # -- ipFamilyPolicy for ruler-querier Service
6495 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6497 # -- ipFamilies for ruler-querier Service
6498 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6500 # -- Adds the appProtocol field to the ruler-querier Service. This allows ruler-querier to work with Istio protocol selection.
6502 # -- Set the optional gRPC service protocol. Ex: "grpc", "http2" or "https"
6505 # @schema additionalProperties:{"type":"string"}
6506 # -- Additional annotations for headless ruler-querier Service
6508 # @schema additionalProperties:{"type":"string"}
6509 # -- Additional labels for headless ruler-querier Service
6511 # -- Additional CLI args for the ruler-querier
6513 # -- Environment variables to add to the ruler-querier pods
6515 # -- Environment variables from Secrets or ConfigMaps to add to the ruler-querier pods
6517 # -- Volume mounts to add to the ruler-querier pods
6518 extraVolumeMounts: []
6519 # -- Volumes to add to the ruler-querier pods
6521 # @schema skipProperties:true;additionalProperties:true
6522 # -- Readiness probe settings for ruler-querier pods. If empty, use `loki.readinessProbe`
6524 # @schema skipProperties:true;additionalProperties:true
6525 # -- Liveness probe settings for ruler-querier pods. If empty, use `loki.livenessProbe`
6527 # @schema skipProperties:true;additionalProperties:true
6528 # -- Startup probe settings for ruler-querier pods. If empty, use `loki.startupProbe`
6530 # -- Lifecycle for the ruler-querier container
6532 # @schema additionalProperties:true
6533 # -- Resource requests and limits for the ruler-querier
6535 # -- Container resize policy for the ruler-querier
6537 # @schema type:[string, array, null]
6538 # -- Containers to add to the ruler-querier pods
6540 # @schema type:[string, array, null]
6541 # -- Init containers to add to the ruler-querier pods
6543 # -- Grace period to allow the ruler-querier to shut down before it is killed
6544 terminationGracePeriodSeconds: 30
6545 podDisruptionBudget:
6546 # -- Enable Pod Disruption Budget
6548 # @schema additionalProperties:{"type":"string"}
6549 # -- Annotations for Pod Disruption Budget
6551 # @schema additionalProperties:{"type":"string"}
6552 # -- Labels for Pod Disruption Budget
6554 # @schema type:[string, integer, null]
6555 # -- Pod Disruption Budget minAvailable
6557 # @schema type:[string, integer, null]
6558 # -- Pod Disruption Budget maxUnavailable
6560 # @schema type:[string, null]
6561 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
6562 unhealthyPodEvictionPolicy: null
6563 # @schema item:object
6564 # -- Topology Spread Constraints for ruler-querier pods.
6565 # @default -- Defaults to allow skew no more than 1 node
6566 # The value will be passed through tpl.
6567 topologySpreadConstraints:
6569 topologyKey: kubernetes.io/hostname
6570 whenUnsatisfiable: ScheduleAnyway
6573 app.kubernetes.io/component: ruler-querier
6574 app.kubernetes.io/name: '{{ include "loki.name" . }}'
6575 app.kubernetes.io/instance: '{{ .Release.Name }}'
6576 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6577 # -- Affinity for ruler-querier pods.
6578 # @default -- Hard node anti-affinity
6579 # The value will be passed through tpl.
6582 requiredDuringSchedulingIgnoredDuringExecution:
6585 app.kubernetes.io/component: ruler-querier
6586 app.kubernetes.io/name: '{{ include "loki.name" . }}'
6587 app.kubernetes.io/instance: '{{ .Release.Name }}'
6588 topologyKey: kubernetes.io/hostname
6589 # @schema additionalProperties:true
6590 # -- Node selector for ruler-querier pods
6592 # -- Tolerations for ruler-querier pods
6594 # @schema additionalProperties:true
6595 # -- DNSConfig for ruler-querier pods
6598 # -- Specifies whether a ServiceAccount should be created
6600 # @schema type:[string, null]
6601 # -- The name of the ServiceAccount to use.
6602 # If not set and create is true, a name is generated using the fullname template
6604 # @schema item:object;itemProperties:{"name": {"type": "string"}}
6605 # -- Image pull secrets for the service account
6606 imagePullSecrets: []
6607 # @schema additionalProperties:{"type":"string"}
6608 # -- Annotations for the service account
6610 # @schema additionalProperties:{"type":"string"}
6611 # -- Labels for the service account
6613 # -- Set this toggle to false to opt out of automounting API credentials for the service account
6614 automountServiceAccountToken: true
6615# -- Configuration for the ruler-query-frontend. Only deployed when `deploymentMode` is `Distributed`, `ruler.enabled` is `true`, and `ruler.remoteEvaluationDedicatedQueryPath` is `true`.
6617 # -- Kind of ruler-query-frontend workload. StatefulSet and Deployment are supported.
6619 # @schema type:[integer, null]
6620 # -- Number of replicas for the ruler-query-frontend. Set to null to omit spec.replicas from the workload,
6621 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
6623 # @schema skipProperties:true;additionalProperties:true
6624 # -- Strategy for the ruler-query-frontend.
6629 # @schema type:[string, integer, null]
6630 # -- RollingUpdate maxUnavailable
6632 # -- hostAliases to add
6634 # @schema type:[boolean, null]
6635 # -- Use the host's user namespace in the ruler-query-frontend
6638 # -- Enable autoscaling for the ruler-query-frontend
6640 # -- Minimum autoscaling replicas for the ruler-query-frontend
6642 # -- Maximum autoscaling replicas for the ruler-query-frontend
6644 # @schema type:[integer, null]
6645 # -- Target CPU utilization percentage for the ruler-query-frontend
6646 targetCPUUtilizationPercentage: 60
6647 # @schema type:[integer, null]
6648 # -- Target memory utilization percentage for the ruler-query-frontend
6649 targetMemoryUtilizationPercentage: null
6650 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
6652 # @schema skipProperties:true;additionalProperties:true
6653 # -- HPA behavior configuration, passed directly as a Kubernetes HPA behavior object.
6655 # -- Enable autoscaling behaviors
6657 # -- Define scale down policies, must conform to HPAScalingRules
6659 # -- Define scale up policies, must conform to HPAScalingRules
6662 # -- Enable KEDA autoscaling for the ruler-query-frontend. Mutually exclusive with autoscaling.enabled
6664 # @schema type:[integer, null]
6665 # -- Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set.
6666 pollingInterval: null
6667 # -- Minimum replicas for KEDA autoscaling
6669 # -- Maximum replicas for KEDA autoscaling
6671 # @schema type:[integer, null]
6672 # -- Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds).
6673 # Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set.
6674 cooldownPeriod: null
6675 # @schema additionalProperties:true
6676 # -- Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved.
6677 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback
6679 # @schema skipProperties:true;additionalProperties:true
6680 # -- Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior).
6681 # Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced
6683 # -- KEDA triggers for the ruler-query-frontend.
6684 # Ref: https://keda.sh/docs/latest/scalers/
6687 # @schema type:[string, null]
6688 # -- The Docker registry for the ruler-query-frontend image. Overrides `loki.image.registry`
6690 # @schema type:[string, null]
6691 # -- Docker image repository for the ruler-query-frontend image. Overrides `loki.image.repository`
6693 # @schema type:[string, null]
6694 # -- Docker image tag for the ruler-query-frontend image. Overrides `loki.image.tag`
6696 # @schema type:[string, null]
6697 # -- Overrides the image tag with an image digest. Overrides `loki.image.digest`
6699 # @schema type:[string, null]
6700 # -- Docker image pull policy for the ruler-query-frontend image. Overrides `loki.image.pullPolicy`
6702 # @schema type:[string, null]
6703 # -- Command to execute instead of defined in Docker image
6705 # @schema type:[string, null]
6706 # -- The name of the PriorityClass for ruler-query-frontend pods
6707 priorityClassName: null
6708 # @schema additionalProperties:{"type":"string"}
6709 # -- Labels for ruler-query-frontend
6711 # @schema additionalProperties:{"type":"string"}
6712 # -- Annotations for ruler-query-frontend
6714 # @schema additionalProperties:{"type":"string"}
6715 # -- Labels for ruler-query-frontend pods
6717 # @schema additionalProperties:{"type":"string"}
6718 # -- Annotations for ruler-query-frontend pods
6721 # @schema additionalProperties:{"type":"string"}
6722 # -- Annotations for ruler-query-frontend Service
6724 # @schema additionalProperties:{"type":"string"}
6725 # -- Additional labels for ruler-query-frontend Service
6727 # -- Service Type for ruler-query-frontend Service
6729 # @schema type:[boolean, null]
6730 # -- publishNotReadyAddresses for ruler-query-frontend Service. Defaults to false so terminating pods are withdrawn from headless DNS during shutdown delay.
6731 publishNotReadyAddresses: false
6732 # -- trafficDistribution for ruler-query-frontend Service
6733 trafficDistribution: ""
6734 # -- Session affinity for ruler-query-frontend Service
6736 # @schema additionalProperties:true
6737 # -- Session affinity config for ruler-query-frontend Service
6738 sessionAffinityConfig: {}
6739 # -- ipFamilyPolicy for ruler-query-frontend Service
6740 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6742 # -- ipFamilies for ruler-query-frontend Service
6743 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6745 # -- Adds the appProtocol field to the ruler-query-frontend Service. This allows ruler-query-frontend to work with Istio protocol selection.
6747 # -- Set the optional gRPC service protocol. Ex: "grpc", "http2" or "https"
6750 # @schema additionalProperties:{"type":"string"}
6751 # -- Additional annotations for headless ruler-query-frontend Service
6753 # @schema additionalProperties:{"type":"string"}
6754 # -- Additional labels for headless ruler-query-frontend Service
6756 # -- Additional CLI args for the ruler-query-frontend
6758 # -- Environment variables to add to the ruler-query-frontend pods
6760 # -- Environment variables from Secrets or ConfigMaps to add to the ruler-query-frontend pods
6762 # -- Volume mounts to add to the ruler-query-frontend pods
6763 extraVolumeMounts: []
6764 # -- Volumes to add to the ruler-query-frontend pods
6766 # @schema skipProperties:true;additionalProperties:true
6767 # -- Readiness probe settings for ruler-query-frontend pods. If empty, use `loki.readinessProbe`
6769 # @schema skipProperties:true;additionalProperties:true
6770 # -- Liveness probe settings for ruler-query-frontend pods. If empty, use `loki.livenessProbe`
6772 # @schema skipProperties:true;additionalProperties:true
6773 # -- Startup probe settings for ruler-query-frontend pods. If empty, use `loki.startupProbe`
6775 # -- Lifecycle for the ruler-query-frontend container
6777 # @schema additionalProperties:true
6778 # -- Resource requests and limits for the ruler-query-frontend
6780 # -- Container resize policy for the ruler-query-frontend
6782 # @schema type:[string, array, null]
6783 # -- Init containers to add to the ruler-query-frontend pods
6785 # @schema type:[string, array, null]
6786 # -- Containers to add to the ruler-query-frontend pods
6788 # @schema type:[string, null]
6789 # -- On SIGTERM, report 503 on /ready and wait this long before shutdown so the ruler's gRPC client re-resolves DNS and stops sending to this pod.
6790 # Pair with `-server.grpc.keepalive.max-connection-age=30s`, which forces that re-resolution. "0s" disables.
6791 # Keep terminationGracePeriodSeconds above shutdownDelay + server.graceful_shutdown_timeout.
6793 # -- Grace period to allow the ruler-query-frontend to shut down before it is killed
6794 terminationGracePeriodSeconds: 120
6795 podDisruptionBudget:
6796 # -- Enable Pod Disruption Budget
6798 # @schema additionalProperties:{"type":"string"}
6799 # -- Annotations for Pod Disruption Budget
6801 # @schema additionalProperties:{"type":"string"}
6802 # -- Labels for Pod Disruption Budget
6804 # @schema type:[string, integer, null]
6805 # -- Pod Disruption Budget minAvailable
6807 # @schema type:[string, integer, null]
6808 # -- Pod Disruption Budget maxUnavailable
6810 # @schema type:[string, null]
6811 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
6812 unhealthyPodEvictionPolicy: null
6813 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6814 # -- Affinity for ruler-query-frontend pods.
6815 # @default -- Hard node anti-affinity
6816 # The value will be passed through tpl.
6819 requiredDuringSchedulingIgnoredDuringExecution:
6822 app.kubernetes.io/component: ruler-query-frontend
6823 app.kubernetes.io/name: '{{ include "loki.name" . }}'
6824 app.kubernetes.io/instance: '{{ .Release.Name }}'
6825 topologyKey: kubernetes.io/hostname
6826 # @schema additionalProperties:true
6827 # -- Node selector for ruler-query-frontend pods
6829 # @schema item:object
6830 # -- Topology Spread Constraints for ruler-query-frontend pods
6831 # The value will be passed through tpl.
6832 topologySpreadConstraints: []
6833 # -- Tolerations for ruler-query-frontend pods
6835 # @schema additionalProperties:true
6836 # -- DNSConfig for ruler-query-frontend pods
6839 # -- Specifies whether a ServiceAccount should be created
6841 # @schema type:[string, null]
6842 # -- The name of the ServiceAccount to use.
6843 # If not set and create is true, a name is generated using the fullname template
6845 # @schema item:object;itemProperties:{"name": {"type": "string"}}
6846 # -- Image pull secrets for the service account
6847 imagePullSecrets: []
6848 # @schema additionalProperties:{"type":"string"}
6849 # -- Annotations for the service account
6851 # @schema additionalProperties:{"type":"string"}
6852 # -- Labels for the service account
6854 # -- Set this toggle to false to opt out of automounting API credentials for the service account
6855 automountServiceAccountToken: true
6856# -- Configuration for the ruler-query-scheduler. Only deployed when `deploymentMode` is `Distributed`, `ruler.enabled` is `true`, and `ruler.remoteEvaluationDedicatedQueryPath` is `true`.
6858 # -- Kind of ruler-query-scheduler workload. StatefulSet and Deployment are supported.
6860 # @schema type:[integer, null]
6861 # -- Number of replicas for the ruler-query-scheduler.
6862 # It should be lower than `-querier.max-concurrent` to avoid generating back-pressure in queriers;
6863 # it is also recommended that this value evenly divides the latter.
6864 # Set to null to omit spec.replicas from the workload, allowing an external controller
6865 # (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
6867 # @schema skipProperties:true;additionalProperties:true
6868 # -- Strategy for the ruler-query-scheduler.
6873 # @schema type:[string, integer, null]
6874 # -- RollingUpdate maxUnavailable
6876 # @schema additionalProperties:true
6877 # -- DNSConfig for ruler-query-scheduler pods
6879 # -- hostAliases to add
6881 # @schema type:[boolean, null]
6882 # -- Use the host's user namespace in the ruler-query-scheduler
6885 # @schema type:[string, null]
6886 # -- The Docker registry for the ruler-query-scheduler image. Overrides `loki.image.registry`
6888 # @schema type:[string, null]
6889 # -- Docker image repository for the ruler-query-scheduler image. Overrides `loki.image.repository`
6891 # @schema type:[string, null]
6892 # -- Docker image tag for the ruler-query-scheduler image. Overrides `loki.image.tag`
6894 # @schema type:[string, null]
6895 # -- Overrides the image tag with an image digest. Overrides `loki.image.digest`
6897 # @schema type:[string, null]
6898 # -- Docker image pull policy for the ruler-query-scheduler image. Overrides `loki.image.pullPolicy`
6900 # @schema type:[string, null]
6901 # -- Command to execute instead of defined in Docker image
6903 # @schema type:[string, null]
6904 # -- The name of the PriorityClass for ruler-query-scheduler pods
6905 priorityClassName: null
6906 # @schema additionalProperties:{"type":"string"}
6907 # -- Labels for ruler-query-scheduler
6909 # @schema additionalProperties:{"type":"string"}
6910 # -- Annotations for ruler-query-scheduler
6912 # @schema additionalProperties:{"type":"string"}
6913 # -- Labels for ruler-query-scheduler pods
6915 # @schema additionalProperties:{"type":"string"}
6916 # -- Annotations for ruler-query-scheduler pods
6919 # @schema additionalProperties:{"type":"string"}
6920 # -- Annotations for ruler-query-scheduler Service
6922 # @schema additionalProperties:{"type":"string"}
6923 # -- Additional labels for ruler-query-scheduler Service
6925 # -- Service Type for ruler-query-scheduler Service
6927 # @schema type:[boolean, null]
6928 # -- publishNotReadyAddresses for ruler-query-scheduler Service. Defaults to `defaults.service.publishNotReadyAddresses` if not set.
6929 publishNotReadyAddresses: null
6930 # -- trafficDistribution for ruler-query-scheduler Service
6931 trafficDistribution: ""
6932 # -- Session affinity for ruler-query-scheduler Service
6934 # @schema additionalProperties:true
6935 # -- Session affinity config for ruler-query-scheduler Service
6936 sessionAffinityConfig: {}
6937 # -- ipFamilyPolicy for ruler-query-scheduler Service
6938 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6940 # -- ipFamilies for ruler-query-scheduler Service
6941 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
6943 # -- Adds the appProtocol field to the ruler-query-scheduler Service. This allows ruler-query-scheduler to work with Istio protocol selection.
6945 # -- Set the optional gRPC service protocol. Ex: "grpc", "http2" or "https"
6948 # @schema additionalProperties:{"type":"string"}
6949 # -- Additional annotations for headless ruler-query-scheduler Service
6951 # @schema additionalProperties:{"type":"string"}
6952 # -- Additional labels for headless ruler-query-scheduler Service
6954 # -- Additional CLI args for the ruler-query-scheduler
6956 # -- Environment variables to add to the ruler-query-scheduler pods
6958 # -- Environment variables from Secrets or ConfigMaps to add to the ruler-query-scheduler pods
6960 # -- Volume mounts to add to the ruler-query-scheduler pods
6961 extraVolumeMounts: []
6962 # -- Volumes to add to the ruler-query-scheduler pods
6964 # @schema skipProperties:true;additionalProperties:true
6965 # -- Readiness probe settings for ruler-query-scheduler pods. If empty, use `loki.readinessProbe`
6967 # @schema skipProperties:true;additionalProperties:true
6968 # -- Liveness probe settings for ruler-query-scheduler pods. If empty, use `loki.livenessProbe`
6970 # @schema skipProperties:true;additionalProperties:true
6971 # -- Startup probe settings for ruler-query-scheduler pods. If empty, use `loki.startupProbe`
6973 # -- Lifecycle for the ruler-query-scheduler container
6975 # @schema additionalProperties:true
6976 # -- Resource requests and limits for the ruler-query-scheduler
6978 # -- Container resize policy for the ruler-query-scheduler
6980 # @schema type:[string, array, null]
6981 # -- Init containers to add to the ruler-query-scheduler pods
6983 # @schema type:[string, array, null]
6984 # -- Containers to add to the ruler-query-scheduler pods
6986 # -- Grace period to allow the ruler-query-scheduler to shut down before it is killed
6987 terminationGracePeriodSeconds: 30
6988 # @schema type:[object, null];skipProperties:true;additionalProperties:true
6989 # -- Affinity for ruler-query-scheduler pods.
6990 # @default -- Hard node anti-affinity
6991 # The value will be passed through tpl.
6994 requiredDuringSchedulingIgnoredDuringExecution:
6997 app.kubernetes.io/component: ruler-query-scheduler
6998 app.kubernetes.io/name: '{{ include "loki.name" . }}'
6999 app.kubernetes.io/instance: '{{ .Release.Name }}'
7000 topologyKey: kubernetes.io/hostname
7001 podDisruptionBudget:
7002 # -- Enable Pod Disruption Budget
7004 # @schema additionalProperties:{"type":"string"}
7005 # -- Annotations for Pod Disruption Budget
7007 # @schema additionalProperties:{"type":"string"}
7008 # -- Labels for Pod Disruption Budget
7010 # @schema type:[string, integer, null]
7011 # -- Pod Disruption Budget minAvailable
7013 # @schema type:[string, integer, null]
7014 # -- Pod Disruption Budget maxUnavailable
7016 # @schema type:[string, null]
7017 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
7018 unhealthyPodEvictionPolicy: null
7019 # @schema additionalProperties:true
7020 # -- Node selector for ruler-query-scheduler pods
7022 # @schema item:object
7023 # -- Topology Spread Constraints for ruler-query-scheduler pods
7024 # The value will be passed through tpl.
7025 topologySpreadConstraints: []
7026 # -- Tolerations for ruler-query-scheduler pods
7029 # -- Specifies whether a ServiceAccount should be created
7031 # @schema type:[string, null]
7032 # -- The name of the ServiceAccount to use.
7033 # If not set and create is true, a name is generated using the fullname template
7035 # @schema item:object;itemProperties:{"name": {"type": "string"}}
7036 # -- Image pull secrets for the service account
7037 imagePullSecrets: []
7038 # @schema additionalProperties:{"type":"string"}
7039 # -- Annotations for the service account
7041 # @schema additionalProperties:{"type":"string"}
7042 # -- Labels for the service account
7044 # -- Set this toggle to false to opt out of automounting API credentials for the service account
7045 automountServiceAccountToken: true
7046# -- Configuration for the overrides-exporter
7048 # -- The overrides-exporter component is optional and can be disabled if desired.
7050 # -- Kind of backend workload. StatefulSet and Deployment are supported.
7052 # @schema type:[integer, null]
7053 # -- Number of replicas for the overrides-exporter. Set to null to omit spec.replicas from the workload,
7054 # allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them.
7056 # @schema additionalProperties:true
7057 # -- DNSConfig for overrides-exporter
7059 # -- hostAliases to add
7061 # @schema type:[boolean, null]
7065 # -- Use the host's user namespace in the overrides-exporter
7068 # @schema type:[string, null]
7069 # -- The Docker registry for the overrides-exporter image. Overrides `loki.image.registry`
7071 # @schema type:[string, null]
7072 # -- Docker image repository for the overrides-exporter image. Overrides `loki.image.repository`
7074 # @schema type:[string, null]
7075 # -- Docker image tag for the overrides-exporter image. Overrides `loki.image.tag`
7077 # @schema type:[string, null]
7078 # -- Command to execute instead of defined in Docker image
7080 # @schema type:[string, null]
7081 # -- The name of the PriorityClass for overrides-exporter pods
7082 priorityClassName: null
7083 # @schema additionalProperties:{"type":"string"}
7084 # -- Labels for overrides-exporter
7086 # @schema additionalProperties:{"type":"string"}
7087 # -- Annotations for overrides-exporter
7089 # @schema additionalProperties:{"type":"string"}
7090 # -- Labels for overrides-exporter pods
7092 # @schema additionalProperties:{"type":"string"}
7093 # -- Annotations for overrides-exporter pods
7095 # @schema additionalProperties:{"type":"string"};deprecated:true
7096 # -- Labels for overrides-exporter service
7097 # @deprecated -- This option is deprecated in favor of `overridesExporter.service.labels`
7099 # @schema additionalProperties:{"type":"string"};deprecated:true
7100 # -- Annotations for overrides-exporter service
7101 # @deprecated -- This option is deprecated in favor of `overridesExporter.service.annotations`
7102 serviceAnnotations: {}
7104 # @schema additionalProperties:{"type":"string"}
7105 # -- Annotations for overrides-exporter Service
7107 # @schema additionalProperties:{"type":"string"}
7108 # -- Additional labels for overrides-exporter Service
7110 # -- Service Type for overrides-exporter Service
7112 # -- trafficDistribution for overrides-exporter Service
7113 trafficDistribution: ""
7114 # -- Session affinity for overrides-exporter Service
7116 # @schema additionalProperties:true
7117 # -- Session affinity config for overrides-exporter Service
7118 sessionAffinityConfig: {}
7119 # -- ipFamilyPolicy for overrides-exporter Service
7120 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
7122 # -- ipFamilies for overrides-exporter Service
7123 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
7125 # -- Adds the appProtocol field to the overrides-exporter service. This allows overrides-exporter to work with istio protocol selection.
7127 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
7130 # @schema additionalProperties:{"type":"string"}
7131 # -- Additional annotations for headless overridesExporter service
7133 # @schema additionalProperties:{"type":"string"}
7134 # -- Additional labels for headless overridesExporter Service
7136 # -- Additional CLI args for the overrides-exporter
7138 # -- Environment variables to add to the overrides-exporter pods
7140 # -- Environment variables from secrets or configmaps to add to the overrides-exporter pods
7142 # -- Volume mounts to add to the overrides-exporter pods
7143 extraVolumeMounts: []
7144 # -- Volumes to add to the overrides-exporter pods
7146 # @schema additionalProperties:true
7147 # -- Resource requests and limits for the overrides-exporter
7149 # -- Container resize policy for the overrides-exporter
7152 # - resourceName: cpu
7153 # restartPolicy: NotRequired
7154 # - resourceName: memory
7155 # restartPolicy: RestartContainer
7157 # @schema type:[string, array, null]
7158 # -- Containers to add to the overrides-exporter pods
7160 # @schema type:[string, array, null]
7161 # -- Init containers to add to the overrides-exporter pods
7163 # -- Grace period to allow the overrides-exporter to shutdown before it is killed
7164 terminationGracePeriodSeconds: 300
7165 podDisruptionBudget:
7166 # -- Enable Pod Disruption Budget
7168 # @schema additionalProperties:{"type":"string"}
7169 # -- Annotations for Pod Disruption Budget
7171 # @schema additionalProperties:{"type":"string"}
7172 # -- Labels for Pod Disruption Budget
7174 # @schema type:[string, integer, null]
7175 # -- Pod Disruption Budget minAvailable
7177 # @schema type:[string, integer, null]
7178 # -- Pod Disruption Budget maxUnavailable
7179 maxUnavailable: null
7180 # @schema type:[string, null]
7181 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
7182 unhealthyPodEvictionPolicy: null
7183 # @schema type:[object, null];skipProperties:true;additionalProperties:true
7184 # -- Affinity for overrides-exporter pods.
7185 # @default -- Hard node anti-affinity
7186 # The value will be passed through tpl.
7189 requiredDuringSchedulingIgnoredDuringExecution:
7192 app.kubernetes.io/component: overrides-exporter
7193 app.kubernetes.io/name: '{{ include "loki.name" . }}'
7194 app.kubernetes.io/instance: '{{ .Release.Name }}'
7195 topologyKey: kubernetes.io/hostname
7196 # @schema type:[string, integer, null];deprecated:true
7197 # -- Pod Disruption Budget maxUnavailable
7198 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
7199 maxUnavailable: null
7200 # @schema additionalProperties:true
7201 # -- Node selector for overrides-exporter pods
7203 # @schema item:object
7204 # -- Topology Spread Constraints for overrides-exporter pods
7205 # The value will be passed through tpl.
7206 topologySpreadConstraints: []
7208 # @schema additionalProperties:true;deprecated:true
7209 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
7210 # @deprecated -- This option is deprecated in favor of `overridesExporter.service.appProtocol`
7214 # -- Specifies whether a ServiceAccount should be created
7216 # @schema type:[string, null]
7217 # -- The name of the ServiceAccount to use.
7218 # If not set and create is true, a name is generated using the fullname template
7220 # @schema item:object;itemProperties:{"name": {"type": "string"}}
7221 # -- Image pull secrets for the service account
7222 imagePullSecrets: []
7223 # @schema additionalProperties:{"type":"string"}
7224 # -- Annotations for the service account
7226 # @schema additionalProperties:{"type":"string"}
7227 # -- Labels for the service account
7229 # -- Set this toggle to false to opt out of automounting API credentials for the service account
7230 automountServiceAccountToken: true
7231# You can use a self hosted memcached by setting enabled to false and providing addresses.
7233 # -- Enable the built in memcached server provided by the chart
7236 # -- Memcached Docker image registry
7238 # -- Memcached Docker image repository
7239 repository: chainguard-private/memcached
7240 # -- Memcached Docker image tag
7241 tag: 1.6.45-r5@sha256:171694620637e03596d4dbee1aaf2d9cdfdd519a9e8088b259334f4e35e10cd2
7242 # -- Memcached Docker image pull policy
7243 pullPolicy: IfNotPresent
7244 # @schema skipProperties:true;additionalProperties:true
7245 # -- The SecurityContext override for memcached pods
7252 type: RuntimeDefault
7253 # @schema type:[string, null]
7254 # -- The name of the PriorityClass for memcached pods
7255 priorityClassName: null
7256 # @schema skipProperties:true;additionalProperties:true
7257 # -- The SecurityContext for memcached containers
7258 containerSecurityContext:
7259 readOnlyRootFilesystem: true
7262 allowPrivilegeEscalation: false
7265 type: RuntimeDefault
7266 # @schema skipProperties:true;additionalProperties:true
7267 # -- Readiness probe for memcached pods (probe port defaults to container port)
7271 initialDelaySeconds: 5
7275 # @schema skipProperties:true;additionalProperties:true
7276 # -- Liveness probe for memcached pods
7280 initialDelaySeconds: 30
7284 # @schema skipProperties:true;additionalProperties:true
7285 # -- Startup probe for memcached pods
7288 # -- Specifies whether a ServiceAccount should be created
7290 # @schema type:[string, null]
7291 # -- The name of the ServiceAccount to use.
7292 # If not set and create is true, a name is generated using the fullname template
7294 # @schema item:object;itemProperties:{"name": {"type": "string"}}
7295 # -- Image pull secrets for the service account
7296 imagePullSecrets: []
7297 # @schema additionalProperties:{"type":"string"}
7298 # -- Annotations for the service account
7300 # @schema additionalProperties:{"type":"string"}
7301 # -- Labels for the service account
7303 # -- Set this toggle to false to opt out of automounting API credentials for the service account
7304 automountServiceAccountToken: false
7306 # -- Whether memcached metrics should be exported
7308 # -- Port used by the memcached exporter to expose metrics
7311 # -- Memcached exporter Docker image registry
7313 # -- Memcached exporter Docker image repository
7314 repository: chainguard-private/memcached-exporter
7315 # -- Memcached exporter Docker image tag
7316 tag: 0.18.0-r2@sha256:d6b01ab6c1885ea0ce7a641000375247dac6789e3465bd22cda3c9d84047453f
7317 # -- Memcached exporter Docker image pull policy
7318 pullPolicy: IfNotPresent
7319 # @schema additionalProperties:true
7323 # -- Container resize policy for the memcached exporter
7326 # - resourceName: cpu
7327 # restartPolicy: NotRequired
7328 # - resourceName: memory
7329 # restartPolicy: RestartContainer
7331 # @schema skipProperties:true;additionalProperties:true
7332 # -- The SecurityContext for memcached exporter containers
7333 containerSecurityContext:
7334 readOnlyRootFilesystem: true
7337 allowPrivilegeEscalation: false
7340 type: RuntimeDefault
7341 # -- Extra args to add to the exporter container.
7344 # memcached.tls.enable: true
7345 # memcached.tls.cert-file: /certs/cert.crt
7346 # memcached.tls.key-file: /certs/cert.key
7347 # memcached.tls.ca-file: /certs/ca.crt
7348 # memcached.tls.insecure-skip-verify: false
7349 # memcached.tls.server-name: memcached
7351 # @schema skipProperties:true;additionalProperties:true
7352 # -- Liveness probe for memcached exporter
7357 initialDelaySeconds: 30
7361 # @schema skipProperties:true;additionalProperties:true
7362 # -- Readiness probe for memcached exporter
7367 initialDelaySeconds: 5
7371 # @schema skipProperties:true;additionalProperties:true
7372 # -- Startup probe for memcached exporter
7375 # -- Specifies whether memcached based results-cache should be enabled
7377 # -- Comma separated addresses list in DNS Service Discovery format
7378 addresses: dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "results-cache") }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
7379 # -- Specify how long cached results should be stored in the results-cache before being expired
7380 defaultValidity: 12h
7381 # -- Memcached operation timeout
7383 # -- Total number of results-cache replicas
7385 # -- Port of the results-cache service
7387 # -- Amount of memory allocated to results-cache for object storage (in MB).
7388 allocatedMemory: 1024
7389 # -- Amount of cpu allocated to results-cache for object storage (in integer or millicores).
7391 # -- Maximum item results-cache for memcached (in MB).
7393 # -- Maximum number of connections allowed
7394 connectionLimit: 16384
7395 # -- Max memory to use for cache write back
7396 writebackSizeLimit: 500MB
7397 # -- Max number of objects to use for cache write back
7398 writebackBuffer: 500000
7399 # -- Number of parallel threads for cache write back
7400 writebackParallelism: 1
7401 # -- Extra init containers for results-cache pods
7403 # @schema additionalProperties:{"type":"string"}
7404 # -- Annotations for the results-cache pods
7406 # @schema additionalProperties:true
7407 # -- Node selector for results-cache pods
7409 # @schema type:[object, null];skipProperties:true;additionalProperties:true
7410 # -- Affinity for results-cache pods
7412 # @schema item:object
7413 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
7414 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
7415 topologySpreadConstraints: []
7416 # topologyKey: kubernetes.io/hostname
7417 # whenUnsatisfiable: ScheduleAnyway
7418 # -- Tolerations for results-cache pods
7420 # @schema type:[string, integer, null];deprecated:true
7421 # -- Pod Disruption Budget maxUnavailable
7422 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
7424 podDisruptionBudget:
7425 # -- Enable Pod Disruption Budget
7427 # @schema additionalProperties:{"type":"string"}
7428 # -- Annotations for Pod Disruption Budget
7430 # @schema additionalProperties:{"type":"string"}
7431 # -- Labels for Pod Disruption Budget
7433 # @schema type:[string, integer, null]
7434 # -- Pod Disruption Budget minAvailable
7436 # @schema type:[string, integer, null]
7437 # -- Pod Disruption Budget maxUnavailable
7438 maxUnavailable: null
7439 # @schema type:[string, null]
7440 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
7441 unhealthyPodEvictionPolicy: null
7442 # @schema additionalProperties:true
7443 # -- DNSConfig for results-cache
7445 # @schema type:[string, null]
7446 # -- The name of the PriorityClass for results-cache pods
7447 priorityClassName: null
7448 # @schema type:[boolean, null]
7449 # -- Use the host's user namespace in results-cache pods
7451 # @schema additionalProperties:{"type":"string"}
7452 # -- Labels for results-cache pods
7454 # @schema additionalProperties:{"type":"string"}
7455 # -- Annotations for results-cache pods
7457 # -- Management policy for results-cache pods
7458 podManagementPolicy: Parallel
7459 # -- Grace period to allow the results-cache to shutdown before it is killed
7460 terminationGracePeriodSeconds: 60
7461 # @schema skipProperties:true;additionalProperties:true
7462 # -- Stateful results-cache strategy
7465 # -- Add extended options for results-cache memcached container. The format is the same as for the memcached -o/--extend flag.
7467 # extraExtendedOptions: 'tls,modern,track_sizes'
7468 extraExtendedOptions: ""
7469 # -- Additional CLI args for results-cache
7471 # @schema type:[array, null]
7472 # -- Additional containers to be added to the results-cache pod.
7474 # -- Additional volumes to be added to the results-cache pod (applies to both memcached and exporter containers).
7477 # - name: extra-volume
7479 # secretName: extra-volume-secret
7481 # -- Additional volume mounts to be added to the results-cache pod (applies to both memcached and exporter containers).
7483 # extraVolumeMounts:
7484 # - name: extra-volume
7485 # mountPath: /etc/extra-volume
7487 extraVolumeMounts: []
7488 # @schema additionalProperties:true
7489 # -- Resource requests and limits for the results-cache
7490 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
7492 # -- Container resize policy for the results-cache
7495 # - resourceName: cpu
7496 # restartPolicy: NotRequired
7497 # - resourceName: memory
7498 # restartPolicy: RestartContainer
7500 # -- Service annotations and labels
7502 # @schema additionalProperties:{"type":"string"}
7504 # @schema additionalProperties:{"type":"string"}
7506 # -- Persistence settings for the results-cache
7508 # -- Enable creating PVCs for the results-cache
7510 # -- Size of persistent disk, must be in G or Gi
7512 # @schema type:[string, null]
7513 # -- Storage class to be used.
7514 # If defined, storageClassName: <storageClass>.
7515 # If set to "-", storageClassName: "", which disables dynamic provisioning.
7516 # If empty or set to null, no storageClassName spec is
7517 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
7519 # @schema type:[string, null]
7520 # -- Volume attributes class name to be used.
7521 # If empty or set to null, no volumeAttributesClassName spec is set.
7522 # Requires Kubernetes 1.31
7523 volumeAttributesClassName: null
7524 # -- Volume mount path
7526 # @schema additionalProperties:{"type":"string"}
7527 # -- PVC additional labels
7530 # -- Append to the name of the resources to make names different for l1 and l2
7532 # -- Specifies whether memcached based chunks-cache should be enabled
7534 # -- Comma separated addresses list in DNS Service Discovery format
7535 addresses: 'dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "chunks-cache" "suffix" $.Values.chunksCache.suffix ) }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}'
7536 # -- Batchsize for sending and receiving chunks from chunks cache
7538 # -- Parallel threads for sending and receiving chunks from chunks cache
7540 # -- Memcached operation timeout
7542 # -- Specify how long cached chunks should be stored in the chunks-cache before being expired
7544 # -- Total number of chunks-cache replicas
7546 # -- Port of the chunks-cache service
7548 # -- Amount of memory allocated to chunks-cache for object storage (in MB).
7549 allocatedMemory: 8192
7550 # -- Amount of cpu allocated to chunks-cache for object storage (in integer or millicores).
7552 # -- Maximum item memory for chunks-cache (in MB).
7554 # -- Maximum number of connections allowed
7555 connectionLimit: 16384
7556 # -- Max memory to use for cache write back
7557 writebackSizeLimit: 500MB
7558 # -- Max number of objects to use for cache write back
7559 writebackBuffer: 500000
7560 # -- Number of parallel threads for cache write back
7561 writebackParallelism: 1
7562 # -- Extra init containers for chunks-cache pods
7564 # @schema additionalProperties:{"type":"string"}
7565 # -- Annotations for the chunks-cache pods
7567 # @schema additionalProperties:true
7568 # -- Node selector for chunks-cache pods
7570 # @schema type:[object, null];skipProperties:true;additionalProperties:true
7571 # -- Affinity for chunks-cache pods
7573 # @schema item:object
7574 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
7575 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
7576 topologySpreadConstraints: []
7577 # topologyKey: kubernetes.io/hostname
7578 # whenUnsatisfiable: ScheduleAnyway
7579 # -- Tolerations for chunks-cache pods
7581 # @schema type:[string, integer, null];deprecated:true
7582 # -- Pod Disruption Budget maxUnavailable
7583 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
7585 podDisruptionBudget:
7586 # -- Enable Pod Disruption Budget
7588 # @schema additionalProperties:{"type":"string"}
7589 # -- Annotations for Pod Disruption Budget
7591 # @schema additionalProperties:{"type":"string"}
7592 # -- Labels for Pod Disruption Budget
7594 # @schema type:[string, integer, null]
7595 # -- Pod Disruption Budget minAvailable
7597 # @schema type:[string, integer, null]
7598 # -- Pod Disruption Budget maxUnavailable
7599 maxUnavailable: null
7600 # @schema type:[string, null]
7601 # -- Pod Disruption Budget unhealthyPodEvictionPolicy
7602 unhealthyPodEvictionPolicy: null
7603 # @schema additionalProperties:true
7604 # -- DNSConfig for chunks-cache
7606 # @schema type:[string, null]
7607 # -- The name of the PriorityClass for chunks-cache pods
7608 priorityClassName: null
7609 # @schema type:[boolean, null]
7610 # -- Use the host's user namespace in chunks-cache pods
7612 # @schema additionalProperties:{"type":"string"}
7613 # -- Labels for chunks-cache pods
7615 # @schema additionalProperties:{"type":"string"}
7616 # -- Annotations for chunks-cache pods
7618 # -- Management policy for chunks-cache pods
7619 podManagementPolicy: Parallel
7620 # -- Grace period to allow the chunks-cache to shutdown before it is killed
7621 terminationGracePeriodSeconds: 60
7622 # @schema skipProperties:true;additionalProperties:true
7623 # -- Stateful chunks-cache strategy
7626 # -- Add extended options for chunks-cache memcached container. The format is the same as for the memcached -o/--extend flag.
7628 # extraExtendedOptions: 'tls,no_hashexpand'
7629 extraExtendedOptions: ""
7630 # -- Additional CLI args for chunks-cache
7632 # @schema type:[array, null]
7633 # -- Additional containers to be added to the chunks-cache pod.
7635 # -- Additional volumes to be added to the chunks-cache pod (applies to both memcached and exporter containers).
7638 # - name: extra-volume
7640 # secretName: extra-volume-secret
7642 # -- Additional volume mounts to be added to the chunks-cache pod (applies to both memcached and exporter containers).
7644 # extraVolumeMounts:
7645 # - name: extra-volume
7646 # mountPath: /etc/extra-volume
7648 extraVolumeMounts: []
7649 # @schema additionalProperties:true
7650 # -- Resource requests and limits for the chunks-cache
7651 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
7653 # -- Container resize policy for the chunks-cache
7656 # - resourceName: cpu
7657 # restartPolicy: NotRequired
7658 # - resourceName: memory
7659 # restartPolicy: RestartContainer
7661 # -- Service annotations and labels
7663 # @schema additionalProperties:{"type":"string"}
7665 # @schema additionalProperties:{"type":"string"}
7667 # -- Persistence settings for the chunks-cache
7669 # -- Enable creating PVCs for the chunks-cache
7671 # -- Size of persistent disk, must be in G or Gi
7673 # @schema type:[string, null]
7674 # -- Storage class to be used.
7675 # If defined, storageClassName: <storageClass>.
7676 # If set to "-", storageClassName: "", which disables dynamic provisioning.
7677 # If empty or set to null, no storageClassName spec is
7678 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
7680 # @schema type:[string, null]
7681 # -- Volume attributes class name to be used.
7682 # If empty or set to null, no volumeAttributesClassName spec is set.
7683 # Requires Kubernetes 1.31
7684 volumeAttributesClassName: null
7685 # -- Volume mount path
7687 # @schema additionalProperties:{"type":"string"}
7689 # -- l2 memcache configuration
7691 # -- Append to the name of the resources to make names different for l1 and l2
7693 # -- The age of chunks should be transferred from l1 cache to l2
7695 l2ChunkCacheHandoff: 345600s
7696 # -- Specifies whether memcached based chunks-cache-l2 should be enabled
7698 # -- Comma separated addresses list in DNS Service Discovery format
7699 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 }}'
7700 # -- Batchsize for sending and receiving chunks from chunks cache
7702 # -- Parallel threads for sending and receiving chunks from chunks cache
7704 # -- Memcached operation timeout
7706 # -- Specify how long cached chunks should be stored in the chunks-cache-l2 before being expired
7708 # -- Total number of chunks-cache-l2 replicas
7710 # -- Port of the chunks-cache-l2 service
7712 # -- Amount of memory allocated to chunks-cache-l2 for object storage (in MB).
7713 allocatedMemory: 8192
7714 # -- Amount of cpu allocated to chunks-cache-l2 for object storage (in integer or millicores).
7716 # -- Maximum item memory for chunks-cache-l2 (in MB).
7718 # -- Maximum number of connections allowed
7719 connectionLimit: 16384
7720 # -- Max memory to use for cache write back
7721 writebackSizeLimit: 500MB
7722 # -- Max number of objects to use for cache write back
7723 writebackBuffer: 500000
7724 # -- Number of parallel threads for cache write back
7725 writebackParallelism: 1
7726 # -- Extra init containers for chunks-cache-l2 pods
7728 # @schema additionalProperties:{"type":"string"}
7729 # -- Annotations for the chunks-cache-l2 pods
7731 # @schema additionalProperties:true
7732 # -- Node selector for chunks-cach-l2 pods
7734 # @schema skipProperties:true;additionalProperties:true
7735 # -- Affinity for chunks-cache-l2 pods
7737 # @schema item:object
7738 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
7739 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
7740 topologySpreadConstraints: []
7741 # topologyKey: kubernetes.io/hostname
7742 # whenUnsatisfiable: ScheduleAnyway
7743 # -- Tolerations for chunks-cache-l2 pods
7745 # @schema type:[string, integer, null];deprecated:true
7746 # -- Pod Disruption Budget maxUnavailable
7747 # @deprecated -- This is deprecated in favor of `podDisruptionBudget.maxUnavailable`.
7749 podDisruptionBudget:
7750 # -- Enable Pod Disruption Budget
7752 # @schema additionalProperties:{"type":"string"}
7753 # -- Annotations for Pod Disruption Budget
7755 # @schema additionalProperties:{"type":"string"}
7756 # -- Labels for Pod Disruption Budget
7760 # unhealthyPodEvictionPolicy: IfHealthyBudget
7761 # @schema additionalProperties:true
7762 # -- DNSConfig for chunks-cache-l2
7764 # @schema type:[string, null]
7765 # -- The name of the PriorityClass for chunks-cache-l2 pods
7766 priorityClassName: null
7767 # @schema type:[boolean, null]
7768 # -- Use the host's user namespace in chunks-cache-l2 pods
7770 # @schema additionalProperties:{"type":"string"}
7771 # -- Labels for chunks-cache-l2 pods
7773 # @schema additionalProperties:{"type":"string"}
7774 # -- Annotations for chunks-cache-l2 pods
7776 # -- Management policy for chunks-cache-l2 pods
7777 podManagementPolicy: Parallel
7778 # -- Grace period to allow the chunks-cache-l2 to shutdown before it is killed
7779 terminationGracePeriodSeconds: 60
7780 # @schema skipProperties:true;additionalProperties:true
7781 # -- Stateful chunks-cache strategy
7784 # -- Add extended options for chunks-cache-l2 memcached container. The format is the same as for the memcached -o/--extend flag.
7786 # extraExtendedOptions: 'tls,no_hashexpand'
7787 extraExtendedOptions: ""
7788 # -- Additional CLI args for chunks-cache-l2
7790 # @schema type:[array, null]
7791 # -- Additional containers to be added to the chunks-cache-l2 pod.
7793 # -- Additional volumes to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
7796 # - name: extra-volume
7798 # secretName: extra-volume-secret
7800 # -- Additional volume mounts to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
7802 # extraVolumeMounts:
7803 # - name: extra-volume
7804 # mountPath: /etc/extra-volume
7806 extraVolumeMounts: []
7807 # @schema additionalProperties:true
7808 # -- Resource requests and limits for the chunks-cache-l2
7809 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
7811 # -- Container resize policy for the chunks-cache-l2
7814 # - resourceName: cpu
7815 # restartPolicy: NotRequired
7816 # - resourceName: memory
7817 # restartPolicy: RestartContainer
7819 # -- Service annotations and labels
7821 # @schema additionalProperties:{"type":"string"}
7823 # @schema additionalProperties:{"type":"string"}
7825 # -- Persistence settings for the chunks-cache-l2
7827 # -- Enable creating PVCs for the chunks-cache-l2
7829 # -- Size of persistent disk, must be in G or Gi
7831 # @schema type:[string, null]
7832 # -- Storage class to be used.
7833 # If defined, storageClassName: <storageClass>.
7834 # If set to "-", storageClassName: "", which disables dynamic provisioning.
7835 # If empty or set to null, no storageClassName spec is
7836 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
7838 # @schema type:[string, null]
7839 # -- Volume attributes class name to be used.
7840 # If empty or set to null, no volumeAttributesClassName spec is set.
7841 # Requires Kubernetes 1.31
7842 volumeAttributesClassName: null
7843 # -- Volume mount path
7845 # @schema additionalProperties:{"type":"string"}
7847######################################################################################################################
7849# Subchart configurations
7851######################################################################################################################
7853# @schema skipProperties:true;additionalProperties:true
7854# -- Setting for the Grafana Rollout Operator https://github.com/grafana/helm-charts/tree/main/charts/rollout-operator
7857 # @schema skipProperties:true;additionalProperties:true
7858 # -- podSecurityContext is the pod security context for the rollout operator.
7859 # When installing on OpenShift, override podSecurityContext settings with
7862 # podSecurityContext:
7872 type: RuntimeDefault
7873 # @schema skipProperties:true;additionalProperties:true
7874 # Set the container security context
7876 readOnlyRootFilesystem: true
7879 allowPrivilegeEscalation: false
7882 type: RuntimeDefault
7884 # -- Enable the rollout-operator webhooks. See https://github.com/grafana/rollout-operator/#webhooks.
7885 # Note that the webhooks require custom resource definitions. If upgrading, manually apply the files in the `crds` directory.
7887 # -- Timeout in seconds for the prepare-downscale mutating webhook. Must be between 1 and 30.
7889 # -- Validating and mutating webhook failure policy. `Ignore` or `Fail`.
7890 # Only applies when the API server cannot reach the rollout-operator or the webhook call times out.
7891 # With `Ignore`, StatefulSet updates and pod evictions then skip the webhooks, so ingesters can be scaled down
7892 # without preparing for shutdown and remain in the ring. With `Fail`, StatefulSet updates and pod evictions
7893 # in the release namespace are rejected until the rollout-operator is reachable again.
7894 failurePolicy: "Fail"
7895# @schema type:[array, object, string, null]
7896# Create extra manifests via values
7897# Can be a list or dictionary, both are passed through `tpl`. If dict, keys are ignored and only values are used.
7898# Objects can also be defined as multiline strings, useful for templating field names
7903# name: loki-alerting-rules
7905# loki-alerting-rules.yaml: |-
7911# sum(count_over_time({app="loki"} |~ "error")) > 0
7917# message: "loki has encountered errors"
7923# name: loki-distributed-basic-auth
7925# {{- range .Values.loki.tenants }}
7926# {{ .name }}: {{ b64enc .password | quote }}
7932 # -- The Docker registry and image for the k8s sidecar
7933 repository: chainguard-private/k8s-sidecar
7934 # -- Docker image tag
7936 # -- Docker image sha. If empty, no sha will be used
7937 sha: sha256:d0ff40fabf9a65564cd087467470545af26468a956d45caa41efe1d547b3b4fa
7938 # -- Docker image pull policy
7939 pullPolicy: IfNotPresent
7940 # @schema additionalProperties:true
7941 # -- Resource requests and limits for the sidecar
7943 # -- Container resize policy for the sidecar
7946 # - resourceName: cpu
7947 # restartPolicy: NotRequired
7948 # - resourceName: memory
7949 # restartPolicy: RestartContainer
7958 # @schema skipProperties:true;additionalProperties:true
7959 # -- The SecurityContext for the sidecar.
7961 readOnlyRootFilesystem: true
7965 allowPrivilegeEscalation: false
7967 type: RuntimeDefault
7968 # -- Set to true to skip tls verification for kube api calls.
7969 skipTlsVerify: false
7970 # -- Set to true to disable strict x509 verification for kube api calls.
7971 disableX509StrictVerification: false
7972 # -- Ensure that rule files aren't conflicting and being overwritten by prefixing their name with the namespace they are defined in.
7973 enableUniqueFilenames: false
7974 # @schema skipProperties:true;additionalProperties:true
7975 # -- Readiness probe definition.
7982 initialDelaySeconds: 3
7986 # @schema skipProperties:true;additionalProperties:true
7987 # -- Liveness probe definition.
7994 initialDelaySeconds: 30
7998 # @schema skipProperties:true;additionalProperties:true
7999 # -- Startup probe definition.
8003 # -- Whether or not to create a sidecar to ingest rule from specific ConfigMaps and/or Secrets.
8005 # -- Label that the configmaps/secrets with rules will be marked with.
8007 # -- Label value that the configmaps/secrets with rules will be set to.
8009 # -- Folder into which the rules will be placed.
8011 # @schema type:[string, null]
8012 # -- The annotation overwriting the folder value.
8013 # The annotation value can be either an absolute or a relative path. Relative paths will be relative to FOLDER.
8014 # Useful for multi-tenancy setups.
8015 folderAnnotation: null
8016 # @schema type:[string, null]
8017 # -- Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
8018 # Otherwise the namespace in which the sidecar is running will be used.
8019 # It's also possible to specify 'ALL' to search in all namespaces.
8020 searchNamespace: null
8021 # -- 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.
8023 # -- Search in configmap, secret, or both.
8025 # @schema type:[string, null]
8026 # -- Absolute path to the shell script to execute after a configmap or secret has been reloaded.
8028 # -- WatchServerTimeout: request to the server, asking it to cleanly close the connection after that.
8029 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S.
8030 watchServerTimeout: 60
8032 # -- WatchClientTimeout: is a client-side timeout, configuring your local socket.
8033 # If you have a network outage dropping all packets with no RST/FIN,
8034 # this is how long your client waits before realizing & dropping the connection.
8035 # Defaults to 66sec.
8036 watchClientTimeout: 60
8037 # -- Log level of the sidecar container.
8039 # -- Health Server port of the sidecar container.
8041# -- Monitoring section determines which monitoring features to enable
8043 # @schema type:[string, null]
8044 # -- Alternative namespace to deploy all monitoring resources (ServiceMonitor, PrometheusRule, ConfigMap dashboards) in.
8045 # Defaults to the release namespace.
8047 # -- Label name for the app_instance label injected into scraped metrics and recording rules.
8048 appInstanceLabelName: 'app_instance'
8049 # -- Value for the app_instance label injected into scraped metrics and recording rules.
8050 # Supports Helm templating.
8051 appInstanceLabelValue: '{{ include "loki.fullname" . }}'
8053 # -- When enabled, shows the cluster variable in dashboards.
8054 # If clusterName is also set, the chart adds 'cluster' labels to scraped
8055 # metrics, recording rules, and alerts, and includes 'cluster' in recording
8056 # rule aggregations. If clusterName is left empty, only dashboard changes
8057 # are applied — use this when an external tool (e.g. Grafana Alloy) manages
8058 # cluster label injection and PromQL rewriting.
8060 # -- Value for the 'cluster' label. Supports Helm templating.
8061 # When empty, recording rules and alerts are not modified — only dashboards
8062 # show the cluster variable.
8063 # e.g. clusterName: '{{ .Values.global.clusterName }}'
8065 # Dashboards for monitoring Loki
8067 # -- If enabled, create configmap resources with dashboards for monitoring Loki
8069 # @schema additionalProperties:{"type":"string"}
8070 # -- Additional annotations for the dashboards ConfigMap resources
8072 # @schema additionalProperties:{"type":"string"}
8073 # -- Labels for the dashboards ConfigMap resources
8075 grafana_dashboard: "1"
8076 # -- Timezone for the default dashboards
8077 defaultDashboardsTimezone: utc
8078 # -- Editable flag for the default dashboards
8079 defaultDashboardsEditable: true
8080 # -- Default interval for Grafana dashboards
8081 defaultDashboardsInterval: 1m
8083 # -- If enabled, GrafanaOperator resources for Grafana Operator are created to deploy the dashboards.
8085 # @schema additionalProperties:{"type":"string"}
8086 # -- Additional annotations for the GrafanaOperator resources
8088 # @schema additionalProperties:{"type":"string"}
8089 # -- Additional labels for the GrafanaOperator resources
8091 # -- How frequently the operator should resync resources (in duration format)
8093 # @schema type:[string, null]
8094 # -- Which folder contains all dashboards in Grafana
8095 ## This folder will be created on the Root level
8096 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
8099 # @schema type:[string, null]
8100 # -- Which UID of the target folder contains all dashboards in Grafana
8101 ## This allows you to use subfolder hierarchy
8102 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
8105 # @schema type:[string, null]
8106 # -- Which GrafanaFolder reference contains all dashboards in Grafana
8107 ## This allows you to use subfolder hierarchy.
8108 ## Only one of 'folder', 'folderUID' or 'folderRef' can be set
8111 # @schema $ref: $k8s/_definitions.json#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector
8112 # -- instanceSelector for the GrafanaDashboard resources
8113 ## The grafana-operator matches this against the labels on your Grafana CR
8114 ## An empty selector (the default) matches every Grafana instance
8115 instanceSelector: {}
8116 # -- Recording rules for monitoring Loki, required for some dashboards
8118 # -- If enabled, create a PrometheusRule resource with Loki recording rules
8120 # @schema additionalProperties:{"type":"string"}
8121 # -- Additional labels for the PrometheusRule resource
8123 # @schema additionalProperties:{"type":"string"}
8124 # -- Additional annotations for the PrometheusRule resource
8126 # -- Additional labels applied to all individual recording rules
8127 additionalRuleLabels: {}
8128 # -- Additional annotations applied to all individual recording rules
8129 additionalRuleAnnotations: {}
8130 # -- Extra label dimensions added to all by() aggregation clauses in recording rules
8131 additionalAggregationLabels: []
8132 # -- Alert rules for monitoring Loki
8134 # -- If enabled, create a PrometheusRule resource with Loki alert rules
8136 # -- Additional labels for the alerts PrometheusRule resource
8138 # -- Additional annotations for the alerts PrometheusRule resource
8140 # -- Selectively disable individual alerts by name.
8141 # e.g.: disabled: { LokiRequestErrors: true }
8143 # -- Override for/severity on individual alerts.
8144 # e.g.: overrides: { LokiRequestErrors: { for: 5m, severity: warning } }
8146 # -- Global keepFiringFor applied to all alert rules
8148 # -- Additional labels applied to all individual alert rules
8149 additionalRuleLabels: {}
8150 # -- Additional annotations applied to all individual alert rules
8151 additionalRuleAnnotations: {}
8152 # -- Extra label dimensions added to all by() aggregation clauses in alert expressions
8153 additionalAggregationLabels: []
8154 # -- Additional PrometheusRule objects to create alongside the chart-managed ones.
8155 # Each key becomes the resource name suffix; the value must contain a 'groups' key
8156 # with standard Prometheus rule groups. Can contain both recording rules and alerts.
8158 # additionalPrometheusRules:
8161 # - name: my-loki-alerts
8163 # - alert: MyLokiAlert
8164 # expr: 'up{job="loki"} == 0'
8165 additionalPrometheusRules: {}
8166 # -- ServiceMonitor configuration
8168 # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
8170 # -- Namespace selector for ServiceMonitor resources
8171 namespaceSelector: {}
8172 # @schema additionalProperties:{"type":"string"}
8173 # -- ServiceMonitor annotations
8175 # @schema additionalProperties:{"type":"string"}
8176 # -- Additional ServiceMonitor labels
8178 # -- ServiceMonitor scrape interval
8179 # Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at
8180 # least 1/4 rate interval.
8182 # @schema type:[string, null]
8183 # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
8185 # -- ServiceMonitor relabel configs to apply to samples before scraping
8186 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
8188 # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
8189 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
8190 metricRelabelings: []
8191 # -- ServiceMonitor will use http by default, but you can pick https as well
8193 # @schema type:[object, null]
8194 # -- ServiceMonitor will use these tlsConfig settings to make the health check requests
8196 # -- ServiceMonitor job label prefix will be used to generate the job label for the scraped metrics.
8197 # -- The job label is required for the included dashboards to work.
8198 jobPrefix: '{{ include "loki.namespace" $ }}/'
8200# -- DEPRECATED Configuration for the table-manager. The table-manager is only necessary when using a deprecated
8201# index type such as Cassandra, Bigtable, or DynamoDB, it has not been necessary since loki introduced self-
8202# contained index types like 'boltdb-shipper' and 'tsdb'. This will be removed in a future helm chart.
8204 # -- Specifies whether the table-manager should be enabled
8207 # @schema type:[string, null]
8208 # -- The Docker registry for the table-manager image. Overrides `loki.image.registry`
8210 # @schema type:[string, null]
8211 # -- Docker image repository for the table-manager image. Overrides `loki.image.repository`
8213 # @schema type:[string, null]
8214 # -- Docker image tag for the table-manager image. Overrides `loki.image.tag`
8216 # @schema type:[string, null]
8217 # -- Command to execute instead of defined in Docker image
8219 # @schema type:[string, null]
8220 # -- The name of the PriorityClass for table-manager pods
8221 priorityClassName: null
8222 # @schema additionalProperties:{"type":"string"}
8223 # -- Labels for table-manager pods
8225 # @schema additionalProperties:{"type":"string"}
8226 # -- Annotations for table-manager deployment
8228 # @schema additionalProperties:{"type":"string"}
8229 # -- Annotations for table-manager pods
8232 # @schema additionalProperties:{"type":"string"}
8233 # -- Annotations for table-manager Service
8235 # @schema additionalProperties:{"type":"string"}
8236 # -- Additional labels for table-manager Service
8238 # -- Service Type for table-manager Service
8240 # -- trafficDistribution for table-manager Service
8241 trafficDistribution: ""
8242 # -- Session affinity for table-manager Service
8244 # @schema additionalProperties:true
8245 # -- Session affinity config for table-manager Service
8246 sessionAffinityConfig: {}
8247 # -- ipFamilyPolicy for table-manager Service
8248 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
8250 # -- ipFamilies for table-manager Service
8251 # Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services
8253 # -- Adds the appProtocol field to the table-manager service. This allows table-manager to work with istio protocol selection.
8255 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
8258 # @schema additionalProperties:{"type":"string"}
8259 # -- Additional annotations for headless tableManager Service
8261 # @schema additionalProperties:{"type":"string"}
8262 # -- Additional labels for headless tableManager compactor Service
8264 # -- Additional CLI args for the table-manager
8266 # -- Environment variables to add to the table-manager pods
8268 # -- Environment variables from secrets or configmaps to add to the table-manager pods
8270 # -- Volume mounts to add to the table-manager pods
8271 extraVolumeMounts: []
8272 # -- Volumes to add to the table-manager pods
8274 # @schema additionalProperties:true
8275 # -- Resource requests and limits for the table-manager
8277 # -- Container resize policy for the table-manager
8280 # - resourceName: cpu
8281 # restartPolicy: NotRequired
8282 # - resourceName: memory
8283 # restartPolicy: RestartContainer
8285 # @schema type:[string, array, null]
8286 # -- Containers to add to the table-manager pods
8288 # -- Grace period to allow the table-manager to shutdown before it is killed
8289 terminationGracePeriodSeconds: 30
8290 # @schema type:[boolean, null]
8291 # -- Use the host's user namespace in table-manager pods
8293 # @schema type:[object, null];skipProperties:true;additionalProperties:true
8294 # -- Affinity for table-manager pods.
8295 # @default -- Hard node and anti-affinity
8296 # The value will be passed through tpl.
8299 requiredDuringSchedulingIgnoredDuringExecution:
8302 app.kubernetes.io/component: table-manager
8303 app.kubernetes.io/name: '{{ include "loki.name" . }}'
8304 app.kubernetes.io/instance: '{{ .Release.Name }}'
8305 topologyKey: kubernetes.io/hostname
8306 # @schema additionalProperties:true
8307 # -- DNS config table-manager pods
8309 # @schema additionalProperties:true
8310 # -- Node selector for table-manager pods
8312 # -- Tolerations for table-manager pods
8314 # -- Enable deletes by retention
8315 retention_deletes_enabled: false
8316 # @schema type:[string, integer]
8317 # -- Set retention period
8320 # -- Specifies whether a ServiceAccount should be created
8322 # @schema type:[string, null]
8323 # -- The name of the ServiceAccount to use.
8324 # If not set and create is true, a name is generated using the fullname template
8326 # @schema item:object;itemProperties:{"name": {"type": "string"}}
8327 # -- Image pull secrets for the service account
8328 imagePullSecrets: []
8329 # @schema additionalProperties:{"type":"string"}
8330 # -- Annotations for the service account
8332 # @schema additionalProperties:{"type":"string"}
8333 # -- Labels for the service account
8335 # -- Set this toggle to false to opt out of automounting API credentials for the service account
8336 automountServiceAccountToken: true