1# -- Overrides the version used to determine compatibility of resources with the target Kubernetes cluster.
2# This is useful when using `helm template`, because then helm will use the client version of kubectl as the Kubernetes version,
3# which may or may not match your cluster's server version. Example: 'v1.24.4'. Set to null to use the version that helm
5kubeVersionOverride: null
7 # -- Overrides the Docker registry globally for all images (standard format)
10 # -- Overrides the Docker registry globally for all images (deprecated, use global.imageRegistry)
12 # -- Overrides the priorityClassName for all pods
13 priorityClassName: null
14 # -- configures cluster domain ("cluster.local" by default)
15 clusterDomain: "cluster.local"
16 # -- configures DNS service name
17 dnsService: "kube-dns"
18 # -- configures DNS service namespace
19 dnsNamespace: "kube-system"
20 # -- Common additional CLI arguments for all jobs (that is, -log.level debug, -config.expand-env=true or -log-config-reverse-order)
21 # scope: admin-api, backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write.
23 # -- Common environment variables to add to all pods directly managed by this chart.
24 # scope: admin-api, backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write.
26 # -- Common source of environment injections to add to all pods directly managed by this chart.
27 # scope: admin-api, backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write.
28 # For example to inject values from a Secret, use:
33 # -- Common volumes to add to all pods directly managed by this chart.
34 # scope: admin-api, backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write.
36 # -- Common mount points to add to all pods directly managed by this chart.
37 # scope: admin-api, 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# -- Overrides the chart's name
41# -- Overrides the chart's computed fullname
43# -- Overrides the chart's namespace
44namespaceOverride: null
45# -- Overrides the chart's cluster label
46clusterLabelOverride: null
47# -- Image pull secrets for Docker images
49# -- Deployment mode lets you specify how to deploy Loki.
51# - SingleBinary: Loki is deployed as a single binary, useful for small installs typically without HA, up to a few tens of GB/day.
52# - SimpleScalable: 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.
53# - Distributed: Loki is deployed as individual microservices. The most complicated but most capable, useful for large installs, typically over 1TB/day.
54# There are also 2 additional modes used for migrating between deployment modes:
55# - SingleBinary<->SimpleScalable: Migrate from SingleBinary to SimpleScalable (or vice versa)
56# - SimpleScalable<->Distributed: Migrate from SimpleScalable to Distributed (or vice versa)
57# Note: SimpleScalable and Distributed REQUIRE the use of object storage.
58deploymentMode: SimpleScalable
59# -- Labels to be added to resources
61######################################################################################################################
63# Base Loki Configs including kubernetes configurations and configurations for Loki itself,
64# see below for more specifics on Loki's configuration.
66######################################################################################################################
67# -- Configuration for running Loki
68# @default -- See values.yaml
70 # Configures the liveness probe for all of the Loki pods
72 # Configures the readiness probe for all of the Loki pods
78 initialDelaySeconds: 15
82 # Configures the startup probe for all of the Loki pods
85 # -- The Docker registry
87 # -- Docker image repository
88 repository: chainguard-private/loki
89 # -- Overrides the image tag whose default is the chart's appVersion
91 # -- Overrides the image tag with an image digest
92 digest: sha256:b8e21e2f50cb8489a38339551160ecce5e22a7e2b7b1ad8dcd82b4ad7a4c3cb9
93 # -- Docker image pull policy
94 pullPolicy: IfNotPresent
95 # -- Common annotations for all deployments/StatefulSets
97 # -- Common annotations for all pods
99 # -- Common labels for all pods
101 # -- Common annotations for all services
102 serviceAnnotations: {}
103 # -- Common labels for all services
105 # -- The number of old ReplicaSets to retain to allow rollback
106 revisionHistoryLimit: 10
107 # -- The SecurityContext for Loki pods
110 fsGroupChangePolicy: OnRootMismatch
114 # -- The SecurityContext for Loki containers
115 containerSecurityContext:
116 readOnlyRootFilesystem: true
120 allowPrivilegeEscalation: false
121 # -- Should enableServiceLinks be enabled. Default to enable
122 enableServiceLinks: true
123 # -- DNS config for Loki pods
125 ######################################################################################################################
129 # There are several ways to pass configuration to Loki, listing them here in order of our preference for how
130 # you should use this chart.
131 # 1. Use the templated value of loki.config below and the corresponding override sections which follow.
132 # This allows us to set a lot of important Loki configurations and defaults and also allows us to maintain them
133 # over time as Loki changes and evolves.
134 # 2. Use the loki.structuredConfig section.
135 # This will completely override the templated value of loki.config, so you MUST provide the entire Loki config
136 # including any configuration that we set in loki.config unless you explicitly are trying to change one of those
137 # values and are not able to do so with the templated sections.
138 # If you choose this approach the burden is on you to maintain any changes we make to the templated config.
139 # 3. Use an existing secret or configmap to provide the configuration.
140 # This option is mostly provided for folks who have external processes which provide or modify the configuration.
141 # When using this option you can specify a different name for loki.generatedConfigObjectName and configObjectName
142 # if you have a process which takes the generated config and modifies it, or you can stop the chart from generating
143 # a config entirely by setting loki.generatedConfigObjectName to
145 ######################################################################################################################
147 # -- Defines what kind of object stores the configuration, a ConfigMap or a Secret.
148 # 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).
149 # 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).
150 configStorageType: ConfigMap
151 # -- The name of the object which Loki will mount as a volume containing the config.
152 # 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.
153 # The value will be passed through tpl.
154 configObjectName: '{{ include "loki.name" . }}'
155 # -- The name of the Secret or ConfigMap that will be created by this chart.
156 # If empty, no configmap or secret will be created.
157 # The value will be passed through tpl.
158 generatedConfigObjectName: '{{ include "loki.name" . }}'
159 # -- Config file contents for Loki
160 # @default -- See values.yaml
162 {{- if .Values.enterprise.enabled}}
163 {{- tpl .Values.enterprise.config . }}
165 auth_enabled: {{ .Values.loki.auth_enabled }}
168 {{- with .Values.loki.server }}
170 {{- toYaml . | nindent 2}}
173 {{- with .Values.loki.pattern_ingester }}
175 {{- tpl (. | toYaml) $ | nindent 4 }}
179 {{- if .Values.loki.memberlistConfig }}
180 {{- toYaml .Values.loki.memberlistConfig | nindent 2 }}
182 {{- if .Values.loki.extraMemberlistConfig}}
183 {{- toYaml .Values.loki.extraMemberlistConfig | nindent 2}}
186 - {{ include "loki.memberlist" . }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
187 {{- with .Values.migrate.fromDistributed }}
189 - {{ .memberlistService }}
194 {{- with .Values.loki.ingester }}
196 {{- tpl (. | toYaml) $ | nindent 4 }}
199 {{- with .Values.loki.ingester_client }}
201 {{- tpl (. | toYaml) $ | nindent 4 }}
204 {{- with .Values.loki.block_builder }}
206 {{- tpl (. | toYaml) $ | nindent 4 }}
209 {{- if .Values.loki.commonConfig}}
211 {{- toYaml .Values.loki.commonConfig | nindent 2}}
213 {{- include "loki.commonStorageConfig" . | nindent 4}}
216 {{- with .Values.loki.limits_config }}
218 {{- tpl (. | toYaml) $ | nindent 4 }}
222 file: /etc/loki/runtime-config/runtime-config.yaml
224 {{- if .Values.chunksCache.enabled }}
225 {{- with .Values.chunksCache }}
228 default_validity: {{ .defaultValidity }}
230 writeback_goroutines: {{ .writebackParallelism }}
231 writeback_buffer: {{ .writebackBuffer }}
232 writeback_size_limit: {{ .writebackSizeLimit }}
234 batch_size: {{ .batchSize }}
235 parallelism: {{ .parallelism }}
237 addresses: {{ .addresses }}
238 consistent_hash: true
239 timeout: {{ .timeout }}
242 {{- with .Values.chunksCache.l2 }}
244 l2_chunk_cache_handoff: {{ .l2ChunkCacheHandoff }}
245 chunk_cache_config_l2:
246 default_validity: {{ .defaultValidity }}
248 writeback_goroutines: {{ .writebackParallelism }}
249 writeback_buffer: {{ .writebackBuffer }}
250 writeback_size_limit: {{ .writebackSizeLimit }}
252 batch_size: {{ .batchSize }}
253 parallelism: {{ .parallelism }}
255 addresses: {{ .addresses }}
256 consistent_hash: true
257 timeout: {{ .timeout }}
263 {{- if .Values.loki.schemaConfig }}
265 {{- toYaml .Values.loki.schemaConfig | nindent 2}}
268 {{- if .Values.loki.useTestSchema }}
270 {{- toYaml .Values.loki.testSchemaConfig | nindent 2}}
273 {{- if .Values.ruler.enabled }}
274 {{ include "loki.rulerConfig" . }}
277 {{- if and .Values.loki.storage.use_thanos_objstore .Values.ruler.enabled}}
279 {{- include "loki.rulerThanosStorageConfig" . | nindent 2 }}
282 {{- if or .Values.tableManager.retention_deletes_enabled .Values.tableManager.retention_period }}
284 retention_deletes_enabled: {{ .Values.tableManager.retention_deletes_enabled }}
285 retention_period: {{ .Values.tableManager.retention_period }}
289 align_queries_with_step: true
290 {{- with .Values.loki.query_range }}
291 {{- tpl (. | toYaml) $ | nindent 2 }}
293 {{- if .Values.resultsCache.enabled }}
294 {{- with .Values.resultsCache }}
298 default_validity: {{ .defaultValidity }}
300 writeback_goroutines: {{ .writebackParallelism }}
301 writeback_buffer: {{ .writebackBuffer }}
302 writeback_size_limit: {{ .writebackSizeLimit }}
304 addresses: {{ .addresses }}
305 consistent_hash: true
306 timeout: {{ .timeout }}
311 {{- with .Values.loki.storage_config }}
313 {{- if not (hasKey $.Values.loki.storage_config "use_thanos_objstore") }}
314 use_thanos_objstore: {{ $.Values.loki.storage.use_thanos_objstore }}
316 {{- tpl (. | toYaml) $ | nindent 4 }}
319 {{- with .Values.loki.query_scheduler }}
321 {{- tpl (. | toYaml) $ | nindent 4 }}
324 {{- with .Values.loki.compactor }}
326 {{- tpl (. | toYaml) $ | nindent 4 }}
329 {{- with .Values.loki.compactor_grpc_client }}
330 compactor_grpc_client:
331 {{- tpl (. | toYaml) $ | nindent 4 }}
334 {{- with .Values.loki.analytics }}
336 {{- tpl (. | toYaml) $ | nindent 4 }}
339 {{- if .Values.loki.ui.enabled }}
343 {{- with .Values.loki.querier }}
345 {{- tpl (. | toYaml) $ | nindent 4 }}
348 {{- with .Values.loki.index_gateway }}
350 {{- tpl (. | toYaml) $ | nindent 4 }}
353 {{- with .Values.loki.frontend }}
355 {{- tpl (. | toYaml) $ | nindent 4 }}
358 {{- with .Values.loki.frontend_worker }}
360 {{- tpl (. | toYaml) $ | nindent 4 }}
363 {{- with .Values.loki.distributor }}
365 {{- tpl (. | toYaml) $ | nindent 4 }}
369 enabled: {{ .Values.loki.tracing.enabled }}
371 {{- with .Values.loki.bloom_build }}
373 {{- tpl (. | toYaml) $ | nindent 4 }}
376 {{- with .Values.loki.bloom_gateway }}
378 {{- tpl (. | toYaml) $ | nindent 4 }}
381 {{- with .Values.loki.operational_config }}
383 {{- tpl (. | toYaml) $ | nindent 4 }}
385 # Should authentication be enabled
387 # -- memberlist configuration (overrides embedded default)
389 # -- Extra memberlist configuration
390 extraMemberlistConfig: {}
391 # -- Tenants list to be created on nginx htpasswd file, with name and password or passwordHash keys<br><br>
395 # - name: "test-user-1"<br>
396 # password: "test-password-1"<br>
397 # - name: "test-user-2"<br>
398 # passwordHash: "$2y$10$7O40CaY1yz7fu9O24k2/u.ct/wELYHRBsn25v/7AyuQ8E8hrLqpva" # generated using `htpasswd -nbBC10 test-user-2 test-password-2`
401 # -- Check https://grafana.com/docs/loki/latest/configuration/#server for more info on the server configuration.
403 http_listen_port: 3100
404 grpc_listen_port: 9095
405 http_server_read_timeout: 600s
406 http_server_write_timeout: 600s
408 # -- trafficDistribution for services
409 # Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution
410 trafficDistribution: ""
413 reject_old_samples: true
414 reject_old_samples_max_age: 168h
415 max_cache_freshness_per_query: 10m
416 split_queries_by_interval: 15m
419 # -- Provides a reloadable runtime configuration file for some specific configuration
421 # -- Check https://grafana.com/docs/loki/latest/configuration/#common_config for more info on how to provide a common configuration
423 path_prefix: /var/loki
424 replication_factor: 3
425 # -- The gRPC address of the compactor. The use of compactor_grpc_address is prefered over compactor_address.
426 # If a customized compactor_address is set, compactor_grpc_address should be set to an empty string.
427 compactor_grpc_address: '{{ include "loki.compactorAddress" . }}'
428 # -- Storage config. Providing this will automatically populate all necessary storage configs in the templated config.
429 # -- In case of using thanos storage, enable use_thanos_objstore and the configuration should be done inside the object_store section.
431 # Loki requires a bucket for chunks and the ruler. GEL requires a third bucket for the admin API.
432 # Please provide these values if you are using object storage.
442 secretAccessKey: null
444 signatureVersion: null
445 s3ForcePathStyle: false
448 # -- Check https://grafana.com/docs/loki/latest/configure/#s3_storage_config for more info on how to provide a backoff_config
450 disable_dualstack: false
458 connectionString: null
459 useManagedIdentity: false
460 useFederatedToken: false
470 user_domain_name: null
478 project_domain_id: null
479 project_domain_name: null
483 connect_timeout: null
484 request_timeout: null
486 chunks_directory: /var/loki/chunks
487 rules_directory: /var/loki/rules
488 # Loki now supports using thanos storage clients for connecting to object storage backend.
489 # This will become the default way to configure storage in a future releases.
490 use_thanos_objstore: false
492 # Type of object store. Valid options are: s3, gcs, azure
494 # Optional prefix for storage keys
496 # S3 configuration (when type is "s3")
502 # Optional access key
504 # Optional secret key
505 secret_access_key: null
506 # Optional. Enable if using self-signed TLS
508 # Optional server-side encryption configuration
510 # Optional HTTP client configuration
512 # GCS configuration (when type is "gcs")
516 # Optional service account JSON
517 service_account: null
518 # Azure configuration (when type is "azure")
520 # Storage account name
522 # Optional storage account key
524 # -- Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas
526 # -- a real Loki install requires a proper schemaConfig defined above this, however for testing or playing around
527 # you can enable useTestSchema
533 object_store: '{{ include "loki.testSchemaObjectStore" . }}'
538 ## A separate loki ruler storage configuration can be provided via rulerStorage.storage section:
542 # -- Check https://grafana.com/docs/loki/latest/configuration/#ruler for more info on configuring ruler
545 dir: /var/loki/ruler-wal
546 # -- Storage for the ruler. If defining rules in `ruler.directories`, this must be configured to use local storage as shown below.
550 # directory: /etc/loki/rules
551 # -- Structured loki configuration, takes precedence over `loki.config`, `loki.schemaConfig`, `loki.storageConfig`
553 # -- Additional query scheduler config
555 # -- Additional storage config
558 index_gateway_client:
559 server_address: '{{ include "loki.indexGatewayAddress" . }}'
561 index_gateway_client:
562 server_address: '{{ include "loki.indexGatewayAddress" . }}'
564 working_directory: /var/loki/data/bloomshipper
569 # -- Optional compactor configuration
571 # -- Optional compactor grpc client configuration
572 compactor_grpc_client: {}
573 # -- Optional pattern ingester configuration
576 # -- Optional analytics configuration
578 # -- Optional Loki UI: Provides access to a operators UI for Loki distributed. When enabled UI will be available at /ui/ of loki-gateway
580 # Disabled by default for backwards compatibility. Enable to use the Loki UI.
583 # enable gateway proxying to UI under /ui
585 # -- Optional querier configuration
587 # -- Optional querier configuration
589 # -- Optional ingester configuration
591 # -- Optional ingester client configuration
593 # -- Optional block builder configuration
595 # -- Optional index gateway configuration
599 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
600 tail_proxy_url: '{{ include "loki.querierAddress" . }}'
602 scheduler_address: '{{ include "loki.querySchedulerAddress" . }}'
603 # -- Optional distributor configuration
611 planner_address: '{{ include "loki.bloomPlannerAddress" . }}'
615 addresses: '{{ include "loki.bloomGatewayAddresses" . }}'
616 # -- Optional operational configuration
617 operational_config: {}
618######################################################################################################################
620# Enterprise Loki Configs
622######################################################################################################################
624# -- Configuration for running Enterprise Loki
626 # Enterprise features are disabled by default.
627 # Set to `true` to deploy Grafana Enterprise Logs (GEL) with a valid license via
628 # `enterprise.license.contents` or `enterprise.useExternalLicense`/`enterprise.externalLicenseName`.
630 # Default version of GEL to deploy
632 # -- Optional name of the GEL cluster, otherwise will use .Release.Name
633 # The cluster name must match what is in your GEL license
635 # -- Grafana Enterprise Logs license
636 # In order to use Grafana Enterprise Logs features, you will need to provide
637 # the contents of your Grafana Enterprise Logs license, either by providing the
638 # contents of the license.jwt, or the name Kubernetes Secret that contains your
640 # To set the license contents, use the flag `--set-file 'enterprise.license.contents=./license.jwt'`
642 contents: "NOTAVALIDLICENSE"
643 # -- Set to true when providing an external license
644 useExternalLicense: false
645 # -- Name of external license secret to use
646 externalLicenseName: null
647 # -- Name of the external config secret to use
648 externalConfigName: ""
649 # -- Use GEL gateway, if false will use the default nginx gateway
651 # -- If enabled, the correct admin_client storage will be configured. If disabled while running enterprise,
652 # make sure auth is set to `type: trust`, or that `auth_enabled` is set to `false`.
655 # enterprise specific sections of the config.yaml file
657 {{- if .Values.enterprise.adminApi.enabled }}
659 {{ include "enterprise-logs.adminAPIStorageConfig" . | nindent 2 }}
662 type: {{ .Values.enterprise.adminApi.enabled | ternary "enterprise" "trust" }}
663 auth_enabled: {{ .Values.loki.auth_enabled }}
664 cluster_name: {{ include "loki.clusterName" . }}
666 path: /etc/loki/license/license.jwt
668 # -- The Docker registry
670 # -- Docker image repository
671 repository: chainguard-private/loki
672 # -- Docker image tag
674 # -- Overrides the image tag with an image digest
675 digest: sha256:b8e21e2f50cb8489a38339551160ecce5e22a7e2b7b1ad8dcd82b4ad7a4c3cb9
676 # -- Docker image pull policy
677 pullPolicy: IfNotPresent
679 # -- Name of external secret containing the admin token for enterprise provisioner
680 # This secret must exist before deploying and must contain a key named 'token'
682 # -- Alternative name of the secret to store token for the canary
684 # -- Configuration for `provisioner` target
685 # Note: Uses enterprise.adminToken.secret value to mount the admin token used to call the admin api.
686 # The provisioner is disabled by default because it requires an out-of-band admin token secret
687 # (created via GEL `tokengen`) referenced by `enterprise.adminToken.secret`. After creating that
688 # secret, set both `enterprise.adminToken.secret` and `enterprise.provisioner.enabled: true`.
689 # See production/helm/loki/docs/examples/enterprise/README.md for the full procedure.
691 # -- Whether the job should be part of the deployment
693 # -- Name of the secret to store provisioned tokens in
694 provisionedSecretPrefix: null
695 # -- Hook type(s) to customize when the job runs. defaults to post-install
696 hookType: "post-install"
697 # -- url of the admin api to use for the provisioner
698 apiUrl: '{{ include "loki.address" . }}'
699 # -- Additional tenants to be created. Each tenant will get a read and write policy
700 # and associated token. Tenant must have a name and a namespace for the secret containting
701 # the token to be created in. For example
704 # secretNamespace: grafana
705 additionalTenants: []
706 # -- Additional Kubernetes environment
708 # -- Additional labels for the `provisioner` Job
710 # -- Additional annotations for the `provisioner` Job
712 # -- Affinity for provisioner Pods
713 # The value will be passed through tpl.
715 # -- Node selector for provisioner Pods
717 # -- Tolerations for provisioner Pods
719 # -- The name of the PriorityClass for provisioner Job
720 priorityClassName: null
721 # -- Use the host's user namespace in provisioner pods
723 # -- Run containers as user `enterprise-logs(uid=10001)`
729 # -- Provisioner image to Utilize
731 # -- The Docker registry
733 # -- Docker image repository
734 repository: chainguard-private/loki
735 # -- Overrides the image tag whose default is the chart's appVersion
737 # -- Overrides the image tag with an image digest
738 digest: sha256:b8e21e2f50cb8489a38339551160ecce5e22a7e2b7b1ad8dcd82b4ad7a4c3cb9
739 # -- Docker image pull policy
740 pullPolicy: IfNotPresent
741 # -- Volume mounts to add to the provisioner pods
742 extraVolumeMounts: []
743 # -- Additional volumes for Pods
745######################################################################################################################
749######################################################################################################################
751# -- Section for configuring optional Helm test
754 # -- Used to directly query the metrics endpoint of the canary for testing, this approach avoids needing prometheus for testing.
755 # This in a newer approach to using prometheusAddress such that tests do not have a dependency on prometheus
756 canaryServiceAddress: 'http://{{ include "loki-canary.fullname" $ }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}:3500/metrics'
757 # -- Address of the prometheus server to query for the test. This overrides any value set for canaryServiceAddress.
758 # This is kept for backward compatibility and may be removed in future releases. Previous value was 'http://prometheus:9090'
759 prometheusAddress: ""
760 # -- Number of times to retry the test before failing
762 # -- Additional labels for the test pods
764 # -- Additional annotations for test pods
766 # -- Image to use for loki canary
768 # -- The Docker registry
770 # -- Docker image repository
771 repository: grafana/loki-helm-test
772 # -- Overrides the image tag whose default is the chart's appVersion
774 # -- Overrides the image tag with an image digest
776 # -- Docker image pull policy
777 pullPolicy: IfNotPresent
778 # -- Use the host's user namespace in test pods
780# The Loki canary pushes logs to and queries from this loki installation to test
781# that it's working correctly
784 # -- The type of the loki canary k8s rollout. This can be a DaemonSet or Deployment.
786 # -- If true, the canary will send directly to Loki via the address configured for verification --
787 # -- If false, it will write to stdout and an Agent will be needed to scrape and send the logs --
789 # -- If set overwrites the default value set by loki.host helper function. Use this if gateway not enabled.
791 # -- The name of the label to look for at loki when doing the checks.
793 # -- Additional annotations for the `loki-canary` Daemonset
795 # -- Additional labels for each `loki-canary` pod
798 # -- Annotations for loki-canary Service
800 # -- Additional labels for loki-canary Service
802 # -- Additional CLI arguments for the `loki-canary' command
804 # -- Environment variables to add to the canary pods
806 # -- Environment variables from secrets or configmaps to add to the canary pods
808 # -- Volume mounts to add to the canary pods
809 extraVolumeMounts: []
810 # -- Volumes to add to the canary pods
812 # -- Resource requests and limits for the canary
814 # -- DNS config for canary pods
816 # -- Node selector for canary pods
818 # -- Tolerations for canary pods
820 # -- Affinity for canary pods
822 # -- The name of the PriorityClass for loki-canary pods
823 priorityClassName: null
824 # -- Use the host's user namespace in loki-canary pods
826 # -- Image to use for loki canary
828 # -- The Docker registry
830 # -- Docker image repository
831 repository: chainguard-private/loki-canary
832 # -- Overrides the image tag whose default is the chart's appVersion
834 # -- Overrides the image tag with an image digest
835 digest: sha256:93086bdba80550b745cda4114a51819734c41fdb6db608db3dd9407ebc839e9e
836 # -- Docker image pull policy
837 pullPolicy: IfNotPresent
845 initialDelaySeconds: 15
849 # -- Update strategy for the `loki-canary` Daemonset pods
854 # -- Replicas for `loki-canary` when using a Deployment
856######################################################################################################################
858# Service Accounts and Kubernetes RBAC
860######################################################################################################################
862 # -- Specifies whether a ServiceAccount should be created
864 # -- The name of the ServiceAccount to use.
865 # If not set and create is true, a name is generated using the fullname template
867 # -- Image pull secrets for the service account
869 # -- Annotations for the service account
871 # -- Labels for the service account
873 # -- Set this toggle to false to opt out of automounting API credentials for the service account
874 automountServiceAccountToken: true
877 # -- If pspEnabled true, a PodSecurityPolicy is created for K8s that use psp.
879 # -- For OpenShift set pspEnabled to 'false' and sccEnabled to 'true' to use the SecurityContextConstraints.
881 # -- Toggle this to true to allow the use of hostPath volumes on OpenShift
882 sccAllowHostDirVolumePlugin: false
883 # -- Specify PSP annotations
884 # Ref: https://kubernetes.io/docs/reference/access-authn-authz/psp-to-pod-security-standards/#podsecuritypolicy-annotations
886 # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
887 # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
888 # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
889 # -- Whether to install RBAC in the namespace only or cluster-wide. Useful if you want to watch ConfigMap globally.
891######################################################################################################################
893# Network Policy configuration
895######################################################################################################################
897 # -- Specifies whether Network Policies should be created
899 # -- Specifies whether the policies created will be standard Network Policies (flavor: kubernetes)
900 # or Cilium Network Policies (flavor: cilium)
903 # -- Specifies the Pods which are allowed to access the metrics port.
904 # As this is cross-namespace communication, you also need the namespaceSelector.
906 # -- Specifies the namespaces which are allowed to access the metrics port
907 namespaceSelector: {}
908 # -- Specifies specific network CIDRs which are allowed to access the metrics port.
909 # In case you use namespaceSelector, you also have to specify your kubelet networks here.
910 # The metrics ports are also used for probes.
913 # -- Specifies the Pods which are allowed to access the http port.
914 # As this is cross-namespace communication, you also need the namespaceSelector.
916 # -- Specifies the namespaces which are allowed to access the http port
917 namespaceSelector: {}
919 # -- Specify the alertmanager port used for alerting
921 # -- Specifies the alertmanager Pods.
922 # As this is cross-namespace communication, you also need the namespaceSelector.
924 # -- Specifies the namespace the alertmanager is running in
925 namespaceSelector: {}
927 # -- Specify the port used for external storage, e.g. AWS S3
929 # -- Specifies specific network CIDRs you want to limit access to
932 # -- (int) Specify the port used for discovery
934 # -- Specifies the Pods labels used for discovery.
935 # As this is cross-namespace communication, you also need the namespaceSelector.
937 # -- Specifies the namespace the discovery Pods are running in
938 namespaceSelector: {}
940 # -- Enable additional cilium egress rules to external world for write, read and backend.
943 # -- Enable additional cilium egress rules to kube-apiserver for backend.
945######################################################################################################################
947# Global memberlist configuration
949######################################################################################################################
951# Configuration for the memberlist service
954 publishNotReadyAddresses: false
956######################################################################################################################
958# adminAPI configuration, enterprise only.
960######################################################################################################################
962# -- Configuration for the `admin-api` target
964 # -- Define the amount of instances
966 # -- hostAliases to add
971 # -- Additional CLI arguments for the `admin-api` target
973 # -- Environment variables to add to the admin-api pods
975 # -- Environment variables from secrets or configmaps to add to the admin-api pods
977 # -- Additional labels for the `admin-api` Deployment
979 # -- Additional annotations for the `admin-api` Deployment
981 # -- DNSConfig for `admin-api` pods
983 # -- Additional labels and annotations for the `admin-api` Service
987 # -- Run container as user `enterprise-logs(uid=10001)`
988 # `fsGroup` must not be specified, because these security options are applied
989 # on container level not on Pod level.
994 containerSecurityContext:
995 readOnlyRootFilesystem: true
999 allowPrivilegeEscalation: false
1000 # -- Update strategy
1005 # -- Readiness probe
1010 initialDelaySeconds: 45
1013 # -- Request and limit Kubernetes resources
1014 # -- Values are defined in small.yaml and large.yaml
1016 # -- Configure optional environment variables
1018 # -- Configure optional initContainers
1020 # -- Configure optional extraContainers
1022 # -- Additional volumes for Pods
1024 # -- Additional volume mounts for Pods
1025 extraVolumeMounts: []
1026 # -- Affinity for admin-api Pods
1027 # The value will be passed through tpl.
1029 # -- Node selector for admin-api Pods
1031 # -- Topology Spread Constraints for admin-api pods
1032 # The value will be passed through tpl.
1033 topologySpreadConstraints: []
1034 # -- Tolerations for admin-api Pods
1036 # -- Grace period to allow the admin-api to shutdown before it is killed
1037 terminationGracePeriodSeconds: 60
1038 # -- Use the host's user namespace in admin-api pods
1040######################################################################################################################
1042# Gateway and Ingress
1044# By default this chart will deploy a Nginx container to act as a gateway which handles routing of traffic
1045# and can also do auth.
1047# If you would prefer you can optionally disable this and enable using k8s ingress to do the incoming routing.
1049######################################################################################################################
1051# Configuration for the gateway
1053 # -- Specifies whether the gateway should be enabled
1055 # -- Number of replicas for the gateway
1057 # -- Default container port
1059 # -- Enable logging of 2xx and 3xx HTTP requests
1060 verboseLogging: true
1062 # -- Enable autoscaling for the gateway
1064 # -- Minimum autoscaling replicas for the gateway
1066 # -- Maximum autoscaling replicas for the gateway
1068 # -- Target CPU utilisation percentage for the gateway
1069 targetCPUUtilizationPercentage: 60
1070 # -- Target memory utilisation percentage for the gateway
1071 targetMemoryUtilizationPercentage:
1072 # -- See `kubectl explain deployment.spec.strategy` for more
1073 # -- ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1074 # -- Behavior policies while scaling.
1077 # stabilizationWindowSeconds: 300
1083 # stabilizationWindowSeconds: 300
1087 # periodSeconds: 180
1091 # -- The Docker registry for the gateway image
1093 # -- The gateway image repository
1094 repository: chainguard-private/nginx
1095 # -- The gateway image tag
1097 # -- Overrides the gateway image tag with an image digest
1098 digest: sha256:45bb775f6ffd04f0a6e7f650e1170ec9131f33dc3408e097ca12c69f99af2fa0
1099 # -- The gateway image pull policy
1100 pullPolicy: IfNotPresent
1101 # -- The name of the PriorityClass for gateway pods
1102 priorityClassName: null
1103 # -- Annotations for gateway deployment
1105 # -- Annotations for gateway pods
1107 # -- Additional labels for gateway pods
1109 # -- Additional CLI args for the gateway
1111 # -- Environment variables to add to the gateway pods
1113 # -- Environment variables from secrets or configmaps to add to the gateway pods
1115 # -- Lifecycle for the gateway container
1117 # -- Volumes to add to the gateway pods
1119 # -- Volume mounts to add to the gateway pods
1120 extraVolumeMounts: []
1121 # -- The SecurityContext for gateway containers
1127 # -- The SecurityContext for gateway containers
1128 containerSecurityContext:
1129 readOnlyRootFilesystem: true
1133 allowPrivilegeEscalation: false
1134 # -- Use the host's user namespace in the gateway
1136 # -- Resource requests and limits for the gateway
1138 # -- Containers to add to the gateway pods
1140 # -- Grace period to allow the gateway to shutdown before it is killed
1141 terminationGracePeriodSeconds: 30
1142 # -- Affinity for gateway pods.
1143 # @default -- Hard node anti-affinity
1144 # The value will be passed through tpl.
1147 requiredDuringSchedulingIgnoredDuringExecution:
1150 app.kubernetes.io/component: gateway
1151 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1152 app.kubernetes.io/instance: '{{ .Release.Name }}'
1153 topologyKey: kubernetes.io/hostname
1154 # -- DNS config for gateway pods
1156 # -- Node selector for gateway pods
1158 # -- Topology Spread Constraints for gateway pods
1159 # The value will be passed through tpl.
1160 topologySpreadConstraints: []
1161 # -- Tolerations for gateway pods
1163 # Gateway service configuration
1165 # -- Port of the gateway service
1167 # -- Type of the gateway service
1169 # -- ClusterIP of the gateway service
1171 # -- (int) Node port if service type is NodePort
1173 # -- Load balancer IPO address if service type is LoadBalancer
1174 loadBalancerIP: null
1175 # -- Annotations for the gateway service
1177 # -- Labels for gateway service
1179 # -- trafficDistribution for gateway service
1180 trafficDistribution: ""
1181 # Gateway ingress configuration
1183 # -- Specifies whether an ingress for the gateway should be created
1185 # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
1186 ingressClassName: ""
1187 # -- Annotations for the gateway ingress
1189 # -- Labels for the gateway ingress
1191 # -- Hosts configuration for the gateway ingress, passed through the `tpl` function to allow templating
1193 - host: gateway.loki.example.com
1196 # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
1198 # -- TLS configuration for the gateway ingress. Hosts passed through the `tpl` function to allow templating
1200 - secretName: loki-gateway-tls
1202 - gateway.loki.example.com
1203 # Basic auth configuration
1205 # -- Enables basic authentication for the gateway
1207 # -- The basic auth username for the gateway
1209 # -- The basic auth password for the gateway
1211 # -- Uses the specified users from the `loki.tenants` list to create the htpasswd file.
1212 # if `loki.tenants` is not set, the `gateway.basicAuth.username` and `gateway.basicAuth.password` are used.
1213 # The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
1215 # @default -- Either `loki.tenants` or `gateway.basicAuth.username` and `gateway.basicAuth.password`.
1217 {{- with $tenants := .Values.loki.tenants }}
1218 {{- range $t := $tenants }}
1219 {{- $username := required "All tenants must have a 'name' set" $t.name }}
1220 {{- if $passwordHash := $t.passwordHash }}
1221 {{- printf "%s:%s\n" $username $passwordHash }}
1222 {{- else if $password := $t.password }}
1223 {{- printf "%s\n" (htpasswd $username $password) }}
1225 {{- fail "All tenants must have a 'password' or 'passwordHash' set" }}
1229 {{- printf "%s\n" (htpasswd (required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username) (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password)) }}
1231 # -- Existing basic auth secret to use. Must contain '.htpasswd'
1232 existingSecret: null
1233 # -- liveness probe for the nginx container in the gateway pods.
1235 # Configures the readiness probe for the gateway
1240 initialDelaySeconds: 15
1242 # -- startup probe for the nginx container in the gateway pods.
1245 # -- Which schema to be used when building URLs. Can be 'http' or 'https'.
1247 # -- Enable listener for IPv6, disable on IPv4-only systems
1249 # -- NGINX log format
1251 main '$remote_addr - $remote_user [$time_local] $status '
1252 '"$request" $body_bytes_sent "$http_referer" '
1253 '"$http_user_agent" "$http_x_forwarded_for"';
1254 # -- Allows appending custom configuration to the server block
1256 # -- Allows appending custom configuration to the http block, passed through the `tpl` function to allow templating
1258 # -- 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.
1260 {{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}
1261 # -- Allows customizing the `client_max_body_size` directive
1262 clientMaxBodySize: 4M
1263 # -- Whether ssl should be appended to the listen directive of the server block or not.
1265 # -- Override Read URL
1267 # -- Override Write URL
1268 customWriteUrl: null
1269 # -- Override Backend URL
1270 customBackendUrl: null
1271 # -- Allows overriding the DNS resolver address nginx will use.
1273 # -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
1274 # @default -- See values.yaml
1276 {{- include "loki.nginxFile" . -}}
1277# -- If running enterprise and using the default enterprise gateway, configs go here.
1279 # -- Define the amount of instances
1281 # -- hostAliases to add
1286 # -- Use the host's user namespace in the `gateway` pod
1288 # -- Additional CLI arguments for the `gateway` target
1290 # -- Environment variables from secrets or configmaps to add to the enterprise gateway pods
1292 # -- Additional labels for the `gateway` Pod
1294 # -- Additional annotations for the `gateway` Pod
1296 # -- Additional labels and annotations for the `gateway` Service
1297 # -- Service overriding service type
1302 # -- Run container as user `enterprise-logs(uid=10001)`
1308 containerSecurityContext:
1309 readOnlyRootFilesystem: true
1313 allowPrivilegeEscalation: false
1314 # -- If you want to use your own proxy URLs, set this to false.
1315 useDefaultProxyURLs: true
1316 # -- update strategy
1321 # -- Readiness probe
1326 initialDelaySeconds: 45
1329 # -- Request and limit Kubernetes resources
1330 # -- Values are defined in small.yaml and large.yaml
1332 # -- Configure optional environment variables
1334 # -- Configure optional initContainers
1336 # -- Conifgure optional extraContainers
1338 # -- Additional volumes for Pods
1340 # -- Additional volume mounts for Pods
1341 extraVolumeMounts: []
1342 # -- Affinity for gateway Pods
1343 # The value will be passed through tpl.
1345 # -- Node selector for gateway Pods
1347 # -- Topology Spread Constraints for enterprise-gateway pods
1348 # The value will be passed through tpl.
1349 topologySpreadConstraints: []
1350 # -- Tolerations for gateway Pods
1352 # -- Grace period to allow the gateway to shutdown before it is killed
1353 terminationGracePeriodSeconds: 60
1354# -- Ingress configuration Use either this ingress or the gateway, but not both at once.
1355# If you enable this, make sure to disable the gateway.
1356# You'll need to supply authn configuration for your ingress controller.
1359 ingressClassName: ""
1361 # nginx.ingress.kubernetes.io/auth-type: basic
1362 # nginx.ingress.kubernetes.io/auth-secret: loki-distributed-basic-auth
1363 # nginx.ingress.kubernetes.io/auth-secret-type: auth-map
1364 # nginx.ingress.kubernetes.io/configuration-snippet: |
1365 # proxy_set_header X-Scope-OrgID $remote_user;
1367 # blackbox.monitoring.exclude: "true"
1369 # -- Paths that are exposed by Loki Distributor.
1370 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.distributorFullname"}}`.
1371 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.writeFullname"}}`.
1372 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1378 # -- Paths that are exposed by Loki Query Frontend.
1379 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.queryFrontendFullname"}}`.
1380 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.readFullname"}}`.
1381 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1384 # this path covers labels and labelValues endpoints
1388 - /loki/api/v1/query
1389 - /loki/api/v1/query_range
1391 # this path covers labels and labelValues endpoints
1392 - /loki/api/v1/label
1393 - /loki/api/v1/labels
1394 - /loki/api/v1/series
1395 - /loki/api/v1/index/stats
1396 - /loki/api/v1/index/volume
1397 - /loki/api/v1/index/volume_range
1398 - /loki/api/v1/format_query
1399 - /loki/api/v1/detected_field
1400 - /loki/api/v1/detected_fields
1401 - /loki/api/v1/detected_labels
1402 - /loki/api/v1/patterns
1403 # -- Paths that are exposed by Loki Ruler.
1404 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.rulerFullname"}}`.
1405 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service: `{{"loki.backendFullname"}}`.
1406 # If deployment mode is SimpleScalable but `read.legacyReadTarget` is `true`, the requests are forwarded to k8s service: `{{"loki.readFullname"}}`.
1407 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1410 - /api/prom/api/v1/rules
1411 - /api/prom/api/v1/alerts
1412 - /loki/api/v1/rules
1413 - /prometheus/api/v1/rules
1414 - /prometheus/api/v1/alerts
1415 # -- Paths that are exposed by Loki Compactor.
1416 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.compactorFullname"}}`.
1417 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service: `{{"loki.backendFullname"}}`.
1418 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1420 - /loki/api/v1/delete
1421 # -- Hosts configuration for the ingress, passed through the `tpl` function to allow templating
1424 # -- TLS configuration for the ingress. Hosts passed through the `tpl` function to allow templating
1428# secretName: loki-distributed-tls
1430######################################################################################################################
1434######################################################################################################################
1436# -- Options that may be necessary when performing a migration from another helm chart
1438 # -- When migrating from a distributed chart like loki-distributed or enterprise-logs
1440 # -- Set to true if migrating from a distributed helm chart
1442 # -- If migrating from a distributed service, provide the distributed deployment's
1443 # memberlist service DNS so the new deployment can join its ring.
1444 memberlistService: ""
1445######################################################################################################################
1447# Single Binary Deployment
1449# For small Loki installations up to a few 10's of GB per day, or for testing and development.
1451######################################################################################################################
1453# Configuration for the single binary node(s)
1455 # -- Number of replicas for the single binary
1458 # -- Enable autoscaling
1460 # -- Minimum autoscaling replicas for the single binary
1462 # -- Maximum autoscaling replicas for the single binary
1464 # -- Target CPU utilisation percentage for the single binary
1465 targetCPUUtilizationPercentage: 60
1466 # -- Target memory utilisation percentage for the single binary
1467 targetMemoryUtilizationPercentage:
1469 # -- The Docker registry for the single binary image. Overrides `loki.image.registry`
1471 # -- Docker image repository for the single binary image. Overrides `loki.image.repository`
1473 # -- Docker image tag for the single binary image. Overrides `loki.image.tag`
1475 # -- The name of the PriorityClass for single binary pods
1476 priorityClassName: null
1477 # -- Annotations for single binary StatefulSet
1479 # -- Annotations for single binary pods
1481 # -- Additional labels for each `single binary` pod
1483 # -- Additional selector labels for each `single binary` pod
1486 # -- Annotations for single binary Service
1488 # -- Additional labels for single binary Service
1490 # -- Service Type for single binary Service
1492 # -- trafficDistribution single binary Service
1493 trafficDistribution: ""
1494 # -- Comma-separated list of Loki modules to load for the single binary
1496 # -- Labels for single binary service
1498 # -- Environment variables to add to the single binary pods
1500 # -- Environment variables from secrets or configmaps to add to the single binary pods
1502 # -- Extra containers to add to the single binary loki pod
1504 # -- Init containers to add to the single binary pods
1506 # -- Volume mounts to add to the single binary pods
1507 extraVolumeMounts: []
1508 # -- Volumes to add to the single binary pods
1510 # -- Resource requests and limits for the single binary
1512 # -- Grace period to allow the single binary to shutdown before it is killed
1513 terminationGracePeriodSeconds: 30
1514 # -- Use the host's user namespace in the single binary pods
1516 # -- Affinity for single binary pods.
1517 # @default -- Hard node anti-affinity
1518 # The value will be passed through tpl.
1521 requiredDuringSchedulingIgnoredDuringExecution:
1524 app.kubernetes.io/component: single-binary
1525 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1526 app.kubernetes.io/instance: '{{ .Release.Name }}'
1527 topologyKey: kubernetes.io/hostname
1528 # -- Topology Spread Constraints for single binary pods
1529 # The value will be passed through tpl.
1530 topologySpreadConstraints: []
1531 # -- DNS config for single binary pods
1533 # -- Node selector for single binary pods
1535 # -- Tolerations for single binary pods
1538 # -- What to do with the volume when the StatefulSet is scaled down.
1540 # -- What to do with the volumes when the StatefulSet is deleted.
1542 # -- Enable StatefulSetAutoDeletePVC feature
1543 enableStatefulSetAutoDeletePVC: true
1544 # -- Enable StatefulSetRecreation for changes to PVC size.
1545 # This means that the StatefulSet will be deleted, recreated (with the same name) and rolled when a change to the
1546 # PVC size is detected. That way the PVC can be resized without manual intervention.
1547 enableStatefulSetRecreationForSizeChange: false
1548 # -- Enable persistent disk
1550 # -- Set access modes on the PersistentVolumeClaim
1553 # -- Size of persistent disk
1555 # -- Storage class to be used.
1556 # If defined, storageClassName: <storageClass>.
1557 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1558 # If empty or set to null, no storageClassName spec is
1559 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1561 # -- Selector for persistent disk
1563 # -- Annotations for volume claim
1565 # -- Labels for volume claim
1567######################################################################################################################
1569# Simple Scalable Deployment (SSD) Mode
1571# For small to medium size Loki deployments up to around 1 TB/day, this is the default mode for this helm chart
1573######################################################################################################################
1575# Configuration for the write pod(s)
1577 # -- Number of replicas for the write
1580 # -- Enable autoscaling for the write.
1582 # -- Minimum autoscaling replicas for the write.
1584 # -- Maximum autoscaling replicas for the write.
1586 # -- Target CPU utilisation percentage for the write.
1587 targetCPUUtilizationPercentage: 60
1588 # -- Target memory utilization percentage for the write.
1589 targetMemoryUtilizationPercentage:
1590 # -- Behavior policies while scaling.
1592 # -- see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details
1603 stabilizationWindowSeconds: 3600
1605 # -- The Docker registry for the write image. Overrides `loki.image.registry`
1607 # -- Docker image repository for the write image. Overrides `loki.image.repository`
1609 # -- Docker image tag for the write image. Overrides `loki.image.tag`
1611 # -- The name of the PriorityClass for write pods
1612 priorityClassName: null
1613 # -- Annotations for write StatefulSet
1615 # -- Annotations for write pods
1617 # -- Additional labels for each `write` pod
1619 # -- Additional selector labels for each `write` pod
1622 # -- Annotations for write Service
1624 # -- Additional labels for write Service
1626 # -- Service Type for write Service
1628 # -- trafficDistribution for write service
1629 trafficDistribution: ""
1630 # -- Comma-separated list of Loki modules to load for the write
1631 targetModule: "write"
1632 # -- Additional CLI args for the write
1634 # -- Environment variables to add to the write pods
1636 # -- Environment variables from secrets or configmaps to add to the write pods
1638 # -- Lifecycle for the write container
1640 # -- The default /flush_shutdown preStop hook is recommended as part of the ingester
1641 # scaledown process so it's added to the template by default when autoscaling is enabled,
1642 # but it's disabled to optimize rolling restarts in instances that will never be scaled
1643 # down or when using chunks storage with WAL disabled.
1644 # https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown
1645 # -- Init containers to add to the write pods
1647 # -- Containers to add to the write pods
1649 # -- Volume mounts to add to the write pods
1650 extraVolumeMounts: []
1651 # -- Volumes to add to the write pods
1653 # -- volumeClaimTemplates to add to StatefulSet
1654 extraVolumeClaimTemplates: []
1655 # -- Resource requests and limits for the write
1657 # -- Grace period to allow the write to shutdown before it is killed. Especially for the ingester,
1658 # this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring
1659 # all data and to successfully leave the member ring on shutdown.
1660 terminationGracePeriodSeconds: 300
1661 # -- Use the host's user namespace in the write pods.
1663 # -- Affinity for write pods.
1664 # @default -- Hard node anti-affinity
1665 # The value will be passed through tpl.
1668 requiredDuringSchedulingIgnoredDuringExecution:
1671 app.kubernetes.io/component: write
1672 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1673 app.kubernetes.io/instance: '{{ .Release.Name }}'
1674 topologyKey: kubernetes.io/hostname
1675 # -- DNS config for write pods
1677 # -- Pod Disruption Budget maxUnavailable
1679 # -- Node selector for write pods
1681 # -- Topology Spread Constraints for write pods
1682 # The value will be passed through tpl.
1683 topologySpreadConstraints: []
1684 # -- Tolerations for write pods
1686 # -- The default is to deploy all pods in parallel.
1687 podManagementPolicy: "Parallel"
1689 # -- Enable volume claims in pod spec
1690 volumeClaimsEnabled: true
1691 # -- Set access modes on the PersistentVolumeClaim
1694 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
1695 dataVolumeParameters:
1697 # -- Enable StatefulSetAutoDeletePVC feature
1698 enableStatefulSetAutoDeletePVC: false
1699 # -- Size of persistent disk
1701 # -- Storage class to be used.
1702 # If defined, storageClassName: <storageClass>.
1703 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1704 # If empty or set to null, no storageClassName spec is
1705 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1707 # -- Volume attributes class name to be used.
1708 # If empty or set to null, no volumeAttributesClassName spec is set.
1709 # Requires Kubernetes 1.31
1710 volumeAttributesClassName: null
1711 # -- Selector for persistent disk
1713 # -- Annotations for volume claim
1715 # -- Labels for volume claim
1717# -- Configuration for the read pod(s)
1719 # -- Number of replicas for the read
1722 # -- Enable autoscaling for the read, this is only used if `queryIndex.enabled: true`
1724 # -- Minimum autoscaling replicas for the read
1726 # -- Maximum autoscaling replicas for the read
1728 # -- Target CPU utilisation percentage for the read
1729 targetCPUUtilizationPercentage: 60
1730 # -- Target memory utilisation percentage for the read
1731 targetMemoryUtilizationPercentage:
1732 # -- Behavior policies while scaling.
1735 # stabilizationWindowSeconds: 300
1741 # stabilizationWindowSeconds: 300
1745 # periodSeconds: 180
1747 # -- The Docker registry for the read image. Overrides `loki.image.registry`
1749 # -- Docker image repository for the read image. Overrides `loki.image.repository`
1751 # -- Docker image tag for the read image. Overrides `loki.image.tag`
1753 # -- The name of the PriorityClass for read pods
1754 priorityClassName: null
1755 # -- Annotations for read deployment
1757 # -- Annotations for read pods
1759 # -- Additional labels for each `read` pod
1761 # -- Additional selector labels for each `read` pod
1764 # -- Annotations for read Service
1766 # -- Additional labels for read Service
1768 # -- Service Type for read Service
1770 # -- trafficDistribution for read service
1771 trafficDistribution: ""
1772 # -- Comma-separated list of Loki modules to load for the read
1773 targetModule: "read"
1774 # -- Whether or not to use the 2 target type simple scalable mode (read, write) or the
1775 # 3 target type (read, write, backend). Legacy refers to the 2 target type, so true will
1776 # run two targets, false will run 3 targets.
1777 legacyReadTarget: false
1778 # -- Additional CLI args for the read
1780 # -- init containers to add to the read pods
1782 # -- Containers to add to the read pods
1784 # -- Environment variables to add to the read pods
1786 # -- Environment variables from secrets or configmaps to add to the read pods
1788 # -- Lifecycle for the read container
1790 # -- Volume mounts to add to the read pods
1791 extraVolumeMounts: []
1792 # -- Volumes to add to the read pods
1794 # -- Resource requests and limits for the read
1796 # -- liveness probe settings for read pods. If empty, applies no livenessProbe
1798 # -- statup probe for the read pods. If empty, applies no startupProbe
1800 # -- Grace period to allow the read to shutdown before it is killed
1801 terminationGracePeriodSeconds: 30
1802 # -- Use the host's user namespace in the read pods.
1804 # -- Affinity for read pods.
1805 # @default -- Hard node anti-affinity
1806 # The value will be passed through tpl.
1809 requiredDuringSchedulingIgnoredDuringExecution:
1812 app.kubernetes.io/component: read
1813 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1814 app.kubernetes.io/instance: '{{ .Release.Name }}'
1815 topologyKey: kubernetes.io/hostname
1816 # -- DNS config for read pods
1818 # -- Pod Disruption Budget maxUnavailable
1820 # -- Node selector for read pods
1822 # -- Topology Spread Constraints for read pods
1823 # The value will be passed through tpl.
1824 topologySpreadConstraints: []
1825 # -- Tolerations for read pods
1827 # -- The default is to deploy all pods in parallel.
1828 podManagementPolicy: "Parallel"
1829 # -- read.persistence is used only if legacyReadTarget is set to true
1831 # -- Enable StatefulSetAutoDeletePVC feature
1832 enableStatefulSetAutoDeletePVC: true
1833 # -- Set access modes on the PersistentVolumeClaim
1836 # -- Size of persistent disk
1838 # -- Storage class to be used.
1839 # If defined, storageClassName: <storageClass>.
1840 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1841 # If empty or set to null, no storageClassName spec is
1842 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1844 # -- Volume attributes class name to be used.
1845 # If empty or set to null, no volumeAttributesClassName spec is set.
1846 # Requires Kubernetes 1.31
1847 volumeAttributesClassName: null
1848 # -- Selector for persistent disk
1850 # -- Annotations for volume claim
1852 # -- Labels for volume claim
1854# -- Configuration for the backend pod(s)
1856 # -- Number of replicas for the backend
1859 # -- Enable autoscaling for the backend.
1861 # -- Minimum autoscaling replicas for the backend.
1863 # -- Maximum autoscaling replicas for the backend.
1865 # -- Target CPU utilization percentage for the backend.
1866 targetCPUUtilizationPercentage: 60
1867 # -- Target memory utilization percentage for the backend.
1868 targetMemoryUtilizationPercentage:
1869 # -- Behavior policies while scaling.
1872 # stabilizationWindowSeconds: 300
1878 # stabilizationWindowSeconds: 300
1882 # periodSeconds: 180
1884 # -- The Docker registry for the backend image. Overrides `loki.image.registry`
1886 # -- Docker image repository for the backend image. Overrides `loki.image.repository`
1888 # -- Docker image tag for the backend image. Overrides `loki.image.tag`
1890 # -- The name of the PriorityClass for backend pods
1891 priorityClassName: null
1892 # -- Annotations for backend StatefulSet
1894 # -- Annotations for backend pods
1896 # -- Additional labels for each `backend` pod
1898 # -- Additional selector labels for each `backend` pod
1901 # -- Annotations for backend Service
1903 # -- Additional labels for backend Service
1905 # -- Service type for backend Service
1907 # -- trafficDistribution for backend Service
1908 trafficDistribution: ""
1909 # -- Comma-separated list of Loki modules to load for the backend
1910 targetModule: "backend"
1911 # -- Additional CLI args for the backend
1913 # -- Environment variables to add to the backend pods
1915 # -- Environment variables from secrets or configmaps to add to the backend pods
1917 # -- Init containers to add to the backend pods
1919 # -- Containers to add to the backend pods
1921 # -- Volume mounts to add to the backend pods
1922 extraVolumeMounts: []
1923 # -- Volumes to add to the backend pods
1925 # -- Resource requests and limits for the backend
1927 # -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingester,
1928 # this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring
1929 # all data and to successfully leave the member ring on shutdown.
1930 terminationGracePeriodSeconds: 300
1931 # -- Use the host's user namespace in the backend pods.
1933 # -- Affinity for backend pods.
1934 # @default -- Hard node anti-affinity
1935 # The value will be passed through tpl.
1938 requiredDuringSchedulingIgnoredDuringExecution:
1941 app.kubernetes.io/component: backend
1942 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1943 app.kubernetes.io/instance: '{{ .Release.Name }}'
1944 topologyKey: kubernetes.io/hostname
1945 # -- DNS config for backend pods
1947 # -- Pod Disruption Budget maxUnavailable
1949 # -- Node selector for backend pods
1951 # -- Topology Spread Constraints for backend pods
1952 # The value will be passed through tpl.
1953 topologySpreadConstraints: []
1954 # -- Tolerations for backend pods
1956 # -- The default is to deploy all pods in parallel.
1957 podManagementPolicy: "Parallel"
1959 # -- Enable volume claims in pod spec
1960 volumeClaimsEnabled: true
1961 # -- Set access modes on the PersistentVolumeClaim
1964 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
1965 dataVolumeParameters:
1967 # -- Enable StatefulSetAutoDeletePVC feature
1968 enableStatefulSetAutoDeletePVC: true
1969 # -- Size of persistent disk
1971 # -- Storage class to be used.
1972 # If defined, storageClassName: <storageClass>.
1973 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1974 # If empty or set to null, no storageClassName spec is
1975 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1977 # -- Volume attributes class name to be used.
1978 # If empty or set to null, no volumeAttributesClassName spec is set.
1979 # Requires Kubernetes 1.31
1980 volumeAttributesClassName: null
1981 # -- Selector for persistent disk
1983 # -- Annotations for volume claim
1985 # -- Labels for volume claim
1987######################################################################################################################
1991# For large Loki deployments ingesting more than 1 TB/day
1993######################################################################################################################
1995# -- Configuration for the ingester
1997 # -- Number of replicas for the ingester, when zoneAwareReplication.enabled is true, the total
1998 # number of replicas will match this value with each zone having 1/3rd of the total replicas.
2000 # -- DNSConfig for ingester pods
2002 # -- hostAliases to add
2007 # -- Use the host's user namespace in the ingester
2010 # -- Enable autoscaling for the ingester
2012 # -- Minimum autoscaling replicas for the ingester
2014 # -- Maximum autoscaling replicas for the ingester
2016 # -- Target CPU utilisation percentage for the ingester
2017 targetCPUUtilizationPercentage: 60
2018 # -- Target memory utilisation percentage for the ingester
2019 targetMemoryUtilizationPercentage: null
2020 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2025 # name: loki_lines_total
2027 # type: AverageValue
2030 # -- Enable autoscaling behaviours
2032 # -- define scale down policies, must conform to HPAScalingRules
2034 # -- define scale up policies, must conform to HPAScalingRules
2037 # -- The Docker registry for the ingester image. Overrides `loki.image.registry`
2039 # -- Docker image repository for the ingester image. Overrides `loki.image.repository`
2041 # -- Docker image tag for the ingester image. Overrides `loki.image.tag`
2043 # -- Command to execute instead of defined in Docker image
2046 priorityClassName: null
2047 # -- Labels for ingester pods
2049 # -- Annotations for ingester pods
2051 # -- The name of the PriorityClass for ingester pods
2052 # -- Labels for ingester service
2054 # -- Annotations for ingester service
2055 serviceAnnotations: {}
2056 # -- Service type for ingester service
2057 serviceType: "ClusterIP"
2058 # -- Additional CLI args for the ingester
2060 # -- Environment variables to add to the ingester pods
2062 # -- Environment variables from secrets or configmaps to add to the ingester pods
2064 # -- Volume mounts to add to the ingester pods
2065 extraVolumeMounts: []
2066 # -- Volumes to add to the ingester pods
2068 # -- Resource requests and limits for the ingester
2070 # -- Containers to add to the ingester pods
2072 # -- Init containers to add to the ingester pods
2074 # -- Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor,
2075 # this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring
2076 # all data and to successfully leave the member ring on shutdown.
2077 terminationGracePeriodSeconds: 300
2078 # -- Lifecycle for the ingester container
2080 # -- topologySpread for ingester pods.
2081 # @default -- Defaults to allow skew no more than 1 node
2082 # The value will be passed through tpl.
2083 topologySpreadConstraints:
2085 topologyKey: kubernetes.io/hostname
2086 whenUnsatisfiable: ScheduleAnyway
2089 app.kubernetes.io/component: ingester
2090 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2091 app.kubernetes.io/instance: '{{ .Release.Name }}'
2092 # -- Affinity for ingester pods. Ignored if zoneAwareReplication is enabled.
2093 # @default -- Hard node anti-affinity
2094 # The value will be passed through tpl.
2097 requiredDuringSchedulingIgnoredDuringExecution:
2100 app.kubernetes.io/component: ingester
2101 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2102 app.kubernetes.io/instance: '{{ .Release.Name }}'
2103 topologyKey: kubernetes.io/hostname
2104 # -- Pod Disruption Budget maxUnavailable
2106 # -- Node selector for ingester pods
2108 # -- Tolerations for ingester pods
2110 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
2112 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
2114 # -- startup probe settings for ingester pods. If empty use `loki.startupProbe`
2116 # -- UpdateStrategy for the ingester StatefulSets.
2118 # -- One of 'OnDelete' or 'RollingUpdate'
2120 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
2124 # -- Enable creating PVCs which is required when using boltdb-shipper
2126 # -- Use emptyDir with ramdisk for storage. **Please note that all data in ingester will be lost on pod restart**
2128 # -- List of the ingester PVCs
2129 # @notationType -- list
2132 # -- Set access modes on the PersistentVolumeClaim
2136 # -- Storage class to be used.
2137 # If defined, storageClassName: <storageClass>.
2138 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2139 # If empty or set to null, no storageClassName spec is
2140 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2142 # -- Volume attributes class name to be used.
2143 # If empty or set to null, no volumeAttributesClassName spec is set.
2144 # Requires Kubernetes 1.31
2145 volumeAttributesClassName: null
2148 # -- Enable StatefulSetAutoDeletePVC feature
2149 enableStatefulSetAutoDeletePVC: false
2152 # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
2154 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2156 # -- trafficDistribution for ingester service
2157 trafficDistribution: ""
2158 # -- Enabling zone awareness on ingesters will create 3 statefulests where all writes will send a replica to each zone.
2159 # This is primarily intended to accelerate rollout operations by allowing for multiple ingesters within a single
2160 # zone to be shutdown and restart simultaneously (the remaining 2 zones will be guaranteed to have at least one copy
2162 # Note: This can be used to run Loki over multiple cloud provider availability zones however this is not currently
2163 # recommended as Loki is not optimized for this and cross zone network traffic costs can become extremely high
2164 # extremely quickly. Even with zone awareness enabled, it is recommended to run Loki in a single availability zone.
2165 zoneAwareReplication:
2166 # -- Enable zone awareness.
2168 # -- The percent of replicas in each zone that will be restarted at once. In a value of 0-100
2169 maxUnavailablePct: 33
2170 # -- zoneA configuration
2172 # -- optionally define a node selector for this zone
2174 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
2175 # The value will be passed through tpl.
2177 # -- Specific annotations to add to zone A statefulset
2179 # -- Specific annotations to add to zone A pods
2182 # -- optionally define a node selector for this zone
2184 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
2185 # The value will be passed through tpl.
2187 # -- Specific annotations to add to zone B statefulset
2189 # -- Specific annotations to add to zone B pods
2192 # -- optionally define a node selector for this zone
2194 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
2195 # The value will be passed through tpl.
2197 # -- Specific annotations to add to zone C statefulset
2199 # -- Specific annotations to add to zone C pods
2201 # -- The migration block allows migrating non zone aware ingesters to zone aware ingesters.
2204 excludeDefaultZone: false
2207 # optionally allow adding arbitrary prefix to the ingester rollout-group label
2208 rolloutGroupPrefix: null
2209 # optionally allow adding 'loki-' prefix to ingester name label
2210 addIngesterNamePrefix: false
2211# -- Configuration for the distributor
2213 # -- Number of replicas for the distributor
2215 # -- hostAliases to add
2220 # -- Use the host's user namespace in the distributor
2222 # -- DNSConfig for distributor pods
2225 # -- Enable autoscaling for the distributor
2227 # -- Minimum autoscaling replicas for the distributor
2229 # -- Maximum autoscaling replicas for the distributor
2231 # -- Target CPU utilisation percentage for the distributor
2232 targetCPUUtilizationPercentage: 60
2233 # -- Target memory utilisation percentage for the distributor
2234 targetMemoryUtilizationPercentage: null
2235 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2240 # name: loki_lines_total
2242 # type: AverageValue
2245 # -- Enable autoscaling behaviours
2247 # -- define scale down policies, must conform to HPAScalingRules
2249 # -- define scale up policies, must conform to HPAScalingRules
2252 # -- The Docker registry for the distributor image. Overrides `loki.image.registry`
2254 # -- Docker image repository for the distributor image. Overrides `loki.image.repository`
2256 # -- Docker image tag for the distributor image. Overrides `loki.image.tag`
2258 # -- Command to execute instead of defined in Docker image
2260 # -- The name of the PriorityClass for distributor pods
2261 priorityClassName: null
2262 # -- Labels for distributor pods
2264 # -- Annotations for distributor pods
2266 # -- Labels for distributor service
2268 # -- Annotations for distributor service
2269 serviceAnnotations: {}
2270 # -- Service type for distributor service
2271 serviceType: ClusterIP
2272 # -- Additional CLI args for the distributor
2274 # -- Environment variables to add to the distributor pods
2276 # -- Environment variables from secrets or configmaps to add to the distributor pods
2278 # -- Volume mounts to add to the distributor pods
2279 extraVolumeMounts: []
2280 # -- Volumes to add to the distributor pods
2282 # -- Resource requests and limits for the distributor
2284 # -- Init containers to add to the distributor pods
2286 # -- Containers to add to the distributor pods
2288 # -- Grace period to allow the distributor to shutdown before it is killed
2289 terminationGracePeriodSeconds: 30
2290 # -- Affinity for distributor pods.
2291 # @default -- Hard node anti-affinity
2292 # The value will be passed through tpl.
2295 requiredDuringSchedulingIgnoredDuringExecution:
2298 app.kubernetes.io/component: distributor
2299 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2300 app.kubernetes.io/instance: '{{ .Release.Name }}'
2301 topologyKey: kubernetes.io/hostname
2302 # -- Pod Disruption Budget maxUnavailable
2303 maxUnavailable: null
2304 # -- Max Surge for distributor pods
2306 # -- Node selector for distributor pods
2308 # -- Topology Spread Constraints for distributor pods
2309 # The value will be passed through tpl.
2310 topologySpreadConstraints: []
2311 # -- Tolerations for distributor pods
2313 # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
2315 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2317 # -- trafficDistribution for distributor service
2318 trafficDistribution: ""
2319# -- Configuration for the querier
2321 # -- Number of replicas for the querier
2323 # -- hostAliases to add
2328 # -- Use the host's user namespace in the querier
2331 # -- Enable autoscaling for the querier, this is only used if `indexGateway.enabled: true`
2333 # -- Minimum autoscaling replicas for the querier
2335 # -- Maximum autoscaling replicas for the querier
2337 # -- Target CPU utilisation percentage for the querier
2338 targetCPUUtilizationPercentage: 60
2339 # -- Target memory utilisation percentage for the querier
2340 targetMemoryUtilizationPercentage: null
2341 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2346 # name: loki_inflight_queries
2348 # type: AverageValue
2351 # -- Enable autoscaling behaviours
2353 # -- define scale down policies, must conform to HPAScalingRules
2355 # -- define scale up policies, must conform to HPAScalingRules
2358 # -- The Docker registry for the querier image. Overrides `loki.image.registry`
2360 # -- Docker image repository for the querier image. Overrides `loki.image.repository`
2362 # -- Docker image tag for the querier image. Overrides `loki.image.tag`
2364 # -- Command to execute instead of defined in Docker image
2366 # -- The name of the PriorityClass for querier pods
2367 priorityClassName: null
2368 # -- Labels for querier pods
2370 # -- Annotations for querier pods
2372 # -- Labels for querier service
2374 # -- Annotations for querier service
2375 serviceAnnotations: {}
2376 # -- Service Type for querier service
2377 serviceType: "ClusterIP"
2378 # -- Additional CLI args for the querier
2380 # -- Environment variables to add to the querier pods
2382 # -- Environment variables from secrets or configmaps to add to the querier pods
2384 # -- Volume mounts to add to the querier pods
2385 extraVolumeMounts: []
2386 # -- Volumes to add to the querier pods
2388 # -- Resource requests and limits for the querier
2390 # -- Containers to add to the querier pods
2392 # -- Init containers to add to the querier pods
2394 # -- Grace period to allow the querier to shutdown before it is killed
2395 terminationGracePeriodSeconds: 30
2396 # -- topologySpread for querier pods.
2397 # @default -- Defaults to allow skew no more then 1 node
2398 # The value will be passed through tpl.
2399 topologySpreadConstraints:
2401 topologyKey: kubernetes.io/hostname
2402 whenUnsatisfiable: ScheduleAnyway
2405 app.kubernetes.io/component: querier
2406 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2407 app.kubernetes.io/instance: '{{ .Release.Name }}'
2408 # -- Affinity for querier pods.
2409 # @default -- Hard node anti-affinity
2410 # The value will be passed through tpl.
2413 requiredDuringSchedulingIgnoredDuringExecution:
2416 app.kubernetes.io/component: querier
2417 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2418 app.kubernetes.io/instance: '{{ .Release.Name }}'
2419 topologyKey: kubernetes.io/hostname
2420 # -- Pod Disruption Budget maxUnavailable
2421 maxUnavailable: null
2422 # -- Max Surge for querier pods
2424 # -- Node selector for querier pods
2426 # -- Tolerations for querier pods
2428 # -- DNSConfig for querier pods
2430 # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
2432 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2434 # -- trafficDistribution for querier service
2435 trafficDistribution: ""
2436# -- Configuration for the query-frontend
2438 # -- Number of replicas for the query-frontend
2440 # -- hostAliases to add
2445 # -- Use the host's user namespace in the query-frontend
2448 # -- Enable autoscaling for the query-frontend
2450 # -- Minimum autoscaling replicas for the query-frontend
2452 # -- Maximum autoscaling replicas for the query-frontend
2454 # -- Target CPU utilisation percentage for the query-frontend
2455 targetCPUUtilizationPercentage: 60
2456 # -- Target memory utilisation percentage for the query-frontend
2457 targetMemoryUtilizationPercentage: null
2458 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2463 # name: loki_query_rate
2465 # type: AverageValue
2468 # -- Enable autoscaling behaviours
2470 # -- define scale down policies, must conform to HPAScalingRules
2472 # -- define scale up policies, must conform to HPAScalingRules
2475 # -- The Docker registry for the query-frontend image. Overrides `loki.image.registry`
2477 # -- Docker image repository for the query-frontend image. Overrides `loki.image.repository`
2479 # -- Docker image tag for the query-frontend image. Overrides `loki.image.tag`
2481 # -- Command to execute instead of defined in Docker image
2483 # -- The name of the PriorityClass for query-frontend pods
2484 priorityClassName: null
2485 # -- Labels for query-frontend pods
2487 # -- Annotations for query-frontend pods
2489 # -- Labels for query-frontend service
2491 # -- Annotations for query-frontend service
2492 serviceAnnotations: {}
2493 # -- Service Type for query-frontend service
2494 serviceType: ClusterIP
2495 # -- Additional CLI args for the query-frontend
2497 # -- Environment variables to add to the query-frontend pods
2499 # -- Environment variables from secrets or configmaps to add to the query-frontend pods
2501 # -- Volume mounts to add to the query-frontend pods
2502 extraVolumeMounts: []
2503 # -- Volumes to add to the query-frontend pods
2505 # -- Resource requests and limits for the query-frontend
2507 # -- init containers to add to the query-frontend pods
2509 # -- Containers to add to the query-frontend pods
2511 # -- Grace period to allow the query-frontend to shutdown before it is killed
2512 terminationGracePeriodSeconds: 30
2513 # -- Affinity for query-frontend pods.
2514 # @default -- Hard node anti-affinity
2515 # The value will be passed through tpl.
2518 requiredDuringSchedulingIgnoredDuringExecution:
2521 app.kubernetes.io/component: query-frontend
2522 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2523 app.kubernetes.io/instance: '{{ .Release.Name }}'
2524 topologyKey: kubernetes.io/hostname
2525 # -- Pod Disruption Budget maxUnavailable
2526 maxUnavailable: null
2527 # -- Node selector for query-frontend pods
2529 # -- Topology Spread Constraints for query-frontend pods
2530 # The value will be passed through tpl.
2531 topologySpreadConstraints: []
2532 # -- Tolerations for query-frontend pods
2534 # -- Adds the appProtocol field to the queryFrontend service. This allows queryFrontend to work with istio protocol selection.
2536 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2538 # -- Enable load balancer port for query-frontend
2541 # -- trafficDistribution for query-frontend service
2542 trafficDistribution: ""
2543# -- Configuration for the query-scheduler
2545 # -- Number of replicas for the query-scheduler.
2546 # It should be lower than `-querier.max-concurrent` to avoid generating back-pressure in queriers;
2547 # it's also recommended that this value evenly divides the latter
2549 # -- DNSConfig for query-scheduler
2551 # -- hostAliases to add
2556 # -- Use the host's user namespace in the query-scheduler
2559 # -- The Docker registry for the query-scheduler image. Overrides `loki.image.registry`
2561 # -- Docker image repository for the query-scheduler image. Overrides `loki.image.repository`
2563 # -- Docker image tag for the query-scheduler image. Overrides `loki.image.tag`
2565 # -- The name of the PriorityClass for query-scheduler pods
2566 priorityClassName: null
2567 # -- Labels for query-scheduler pods
2569 # -- Annotations for query-scheduler pods
2571 # -- Labels for query-scheduler service
2573 # -- Annotations for query-scheduler service
2574 serviceAnnotations: {}
2575 # -- Additional CLI args for the query-scheduler
2577 # -- Environment variables to add to the query-scheduler pods
2579 # -- Environment variables from secrets or configmaps to add to the query-scheduler pods
2581 # -- Volume mounts to add to the query-scheduler pods
2582 extraVolumeMounts: []
2583 # -- Volumes to add to the query-scheduler pods
2585 # -- Resource requests and limits for the query-scheduler
2587 # -- init containers to add to the query-scheduler pods
2589 # -- Containers to add to the query-scheduler pods
2591 # -- Grace period to allow the query-scheduler to shutdown before it is killed
2592 terminationGracePeriodSeconds: 30
2593 # -- Affinity for query-scheduler pods.
2594 # @default -- Hard node anti-affinity
2595 # The value will be passed through tpl.
2598 requiredDuringSchedulingIgnoredDuringExecution:
2601 app.kubernetes.io/component: query-scheduler
2602 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2603 app.kubernetes.io/instance: '{{ .Release.Name }}'
2604 topologyKey: kubernetes.io/hostname
2605 # -- Pod Disruption Budget maxUnavailable
2607 # -- Node selector for query-scheduler pods
2609 # -- Topology Spread Constraints for query-scheduler pods
2610 # The value will be passed through tpl.
2611 topologySpreadConstraints: []
2612 # -- Tolerations for query-scheduler pods
2614 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2617 # -- trafficDistribution for query-scheduler service
2618 trafficDistribution: ""
2619# -- Configuration for the index-gateway
2621 # -- Number of replicas for the index-gateway
2623 # -- Whether the index gateway should join the memberlist hashring
2624 joinMemberlist: true
2625 # -- DNSConfig for index-gateway pods
2627 # -- hostAliases to add
2632 # -- Use the host's user namespace in the index-gateway
2635 # -- The Docker registry for the index-gateway image. Overrides `loki.image.registry`
2637 # -- Docker image repository for the index-gateway image. Overrides `loki.image.repository`
2639 # -- Docker image tag for the index-gateway image. Overrides `loki.image.tag`
2641 # -- The name of the PriorityClass for index-gateway pods
2642 priorityClassName: null
2643 # -- Labels for index-gateway pods
2645 # -- Annotations for index-gateway pods
2647 # -- Labels for index-gateway service
2649 # -- Annotations for index-gateway service
2650 serviceAnnotations: {}
2651 # -- Service type for index-gateway service
2652 serviceType: "ClusterIP"
2653 # -- Additional CLI args for the index-gateway
2655 # -- Environment variables to add to the index-gateway pods
2657 # -- Environment variables from secrets or configmaps to add to the index-gateway pods
2659 # -- Volume mounts to add to the index-gateway pods
2660 extraVolumeMounts: []
2661 # -- Volumes to add to the index-gateway pods
2663 # -- Resource requests and limits for the index-gateway
2665 # -- Containers to add to the index-gateway pods
2667 # -- Init containers to add to the index-gateway pods
2669 # -- Grace period to allow the index-gateway to shutdown before it is killed.
2670 terminationGracePeriodSeconds: 300
2671 # -- Lifecycle for the index-gateway container
2673 # -- Affinity for index-gateway pods.
2674 # @default -- Hard node anti-affinity
2675 # The value will be passed through tpl.
2678 requiredDuringSchedulingIgnoredDuringExecution:
2681 app.kubernetes.io/component: index-gateway
2682 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2683 app.kubernetes.io/instance: '{{ .Release.Name }}'
2684 topologyKey: kubernetes.io/hostname
2685 # -- Pod Disruption Budget maxUnavailable
2686 maxUnavailable: null
2687 # -- Node selector for index-gateway pods
2689 # -- Topology Spread Constraints for index-gateway pods
2690 # The value will be passed through tpl.
2691 topologySpreadConstraints: []
2692 # -- Tolerations for index-gateway pods
2695 # -- Enable creating PVCs which is required when using boltdb-shipper
2697 # -- Set access modes on the PersistentVolumeClaim
2700 # -- Use emptyDir with ramdisk for storage. **Please note that all data in indexGateway will be lost on pod restart**
2702 # -- Size of persistent or memory disk
2704 # -- Storage class to be used.
2705 # If defined, storageClassName: <storageClass>.
2706 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2707 # If empty or set to null, no storageClassName spec is
2708 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2710 # -- Volume attributes class name to be used.
2711 # If empty or set to null, no volumeAttributesClassName spec is set.
2712 # Requires Kubernetes 1.31
2713 volumeAttributesClassName: null
2714 # -- Annotations for index gateway PVCs
2716 # -- Labels for index gateway PVCs
2718 # -- Enable StatefulSetAutoDeletePVC feature
2719 enableStatefulSetAutoDeletePVC: false
2722 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2725 # -- trafficDistribution for index-gateway service
2726 trafficDistribution: ""
2727 # -- UpdateStrategy for the indexGateway StatefulSet.
2729 # -- One of 'OnDelete' or 'RollingUpdate'
2731 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
2734# -- Configuration for the compactor
2736 # -- Number of replicas for the compactor
2738 # -- hostAliases to add
2743 # -- Use the host's user namespace in the compactor
2745 # -- DNSConfig for compactor pods
2748 # -- The Docker registry for the compactor image. Overrides `loki.image.registry`
2750 # -- Docker image repository for the compactor image. Overrides `loki.image.repository`
2752 # -- Docker image tag for the compactor image. Overrides `loki.image.tag`
2754 # -- Command to execute instead of defined in Docker image
2756 # -- The name of the PriorityClass for compactor pods
2757 priorityClassName: null
2758 # -- Labels for compactor pods
2760 # -- Annotations for compactor pods
2762 # -- Affinity for compactor pods.
2763 # @default -- Hard node anti-affinity
2764 # The value will be passed through tpl.
2767 requiredDuringSchedulingIgnoredDuringExecution:
2770 app.kubernetes.io/component: compactor
2771 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2772 app.kubernetes.io/instance: '{{ .Release.Name }}'
2773 topologyKey: kubernetes.io/hostname
2774 # -- Labels for compactor service
2776 # -- Annotations for compactor service
2777 serviceAnnotations: {}
2778 # -- Service type for compactor service
2779 serviceType: "ClusterIP"
2780 # -- Additional CLI args for the compactor
2782 # -- Environment variables to add to the compactor pods
2784 # -- Environment variables from secrets or configmaps to add to the compactor pods
2786 # -- Volume mounts to add to the compactor pods
2787 extraVolumeMounts: []
2788 # -- Volumes to add to the compactor pods
2790 # -- readiness probe settings for compactor pods. If empty, use `loki.readinessProbe`
2792 # -- liveness probe settings for compactor pods. If empty use `loki.livenessProbe`
2794 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
2796 # -- Resource requests and limits for the compactor
2798 # -- Containers to add to the compactor pods
2800 # -- Init containers to add to the compactor pods
2802 # -- Grace period to allow the compactor to shutdown before it is killed
2803 terminationGracePeriodSeconds: 30
2804 # -- Node selector for compactor pods
2806 # -- Tolerations for compactor pods
2808 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2812 # -- Enable creating PVCs for the compactor
2814 # -- List of the compactor PVCs
2815 # @notationType -- list
2818 # -- Set access modes on the PersistentVolumeClaim
2822 # -- Storage class to be used.
2823 # If defined, storageClassName: <storageClass>.
2824 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2825 # If empty or set to null, no storageClassName spec is
2826 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2828 # -- Volume attributes class name to be used.
2829 # If empty or set to null, no volumeAttributesClassName spec is set.
2830 # Requires Kubernetes 1.31
2831 volumeAttributesClassName: null
2832 # -- Annotations for compactor PVCs
2834 # -- Labels for compactor PVCs
2838 # -- Enable StatefulSetAutoDeletePVC feature
2839 enableStatefulSetAutoDeletePVC: false
2844 # -- The name of the ServiceAccount to use for the compactor.
2845 # If not set and create is true, a name is generated by appending
2846 # "-compactor" to the common ServiceAccount.
2848 # -- Image pull secrets for the compactor service account
2849 imagePullSecrets: []
2850 # -- Annotations for the compactor service account
2852 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2853 automountServiceAccountToken: true
2854# -- Configuration for the bloom-gateway
2856 # -- Number of replicas for the bloom-gateway
2858 # -- hostAliases to add
2863 # -- Use the host's user namespace in the bloom-gateway
2865 # -- DNSConfig for bloom-gateway pods
2868 # -- The Docker registry for the bloom-gateway image. Overrides `loki.image.registry`
2870 # -- Docker image repository for the bloom-gateway image. Overrides `loki.image.repository`
2872 # -- Docker image tag for the bloom-gateway image. Overrides `loki.image.tag`
2874 # -- Command to execute instead of defined in Docker image
2876 # -- The name of the PriorityClass for bloom-gateway pods
2877 priorityClassName: null
2878 # -- Labels for bloom-gateway pods
2880 # -- Annotations for bloom-gateway pods
2882 # -- Affinity for bloom-gateway pods.
2883 # @default -- Hard node anti-affinity
2884 # The value will be passed through tpl.
2887 requiredDuringSchedulingIgnoredDuringExecution:
2890 app.kubernetes.io/component: bloom-gateway
2891 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2892 app.kubernetes.io/instance: '{{ .Release.Name }}'
2893 topologyKey: kubernetes.io/hostname
2894 # -- Labels for bloom-gateway service
2896 # -- Annotations for bloom-gateway service
2897 serviceAnnotations: {}
2898 # -- Additional CLI args for the bloom-gateway
2900 # -- Environment variables to add to the bloom-gateway pods
2902 # -- Environment variables from secrets or configmaps to add to the bloom-gateway pods
2904 # -- Volume mounts to add to the bloom-gateway pods
2905 extraVolumeMounts: []
2906 # -- Volumes to add to the bloom-gateway pods
2908 # -- readiness probe settings for bloom-gateway pods. If empty, use `loki.readinessProbe`
2910 # -- liveness probe settings for bloom-gateway pods. If empty use `loki.livenessProbe`
2912 # -- startup probe settings for bloom-gateway pods. If empty, use `loki.startupProbe`
2914 # -- Resource requests and limits for the bloom-gateway
2916 # -- Containers to add to the bloom-gateway pods
2918 # -- Init containers to add to the bloom-gateway pods
2920 # -- Grace period to allow the bloom-gateway to shutdown before it is killed
2921 terminationGracePeriodSeconds: 30
2922 # -- Node selector for bloom-gateway pods
2924 # -- Tolerations for bloom-gateway pods
2926 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2930 # -- Enable creating PVCs for the bloom-gateway
2932 # -- Annotations for bloom-gateway PVCs
2934 # -- Labels for bloom gateway PVCs
2936 # -- List of the bloom-gateway PVCs
2937 # @notationType -- list
2940 # -- Set access modes on the PersistentVolumeClaim
2943 # -- Size of persistent disk
2945 # -- Storage class to be used.
2946 # If defined, storageClassName: <storageClass>.
2947 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2948 # If empty or set to null, no storageClassName spec is
2949 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2951 # -- Volume attributes class name to be used.
2952 # If empty or set to null, no volumeAttributesClassName spec is set.
2953 # Requires Kubernetes 1.31
2954 volumeAttributesClassName: null
2955 # -- Enable StatefulSetAutoDeletePVC feature
2956 enableStatefulSetAutoDeletePVC: false
2961 # -- The name of the ServiceAccount to use for the bloom-gateway.
2962 # If not set and create is true, a name is generated by appending
2963 # "-bloom-gateway" to the common ServiceAccount.
2965 # -- Image pull secrets for the bloom-gateway service account
2966 imagePullSecrets: []
2967 # -- Annotations for the bloom-gateway service account
2969 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2970 automountServiceAccountToken: true
2971# -- Configuration for the bloom-planner
2973 # -- Number of replicas for the bloom-planner
2975 # -- hostAliases to add
2980 # -- Use the host's user namespace in the bloom-planner
2982 # -- DNSConfig for bloom-planner pods
2985 # -- The Docker registry for the bloom-planner image. Overrides `loki.image.registry`
2987 # -- Docker image repository for the bloom-planner image. Overrides `loki.image.repository`
2989 # -- Docker image tag for the bloom-planner image. Overrides `loki.image.tag`
2991 # -- Command to execute instead of defined in Docker image
2993 # -- The name of the PriorityClass for bloom-planner pods
2994 priorityClassName: null
2995 # -- Labels for bloom-planner pods
2997 # -- Annotations for bloom-planner pods
2999 # -- Affinity for bloom-planner pods.
3000 # @default -- Hard node anti-affinity
3001 # The value will be passed through tpl.
3004 requiredDuringSchedulingIgnoredDuringExecution:
3007 app.kubernetes.io/component: bloom-planner
3008 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3009 app.kubernetes.io/instance: '{{ .Release.Name }}'
3010 topologyKey: kubernetes.io/hostname
3011 # -- Labels for bloom-planner service
3013 # -- Annotations for bloom-planner service
3014 serviceAnnotations: {}
3015 # -- Additional CLI args for the bloom-planner
3017 # -- Environment variables to add to the bloom-planner pods
3019 # -- Environment variables from secrets or configmaps to add to the bloom-planner pods
3021 # -- Volume mounts to add to the bloom-planner pods
3022 extraVolumeMounts: []
3023 # -- Volumes to add to the bloom-planner pods
3025 # -- readiness probe settings for bloom-planner pods. If empty, use `loki.readinessProbe`
3027 # -- liveness probe settings for bloom-planner pods. If empty use `loki.livenessProbe`
3029 # -- startup probe settings for bloom-planner pods. If empty use `loki.startupProbe`
3031 # -- Resource requests and limits for the bloom-planner
3033 # -- Containers to add to the bloom-planner pods
3035 # -- Init containers to add to the bloom-planner pods
3037 # -- Grace period to allow the bloom-planner to shutdown before it is killed
3038 terminationGracePeriodSeconds: 30
3039 # -- Node selector for bloom-planner pods
3041 # -- Tolerations for bloom-planner pods
3043 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3047 # -- Enable creating PVCs for the bloom-planner
3049 # -- List of the bloom-planner PVCs
3050 # @notationType -- list
3053 # -- Set access modes on the PersistentVolumeClaim
3056 # -- Size of persistent disk
3058 # -- Storage class to be used.
3059 # If defined, storageClassName: <storageClass>.
3060 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3061 # If empty or set to null, no storageClassName spec is
3062 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3064 # -- Volume attributes class name to be used.
3065 # If empty or set to null, no volumeAttributesClassName spec is set.
3066 # Requires Kubernetes 1.31
3067 volumeAttributesClassName: null
3068 # -- Annotations for bloom-planner PVCs
3070 # -- Labels for bloom planner PVCs
3072 # -- Enable StatefulSetAutoDeletePVC feature
3073 enableStatefulSetAutoDeletePVC: false
3078 # -- The name of the ServiceAccount to use for the bloom-planner.
3079 # If not set and create is true, a name is generated by appending
3080 # "-bloom-planner" to the common ServiceAccount.
3082 # -- Image pull secrets for the bloom-planner service account
3083 imagePullSecrets: []
3084 # -- Annotations for the bloom-planner service account
3086 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3087 automountServiceAccountToken: true
3088# -- Configuration for the bloom-builder
3090 # -- Number of replicas for the bloom-builder
3092 # -- hostAliases to add
3097 # -- Use the host's user namespace in the boom-builder
3099 # -- DNSConfig for bloom-builder pods
3102 # -- Enable autoscaling for the bloom-builder
3104 # -- Minimum autoscaling replicas for the bloom-builder
3106 # -- Maximum autoscaling replicas for the bloom-builder
3108 # -- Target CPU utilisation percentage for the bloom-builder
3109 targetCPUUtilizationPercentage: 60
3110 # -- Target memory utilisation percentage for the bloom-builder
3111 targetMemoryUtilizationPercentage: null
3112 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3117 # name: loki_query_rate
3119 # type: AverageValue
3122 # -- Enable autoscaling behaviours
3124 # -- define scale down policies, must conform to HPAScalingRules
3126 # -- define scale up policies, must conform to HPAScalingRules
3129 # -- The Docker registry for the bloom-builder image. Overrides `loki.image.registry`
3131 # -- Docker image repository for the bloom-builder image. Overrides `loki.image.repository`
3133 # -- Docker image tag for the bloom-builder image. Overrides `loki.image.tag`
3135 # -- Command to execute instead of defined in Docker image
3137 # -- The name of the PriorityClass for bloom-builder pods
3138 priorityClassName: null
3139 # -- Labels for bloom-builder pods
3141 # -- Annotations for bloom-builder pods
3143 # -- Labels for bloom-builder service
3145 # -- Annotations for bloom-builder service
3146 serviceAnnotations: {}
3147 # -- Additional CLI args for the bloom-builder
3149 # -- Environment variables to add to the bloom-builder pods
3151 # -- Environment variables from secrets or configmaps to add to the bloom-builder pods
3153 # -- Volume mounts to add to the bloom-builder pods
3154 extraVolumeMounts: []
3155 # -- Volumes to add to the bloom-builder pods
3157 # -- Resource requests and limits for the bloom-builder
3159 # -- Init containers to add to the bloom-builder pods
3161 # -- Containers to add to the bloom-builder pods
3163 # -- Grace period to allow the bloom-builder to shutdown before it is killed
3164 terminationGracePeriodSeconds: 30
3165 # -- Affinity for bloom-builder pods.
3166 # @default -- Hard node anti-affinity
3167 # The value will be passed through tpl.
3170 requiredDuringSchedulingIgnoredDuringExecution:
3173 app.kubernetes.io/component: bloom-builder
3174 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3175 app.kubernetes.io/instance: '{{ .Release.Name }}'
3176 topologyKey: kubernetes.io/hostname
3177 # -- Pod Disruption Budget maxUnavailable
3178 maxUnavailable: null
3179 # -- Node selector for bloom-builder pods
3181 # -- Tolerations for bloom-builder pods
3183 # -- Adds the appProtocol field to the queryFrontend service. This allows bloomBuilder to work with istio protocol selection.
3185 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3187# -- Configuration for the pattern ingester
3189 # -- Number of replicas for the pattern ingester
3191 # -- DNSConfig for pattern ingester pods
3193 # -- hostAliases to add
3198 # -- Use the host's user namespace in the pattern ingester
3201 # -- The Docker registry for the pattern ingester image. Overrides `loki.image.registry`
3203 # -- Docker image repository for the pattern ingester image. Overrides `loki.image.repository`
3205 # -- Docker image tag for the pattern ingester image. Overrides `loki.image.tag`
3207 # -- Command to execute instead of defined in Docker image
3209 # -- The name of the PriorityClass for pattern ingester pods
3210 priorityClassName: null
3211 # -- Labels for pattern ingester pods
3213 # -- Annotations for pattern ingester pods
3215 # -- Affinity for pattern ingester pods.
3216 # @default -- Hard node anti-affinity
3217 # The value will be passed through tpl.
3220 requiredDuringSchedulingIgnoredDuringExecution:
3223 app.kubernetes.io/component: pattern-ingester
3224 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3225 app.kubernetes.io/instance: '{{ .Release.Name }}'
3226 topologyKey: kubernetes.io/hostname
3227 # -- Pod Disruption Budget maxUnavailable
3228 maxUnavailable: null
3229 # -- Labels for pattern ingester service
3231 # -- Annotations for pattern ingester service
3232 serviceAnnotations: {}
3233 # -- Additional CLI args for the pattern ingester
3235 # -- Environment variables to add to the pattern ingester pods
3237 # -- Environment variables from secrets or configmaps to add to the pattern ingester pods
3239 # -- Volume mounts to add to the pattern ingester pods
3240 extraVolumeMounts: []
3241 # -- Volumes to add to the pattern ingester pods
3243 # -- readiness probe settings for pattern ingester pods. If empty, use `loki.readinessProbe`
3245 # -- liveness probe settings for pattern ingester pods. If empty use `loki.livenessProbe`
3247 # -- startup probe settings for pattern ingester pods. If empty use `loki.startupProbe`
3249 # -- Resource requests and limits for the pattern ingester
3251 # -- Containers to add to the pattern ingester pods
3253 # -- Init containers to add to the pattern ingester pods
3255 # -- Grace period to allow the pattern ingester to shutdown before it is killed
3256 terminationGracePeriodSeconds: 30
3257 # -- Node selector for pattern ingester pods
3259 # -- Topology Spread Constraints for pattern ingester pods
3260 # The value will be passed through tpl.
3261 topologySpreadConstraints: []
3262 # -- Tolerations for pattern ingester pods
3264 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3268 # -- Enable creating PVCs for the pattern ingester
3270 # -- Size of persistent disk
3272 # -- Storage class to be used.
3273 # If defined, storageClassName: <storageClass>.
3274 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3275 # If empty or set to null, no storageClassName spec is
3276 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3278 # -- List of the pattern ingester PVCs
3279 # @notationType -- list
3282 # -- Set access modes on the PersistentVolumeClaim
3286 # -- Storage class to be used.
3287 # If defined, storageClassName: <storageClass>.
3288 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3289 # If empty or set to null, no storageClassName spec is
3290 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3292 # -- Volume attributes class name to be used.
3293 # If empty or set to null, no volumeAttributesClassName spec is set.
3294 # Requires Kubernetes 1.31
3295 volumeAttributesClassName: null
3296 # -- Annotations for pattern ingester PVCs
3298 # -- Labels for pattern ingester PVCs
3302 # -- Enable StatefulSetAutoDeletePVC feature
3303 enableStatefulSetAutoDeletePVC: false
3308 # -- The name of the ServiceAccount to use for the pattern ingester.
3309 # If not set and create is true, a name is generated by appending
3310 # "-pattern-ingester" to the common ServiceAccount.
3312 # -- Image pull secrets for the pattern ingester service account
3313 imagePullSecrets: []
3314 # -- Annotations for the pattern ingester service account
3316 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3317 automountServiceAccountToken: true
3318# -- Configuration for the ruler
3320 # -- The ruler component is optional and can be disabled if desired.
3322 # -- Whether to enable the rules sidecar
3324 # -- Number of replicas for the ruler
3326 # -- hostAliases to add
3331 # -- Use the host's user namespace in the ruler
3334 # -- The Docker registry for the ruler image. Overrides `loki.image.registry`
3336 # -- Docker image repository for the ruler image. Overrides `loki.image.repository`
3338 # -- Docker image tag for the ruler image. Overrides `loki.image.tag`
3340 # -- Command to execute instead of defined in Docker image
3342 # -- The name of the PriorityClass for ruler pods
3343 priorityClassName: null
3344 # -- Labels for compactor pods
3346 # -- Annotations for ruler pods
3348 # -- Labels for ruler service
3350 # -- Annotations for ruler service
3351 serviceAnnotations: {}
3352 # -- Additional CLI args for the ruler
3354 # -- Environment variables to add to the ruler pods
3356 # -- Environment variables from secrets or configmaps to add to the ruler pods
3358 # -- Volume mounts to add to the ruler pods
3359 extraVolumeMounts: []
3360 # -- Volumes to add to the ruler pods
3362 # -- Resource requests and limits for the ruler
3364 # -- Containers to add to the ruler pods
3366 # -- Init containers to add to the ruler pods
3368 # -- Grace period to allow the ruler to shutdown before it is killed
3369 terminationGracePeriodSeconds: 300
3370 # -- Affinity for ruler pods.
3371 # @default -- Hard node anti-affinity
3372 # The value will be passed through tpl.
3375 requiredDuringSchedulingIgnoredDuringExecution:
3378 app.kubernetes.io/component: ruler
3379 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3380 app.kubernetes.io/instance: '{{ .Release.Name }}'
3381 topologyKey: kubernetes.io/hostname
3382 # -- Pod Disruption Budget maxUnavailable
3383 maxUnavailable: null
3384 # -- Node selector for ruler pods
3386 # -- Topology Spread Constraints for ruler pods
3387 # The value will be passed through tpl.
3388 topologySpreadConstraints: []
3389 # -- Tolerations for ruler pods
3391 # -- DNSConfig for ruler pods
3394 # -- Enable creating PVCs which is required when using recording rules
3396 # -- Set access modes on the PersistentVolumeClaim
3399 # -- Size of persistent disk
3401 # -- Storage class to be used.
3402 # If defined, storageClassName: <storageClass>.
3403 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3404 # If empty or set to null, no storageClassName spec is
3405 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3407 # -- Volume attributes class name to be used.
3408 # If empty or set to null, no volumeAttributesClassName spec is set.
3409 # Requires Kubernetes 1.31
3410 volumeAttributesClassName: null
3411 # -- Annotations for ruler PVCs
3413 # -- Labels for ruler PVCs
3415 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3418 # -- Directories containing rules files. If used, you must also configure `loki.rulerConfig.storage` to use local storage.
3423 # - name: should_fire
3425 # - alert: HighPercentageError
3427 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
3429 # sum(rate({app="foo", env="production"}[5m])) by (job)
3435 # summary: High error rate
3436 # - name: credentials_leak
3438 # - alert: http-credentials-leaked
3440 # message: "{{ $labels.job }} is leaking http basic auth credentials."
3441 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
3444 # severity: critical
3449 # - alert: HighThroughputLogStreams
3450 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
3455 # - name: should_fire
3457 # - alert: HighPercentageError
3459 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
3461 # sum(rate({app="foo", env="production"}[5m])) by (job)
3467 # summary: High error rate
3468 # - name: credentials_leak
3470 # - alert: http-credentials-leaked
3472 # message: "{{ $labels.job }} is leaking http basic auth credentials."
3473 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
3476 # severity: critical
3481 # - alert: HighThroughputLogStreams
3482 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
3484# -- Configuration for the overrides-exporter
3486 # -- The overrides-exporter component is optional and can be disabled if desired.
3488 # -- Number of replicas for the overrides-exporter
3490 # -- DNSConfig for overrides-exporter
3492 # -- hostAliases to add
3497 # -- Use the host's user namespace in the overrides-exporter
3500 # -- The Docker registry for the overrides-exporter image. Overrides `loki.image.registry`
3502 # -- Docker image repository for the overrides-exporter image. Overrides `loki.image.repository`
3504 # -- Docker image tag for the overrides-exporter image. Overrides `loki.image.tag`
3506 # -- Command to execute instead of defined in Docker image
3508 # -- The name of the PriorityClass for overrides-exporter pods
3509 priorityClassName: null
3510 # -- Labels for overrides-exporter pods
3512 # -- Annotations for overrides-exporter pods
3514 # -- Labels for overrides-exporter service
3516 # -- Annotations for overrides-exporter service
3517 serviceAnnotations: {}
3518 # -- Additional CLI args for the overrides-exporter
3520 # -- Environment variables to add to the overrides-exporter pods
3522 # -- Environment variables from secrets or configmaps to add to the overrides-exporter pods
3524 # -- Volume mounts to add to the overrides-exporter pods
3525 extraVolumeMounts: []
3526 # -- Volumes to add to the overrides-exporter pods
3528 # -- Resource requests and limits for the overrides-exporter
3530 # -- Containers to add to the overrides-exporter pods
3532 # -- Init containers to add to the overrides-exporter pods
3534 # -- Grace period to allow the overrides-exporter to shutdown before it is killed
3535 terminationGracePeriodSeconds: 300
3536 # -- Affinity for overrides-exporter pods.
3537 # @default -- Hard node anti-affinity
3538 # The value will be passed through tpl.
3541 requiredDuringSchedulingIgnoredDuringExecution:
3544 app.kubernetes.io/component: overrides-exporter
3545 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3546 app.kubernetes.io/instance: '{{ .Release.Name }}'
3547 topologyKey: kubernetes.io/hostname
3548 # -- Pod Disruption Budget maxUnavailable
3549 maxUnavailable: null
3550 # -- Node selector for overrides-exporter pods
3552 # -- Topology Spread Constraints for overrides-exporter pods
3553 # The value will be passed through tpl.
3554 topologySpreadConstraints: []
3555 # -- Tolerations for overrides-exporter pods
3557 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3560# You can use a self hosted memcached by setting enabled to false and providing addresses.
3562 # -- Enable the built in memcached server provided by the chart
3565 # -- Memcached Docker image repository
3566 repository: cgr.dev/chainguard-private/memcached
3567 # -- Memcached Docker image tag
3568 tag: latest@sha256:bd210cf8f8a6ffd8de945078ead55e064e37e33bd4f25663f086d4f49ef31aee
3569 # -- Memcached Docker image pull policy
3570 pullPolicy: IfNotPresent
3571 # -- The SecurityContext override for memcached pods
3577 # -- The name of the PriorityClass for memcached pods
3578 priorityClassName: null
3579 # -- The SecurityContext for memcached containers
3580 containerSecurityContext:
3581 readOnlyRootFilesystem: true
3584 allowPrivilegeEscalation: false
3585 # -- Readiness probe for memcached pods (probe port defaults to container port)
3589 initialDelaySeconds: 5
3593 # -- Liveness probe for memcached pods
3597 initialDelaySeconds: 30
3601 # -- Startup probe for memcached pods
3604 # -- Whether memcached metrics should be exported
3607 repository: cgr.dev/chainguard-private/memcached-exporter
3608 tag: latest@sha256:e1cd7504768dd8a717140d147dc177e2b41351c5ce7a082740747796ed3f8ca6
3609 pullPolicy: IfNotPresent
3613 # -- The SecurityContext for memcached exporter containers
3614 containerSecurityContext:
3615 readOnlyRootFilesystem: true
3618 allowPrivilegeEscalation: false
3619 # -- Extra args to add to the exporter container.
3622 # memcached.tls.enable: true
3623 # memcached.tls.cert-file: /certs/cert.crt
3624 # memcached.tls.key-file: /certs/cert.key
3625 # memcached.tls.ca-file: /certs/ca.crt
3626 # memcached.tls.insecure-skip-verify: false
3627 # memcached.tls.server-name: memcached
3629 # -- Liveness probe for memcached exporter
3634 initialDelaySeconds: 30
3638 # -- Readiness probe for memcached exporter
3643 initialDelaySeconds: 5
3647 # -- Startup probe for memcached exporter
3650 # -- Specifies whether memcached based results-cache should be enabled
3652 # -- Comma separated addresses list in DNS Service Discovery format
3653 addresses: dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "results-cache") }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
3654 # -- Specify how long cached results should be stored in the results-cache before being expired
3655 defaultValidity: 12h
3656 # -- Memcached operation timeout
3658 # -- Total number of results-cache replicas
3660 # -- Port of the results-cache service
3662 # -- Amount of memory allocated to results-cache for object storage (in MB).
3663 allocatedMemory: 1024
3664 # -- Amount of cpu allocated to results-cache for object storage (in integer or millicores).
3666 # -- Maximum item results-cache for memcached (in MB).
3668 # -- Maximum number of connections allowed
3669 connectionLimit: 16384
3670 # -- Max memory to use for cache write back
3671 writebackSizeLimit: 500MB
3672 # -- Max number of objects to use for cache write back
3673 writebackBuffer: 500000
3674 # -- Number of parallel threads for cache write back
3675 writebackParallelism: 1
3676 # -- Extra init containers for results-cache pods
3678 # -- Annotations for the results-cache pods
3680 # -- Node selector for results-cache pods
3682 # -- Affinity for results-cache pods
3684 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
3685 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
3686 topologySpreadConstraints: []
3688 # topologyKey: kubernetes.io/hostname
3689 # whenUnsatisfiable: ScheduleAnyway
3690 # -- Tolerations for results-cache pods
3692 # -- Pod Disruption Budget maxUnavailable
3694 # -- DNSConfig for results-cache
3696 # -- The name of the PriorityClass for results-cache pods
3697 priorityClassName: null
3698 # -- Use the host's user namespace in results-cache pods
3700 # -- Labels for results-cache pods
3702 # -- Annotations for results-cache pods
3704 # -- Management policy for results-cache pods
3705 podManagementPolicy: Parallel
3706 # -- Grace period to allow the results-cache to shutdown before it is killed
3707 terminationGracePeriodSeconds: 60
3708 # -- Stateful results-cache strategy
3711 # -- Add extended options for results-cache memcached container. The format is the same as for the memcached -o/--extend flag.
3713 # extraExtendedOptions: 'tls,modern,track_sizes'
3714 extraExtendedOptions: ""
3715 # -- Additional CLI args for results-cache
3717 # -- Additional containers to be added to the results-cache pod.
3719 # -- Additional volumes to be added to the results-cache pod (applies to both memcached and exporter containers).
3722 # - name: extra-volume
3724 # secretName: extra-volume-secret
3726 # -- Additional volume mounts to be added to the results-cache pod (applies to both memcached and exporter containers).
3728 # extraVolumeMounts:
3729 # - name: extra-volume
3730 # mountPath: /etc/extra-volume
3732 extraVolumeMounts: []
3733 # -- Resource requests and limits for the results-cache
3734 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
3736 # -- Service annotations and labels
3740 # -- Persistence settings for the results-cache
3742 # -- Enable creating PVCs for the results-cache
3744 # -- Size of persistent disk, must be in G or Gi
3746 # -- Storage class to be used.
3747 # If defined, storageClassName: <storageClass>.
3748 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3749 # If empty or set to null, no storageClassName spec is
3750 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3752 # -- Volume attributes class name to be used.
3753 # If empty or set to null, no volumeAttributesClassName spec is set.
3754 # Requires Kubernetes 1.31
3755 volumeAttributesClassName: null
3756 # -- Volume mount path
3758 # -- PVC additional labels
3761 # -- Append to the name of the resources to make names different for l1 and l2
3763 # -- Specifies whether memcached based chunks-cache should be enabled
3765 # -- Comma separated addresses list in DNS Service Discovery format
3766 addresses: 'dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "chunks-cache" "suffix" $.Values.chunksCache.suffix ) }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}'
3767 # -- Batchsize for sending and receiving chunks from chunks cache
3769 # -- Parallel threads for sending and receiving chunks from chunks cache
3771 # -- Memcached operation timeout
3773 # -- Specify how long cached chunks should be stored in the chunks-cache before being expired
3775 # -- Specify how long cached chunks should be stored in the chunks-cache before being expired
3777 # -- Port of the chunks-cache service
3779 # -- Amount of memory allocated to chunks-cache for object storage (in MB).
3780 allocatedMemory: 8192
3781 # -- Amount of cpu allocated to chunks-cache for object storage (in integer or millicores).
3783 # -- Maximum item memory for chunks-cache (in MB).
3785 # -- Maximum number of connections allowed
3786 connectionLimit: 16384
3787 # -- Max memory to use for cache write back
3788 writebackSizeLimit: 500MB
3789 # -- Max number of objects to use for cache write back
3790 writebackBuffer: 500000
3791 # -- Number of parallel threads for cache write back
3792 writebackParallelism: 1
3793 # -- Extra init containers for chunks-cache pods
3795 # -- Annotations for the chunks-cache pods
3797 # -- Node selector for chunks-cache pods
3799 # -- Affinity for chunks-cache pods
3801 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
3802 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
3803 topologySpreadConstraints: []
3805 # topologyKey: kubernetes.io/hostname
3806 # whenUnsatisfiable: ScheduleAnyway
3807 # -- Tolerations for chunks-cache pods
3809 # -- Pod Disruption Budget maxUnavailable
3811 # -- DNSConfig for chunks-cache
3813 # -- The name of the PriorityClass for chunks-cache pods
3814 priorityClassName: null
3815 # -- Use the host's user namespace in chunks-cache pods
3817 # -- Labels for chunks-cache pods
3819 # -- Annotations for chunks-cache pods
3821 # -- Management policy for chunks-cache pods
3822 podManagementPolicy: Parallel
3823 # -- Grace period to allow the chunks-cache to shutdown before it is killed
3824 terminationGracePeriodSeconds: 60
3825 # -- Stateful chunks-cache strategy
3828 # -- Add extended options for chunks-cache memcached container. The format is the same as for the memcached -o/--extend flag.
3830 # extraExtendedOptions: 'tls,no_hashexpand'
3831 extraExtendedOptions: ""
3832 # -- Additional CLI args for chunks-cache
3834 # -- Additional containers to be added to the chunks-cache pod.
3836 # -- Additional volumes to be added to the chunks-cache pod (applies to both memcached and exporter containers).
3839 # - name: extra-volume
3841 # secretName: extra-volume-secret
3843 # -- Additional volume mounts to be added to the chunks-cache pod (applies to both memcached and exporter containers).
3845 # extraVolumeMounts:
3846 # - name: extra-volume
3847 # mountPath: /etc/extra-volume
3849 extraVolumeMounts: []
3850 # -- Resource requests and limits for the chunks-cache
3851 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
3853 # -- Service annotations and labels
3857 # -- Persistence settings for the chunks-cache
3859 # -- Enable creating PVCs for the chunks-cache
3861 # -- Size of persistent disk, must be in G or Gi
3863 # -- Storage class to be used.
3864 # If defined, storageClassName: <storageClass>.
3865 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3866 # If empty or set to null, no storageClassName spec is
3867 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3869 # -- Volume attributes class name to be used.
3870 # If empty or set to null, no volumeAttributesClassName spec is set.
3871 # Requires Kubernetes 1.31
3872 volumeAttributesClassName: null
3873 # -- Volume mount path
3876 # -- l2 memcache configuration
3878 # -- Append to the name of the resources to make names different for l1 and l2
3880 # -- The age of chunks should be transfered from l1 cache to l2
3882 l2ChunkCacheHandoff: 345600s
3883 # -- Specifies whether memcached based chunks-cache-l2 should be enabled
3885 # -- Comma separated addresses list in DNS Service Discovery format
3886 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 }}'
3887 # -- Batchsize for sending and receiving chunks from chunks cache
3889 # -- Parallel threads for sending and receiving chunks from chunks cache
3891 # -- Memcached operation timeout
3893 # -- Specify how long cached chunks should be stored in the chunks-cache-l2 before being expired
3895 # -- Specify how long cached chunks should be stored in the chunks-cache-l2 before being expired
3897 # -- Port of the chunks-cache-l2 service
3899 # -- Amount of memory allocated to chunks-cache-l2 for object storage (in MB).
3900 allocatedMemory: 8192
3901 # -- Amount of cpu allocated to chunks-cache-l2 for object storage (in integer or millicores).
3903 # -- Maximum item memory for chunks-cache-l2 (in MB).
3905 # -- Maximum number of connections allowed
3906 connectionLimit: 16384
3907 # -- Max memory to use for cache write back
3908 writebackSizeLimit: 500MB
3909 # -- Max number of objects to use for cache write back
3910 writebackBuffer: 500000
3911 # -- Number of parallel threads for cache write back
3912 writebackParallelism: 1
3913 # -- Extra init containers for chunks-cache-l2 pods
3915 # -- Annotations for the chunks-cache-l2 pods
3917 # -- Node selector for chunks-cach-l2 pods
3919 # -- Affinity for chunks-cache-l2 pods
3921 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
3922 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
3923 topologySpreadConstraints: []
3925 # topologyKey: kubernetes.io/hostname
3926 # whenUnsatisfiable: ScheduleAnyway
3927 # -- Tolerations for chunks-cache-l2 pods
3929 # -- Pod Disruption Budget maxUnavailable
3931 # -- DNSConfig for chunks-cache-l2
3933 # -- The name of the PriorityClass for chunks-cache-l2 pods
3934 priorityClassName: null
3935 # -- Use the host's user namespace in chunks-cache-l2 pods
3937 # -- Labels for chunks-cache-l2 pods
3939 # -- Annotations for chunks-cache-l2 pods
3941 # -- Management policy for chunks-cache-l2 pods
3942 podManagementPolicy: Parallel
3943 # -- Grace period to allow the chunks-cache-l2 to shutdown before it is killed
3944 terminationGracePeriodSeconds: 60
3945 # -- Stateful chunks-cache strategy
3948 # -- Add extended options for chunks-cache-l2 memcached container. The format is the same as for the memcached -o/--extend flag.
3950 # extraExtendedOptions: 'tls,no_hashexpand'
3951 extraExtendedOptions: ""
3952 # -- Additional CLI args for chunks-cache-l2
3954 # -- Additional containers to be added to the chunks-cache-l2 pod.
3956 # -- Additional volumes to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
3959 # - name: extra-volume
3961 # secretName: extra-volume-secret
3963 # -- Additional volume mounts to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
3965 # extraVolumeMounts:
3966 # - name: extra-volume
3967 # mountPath: /etc/extra-volume
3969 extraVolumeMounts: []
3970 # -- Resource requests and limits for the chunks-cache-l2
3971 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
3973 # -- Service annotations and labels
3977 # -- Persistence settings for the chunks-cache-l2
3979 # -- Enable creating PVCs for the chunks-cache-l2
3981 # -- Size of persistent disk, must be in G or Gi
3983 # -- Storage class to be used.
3984 # If defined, storageClassName: <storageClass>.
3985 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3986 # If empty or set to null, no storageClassName spec is
3987 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3989 # -- Volume attributes class name to be used.
3990 # If empty or set to null, no volumeAttributesClassName spec is set.
3991 # Requires Kubernetes 1.31
3992 volumeAttributesClassName: null
3993 # -- Volume mount path
3996######################################################################################################################
3998# Subchart configurations
4000######################################################################################################################
4001# -- Setting for the Grafana Rollout Operator https://github.com/grafana/helm-charts/tree/main/charts/rollout-operator
4004 # -- podSecurityContext is the pod security context for the rollout operator.
4005 # When installing on OpenShift, override podSecurityContext settings with
4008 # podSecurityContext:
4018 type: RuntimeDefault
4019 # Set the container security context
4021 readOnlyRootFilesystem: true
4024 allowPrivilegeEscalation: false
4025# -- Configuration for the minio subchart
4028 # Override the upstream MinIO, Inc. images with the Pigsty (pgsty) community
4029 # fork to mitigate the unresolved CVE in the abandoned MinIO images.
4030 # See https://github.com/pgsty/minio for details.
4032 repository: docker.io/pgsty/minio
4033 tag: RELEASE.2026-03-14T12-00-00Z
4034 pullPolicy: IfNotPresent
4036 repository: docker.io/pgsty/mc
4037 tag: RELEASE.2026-03-13T08-57-32Z
4038 pullPolicy: IfNotPresent
4040 # Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
4041 # https://docs.min.io/docs/minio-erasure-code-quickstart-guide
4042 # Since we only have 1 replica, that means 2 drives must be used.
4044 # root user; not used for GEL authentication
4046 rootPassword: supersecretpassword
4047 # The first user in the list below is used for Loki/GEL authentication.
4048 # You can add additional users if desired; they will not impact Loki/GEL.
4049 # `accessKey` = username, `secretKey` = password
4051 - accessKey: logs-user
4052 secretKey: supersecretpassword
4071 # Allow the address used by Loki to refer to Minio to be overridden
4073# Create extra manifests via values
4074# Can be a list or dictionary, both are passed through `tpl`. If dict, keys are ignored and only values are used.
4075# Objects can also be defined as multiline strings, useful for templating field names
4080# name: loki-alerting-rules
4082# loki-alerting-rules.yaml: |-
4088# sum(count_over_time({app="loki"} |~ "error")) > 0
4094# message: "loki has encountered errors"
4100# name: loki-distributed-basic-auth
4102# {{- range .Values.loki.tenants }}
4103# {{ .name }}: {{ b64enc .password | quote }}
4109 # -- The Docker registry and image for the k8s sidecar
4110 repository: cgr.dev/chainguard-private/k8s-sidecar
4111 # -- Docker image tag
4113 # -- Docker image sha. If empty, no sha will be used
4114 sha: sha256:3e75b2ef05a41f5f590eb50c34e0d14bdefc4b0d1eda22c6f0cffd845015cc59
4115 # -- Docker image pull policy
4116 pullPolicy: IfNotPresent
4117 # -- Resource requests and limits for the sidecar
4125 # -- The SecurityContext for the sidecar.
4127 readOnlyRootFilesystem: true
4131 allowPrivilegeEscalation: false
4132 # -- Set to true to skip tls verification for kube api calls.
4133 skipTlsVerify: false
4134 # -- Set to true to disable strict x509 verification for kube api calls.
4135 disableX509StrictVerification: false
4136 # -- Ensure that rule files aren't conflicting and being overwritten by prefixing their name with the namespace they are defined in.
4137 enableUniqueFilenames: false
4138 # -- Readiness probe definition. Probe is disabled on the sidecar by default.
4140 # -- Liveness probe definition. Probe is disabled on the sidecar by default.
4142 # -- Startup probe definition. Probe is disabled on the sidecar by default.
4145 # -- Whether or not to create a sidecar to ingest rule from specific ConfigMaps and/or Secrets.
4147 # -- Label that the configmaps/secrets with rules will be marked with.
4149 # -- Label value that the configmaps/secrets with rules will be set to.
4151 # -- Folder into which the rules will be placed.
4153 # -- The annotation overwriting the folder value.
4154 # The annotation value can be either an absolute or a relative path. Relative paths will be relative to FOLDER.
4155 # Useful for multi-tenancy setups.
4156 folderAnnotation: null
4157 # -- Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
4158 # Otherwise the namespace in which the sidecar is running will be used.
4159 # It's also possible to specify 'ALL' to search in all namespaces.
4160 searchNamespace: null
4161 # -- 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.
4163 # -- Search in configmap, secret, or both.
4165 # -- Absolute path to the shell script to execute after a configmap or secret has been reloaded.
4167 # -- WatchServerTimeout: request to the server, asking it to cleanly close the connection after that.
4168 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S.
4169 watchServerTimeout: 60
4171 # -- WatchClientTimeout: is a client-side timeout, configuring your local socket.
4172 # If you have a network outage dropping all packets with no RST/FIN,
4173 # this is how long your client waits before realizing & dropping the connection.
4174 # Defaults to 66sec.
4175 watchClientTimeout: 60
4176 # -- Log level of the sidecar container.
4178# -- Monitoring section determines which monitoring features to enable
4180 # Dashboards for monitoring Loki
4182 # -- If enabled, create configmap with dashboards for monitoring Loki
4184 # -- Alternative namespace to create dashboards ConfigMap in
4186 # -- Additional annotations for the dashboards ConfigMap
4188 # -- Labels for the dashboards ConfigMap
4190 grafana_dashboard: "1"
4191 # -- Recording rules for monitoring Loki, required for some dashboards
4193 # -- If enabled, create PrometheusRule resource with Loki recording rules
4195 # -- Include alerting rules
4197 # -- Specify which individual alerts should be disabled
4198 # -- Instead of turning off each alert one by one, set the .monitoring.rules.alerting value to false instead.
4199 # -- If you disable all the alerts and keep .monitoring.rules.alerting set to true, the chart will fail to render.
4201 # -- DEPRECATED: use monitoring.rules.configs.*.enabled instead
4203 # LokiRequestErrors: true
4204 # LokiRequestPanics: true
4223 LokiTooManyCompactorsRunning:
4233 # -- Alternative namespace to create PrometheusRule resources in
4235 # -- Additional annotations for the rules PrometheusRule resource
4237 # -- Additional labels for the rules PrometheusRule resource
4239 # -- Additional annotations for PrometheusRule alerts
4240 additionalRuleAnnotations: {}
4242 # additionalRuleAnnotations:
4243 # runbook_url: "https://runbooks.example.com/oncall/loki"
4244 # summary: "What this alert means and how to respond"
4245 # -- Additional labels for PrometheusRule alerts
4246 additionalRuleLabels: {}
4247 # -- Additional groups to add to the rules file
4248 additionalGroups: []
4249 # - name: additional-loki-rules
4251 # - record: job:loki_request_duration_seconds_bucket:sum_rate
4252 # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job)
4253 # - record: job_route:loki_request_duration_seconds_bucket:sum_rate
4254 # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job, route)
4255 # - record: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate
4256 # expr: sum(rate(container_cpu_usage_seconds_total[1m])) by (node, namespace, pod, container)
4257 # -- ServiceMonitor configuration
4259 # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
4261 # -- Namespace selector for ServiceMonitor resources
4262 namespaceSelector: {}
4263 # -- ServiceMonitor annotations
4265 # -- Additional ServiceMonitor labels
4267 # -- ServiceMonitor scrape interval
4268 # Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at
4269 # least 1/4 rate interval.
4271 # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
4273 # -- ServiceMonitor relabel configs to apply to samples before scraping
4274 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
4276 # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
4277 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
4278 metricRelabelings: []
4279 # -- ServiceMonitor will use http by default, but you can pick https as well
4281 # -- ServiceMonitor will use these tlsConfig settings to make the health check requests
4283 # -- DEPRECATED If defined, will create a MetricsInstance for the Grafana Agent Operator.
4285 # -- If enabled, MetricsInstance resources for Grafana Agent Operator are created
4287 # -- MetricsInstance annotations
4289 # -- Additional MetricsInstance labels
4291 # -- If defined a MetricsInstance will be created to remote write metrics.
4293 # -- DEPRECATED Self monitoring determines whether Loki should scrape its own logs.
4294 # This feature relies on Grafana Agent Operator, which is deprecated.
4295 # It will create custom resources for GrafanaAgent, LogsInstance, and PodLogs to configure
4296 # scrape configs to scrape its own logs with the labels expected by the included dashboards.
4299 # -- Tenant to use for self monitoring
4301 # -- Name of the tenant
4302 name: "self-monitoring"
4303 # -- Password of the gateway for Basic auth
4305 # -- Namespace to create additional tenant token secret in. Useful if your Grafana instance
4306 # is in a separate namespace. Token will still be created in the canary namespace.
4307 # @default -- The same namespace as the loki chart is installed in.
4308 secretNamespace: '{{ include "loki.namespace" . }}'
4309 # -- DEPRECATED Grafana Agent configuration
4311 # -- DEPRECATED Controls whether to install the Grafana Agent Operator and its CRDs.
4312 # Note that helm will not install CRDs if this flag is enabled during an upgrade.
4313 # In that case install the CRDs manually from https://github.com/grafana/agent/tree/main/production/operator/crds
4314 installOperator: false
4315 # -- Grafana Agent annotations
4317 # -- Additional Grafana Agent labels
4319 # -- Enable the config read api on port 8080 of the agent
4320 enableConfigReadAPI: false
4321 # -- The name of the PriorityClass for GrafanaAgent pods
4322 priorityClassName: null
4323 # -- Resource requests and limits for the grafanaAgent pods
4330 # -- Tolerations for GrafanaAgent pods
4332 # PodLogs configuration
4334 # -- PodLogs version
4335 apiVersion: monitoring.grafana.com/v1alpha1
4336 # -- PodLogs annotations
4338 # -- Additional PodLogs labels
4340 # -- PodLogs relabel configs to apply to samples before scraping
4341 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
4343 # -- Additional pipeline stages to process logs after scraping
4344 # https://grafana.com/docs/agent/latest/operator/api/#pipelinestagespec-a-namemonitoringgrafanacomv1alpha1pipelinestagespeca
4345 additionalPipelineStages: []
4346 # LogsInstance configuration
4348 # -- LogsInstance annotations
4350 # -- Additional LogsInstance labels
4352 # -- Additional clients for remote write
4354# -- DEPRECATED Configuration for the table-manager. The table-manager is only necessary when using a deprecated
4355# index type such as Cassandra, Bigtable, or DynamoDB, it has not been necessary since loki introduced self-
4356# contained index types like 'boltdb-shipper' and 'tsdb'. This will be removed in a future helm chart.
4358 # -- Specifies whether the table-manager should be enabled
4361 # -- The Docker registry for the table-manager image. Overrides `loki.image.registry`
4363 # -- Docker image repository for the table-manager image. Overrides `loki.image.repository`
4365 # -- Docker image tag for the table-manager image. Overrides `loki.image.tag`
4367 # -- Command to execute instead of defined in Docker image
4369 # -- The name of the PriorityClass for table-manager pods
4370 priorityClassName: null
4371 # -- Labels for table-manager pods
4373 # -- Annotations for table-manager deployment
4375 # -- Annotations for table-manager pods
4378 # -- Annotations for table-manager Service
4380 # -- Additional labels for table-manager Service
4382 # -- Additional CLI args for the table-manager
4384 # -- Environment variables to add to the table-manager pods
4386 # -- Environment variables from secrets or configmaps to add to the table-manager pods
4388 # -- Volume mounts to add to the table-manager pods
4389 extraVolumeMounts: []
4390 # -- Volumes to add to the table-manager pods
4392 # -- Resource requests and limits for the table-manager
4394 # -- Containers to add to the table-manager pods
4396 # -- Grace period to allow the table-manager to shutdown before it is killed
4397 terminationGracePeriodSeconds: 30
4398 # -- Use the host's user namespace in table-manager pods
4400 # -- Affinity for table-manager pods.
4401 # @default -- Hard node and anti-affinity
4402 # The value will be passed through tpl.
4405 requiredDuringSchedulingIgnoredDuringExecution:
4408 app.kubernetes.io/component: table-manager
4409 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4410 app.kubernetes.io/instance: '{{ .Release.Name }}'
4411 topologyKey: kubernetes.io/hostname
4412 # -- DNS config table-manager pods
4414 # -- Node selector for table-manager pods
4416 # -- Tolerations for table-manager pods
4418 # -- Enable deletes by retention
4419 retention_deletes_enabled: false
4420 # -- Set retention period