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:f5fe104fe6a77baf09ffd0e936ead9784f1b84925fd3743fa1b2021293d61db7
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 # Enable enterprise features, license must be provided
628 # Default version of GEL to deploy
630 # -- Optional name of the GEL cluster, otherwise will use .Release.Name
631 # The cluster name must match what is in your GEL license
633 # -- Grafana Enterprise Logs license
634 # In order to use Grafana Enterprise Logs features, you will need to provide
635 # the contents of your Grafana Enterprise Logs license, either by providing the
636 # contents of the license.jwt, or the name Kubernetes Secret that contains your
638 # To set the license contents, use the flag `--set-file 'enterprise.license.contents=./license.jwt'`
640 contents: "NOTAVALIDLICENSE"
641 # -- Set to true when providing an external license
642 useExternalLicense: false
643 # -- Name of external license secret to use
644 externalLicenseName: null
645 # -- Name of the external config secret to use
646 externalConfigName: ""
647 # -- Use GEL gateway, if false will use the default nginx gateway
649 # -- If enabled, the correct admin_client storage will be configured. If disabled while running enterprise,
650 # make sure auth is set to `type: trust`, or that `auth_enabled` is set to `false`.
653 # enterprise specific sections of the config.yaml file
655 {{- if .Values.enterprise.adminApi.enabled }}
657 {{ include "enterprise-logs.adminAPIStorageConfig" . | nindent 2 }}
660 type: {{ .Values.enterprise.adminApi.enabled | ternary "enterprise" "trust" }}
661 auth_enabled: {{ .Values.loki.auth_enabled }}
662 cluster_name: {{ include "loki.clusterName" . }}
664 path: /etc/loki/license/license.jwt
666 # -- The Docker registry
668 # -- Docker image repository
669 repository: chainguard-private/loki
670 # -- Docker image tag
672 # -- Overrides the image tag with an image digest
673 digest: sha256:f5fe104fe6a77baf09ffd0e936ead9784f1b84925fd3743fa1b2021293d61db7
674 # -- Docker image pull policy
675 pullPolicy: IfNotPresent
677 # -- Name of external secret containing the admin token for enterprise provisioner
678 # This secret must exist before deploying and must contain a key named 'token'
680 # -- Alternative name of the secret to store token for the canary
682 # -- Configuration for `provisioner` target
683 # Note: Uses enterprise.adminToken.secret value to mount the admin token used to call the admin api.
685 # -- Whether the job should be part of the deployment
687 # -- Name of the secret to store provisioned tokens in
688 provisionedSecretPrefix: null
689 # -- Hook type(s) to customize when the job runs. defaults to post-install
690 hookType: "post-install"
691 # -- url of the admin api to use for the provisioner
692 apiUrl: '{{ include "loki.address" . }}'
693 # -- Additional tenants to be created. Each tenant will get a read and write policy
694 # and associated token. Tenant must have a name and a namespace for the secret containting
695 # the token to be created in. For example
698 # secretNamespace: grafana
699 additionalTenants: []
700 # -- Additional Kubernetes environment
702 # -- Additional labels for the `provisioner` Job
704 # -- Additional annotations for the `provisioner` Job
706 # -- Affinity for provisioner Pods
707 # The value will be passed through tpl.
709 # -- Node selector for provisioner Pods
711 # -- Tolerations for provisioner Pods
713 # -- The name of the PriorityClass for provisioner Job
714 priorityClassName: null
715 # -- Use the host's user namespace in provisioner pods
717 # -- Run containers as user `enterprise-logs(uid=10001)`
723 # -- Provisioner image to Utilize
725 # -- The Docker registry
727 # -- Docker image repository
728 repository: chainguard-private/loki
729 # -- Overrides the image tag whose default is the chart's appVersion
731 # -- Overrides the image tag with an image digest
732 digest: sha256:f5fe104fe6a77baf09ffd0e936ead9784f1b84925fd3743fa1b2021293d61db7
733 # -- Docker image pull policy
734 pullPolicy: IfNotPresent
735 # -- Volume mounts to add to the provisioner pods
736 extraVolumeMounts: []
737 # -- Additional volumes for Pods
739######################################################################################################################
743######################################################################################################################
745# -- Section for configuring optional Helm test
748 # -- Used to directly query the metrics endpoint of the canary for testing, this approach avoids needing prometheus for testing.
749 # This in a newer approach to using prometheusAddress such that tests do not have a dependency on prometheus
750 canaryServiceAddress: 'http://{{ include "loki-canary.fullname" $ }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}:3500/metrics'
751 # -- Address of the prometheus server to query for the test. This overrides any value set for canaryServiceAddress.
752 # This is kept for backward compatibility and may be removed in future releases. Previous value was 'http://prometheus:9090'
753 prometheusAddress: ""
754 # -- Number of times to retry the test before failing
756 # -- Additional labels for the test pods
758 # -- Additional annotations for test pods
760 # -- Image to use for loki canary
762 # -- The Docker registry
764 # -- Docker image repository
765 repository: grafana/loki-helm-test
766 # -- Overrides the image tag whose default is the chart's appVersion
768 # -- Overrides the image tag with an image digest
770 # -- Docker image pull policy
771 pullPolicy: IfNotPresent
772 # -- Use the host's user namespace in test pods
774# The Loki canary pushes logs to and queries from this loki installation to test
775# that it's working correctly
778 # -- The type of the loki canary k8s rollout. This can be a DaemonSet or Deployment.
780 # -- If true, the canary will send directly to Loki via the address configured for verification --
781 # -- If false, it will write to stdout and an Agent will be needed to scrape and send the logs --
783 # -- If set overwrites the default value set by loki.host helper function. Use this if gateway not enabled.
785 # -- The name of the label to look for at loki when doing the checks.
787 # -- Additional annotations for the `loki-canary` Daemonset
789 # -- Additional labels for each `loki-canary` pod
792 # -- Annotations for loki-canary Service
794 # -- Additional labels for loki-canary Service
796 # -- Additional CLI arguments for the `loki-canary' command
798 # -- Environment variables to add to the canary pods
800 # -- Environment variables from secrets or configmaps to add to the canary pods
802 # -- Volume mounts to add to the canary pods
803 extraVolumeMounts: []
804 # -- Volumes to add to the canary pods
806 # -- Resource requests and limits for the canary
808 # -- DNS config for canary pods
810 # -- Node selector for canary pods
812 # -- Tolerations for canary pods
814 # -- Affinity for canary pods
816 # -- The name of the PriorityClass for loki-canary pods
817 priorityClassName: null
818 # -- Use the host's user namespace in loki-canary pods
820 # -- Image to use for loki canary
822 # -- The Docker registry
824 # -- Docker image repository
825 repository: chainguard-private/loki-canary
826 # -- Overrides the image tag whose default is the chart's appVersion
828 # -- Overrides the image tag with an image digest
829 digest: sha256:595881c44e526d783f6cc333edcc899693b9f5f2288f2cd08dbf4849973eb03b
830 # -- Docker image pull policy
831 pullPolicy: IfNotPresent
839 initialDelaySeconds: 15
843 # -- Update strategy for the `loki-canary` Daemonset pods
848 # -- Replicas for `loki-canary` when using a Deployment
850######################################################################################################################
852# Service Accounts and Kubernetes RBAC
854######################################################################################################################
856 # -- Specifies whether a ServiceAccount should be created
858 # -- The name of the ServiceAccount to use.
859 # If not set and create is true, a name is generated using the fullname template
861 # -- Image pull secrets for the service account
863 # -- Annotations for the service account
865 # -- Labels for the service account
867 # -- Set this toggle to false to opt out of automounting API credentials for the service account
868 automountServiceAccountToken: true
871 # -- If pspEnabled true, a PodSecurityPolicy is created for K8s that use psp.
873 # -- For OpenShift set pspEnabled to 'false' and sccEnabled to 'true' to use the SecurityContextConstraints.
875 # -- Toggle this to true to allow the use of hostPath volumes on OpenShift
876 sccAllowHostDirVolumePlugin: false
877 # -- Specify PSP annotations
878 # Ref: https://kubernetes.io/docs/reference/access-authn-authz/psp-to-pod-security-standards/#podsecuritypolicy-annotations
880 # seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*'
881 # seccomp.security.alpha.kubernetes.io/defaultProfileName: 'docker/default'
882 # apparmor.security.beta.kubernetes.io/defaultProfileName: 'runtime/default'
883 # -- Whether to install RBAC in the namespace only or cluster-wide. Useful if you want to watch ConfigMap globally.
885######################################################################################################################
887# Network Policy configuration
889######################################################################################################################
891 # -- Specifies whether Network Policies should be created
893 # -- Specifies whether the policies created will be standard Network Policies (flavor: kubernetes)
894 # or Cilium Network Policies (flavor: cilium)
897 # -- Specifies the Pods which are allowed to access the metrics port.
898 # As this is cross-namespace communication, you also need the namespaceSelector.
900 # -- Specifies the namespaces which are allowed to access the metrics port
901 namespaceSelector: {}
902 # -- Specifies specific network CIDRs which are allowed to access the metrics port.
903 # In case you use namespaceSelector, you also have to specify your kubelet networks here.
904 # The metrics ports are also used for probes.
907 # -- Specifies the Pods which are allowed to access the http port.
908 # As this is cross-namespace communication, you also need the namespaceSelector.
910 # -- Specifies the namespaces which are allowed to access the http port
911 namespaceSelector: {}
913 # -- Specify the alertmanager port used for alerting
915 # -- Specifies the alertmanager Pods.
916 # As this is cross-namespace communication, you also need the namespaceSelector.
918 # -- Specifies the namespace the alertmanager is running in
919 namespaceSelector: {}
921 # -- Specify the port used for external storage, e.g. AWS S3
923 # -- Specifies specific network CIDRs you want to limit access to
926 # -- (int) Specify the port used for discovery
928 # -- Specifies the Pods labels used for discovery.
929 # As this is cross-namespace communication, you also need the namespaceSelector.
931 # -- Specifies the namespace the discovery Pods are running in
932 namespaceSelector: {}
934 # -- Enable additional cilium egress rules to external world for write, read and backend.
937 # -- Enable additional cilium egress rules to kube-apiserver for backend.
939######################################################################################################################
941# Global memberlist configuration
943######################################################################################################################
945# Configuration for the memberlist service
948 publishNotReadyAddresses: false
950######################################################################################################################
952# adminAPI configuration, enterprise only.
954######################################################################################################################
956# -- Configuration for the `admin-api` target
958 # -- Define the amount of instances
960 # -- hostAliases to add
965 # -- Additional CLI arguments for the `admin-api` target
967 # -- Environment variables to add to the admin-api pods
969 # -- Environment variables from secrets or configmaps to add to the admin-api pods
971 # -- Additional labels for the `admin-api` Deployment
973 # -- Additional annotations for the `admin-api` Deployment
975 # -- DNSConfig for `admin-api` pods
977 # -- Additional labels and annotations for the `admin-api` Service
981 # -- Run container as user `enterprise-logs(uid=10001)`
982 # `fsGroup` must not be specified, because these security options are applied
983 # on container level not on Pod level.
988 containerSecurityContext:
989 readOnlyRootFilesystem: true
993 allowPrivilegeEscalation: false
1004 initialDelaySeconds: 45
1007 # -- Request and limit Kubernetes resources
1008 # -- Values are defined in small.yaml and large.yaml
1010 # -- Configure optional environment variables
1012 # -- Configure optional initContainers
1014 # -- Configure optional extraContainers
1016 # -- Additional volumes for Pods
1018 # -- Additional volume mounts for Pods
1019 extraVolumeMounts: []
1020 # -- Affinity for admin-api Pods
1021 # The value will be passed through tpl.
1023 # -- Node selector for admin-api Pods
1025 # -- Topology Spread Constraints for admin-api pods
1026 # The value will be passed through tpl.
1027 topologySpreadConstraints: []
1028 # -- Tolerations for admin-api Pods
1030 # -- Grace period to allow the admin-api to shutdown before it is killed
1031 terminationGracePeriodSeconds: 60
1032 # -- Use the host's user namespace in admin-api pods
1034######################################################################################################################
1036# Gateway and Ingress
1038# By default this chart will deploy a Nginx container to act as a gateway which handles routing of traffic
1039# and can also do auth.
1041# If you would prefer you can optionally disable this and enable using k8s ingress to do the incoming routing.
1043######################################################################################################################
1045# Configuration for the gateway
1047 # -- Specifies whether the gateway should be enabled
1049 # -- Number of replicas for the gateway
1051 # -- Default container port
1053 # -- Enable logging of 2xx and 3xx HTTP requests
1054 verboseLogging: true
1056 # -- Enable autoscaling for the gateway
1058 # -- Minimum autoscaling replicas for the gateway
1060 # -- Maximum autoscaling replicas for the gateway
1062 # -- Target CPU utilisation percentage for the gateway
1063 targetCPUUtilizationPercentage: 60
1064 # -- Target memory utilisation percentage for the gateway
1065 targetMemoryUtilizationPercentage:
1066 # -- See `kubectl explain deployment.spec.strategy` for more
1067 # -- ref: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy
1068 # -- Behavior policies while scaling.
1071 # stabilizationWindowSeconds: 300
1077 # stabilizationWindowSeconds: 300
1081 # periodSeconds: 180
1085 # -- The Docker registry for the gateway image
1087 # -- The gateway image repository
1088 repository: chainguard-private/nginx
1089 # -- The gateway image tag
1091 # -- Overrides the gateway image tag with an image digest
1092 digest: sha256:772ecad99610194613f579d98c88a5120828a5e528a97184a23c5e0e9d87d589
1093 # -- The gateway image pull policy
1094 pullPolicy: IfNotPresent
1095 # -- The name of the PriorityClass for gateway pods
1096 priorityClassName: null
1097 # -- Annotations for gateway deployment
1099 # -- Annotations for gateway pods
1101 # -- Additional labels for gateway pods
1103 # -- Additional CLI args for the gateway
1105 # -- Environment variables to add to the gateway pods
1107 # -- Environment variables from secrets or configmaps to add to the gateway pods
1109 # -- Lifecycle for the gateway container
1111 # -- Volumes to add to the gateway pods
1113 # -- Volume mounts to add to the gateway pods
1114 extraVolumeMounts: []
1115 # -- The SecurityContext for gateway containers
1121 # -- The SecurityContext for gateway containers
1122 containerSecurityContext:
1123 readOnlyRootFilesystem: true
1127 allowPrivilegeEscalation: false
1128 # -- Use the host's user namespace in the gateway
1130 # -- Resource requests and limits for the gateway
1132 # -- Containers to add to the gateway pods
1134 # -- Grace period to allow the gateway to shutdown before it is killed
1135 terminationGracePeriodSeconds: 30
1136 # -- Affinity for gateway pods.
1137 # @default -- Hard node anti-affinity
1138 # The value will be passed through tpl.
1141 requiredDuringSchedulingIgnoredDuringExecution:
1144 app.kubernetes.io/component: gateway
1145 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1146 app.kubernetes.io/instance: '{{ .Release.Name }}'
1147 topologyKey: kubernetes.io/hostname
1148 # -- DNS config for gateway pods
1150 # -- Node selector for gateway pods
1152 # -- Topology Spread Constraints for gateway pods
1153 # The value will be passed through tpl.
1154 topologySpreadConstraints: []
1155 # -- Tolerations for gateway pods
1157 # Gateway service configuration
1159 # -- Port of the gateway service
1161 # -- Type of the gateway service
1163 # -- ClusterIP of the gateway service
1165 # -- (int) Node port if service type is NodePort
1167 # -- Load balancer IPO address if service type is LoadBalancer
1168 loadBalancerIP: null
1169 # -- Annotations for the gateway service
1171 # -- Labels for gateway service
1173 # -- trafficDistribution for gateway service
1174 trafficDistribution: ""
1175 # Gateway ingress configuration
1177 # -- Specifies whether an ingress for the gateway should be created
1179 # -- Ingress Class Name. MAY be required for Kubernetes versions >= 1.18
1180 ingressClassName: ""
1181 # -- Annotations for the gateway ingress
1183 # -- Labels for the gateway ingress
1185 # -- Hosts configuration for the gateway ingress, passed through the `tpl` function to allow templating
1187 - host: gateway.loki.example.com
1190 # -- pathType (e.g. ImplementationSpecific, Prefix, .. etc.) might also be required by some Ingress Controllers
1192 # -- TLS configuration for the gateway ingress. Hosts passed through the `tpl` function to allow templating
1194 - secretName: loki-gateway-tls
1196 - gateway.loki.example.com
1197 # Basic auth configuration
1199 # -- Enables basic authentication for the gateway
1201 # -- The basic auth username for the gateway
1203 # -- The basic auth password for the gateway
1205 # -- Uses the specified users from the `loki.tenants` list to create the htpasswd file.
1206 # if `loki.tenants` is not set, the `gateway.basicAuth.username` and `gateway.basicAuth.password` are used.
1207 # The value is templated using `tpl`. Override this to use a custom htpasswd, e.g. in case the default causes
1209 # @default -- Either `loki.tenants` or `gateway.basicAuth.username` and `gateway.basicAuth.password`.
1211 {{- with $tenants := .Values.loki.tenants }}
1212 {{- range $t := $tenants }}
1213 {{- $username := required "All tenants must have a 'name' set" $t.name }}
1214 {{- if $passwordHash := $t.passwordHash }}
1215 {{- printf "%s:%s\n" $username $passwordHash }}
1216 {{- else if $password := $t.password }}
1217 {{- printf "%s\n" (htpasswd $username $password) }}
1219 {{- fail "All tenants must have a 'password' or 'passwordHash' set" }}
1223 {{- printf "%s\n" (htpasswd (required "'gateway.basicAuth.username' is required" .Values.gateway.basicAuth.username) (required "'gateway.basicAuth.password' is required" .Values.gateway.basicAuth.password)) }}
1225 # -- Existing basic auth secret to use. Must contain '.htpasswd'
1226 existingSecret: null
1227 # -- liveness probe for the nginx container in the gateway pods.
1229 # Configures the readiness probe for the gateway
1234 initialDelaySeconds: 15
1236 # -- startup probe for the nginx container in the gateway pods.
1239 # -- Which schema to be used when building URLs. Can be 'http' or 'https'.
1241 # -- Enable listener for IPv6, disable on IPv4-only systems
1243 # -- NGINX log format
1245 main '$remote_addr - $remote_user [$time_local] $status '
1246 '"$request" $body_bytes_sent "$http_referer" '
1247 '"$http_user_agent" "$http_x_forwarded_for"';
1248 # -- Allows appending custom configuration to the server block
1250 # -- Allows appending custom configuration to the http block, passed through the `tpl` function to allow templating
1252 # -- 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.
1254 {{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}
1255 # -- Allows customizing the `client_max_body_size` directive
1256 clientMaxBodySize: 4M
1257 # -- Whether ssl should be appended to the listen directive of the server block or not.
1259 # -- Override Read URL
1261 # -- Override Write URL
1262 customWriteUrl: null
1263 # -- Override Backend URL
1264 customBackendUrl: null
1265 # -- Allows overriding the DNS resolver address nginx will use.
1267 # -- Config file contents for Nginx. Passed through the `tpl` function to allow templating
1268 # @default -- See values.yaml
1270 {{- include "loki.nginxFile" . -}}
1271# -- If running enterprise and using the default enterprise gateway, configs go here.
1273 # -- Define the amount of instances
1275 # -- hostAliases to add
1280 # -- Use the host's user namespace in the `gateway` pod
1282 # -- Additional CLI arguments for the `gateway` target
1284 # -- Environment variables from secrets or configmaps to add to the enterprise gateway pods
1286 # -- Additional labels for the `gateway` Pod
1288 # -- Additional annotations for the `gateway` Pod
1290 # -- Additional labels and annotations for the `gateway` Service
1291 # -- Service overriding service type
1296 # -- Run container as user `enterprise-logs(uid=10001)`
1302 containerSecurityContext:
1303 readOnlyRootFilesystem: true
1307 allowPrivilegeEscalation: false
1308 # -- If you want to use your own proxy URLs, set this to false.
1309 useDefaultProxyURLs: true
1310 # -- update strategy
1315 # -- Readiness probe
1320 initialDelaySeconds: 45
1323 # -- Request and limit Kubernetes resources
1324 # -- Values are defined in small.yaml and large.yaml
1326 # -- Configure optional environment variables
1328 # -- Configure optional initContainers
1330 # -- Conifgure optional extraContainers
1332 # -- Additional volumes for Pods
1334 # -- Additional volume mounts for Pods
1335 extraVolumeMounts: []
1336 # -- Affinity for gateway Pods
1337 # The value will be passed through tpl.
1339 # -- Node selector for gateway Pods
1341 # -- Topology Spread Constraints for enterprise-gateway pods
1342 # The value will be passed through tpl.
1343 topologySpreadConstraints: []
1344 # -- Tolerations for gateway Pods
1346 # -- Grace period to allow the gateway to shutdown before it is killed
1347 terminationGracePeriodSeconds: 60
1348# -- Ingress configuration Use either this ingress or the gateway, but not both at once.
1349# If you enable this, make sure to disable the gateway.
1350# You'll need to supply authn configuration for your ingress controller.
1353 ingressClassName: ""
1355 # nginx.ingress.kubernetes.io/auth-type: basic
1356 # nginx.ingress.kubernetes.io/auth-secret: loki-distributed-basic-auth
1357 # nginx.ingress.kubernetes.io/auth-secret-type: auth-map
1358 # nginx.ingress.kubernetes.io/configuration-snippet: |
1359 # proxy_set_header X-Scope-OrgID $remote_user;
1361 # blackbox.monitoring.exclude: "true"
1363 # -- Paths that are exposed by Loki Distributor.
1364 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.distributorFullname"}}`.
1365 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.writeFullname"}}`.
1366 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1372 # -- Paths that are exposed by Loki Query Frontend.
1373 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.queryFrontendFullname"}}`.
1374 # If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: `{{"loki.readFullname"}}`.
1375 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1378 # this path covers labels and labelValues endpoints
1382 - /loki/api/v1/query
1383 - /loki/api/v1/query_range
1385 # this path covers labels and labelValues endpoints
1386 - /loki/api/v1/label
1387 - /loki/api/v1/labels
1388 - /loki/api/v1/series
1389 - /loki/api/v1/index/stats
1390 - /loki/api/v1/index/volume
1391 - /loki/api/v1/index/volume_range
1392 - /loki/api/v1/format_query
1393 - /loki/api/v1/detected_field
1394 - /loki/api/v1/detected_fields
1395 - /loki/api/v1/detected_labels
1396 - /loki/api/v1/patterns
1397 # -- Paths that are exposed by Loki Ruler.
1398 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.rulerFullname"}}`.
1399 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service: `{{"loki.backendFullname"}}`.
1400 # If deployment mode is SimpleScalable but `read.legacyReadTarget` is `true`, the requests are forwarded to k8s service: `{{"loki.readFullname"}}`.
1401 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1404 - /api/prom/api/v1/rules
1405 - /api/prom/api/v1/alerts
1406 - /loki/api/v1/rules
1407 - /prometheus/api/v1/rules
1408 - /prometheus/api/v1/alerts
1409 # -- Paths that are exposed by Loki Compactor.
1410 # If deployment mode is Distributed, the requests are forwarded to the service: `{{"loki.compactorFullname"}}`.
1411 # If deployment mode is SimpleScalable, the requests are forwarded to k8s service: `{{"loki.backendFullname"}}`.
1412 # If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: `{{"loki.singleBinaryFullname"}}`
1414 - /loki/api/v1/delete
1415 # -- Hosts configuration for the ingress, passed through the `tpl` function to allow templating
1418 # -- TLS configuration for the ingress. Hosts passed through the `tpl` function to allow templating
1422# secretName: loki-distributed-tls
1424######################################################################################################################
1428######################################################################################################################
1430# -- Options that may be necessary when performing a migration from another helm chart
1432 # -- When migrating from a distributed chart like loki-distributed or enterprise-logs
1434 # -- Set to true if migrating from a distributed helm chart
1436 # -- If migrating from a distributed service, provide the distributed deployment's
1437 # memberlist service DNS so the new deployment can join its ring.
1438 memberlistService: ""
1439######################################################################################################################
1441# Single Binary Deployment
1443# For small Loki installations up to a few 10's of GB per day, or for testing and development.
1445######################################################################################################################
1447# Configuration for the single binary node(s)
1449 # -- Number of replicas for the single binary
1452 # -- Enable autoscaling
1454 # -- Minimum autoscaling replicas for the single binary
1456 # -- Maximum autoscaling replicas for the single binary
1458 # -- Target CPU utilisation percentage for the single binary
1459 targetCPUUtilizationPercentage: 60
1460 # -- Target memory utilisation percentage for the single binary
1461 targetMemoryUtilizationPercentage:
1463 # -- The Docker registry for the single binary image. Overrides `loki.image.registry`
1465 # -- Docker image repository for the single binary image. Overrides `loki.image.repository`
1467 # -- Docker image tag for the single binary image. Overrides `loki.image.tag`
1469 # -- The name of the PriorityClass for single binary pods
1470 priorityClassName: null
1471 # -- Annotations for single binary StatefulSet
1473 # -- Annotations for single binary pods
1475 # -- Additional labels for each `single binary` pod
1477 # -- Additional selector labels for each `single binary` pod
1480 # -- Annotations for single binary Service
1482 # -- Additional labels for single binary Service
1484 # -- Service Type for single binary Service
1486 # -- trafficDistribution single binary Service
1487 trafficDistribution: ""
1488 # -- Comma-separated list of Loki modules to load for the single binary
1490 # -- Labels for single binary service
1492 # -- Environment variables to add to the single binary pods
1494 # -- Environment variables from secrets or configmaps to add to the single binary pods
1496 # -- Extra containers to add to the single binary loki pod
1498 # -- Init containers to add to the single binary pods
1500 # -- Volume mounts to add to the single binary pods
1501 extraVolumeMounts: []
1502 # -- Volumes to add to the single binary pods
1504 # -- Resource requests and limits for the single binary
1506 # -- Grace period to allow the single binary to shutdown before it is killed
1507 terminationGracePeriodSeconds: 30
1508 # -- Use the host's user namespace in the single binary pods
1510 # -- Affinity for single binary pods.
1511 # @default -- Hard node anti-affinity
1512 # The value will be passed through tpl.
1515 requiredDuringSchedulingIgnoredDuringExecution:
1518 app.kubernetes.io/component: single-binary
1519 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1520 app.kubernetes.io/instance: '{{ .Release.Name }}'
1521 topologyKey: kubernetes.io/hostname
1522 # -- Topology Spread Constraints for single binary pods
1523 # The value will be passed through tpl.
1524 topologySpreadConstraints: []
1525 # -- DNS config for single binary pods
1527 # -- Node selector for single binary pods
1529 # -- Tolerations for single binary pods
1532 # -- What to do with the volume when the StatefulSet is scaled down.
1534 # -- What to do with the volumes when the StatefulSet is deleted.
1536 # -- Enable StatefulSetAutoDeletePVC feature
1537 enableStatefulSetAutoDeletePVC: true
1538 # -- Enable StatefulSetRecreation for changes to PVC size.
1539 # This means that the StatefulSet will be deleted, recreated (with the same name) and rolled when a change to the
1540 # PVC size is detected. That way the PVC can be resized without manual intervention.
1541 enableStatefulSetRecreationForSizeChange: false
1542 # -- Enable persistent disk
1544 # -- Set access modes on the PersistentVolumeClaim
1547 # -- Size of persistent disk
1549 # -- Storage class to be used.
1550 # If defined, storageClassName: <storageClass>.
1551 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1552 # If empty or set to null, no storageClassName spec is
1553 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1555 # -- Selector for persistent disk
1557 # -- Annotations for volume claim
1559 # -- Labels for volume claim
1561######################################################################################################################
1563# Simple Scalable Deployment (SSD) Mode
1565# For small to medium size Loki deployments up to around 1 TB/day, this is the default mode for this helm chart
1567######################################################################################################################
1569# Configuration for the write pod(s)
1571 # -- Number of replicas for the write
1574 # -- Enable autoscaling for the write.
1576 # -- Minimum autoscaling replicas for the write.
1578 # -- Maximum autoscaling replicas for the write.
1580 # -- Target CPU utilisation percentage for the write.
1581 targetCPUUtilizationPercentage: 60
1582 # -- Target memory utilization percentage for the write.
1583 targetMemoryUtilizationPercentage:
1584 # -- Behavior policies while scaling.
1586 # -- see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details
1597 stabilizationWindowSeconds: 3600
1599 # -- The Docker registry for the write image. Overrides `loki.image.registry`
1601 # -- Docker image repository for the write image. Overrides `loki.image.repository`
1603 # -- Docker image tag for the write image. Overrides `loki.image.tag`
1605 # -- The name of the PriorityClass for write pods
1606 priorityClassName: null
1607 # -- Annotations for write StatefulSet
1609 # -- Annotations for write pods
1611 # -- Additional labels for each `write` pod
1613 # -- Additional selector labels for each `write` pod
1616 # -- Annotations for write Service
1618 # -- Additional labels for write Service
1620 # -- Service Type for write Service
1622 # -- trafficDistribution for write service
1623 trafficDistribution: ""
1624 # -- Comma-separated list of Loki modules to load for the write
1625 targetModule: "write"
1626 # -- Additional CLI args for the write
1628 # -- Environment variables to add to the write pods
1630 # -- Environment variables from secrets or configmaps to add to the write pods
1632 # -- Lifecycle for the write container
1634 # -- The default /flush_shutdown preStop hook is recommended as part of the ingester
1635 # scaledown process so it's added to the template by default when autoscaling is enabled,
1636 # but it's disabled to optimize rolling restarts in instances that will never be scaled
1637 # down or when using chunks storage with WAL disabled.
1638 # https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown
1639 # -- Init containers to add to the write pods
1641 # -- Containers to add to the write pods
1643 # -- Volume mounts to add to the write pods
1644 extraVolumeMounts: []
1645 # -- Volumes to add to the write pods
1647 # -- volumeClaimTemplates to add to StatefulSet
1648 extraVolumeClaimTemplates: []
1649 # -- Resource requests and limits for the write
1651 # -- Grace period to allow the write to shutdown before it is killed. Especially for the ingester,
1652 # this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring
1653 # all data and to successfully leave the member ring on shutdown.
1654 terminationGracePeriodSeconds: 300
1655 # -- Use the host's user namespace in the write pods.
1657 # -- Affinity for write pods.
1658 # @default -- Hard node anti-affinity
1659 # The value will be passed through tpl.
1662 requiredDuringSchedulingIgnoredDuringExecution:
1665 app.kubernetes.io/component: write
1666 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1667 app.kubernetes.io/instance: '{{ .Release.Name }}'
1668 topologyKey: kubernetes.io/hostname
1669 # -- DNS config for write pods
1671 # -- Pod Disruption Budget maxUnavailable
1673 # -- Node selector for write pods
1675 # -- Topology Spread Constraints for write pods
1676 # The value will be passed through tpl.
1677 topologySpreadConstraints: []
1678 # -- Tolerations for write pods
1680 # -- The default is to deploy all pods in parallel.
1681 podManagementPolicy: "Parallel"
1683 # -- Enable volume claims in pod spec
1684 volumeClaimsEnabled: true
1685 # -- Set access modes on the PersistentVolumeClaim
1688 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
1689 dataVolumeParameters:
1691 # -- Enable StatefulSetAutoDeletePVC feature
1692 enableStatefulSetAutoDeletePVC: false
1693 # -- Size of persistent disk
1695 # -- Storage class to be used.
1696 # If defined, storageClassName: <storageClass>.
1697 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1698 # If empty or set to null, no storageClassName spec is
1699 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1701 # -- Volume attributes class name to be used.
1702 # If empty or set to null, no volumeAttributesClassName spec is set.
1703 # Requires Kubernetes 1.31
1704 volumeAttributesClassName: null
1705 # -- Selector for persistent disk
1707 # -- Annotations for volume claim
1709 # -- Labels for volume claim
1711# -- Configuration for the read pod(s)
1713 # -- Number of replicas for the read
1716 # -- Enable autoscaling for the read, this is only used if `queryIndex.enabled: true`
1718 # -- Minimum autoscaling replicas for the read
1720 # -- Maximum autoscaling replicas for the read
1722 # -- Target CPU utilisation percentage for the read
1723 targetCPUUtilizationPercentage: 60
1724 # -- Target memory utilisation percentage for the read
1725 targetMemoryUtilizationPercentage:
1726 # -- Behavior policies while scaling.
1729 # stabilizationWindowSeconds: 300
1735 # stabilizationWindowSeconds: 300
1739 # periodSeconds: 180
1741 # -- The Docker registry for the read image. Overrides `loki.image.registry`
1743 # -- Docker image repository for the read image. Overrides `loki.image.repository`
1745 # -- Docker image tag for the read image. Overrides `loki.image.tag`
1747 # -- The name of the PriorityClass for read pods
1748 priorityClassName: null
1749 # -- Annotations for read deployment
1751 # -- Annotations for read pods
1753 # -- Additional labels for each `read` pod
1755 # -- Additional selector labels for each `read` pod
1758 # -- Annotations for read Service
1760 # -- Additional labels for read Service
1762 # -- Service Type for read Service
1764 # -- trafficDistribution for read service
1765 trafficDistribution: ""
1766 # -- Comma-separated list of Loki modules to load for the read
1767 targetModule: "read"
1768 # -- Whether or not to use the 2 target type simple scalable mode (read, write) or the
1769 # 3 target type (read, write, backend). Legacy refers to the 2 target type, so true will
1770 # run two targets, false will run 3 targets.
1771 legacyReadTarget: false
1772 # -- Additional CLI args for the read
1774 # -- init containers to add to the read pods
1776 # -- Containers to add to the read pods
1778 # -- Environment variables to add to the read pods
1780 # -- Environment variables from secrets or configmaps to add to the read pods
1782 # -- Lifecycle for the read container
1784 # -- Volume mounts to add to the read pods
1785 extraVolumeMounts: []
1786 # -- Volumes to add to the read pods
1788 # -- Resource requests and limits for the read
1790 # -- liveness probe settings for read pods. If empty, applies no livenessProbe
1792 # -- statup probe for the read pods. If empty, applies no startupProbe
1794 # -- Grace period to allow the read to shutdown before it is killed
1795 terminationGracePeriodSeconds: 30
1796 # -- Use the host's user namespace in the read pods.
1798 # -- Affinity for read pods.
1799 # @default -- Hard node anti-affinity
1800 # The value will be passed through tpl.
1803 requiredDuringSchedulingIgnoredDuringExecution:
1806 app.kubernetes.io/component: read
1807 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1808 app.kubernetes.io/instance: '{{ .Release.Name }}'
1809 topologyKey: kubernetes.io/hostname
1810 # -- DNS config for read pods
1812 # -- Pod Disruption Budget maxUnavailable
1814 # -- Node selector for read pods
1816 # -- Topology Spread Constraints for read pods
1817 # The value will be passed through tpl.
1818 topologySpreadConstraints: []
1819 # -- Tolerations for read pods
1821 # -- The default is to deploy all pods in parallel.
1822 podManagementPolicy: "Parallel"
1823 # -- read.persistence is used only if legacyReadTarget is set to true
1825 # -- Enable StatefulSetAutoDeletePVC feature
1826 enableStatefulSetAutoDeletePVC: true
1827 # -- Set access modes on the PersistentVolumeClaim
1830 # -- Size of persistent disk
1832 # -- Storage class to be used.
1833 # If defined, storageClassName: <storageClass>.
1834 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1835 # If empty or set to null, no storageClassName spec is
1836 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1838 # -- Volume attributes class name to be used.
1839 # If empty or set to null, no volumeAttributesClassName spec is set.
1840 # Requires Kubernetes 1.31
1841 volumeAttributesClassName: null
1842 # -- Selector for persistent disk
1844 # -- Annotations for volume claim
1846 # -- Labels for volume claim
1848# -- Configuration for the backend pod(s)
1850 # -- Number of replicas for the backend
1853 # -- Enable autoscaling for the backend.
1855 # -- Minimum autoscaling replicas for the backend.
1857 # -- Maximum autoscaling replicas for the backend.
1859 # -- Target CPU utilization percentage for the backend.
1860 targetCPUUtilizationPercentage: 60
1861 # -- Target memory utilization percentage for the backend.
1862 targetMemoryUtilizationPercentage:
1863 # -- Behavior policies while scaling.
1866 # stabilizationWindowSeconds: 300
1872 # stabilizationWindowSeconds: 300
1876 # periodSeconds: 180
1878 # -- The Docker registry for the backend image. Overrides `loki.image.registry`
1880 # -- Docker image repository for the backend image. Overrides `loki.image.repository`
1882 # -- Docker image tag for the backend image. Overrides `loki.image.tag`
1884 # -- The name of the PriorityClass for backend pods
1885 priorityClassName: null
1886 # -- Annotations for backend StatefulSet
1888 # -- Annotations for backend pods
1890 # -- Additional labels for each `backend` pod
1892 # -- Additional selector labels for each `backend` pod
1895 # -- Annotations for backend Service
1897 # -- Additional labels for backend Service
1899 # -- Service type for backend Service
1901 # -- trafficDistribution for backend Service
1902 trafficDistribution: ""
1903 # -- Comma-separated list of Loki modules to load for the backend
1904 targetModule: "backend"
1905 # -- Additional CLI args for the backend
1907 # -- Environment variables to add to the backend pods
1909 # -- Environment variables from secrets or configmaps to add to the backend pods
1911 # -- Init containers to add to the backend pods
1913 # -- Containers to add to the backend pods
1915 # -- Volume mounts to add to the backend pods
1916 extraVolumeMounts: []
1917 # -- Volumes to add to the backend pods
1919 # -- Resource requests and limits for the backend
1921 # -- Grace period to allow the backend to shutdown before it is killed. Especially for the ingester,
1922 # this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring
1923 # all data and to successfully leave the member ring on shutdown.
1924 terminationGracePeriodSeconds: 300
1925 # -- Use the host's user namespace in the backend pods.
1927 # -- Affinity for backend pods.
1928 # @default -- Hard node anti-affinity
1929 # The value will be passed through tpl.
1932 requiredDuringSchedulingIgnoredDuringExecution:
1935 app.kubernetes.io/component: backend
1936 app.kubernetes.io/name: '{{ include "loki.name" . }}'
1937 app.kubernetes.io/instance: '{{ .Release.Name }}'
1938 topologyKey: kubernetes.io/hostname
1939 # -- DNS config for backend pods
1941 # -- Pod Disruption Budget maxUnavailable
1943 # -- Node selector for backend pods
1945 # -- Topology Spread Constraints for backend pods
1946 # The value will be passed through tpl.
1947 topologySpreadConstraints: []
1948 # -- Tolerations for backend pods
1950 # -- The default is to deploy all pods in parallel.
1951 podManagementPolicy: "Parallel"
1953 # -- Enable volume claims in pod spec
1954 volumeClaimsEnabled: true
1955 # -- Set access modes on the PersistentVolumeClaim
1958 # -- Parameters used for the `data` volume when volumeClaimEnabled if false
1959 dataVolumeParameters:
1961 # -- Enable StatefulSetAutoDeletePVC feature
1962 enableStatefulSetAutoDeletePVC: true
1963 # -- Size of persistent disk
1965 # -- Storage class to be used.
1966 # If defined, storageClassName: <storageClass>.
1967 # If set to "-", storageClassName: "", which disables dynamic provisioning.
1968 # If empty or set to null, no storageClassName spec is
1969 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
1971 # -- Volume attributes class name to be used.
1972 # If empty or set to null, no volumeAttributesClassName spec is set.
1973 # Requires Kubernetes 1.31
1974 volumeAttributesClassName: null
1975 # -- Selector for persistent disk
1977 # -- Annotations for volume claim
1979 # -- Labels for volume claim
1981######################################################################################################################
1985# For large Loki deployments ingesting more than 1 TB/day
1987######################################################################################################################
1989# -- Configuration for the ingester
1991 # -- Number of replicas for the ingester, when zoneAwareReplication.enabled is true, the total
1992 # number of replicas will match this value with each zone having 1/3rd of the total replicas.
1994 # -- DNSConfig for ingester pods
1996 # -- hostAliases to add
2001 # -- Use the host's user namespace in the ingester
2004 # -- Enable autoscaling for the ingester
2006 # -- Minimum autoscaling replicas for the ingester
2008 # -- Maximum autoscaling replicas for the ingester
2010 # -- Target CPU utilisation percentage for the ingester
2011 targetCPUUtilizationPercentage: 60
2012 # -- Target memory utilisation percentage for the ingester
2013 targetMemoryUtilizationPercentage: null
2014 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2019 # name: loki_lines_total
2021 # type: AverageValue
2024 # -- Enable autoscaling behaviours
2026 # -- define scale down policies, must conform to HPAScalingRules
2028 # -- define scale up policies, must conform to HPAScalingRules
2031 # -- The Docker registry for the ingester image. Overrides `loki.image.registry`
2033 # -- Docker image repository for the ingester image. Overrides `loki.image.repository`
2035 # -- Docker image tag for the ingester image. Overrides `loki.image.tag`
2037 # -- Command to execute instead of defined in Docker image
2040 priorityClassName: null
2041 # -- Labels for ingester pods
2043 # -- Annotations for ingester pods
2045 # -- The name of the PriorityClass for ingester pods
2046 # -- Labels for ingester service
2048 # -- Annotations for ingester service
2049 serviceAnnotations: {}
2050 # -- Service type for ingester service
2051 serviceType: "ClusterIP"
2052 # -- Additional CLI args for the ingester
2054 # -- Environment variables to add to the ingester pods
2056 # -- Environment variables from secrets or configmaps to add to the ingester pods
2058 # -- Volume mounts to add to the ingester pods
2059 extraVolumeMounts: []
2060 # -- Volumes to add to the ingester pods
2062 # -- Resource requests and limits for the ingester
2064 # -- Containers to add to the ingester pods
2066 # -- Init containers to add to the ingester pods
2068 # -- Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor,
2069 # this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring
2070 # all data and to successfully leave the member ring on shutdown.
2071 terminationGracePeriodSeconds: 300
2072 # -- Lifecycle for the ingester container
2074 # -- topologySpread for ingester pods.
2075 # @default -- Defaults to allow skew no more than 1 node
2076 # The value will be passed through tpl.
2077 topologySpreadConstraints:
2079 topologyKey: kubernetes.io/hostname
2080 whenUnsatisfiable: ScheduleAnyway
2083 app.kubernetes.io/component: ingester
2084 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2085 app.kubernetes.io/instance: '{{ .Release.Name }}'
2086 # -- Affinity for ingester pods. Ignored if zoneAwareReplication is enabled.
2087 # @default -- Hard node anti-affinity
2088 # The value will be passed through tpl.
2091 requiredDuringSchedulingIgnoredDuringExecution:
2094 app.kubernetes.io/component: ingester
2095 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2096 app.kubernetes.io/instance: '{{ .Release.Name }}'
2097 topologyKey: kubernetes.io/hostname
2098 # -- Pod Disruption Budget maxUnavailable
2100 # -- Node selector for ingester pods
2102 # -- Tolerations for ingester pods
2104 # -- readiness probe settings for ingester pods. If empty, use `loki.readinessProbe`
2106 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
2108 # -- startup probe settings for ingester pods. If empty use `loki.startupProbe`
2110 # -- UpdateStrategy for the ingester StatefulSets.
2112 # -- One of 'OnDelete' or 'RollingUpdate'
2114 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
2118 # -- Enable creating PVCs which is required when using boltdb-shipper
2120 # -- Use emptyDir with ramdisk for storage. **Please note that all data in ingester will be lost on pod restart**
2122 # -- List of the ingester PVCs
2123 # @notationType -- list
2126 # -- Set access modes on the PersistentVolumeClaim
2130 # -- Storage class to be used.
2131 # If defined, storageClassName: <storageClass>.
2132 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2133 # If empty or set to null, no storageClassName spec is
2134 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2136 # -- Volume attributes class name to be used.
2137 # If empty or set to null, no volumeAttributesClassName spec is set.
2138 # Requires Kubernetes 1.31
2139 volumeAttributesClassName: null
2142 # -- Enable StatefulSetAutoDeletePVC feature
2143 enableStatefulSetAutoDeletePVC: false
2146 # -- Adds the appProtocol field to the ingester service. This allows ingester to work with istio protocol selection.
2148 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2150 # -- trafficDistribution for ingester service
2151 trafficDistribution: ""
2152 # -- Enabling zone awareness on ingesters will create 3 statefulests where all writes will send a replica to each zone.
2153 # This is primarily intended to accelerate rollout operations by allowing for multiple ingesters within a single
2154 # zone to be shutdown and restart simultaneously (the remaining 2 zones will be guaranteed to have at least one copy
2156 # Note: This can be used to run Loki over multiple cloud provider availability zones however this is not currently
2157 # recommended as Loki is not optimized for this and cross zone network traffic costs can become extremely high
2158 # extremely quickly. Even with zone awareness enabled, it is recommended to run Loki in a single availability zone.
2159 zoneAwareReplication:
2160 # -- Enable zone awareness.
2162 # -- The percent of replicas in each zone that will be restarted at once. In a value of 0-100
2163 maxUnavailablePct: 33
2164 # -- zoneA configuration
2166 # -- optionally define a node selector for this zone
2168 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
2169 # The value will be passed through tpl.
2171 # -- Specific annotations to add to zone A statefulset
2173 # -- Specific annotations to add to zone A pods
2176 # -- optionally define a node selector for this zone
2178 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
2179 # The value will be passed through tpl.
2181 # -- Specific annotations to add to zone B statefulset
2183 # -- Specific annotations to add to zone B pods
2186 # -- optionally define a node selector for this zone
2188 # -- optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host
2189 # The value will be passed through tpl.
2191 # -- Specific annotations to add to zone C statefulset
2193 # -- Specific annotations to add to zone C pods
2195 # -- The migration block allows migrating non zone aware ingesters to zone aware ingesters.
2198 excludeDefaultZone: false
2201 # optionally allow adding arbitrary prefix to the ingester rollout-group label
2202 rolloutGroupPrefix: null
2203 # optionally allow adding 'loki-' prefix to ingester name label
2204 addIngesterNamePrefix: false
2205# -- Configuration for the distributor
2207 # -- Number of replicas for the distributor
2209 # -- hostAliases to add
2214 # -- Use the host's user namespace in the distributor
2216 # -- DNSConfig for distributor pods
2219 # -- Enable autoscaling for the distributor
2221 # -- Minimum autoscaling replicas for the distributor
2223 # -- Maximum autoscaling replicas for the distributor
2225 # -- Target CPU utilisation percentage for the distributor
2226 targetCPUUtilizationPercentage: 60
2227 # -- Target memory utilisation percentage for the distributor
2228 targetMemoryUtilizationPercentage: null
2229 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2234 # name: loki_lines_total
2236 # type: AverageValue
2239 # -- Enable autoscaling behaviours
2241 # -- define scale down policies, must conform to HPAScalingRules
2243 # -- define scale up policies, must conform to HPAScalingRules
2246 # -- The Docker registry for the distributor image. Overrides `loki.image.registry`
2248 # -- Docker image repository for the distributor image. Overrides `loki.image.repository`
2250 # -- Docker image tag for the distributor image. Overrides `loki.image.tag`
2252 # -- Command to execute instead of defined in Docker image
2254 # -- The name of the PriorityClass for distributor pods
2255 priorityClassName: null
2256 # -- Labels for distributor pods
2258 # -- Annotations for distributor pods
2260 # -- Labels for distributor service
2262 # -- Annotations for distributor service
2263 serviceAnnotations: {}
2264 # -- Service type for distributor service
2265 serviceType: ClusterIP
2266 # -- Additional CLI args for the distributor
2268 # -- Environment variables to add to the distributor pods
2270 # -- Environment variables from secrets or configmaps to add to the distributor pods
2272 # -- Volume mounts to add to the distributor pods
2273 extraVolumeMounts: []
2274 # -- Volumes to add to the distributor pods
2276 # -- Resource requests and limits for the distributor
2278 # -- Init containers to add to the distributor pods
2280 # -- Containers to add to the distributor pods
2282 # -- Grace period to allow the distributor to shutdown before it is killed
2283 terminationGracePeriodSeconds: 30
2284 # -- Affinity for distributor pods.
2285 # @default -- Hard node anti-affinity
2286 # The value will be passed through tpl.
2289 requiredDuringSchedulingIgnoredDuringExecution:
2292 app.kubernetes.io/component: distributor
2293 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2294 app.kubernetes.io/instance: '{{ .Release.Name }}'
2295 topologyKey: kubernetes.io/hostname
2296 # -- Pod Disruption Budget maxUnavailable
2297 maxUnavailable: null
2298 # -- Max Surge for distributor pods
2300 # -- Node selector for distributor pods
2302 # -- Topology Spread Constraints for distributor pods
2303 # The value will be passed through tpl.
2304 topologySpreadConstraints: []
2305 # -- Tolerations for distributor pods
2307 # -- Adds the appProtocol field to the distributor service. This allows distributor to work with istio protocol selection.
2309 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2311 # -- trafficDistribution for distributor service
2312 trafficDistribution: ""
2313# -- Configuration for the querier
2315 # -- Number of replicas for the querier
2317 # -- hostAliases to add
2322 # -- Use the host's user namespace in the querier
2325 # -- Enable autoscaling for the querier, this is only used if `indexGateway.enabled: true`
2327 # -- Minimum autoscaling replicas for the querier
2329 # -- Maximum autoscaling replicas for the querier
2331 # -- Target CPU utilisation percentage for the querier
2332 targetCPUUtilizationPercentage: 60
2333 # -- Target memory utilisation percentage for the querier
2334 targetMemoryUtilizationPercentage: null
2335 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2340 # name: loki_inflight_queries
2342 # type: AverageValue
2345 # -- Enable autoscaling behaviours
2347 # -- define scale down policies, must conform to HPAScalingRules
2349 # -- define scale up policies, must conform to HPAScalingRules
2352 # -- The Docker registry for the querier image. Overrides `loki.image.registry`
2354 # -- Docker image repository for the querier image. Overrides `loki.image.repository`
2356 # -- Docker image tag for the querier image. Overrides `loki.image.tag`
2358 # -- Command to execute instead of defined in Docker image
2360 # -- The name of the PriorityClass for querier pods
2361 priorityClassName: null
2362 # -- Labels for querier pods
2364 # -- Annotations for querier pods
2366 # -- Labels for querier service
2368 # -- Annotations for querier service
2369 serviceAnnotations: {}
2370 # -- Service Type for querier service
2371 serviceType: "ClusterIP"
2372 # -- Additional CLI args for the querier
2374 # -- Environment variables to add to the querier pods
2376 # -- Environment variables from secrets or configmaps to add to the querier pods
2378 # -- Volume mounts to add to the querier pods
2379 extraVolumeMounts: []
2380 # -- Volumes to add to the querier pods
2382 # -- Resource requests and limits for the querier
2384 # -- Containers to add to the querier pods
2386 # -- Init containers to add to the querier pods
2388 # -- Grace period to allow the querier to shutdown before it is killed
2389 terminationGracePeriodSeconds: 30
2390 # -- topologySpread for querier pods.
2391 # @default -- Defaults to allow skew no more then 1 node
2392 # The value will be passed through tpl.
2393 topologySpreadConstraints:
2395 topologyKey: kubernetes.io/hostname
2396 whenUnsatisfiable: ScheduleAnyway
2399 app.kubernetes.io/component: querier
2400 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2401 app.kubernetes.io/instance: '{{ .Release.Name }}'
2402 # -- Affinity for querier pods.
2403 # @default -- Hard node anti-affinity
2404 # The value will be passed through tpl.
2407 requiredDuringSchedulingIgnoredDuringExecution:
2410 app.kubernetes.io/component: querier
2411 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2412 app.kubernetes.io/instance: '{{ .Release.Name }}'
2413 topologyKey: kubernetes.io/hostname
2414 # -- Pod Disruption Budget maxUnavailable
2415 maxUnavailable: null
2416 # -- Max Surge for querier pods
2418 # -- Node selector for querier pods
2420 # -- Tolerations for querier pods
2422 # -- DNSConfig for querier pods
2424 # -- Adds the appProtocol field to the querier service. This allows querier to work with istio protocol selection.
2426 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2428 # -- trafficDistribution for querier service
2429 trafficDistribution: ""
2430# -- Configuration for the query-frontend
2432 # -- Number of replicas for the query-frontend
2434 # -- hostAliases to add
2439 # -- Use the host's user namespace in the query-frontend
2442 # -- Enable autoscaling for the query-frontend
2444 # -- Minimum autoscaling replicas for the query-frontend
2446 # -- Maximum autoscaling replicas for the query-frontend
2448 # -- Target CPU utilisation percentage for the query-frontend
2449 targetCPUUtilizationPercentage: 60
2450 # -- Target memory utilisation percentage for the query-frontend
2451 targetMemoryUtilizationPercentage: null
2452 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
2457 # name: loki_query_rate
2459 # type: AverageValue
2462 # -- Enable autoscaling behaviours
2464 # -- define scale down policies, must conform to HPAScalingRules
2466 # -- define scale up policies, must conform to HPAScalingRules
2469 # -- The Docker registry for the query-frontend image. Overrides `loki.image.registry`
2471 # -- Docker image repository for the query-frontend image. Overrides `loki.image.repository`
2473 # -- Docker image tag for the query-frontend image. Overrides `loki.image.tag`
2475 # -- Command to execute instead of defined in Docker image
2477 # -- The name of the PriorityClass for query-frontend pods
2478 priorityClassName: null
2479 # -- Labels for query-frontend pods
2481 # -- Annotations for query-frontend pods
2483 # -- Labels for query-frontend service
2485 # -- Annotations for query-frontend service
2486 serviceAnnotations: {}
2487 # -- Service Type for query-frontend service
2488 serviceType: ClusterIP
2489 # -- Additional CLI args for the query-frontend
2491 # -- Environment variables to add to the query-frontend pods
2493 # -- Environment variables from secrets or configmaps to add to the query-frontend pods
2495 # -- Volume mounts to add to the query-frontend pods
2496 extraVolumeMounts: []
2497 # -- Volumes to add to the query-frontend pods
2499 # -- Resource requests and limits for the query-frontend
2501 # -- init containers to add to the query-frontend pods
2503 # -- Containers to add to the query-frontend pods
2505 # -- Grace period to allow the query-frontend to shutdown before it is killed
2506 terminationGracePeriodSeconds: 30
2507 # -- Affinity for query-frontend pods.
2508 # @default -- Hard node anti-affinity
2509 # The value will be passed through tpl.
2512 requiredDuringSchedulingIgnoredDuringExecution:
2515 app.kubernetes.io/component: query-frontend
2516 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2517 app.kubernetes.io/instance: '{{ .Release.Name }}'
2518 topologyKey: kubernetes.io/hostname
2519 # -- Pod Disruption Budget maxUnavailable
2520 maxUnavailable: null
2521 # -- Node selector for query-frontend pods
2523 # -- Topology Spread Constraints for query-frontend pods
2524 # The value will be passed through tpl.
2525 topologySpreadConstraints: []
2526 # -- Tolerations for query-frontend pods
2528 # -- Adds the appProtocol field to the queryFrontend service. This allows queryFrontend to work with istio protocol selection.
2530 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2532 # -- Enable load balancer port for query-frontend
2535 # -- trafficDistribution for query-frontend service
2536 trafficDistribution: ""
2537# -- Configuration for the query-scheduler
2539 # -- Number of replicas for the query-scheduler.
2540 # It should be lower than `-querier.max-concurrent` to avoid generating back-pressure in queriers;
2541 # it's also recommended that this value evenly divides the latter
2543 # -- DNSConfig for query-scheduler
2545 # -- hostAliases to add
2550 # -- Use the host's user namespace in the query-scheduler
2553 # -- The Docker registry for the query-scheduler image. Overrides `loki.image.registry`
2555 # -- Docker image repository for the query-scheduler image. Overrides `loki.image.repository`
2557 # -- Docker image tag for the query-scheduler image. Overrides `loki.image.tag`
2559 # -- The name of the PriorityClass for query-scheduler pods
2560 priorityClassName: null
2561 # -- Labels for query-scheduler pods
2563 # -- Annotations for query-scheduler pods
2565 # -- Labels for query-scheduler service
2567 # -- Annotations for query-scheduler service
2568 serviceAnnotations: {}
2569 # -- Additional CLI args for the query-scheduler
2571 # -- Environment variables to add to the query-scheduler pods
2573 # -- Environment variables from secrets or configmaps to add to the query-scheduler pods
2575 # -- Volume mounts to add to the query-scheduler pods
2576 extraVolumeMounts: []
2577 # -- Volumes to add to the query-scheduler pods
2579 # -- Resource requests and limits for the query-scheduler
2581 # -- init containers to add to the query-scheduler pods
2583 # -- Containers to add to the query-scheduler pods
2585 # -- Grace period to allow the query-scheduler to shutdown before it is killed
2586 terminationGracePeriodSeconds: 30
2587 # -- Affinity for query-scheduler pods.
2588 # @default -- Hard node anti-affinity
2589 # The value will be passed through tpl.
2592 requiredDuringSchedulingIgnoredDuringExecution:
2595 app.kubernetes.io/component: query-scheduler
2596 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2597 app.kubernetes.io/instance: '{{ .Release.Name }}'
2598 topologyKey: kubernetes.io/hostname
2599 # -- Pod Disruption Budget maxUnavailable
2601 # -- Node selector for query-scheduler pods
2603 # -- Topology Spread Constraints for query-scheduler pods
2604 # The value will be passed through tpl.
2605 topologySpreadConstraints: []
2606 # -- Tolerations for query-scheduler pods
2608 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2611 # -- trafficDistribution for query-scheduler service
2612 trafficDistribution: ""
2613# -- Configuration for the index-gateway
2615 # -- Number of replicas for the index-gateway
2617 # -- Whether the index gateway should join the memberlist hashring
2618 joinMemberlist: true
2619 # -- DNSConfig for index-gateway pods
2621 # -- hostAliases to add
2626 # -- Use the host's user namespace in the index-gateway
2629 # -- The Docker registry for the index-gateway image. Overrides `loki.image.registry`
2631 # -- Docker image repository for the index-gateway image. Overrides `loki.image.repository`
2633 # -- Docker image tag for the index-gateway image. Overrides `loki.image.tag`
2635 # -- The name of the PriorityClass for index-gateway pods
2636 priorityClassName: null
2637 # -- Labels for index-gateway pods
2639 # -- Annotations for index-gateway pods
2641 # -- Labels for index-gateway service
2643 # -- Annotations for index-gateway service
2644 serviceAnnotations: {}
2645 # -- Service type for index-gateway service
2646 serviceType: "ClusterIP"
2647 # -- Additional CLI args for the index-gateway
2649 # -- Environment variables to add to the index-gateway pods
2651 # -- Environment variables from secrets or configmaps to add to the index-gateway pods
2653 # -- Volume mounts to add to the index-gateway pods
2654 extraVolumeMounts: []
2655 # -- Volumes to add to the index-gateway pods
2657 # -- Resource requests and limits for the index-gateway
2659 # -- Containers to add to the index-gateway pods
2661 # -- Init containers to add to the index-gateway pods
2663 # -- Grace period to allow the index-gateway to shutdown before it is killed.
2664 terminationGracePeriodSeconds: 300
2665 # -- Lifecycle for the index-gateway container
2667 # -- Affinity for index-gateway pods.
2668 # @default -- Hard node anti-affinity
2669 # The value will be passed through tpl.
2672 requiredDuringSchedulingIgnoredDuringExecution:
2675 app.kubernetes.io/component: index-gateway
2676 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2677 app.kubernetes.io/instance: '{{ .Release.Name }}'
2678 topologyKey: kubernetes.io/hostname
2679 # -- Pod Disruption Budget maxUnavailable
2680 maxUnavailable: null
2681 # -- Node selector for index-gateway pods
2683 # -- Topology Spread Constraints for index-gateway pods
2684 # The value will be passed through tpl.
2685 topologySpreadConstraints: []
2686 # -- Tolerations for index-gateway pods
2689 # -- Enable creating PVCs which is required when using boltdb-shipper
2691 # -- Set access modes on the PersistentVolumeClaim
2694 # -- Use emptyDir with ramdisk for storage. **Please note that all data in indexGateway will be lost on pod restart**
2696 # -- Size of persistent or memory disk
2698 # -- Storage class to be used.
2699 # If defined, storageClassName: <storageClass>.
2700 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2701 # If empty or set to null, no storageClassName spec is
2702 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2704 # -- Volume attributes class name to be used.
2705 # If empty or set to null, no volumeAttributesClassName spec is set.
2706 # Requires Kubernetes 1.31
2707 volumeAttributesClassName: null
2708 # -- Annotations for index gateway PVCs
2710 # -- Labels for index gateway PVCs
2712 # -- Enable StatefulSetAutoDeletePVC feature
2713 enableStatefulSetAutoDeletePVC: false
2716 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2719 # -- trafficDistribution for index-gateway service
2720 trafficDistribution: ""
2721 # -- UpdateStrategy for the indexGateway StatefulSet.
2723 # -- One of 'OnDelete' or 'RollingUpdate'
2725 # -- Optional for updateStrategy.type=RollingUpdate. See [Partitioned rolling updates](https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#partitions) in the StatefulSet docs for details.
2728# -- Configuration for the compactor
2730 # -- Number of replicas for the compactor
2732 # -- hostAliases to add
2737 # -- Use the host's user namespace in the compactor
2739 # -- DNSConfig for compactor pods
2742 # -- The Docker registry for the compactor image. Overrides `loki.image.registry`
2744 # -- Docker image repository for the compactor image. Overrides `loki.image.repository`
2746 # -- Docker image tag for the compactor image. Overrides `loki.image.tag`
2748 # -- Command to execute instead of defined in Docker image
2750 # -- The name of the PriorityClass for compactor pods
2751 priorityClassName: null
2752 # -- Labels for compactor pods
2754 # -- Annotations for compactor pods
2756 # -- Affinity for compactor pods.
2757 # @default -- Hard node anti-affinity
2758 # The value will be passed through tpl.
2761 requiredDuringSchedulingIgnoredDuringExecution:
2764 app.kubernetes.io/component: compactor
2765 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2766 app.kubernetes.io/instance: '{{ .Release.Name }}'
2767 topologyKey: kubernetes.io/hostname
2768 # -- Labels for compactor service
2770 # -- Annotations for compactor service
2771 serviceAnnotations: {}
2772 # -- Service type for compactor service
2773 serviceType: "ClusterIP"
2774 # -- Additional CLI args for the compactor
2776 # -- Environment variables to add to the compactor pods
2778 # -- Environment variables from secrets or configmaps to add to the compactor pods
2780 # -- Volume mounts to add to the compactor pods
2781 extraVolumeMounts: []
2782 # -- Volumes to add to the compactor pods
2784 # -- readiness probe settings for compactor pods. If empty, use `loki.readinessProbe`
2786 # -- liveness probe settings for compactor pods. If empty use `loki.livenessProbe`
2788 # -- liveness probe settings for ingester pods. If empty use `loki.livenessProbe`
2790 # -- Resource requests and limits for the compactor
2792 # -- Containers to add to the compactor pods
2794 # -- Init containers to add to the compactor pods
2796 # -- Grace period to allow the compactor to shutdown before it is killed
2797 terminationGracePeriodSeconds: 30
2798 # -- Node selector for compactor pods
2800 # -- Tolerations for compactor pods
2802 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2806 # -- Enable creating PVCs for the compactor
2808 # -- List of the compactor PVCs
2809 # @notationType -- list
2812 # -- Set access modes on the PersistentVolumeClaim
2816 # -- Storage class to be used.
2817 # If defined, storageClassName: <storageClass>.
2818 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2819 # If empty or set to null, no storageClassName spec is
2820 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2822 # -- Volume attributes class name to be used.
2823 # If empty or set to null, no volumeAttributesClassName spec is set.
2824 # Requires Kubernetes 1.31
2825 volumeAttributesClassName: null
2826 # -- Annotations for compactor PVCs
2828 # -- Labels for compactor PVCs
2832 # -- Enable StatefulSetAutoDeletePVC feature
2833 enableStatefulSetAutoDeletePVC: false
2838 # -- The name of the ServiceAccount to use for the compactor.
2839 # If not set and create is true, a name is generated by appending
2840 # "-compactor" to the common ServiceAccount.
2842 # -- Image pull secrets for the compactor service account
2843 imagePullSecrets: []
2844 # -- Annotations for the compactor service account
2846 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2847 automountServiceAccountToken: true
2848# -- Configuration for the bloom-gateway
2850 # -- Number of replicas for the bloom-gateway
2852 # -- hostAliases to add
2857 # -- Use the host's user namespace in the bloom-gateway
2859 # -- DNSConfig for bloom-gateway pods
2862 # -- The Docker registry for the bloom-gateway image. Overrides `loki.image.registry`
2864 # -- Docker image repository for the bloom-gateway image. Overrides `loki.image.repository`
2866 # -- Docker image tag for the bloom-gateway image. Overrides `loki.image.tag`
2868 # -- Command to execute instead of defined in Docker image
2870 # -- The name of the PriorityClass for bloom-gateway pods
2871 priorityClassName: null
2872 # -- Labels for bloom-gateway pods
2874 # -- Annotations for bloom-gateway pods
2876 # -- Affinity for bloom-gateway pods.
2877 # @default -- Hard node anti-affinity
2878 # The value will be passed through tpl.
2881 requiredDuringSchedulingIgnoredDuringExecution:
2884 app.kubernetes.io/component: bloom-gateway
2885 app.kubernetes.io/name: '{{ include "loki.name" . }}'
2886 app.kubernetes.io/instance: '{{ .Release.Name }}'
2887 topologyKey: kubernetes.io/hostname
2888 # -- Labels for bloom-gateway service
2890 # -- Annotations for bloom-gateway service
2891 serviceAnnotations: {}
2892 # -- Additional CLI args for the bloom-gateway
2894 # -- Environment variables to add to the bloom-gateway pods
2896 # -- Environment variables from secrets or configmaps to add to the bloom-gateway pods
2898 # -- Volume mounts to add to the bloom-gateway pods
2899 extraVolumeMounts: []
2900 # -- Volumes to add to the bloom-gateway pods
2902 # -- readiness probe settings for bloom-gateway pods. If empty, use `loki.readinessProbe`
2904 # -- liveness probe settings for bloom-gateway pods. If empty use `loki.livenessProbe`
2906 # -- startup probe settings for bloom-gateway pods. If empty, use `loki.startupProbe`
2908 # -- Resource requests and limits for the bloom-gateway
2910 # -- Containers to add to the bloom-gateway pods
2912 # -- Init containers to add to the bloom-gateway pods
2914 # -- Grace period to allow the bloom-gateway to shutdown before it is killed
2915 terminationGracePeriodSeconds: 30
2916 # -- Node selector for bloom-gateway pods
2918 # -- Tolerations for bloom-gateway pods
2920 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
2924 # -- Enable creating PVCs for the bloom-gateway
2926 # -- Annotations for bloom-gateway PVCs
2928 # -- Labels for bloom gateway PVCs
2930 # -- List of the bloom-gateway PVCs
2931 # @notationType -- list
2934 # -- Set access modes on the PersistentVolumeClaim
2937 # -- Size of persistent disk
2939 # -- Storage class to be used.
2940 # If defined, storageClassName: <storageClass>.
2941 # If set to "-", storageClassName: "", which disables dynamic provisioning.
2942 # If empty or set to null, no storageClassName spec is
2943 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
2945 # -- Volume attributes class name to be used.
2946 # If empty or set to null, no volumeAttributesClassName spec is set.
2947 # Requires Kubernetes 1.31
2948 volumeAttributesClassName: null
2949 # -- Enable StatefulSetAutoDeletePVC feature
2950 enableStatefulSetAutoDeletePVC: false
2955 # -- The name of the ServiceAccount to use for the bloom-gateway.
2956 # If not set and create is true, a name is generated by appending
2957 # "-bloom-gateway" to the common ServiceAccount.
2959 # -- Image pull secrets for the bloom-gateway service account
2960 imagePullSecrets: []
2961 # -- Annotations for the bloom-gateway service account
2963 # -- Set this toggle to false to opt out of automounting API credentials for the service account
2964 automountServiceAccountToken: true
2965# -- Configuration for the bloom-planner
2967 # -- Number of replicas for the bloom-planner
2969 # -- hostAliases to add
2974 # -- Use the host's user namespace in the bloom-planner
2976 # -- DNSConfig for bloom-planner pods
2979 # -- The Docker registry for the bloom-planner image. Overrides `loki.image.registry`
2981 # -- Docker image repository for the bloom-planner image. Overrides `loki.image.repository`
2983 # -- Docker image tag for the bloom-planner image. Overrides `loki.image.tag`
2985 # -- Command to execute instead of defined in Docker image
2987 # -- The name of the PriorityClass for bloom-planner pods
2988 priorityClassName: null
2989 # -- Labels for bloom-planner pods
2991 # -- Annotations for bloom-planner pods
2993 # -- Affinity for bloom-planner pods.
2994 # @default -- Hard node anti-affinity
2995 # The value will be passed through tpl.
2998 requiredDuringSchedulingIgnoredDuringExecution:
3001 app.kubernetes.io/component: bloom-planner
3002 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3003 app.kubernetes.io/instance: '{{ .Release.Name }}'
3004 topologyKey: kubernetes.io/hostname
3005 # -- Labels for bloom-planner service
3007 # -- Annotations for bloom-planner service
3008 serviceAnnotations: {}
3009 # -- Additional CLI args for the bloom-planner
3011 # -- Environment variables to add to the bloom-planner pods
3013 # -- Environment variables from secrets or configmaps to add to the bloom-planner pods
3015 # -- Volume mounts to add to the bloom-planner pods
3016 extraVolumeMounts: []
3017 # -- Volumes to add to the bloom-planner pods
3019 # -- readiness probe settings for bloom-planner pods. If empty, use `loki.readinessProbe`
3021 # -- liveness probe settings for bloom-planner pods. If empty use `loki.livenessProbe`
3023 # -- startup probe settings for bloom-planner pods. If empty use `loki.startupProbe`
3025 # -- Resource requests and limits for the bloom-planner
3027 # -- Containers to add to the bloom-planner pods
3029 # -- Init containers to add to the bloom-planner pods
3031 # -- Grace period to allow the bloom-planner to shutdown before it is killed
3032 terminationGracePeriodSeconds: 30
3033 # -- Node selector for bloom-planner pods
3035 # -- Tolerations for bloom-planner pods
3037 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3041 # -- Enable creating PVCs for the bloom-planner
3043 # -- List of the bloom-planner PVCs
3044 # @notationType -- list
3047 # -- Set access modes on the PersistentVolumeClaim
3050 # -- Size of persistent disk
3052 # -- Storage class to be used.
3053 # If defined, storageClassName: <storageClass>.
3054 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3055 # If empty or set to null, no storageClassName spec is
3056 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3058 # -- Volume attributes class name to be used.
3059 # If empty or set to null, no volumeAttributesClassName spec is set.
3060 # Requires Kubernetes 1.31
3061 volumeAttributesClassName: null
3062 # -- Annotations for bloom-planner PVCs
3064 # -- Labels for bloom planner PVCs
3066 # -- Enable StatefulSetAutoDeletePVC feature
3067 enableStatefulSetAutoDeletePVC: false
3072 # -- The name of the ServiceAccount to use for the bloom-planner.
3073 # If not set and create is true, a name is generated by appending
3074 # "-bloom-planner" to the common ServiceAccount.
3076 # -- Image pull secrets for the bloom-planner service account
3077 imagePullSecrets: []
3078 # -- Annotations for the bloom-planner service account
3080 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3081 automountServiceAccountToken: true
3082# -- Configuration for the bloom-builder
3084 # -- Number of replicas for the bloom-builder
3086 # -- hostAliases to add
3091 # -- Use the host's user namespace in the boom-builder
3093 # -- DNSConfig for bloom-builder pods
3096 # -- Enable autoscaling for the bloom-builder
3098 # -- Minimum autoscaling replicas for the bloom-builder
3100 # -- Maximum autoscaling replicas for the bloom-builder
3102 # -- Target CPU utilisation percentage for the bloom-builder
3103 targetCPUUtilizationPercentage: 60
3104 # -- Target memory utilisation percentage for the bloom-builder
3105 targetMemoryUtilizationPercentage: null
3106 # -- Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics)
3111 # name: loki_query_rate
3113 # type: AverageValue
3116 # -- Enable autoscaling behaviours
3118 # -- define scale down policies, must conform to HPAScalingRules
3120 # -- define scale up policies, must conform to HPAScalingRules
3123 # -- The Docker registry for the bloom-builder image. Overrides `loki.image.registry`
3125 # -- Docker image repository for the bloom-builder image. Overrides `loki.image.repository`
3127 # -- Docker image tag for the bloom-builder image. Overrides `loki.image.tag`
3129 # -- Command to execute instead of defined in Docker image
3131 # -- The name of the PriorityClass for bloom-builder pods
3132 priorityClassName: null
3133 # -- Labels for bloom-builder pods
3135 # -- Annotations for bloom-builder pods
3137 # -- Labels for bloom-builder service
3139 # -- Annotations for bloom-builder service
3140 serviceAnnotations: {}
3141 # -- Additional CLI args for the bloom-builder
3143 # -- Environment variables to add to the bloom-builder pods
3145 # -- Environment variables from secrets or configmaps to add to the bloom-builder pods
3147 # -- Volume mounts to add to the bloom-builder pods
3148 extraVolumeMounts: []
3149 # -- Volumes to add to the bloom-builder pods
3151 # -- Resource requests and limits for the bloom-builder
3153 # -- Init containers to add to the bloom-builder pods
3155 # -- Containers to add to the bloom-builder pods
3157 # -- Grace period to allow the bloom-builder to shutdown before it is killed
3158 terminationGracePeriodSeconds: 30
3159 # -- Affinity for bloom-builder pods.
3160 # @default -- Hard node anti-affinity
3161 # The value will be passed through tpl.
3164 requiredDuringSchedulingIgnoredDuringExecution:
3167 app.kubernetes.io/component: bloom-builder
3168 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3169 app.kubernetes.io/instance: '{{ .Release.Name }}'
3170 topologyKey: kubernetes.io/hostname
3171 # -- Pod Disruption Budget maxUnavailable
3172 maxUnavailable: null
3173 # -- Node selector for bloom-builder pods
3175 # -- Tolerations for bloom-builder pods
3177 # -- Adds the appProtocol field to the queryFrontend service. This allows bloomBuilder to work with istio protocol selection.
3179 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3181# -- Configuration for the pattern ingester
3183 # -- Number of replicas for the pattern ingester
3185 # -- DNSConfig for pattern ingester pods
3187 # -- hostAliases to add
3192 # -- Use the host's user namespace in the pattern ingester
3195 # -- The Docker registry for the pattern ingester image. Overrides `loki.image.registry`
3197 # -- Docker image repository for the pattern ingester image. Overrides `loki.image.repository`
3199 # -- Docker image tag for the pattern ingester image. Overrides `loki.image.tag`
3201 # -- Command to execute instead of defined in Docker image
3203 # -- The name of the PriorityClass for pattern ingester pods
3204 priorityClassName: null
3205 # -- Labels for pattern ingester pods
3207 # -- Annotations for pattern ingester pods
3209 # -- Affinity for pattern ingester pods.
3210 # @default -- Hard node anti-affinity
3211 # The value will be passed through tpl.
3214 requiredDuringSchedulingIgnoredDuringExecution:
3217 app.kubernetes.io/component: pattern-ingester
3218 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3219 app.kubernetes.io/instance: '{{ .Release.Name }}'
3220 topologyKey: kubernetes.io/hostname
3221 # -- Pod Disruption Budget maxUnavailable
3222 maxUnavailable: null
3223 # -- Labels for pattern ingester service
3225 # -- Annotations for pattern ingester service
3226 serviceAnnotations: {}
3227 # -- Additional CLI args for the pattern ingester
3229 # -- Environment variables to add to the pattern ingester pods
3231 # -- Environment variables from secrets or configmaps to add to the pattern ingester pods
3233 # -- Volume mounts to add to the pattern ingester pods
3234 extraVolumeMounts: []
3235 # -- Volumes to add to the pattern ingester pods
3237 # -- readiness probe settings for pattern ingester pods. If empty, use `loki.readinessProbe`
3239 # -- liveness probe settings for pattern ingester pods. If empty use `loki.livenessProbe`
3241 # -- startup probe settings for pattern ingester pods. If empty use `loki.startupProbe`
3243 # -- Resource requests and limits for the pattern ingester
3245 # -- Containers to add to the pattern ingester pods
3247 # -- Init containers to add to the pattern ingester pods
3249 # -- Grace period to allow the pattern ingester to shutdown before it is killed
3250 terminationGracePeriodSeconds: 30
3251 # -- Node selector for pattern ingester pods
3253 # -- Topology Spread Constraints for pattern ingester pods
3254 # The value will be passed through tpl.
3255 topologySpreadConstraints: []
3256 # -- Tolerations for pattern ingester pods
3258 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3262 # -- Enable creating PVCs for the pattern ingester
3264 # -- Size of persistent disk
3266 # -- Storage class to be used.
3267 # If defined, storageClassName: <storageClass>.
3268 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3269 # If empty or set to null, no storageClassName spec is
3270 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3272 # -- List of the pattern ingester PVCs
3273 # @notationType -- list
3276 # -- Set access modes on the PersistentVolumeClaim
3280 # -- Storage class to be used.
3281 # If defined, storageClassName: <storageClass>.
3282 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3283 # If empty or set to null, no storageClassName spec is
3284 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3286 # -- Volume attributes class name to be used.
3287 # If empty or set to null, no volumeAttributesClassName spec is set.
3288 # Requires Kubernetes 1.31
3289 volumeAttributesClassName: null
3290 # -- Annotations for pattern ingester PVCs
3292 # -- Labels for pattern ingester PVCs
3296 # -- Enable StatefulSetAutoDeletePVC feature
3297 enableStatefulSetAutoDeletePVC: false
3302 # -- The name of the ServiceAccount to use for the pattern ingester.
3303 # If not set and create is true, a name is generated by appending
3304 # "-pattern-ingester" to the common ServiceAccount.
3306 # -- Image pull secrets for the pattern ingester service account
3307 imagePullSecrets: []
3308 # -- Annotations for the pattern ingester service account
3310 # -- Set this toggle to false to opt out of automounting API credentials for the service account
3311 automountServiceAccountToken: true
3312# -- Configuration for the ruler
3314 # -- The ruler component is optional and can be disabled if desired.
3316 # -- Whether to enable the rules sidecar
3318 # -- Number of replicas for the ruler
3320 # -- hostAliases to add
3325 # -- Use the host's user namespace in the ruler
3328 # -- The Docker registry for the ruler image. Overrides `loki.image.registry`
3330 # -- Docker image repository for the ruler image. Overrides `loki.image.repository`
3332 # -- Docker image tag for the ruler image. Overrides `loki.image.tag`
3334 # -- Command to execute instead of defined in Docker image
3336 # -- The name of the PriorityClass for ruler pods
3337 priorityClassName: null
3338 # -- Labels for compactor pods
3340 # -- Annotations for ruler pods
3342 # -- Labels for ruler service
3344 # -- Annotations for ruler service
3345 serviceAnnotations: {}
3346 # -- Additional CLI args for the ruler
3348 # -- Environment variables to add to the ruler pods
3350 # -- Environment variables from secrets or configmaps to add to the ruler pods
3352 # -- Volume mounts to add to the ruler pods
3353 extraVolumeMounts: []
3354 # -- Volumes to add to the ruler pods
3356 # -- Resource requests and limits for the ruler
3358 # -- Containers to add to the ruler pods
3360 # -- Init containers to add to the ruler pods
3362 # -- Grace period to allow the ruler to shutdown before it is killed
3363 terminationGracePeriodSeconds: 300
3364 # -- Affinity for ruler pods.
3365 # @default -- Hard node anti-affinity
3366 # The value will be passed through tpl.
3369 requiredDuringSchedulingIgnoredDuringExecution:
3372 app.kubernetes.io/component: ruler
3373 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3374 app.kubernetes.io/instance: '{{ .Release.Name }}'
3375 topologyKey: kubernetes.io/hostname
3376 # -- Pod Disruption Budget maxUnavailable
3377 maxUnavailable: null
3378 # -- Node selector for ruler pods
3380 # -- Topology Spread Constraints for ruler pods
3381 # The value will be passed through tpl.
3382 topologySpreadConstraints: []
3383 # -- Tolerations for ruler pods
3385 # -- DNSConfig for ruler pods
3388 # -- Enable creating PVCs which is required when using recording rules
3390 # -- Set access modes on the PersistentVolumeClaim
3393 # -- Size of persistent disk
3395 # -- Storage class to be used.
3396 # If defined, storageClassName: <storageClass>.
3397 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3398 # If empty or set to null, no storageClassName spec is
3399 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3401 # -- Volume attributes class name to be used.
3402 # If empty or set to null, no volumeAttributesClassName spec is set.
3403 # Requires Kubernetes 1.31
3404 volumeAttributesClassName: null
3405 # -- Annotations for ruler PVCs
3407 # -- Labels for ruler PVCs
3409 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3412 # -- Directories containing rules files. If used, you must also configure `loki.rulerConfig.storage` to use local storage.
3417 # - name: should_fire
3419 # - alert: HighPercentageError
3421 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
3423 # sum(rate({app="foo", env="production"}[5m])) by (job)
3429 # summary: High error rate
3430 # - name: credentials_leak
3432 # - alert: http-credentials-leaked
3434 # message: "{{ $labels.job }} is leaking http basic auth credentials."
3435 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
3438 # severity: critical
3443 # - alert: HighThroughputLogStreams
3444 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
3449 # - name: should_fire
3451 # - alert: HighPercentageError
3453 # sum(rate({app="foo", env="production"} |= "error" [5m])) by (job)
3455 # sum(rate({app="foo", env="production"}[5m])) by (job)
3461 # summary: High error rate
3462 # - name: credentials_leak
3464 # - alert: http-credentials-leaked
3466 # message: "{{ $labels.job }} is leaking http basic auth credentials."
3467 # expr: 'sum by (cluster, job, pod) (count_over_time({namespace="prod"} |~ "http(s?)://(\\w+):(\\w+)@" [5m]) > 0)'
3470 # severity: critical
3475 # - alert: HighThroughputLogStreams
3476 # expr: sum by(container) (rate({job=~"loki-dev/.*"}[1m])) > 1000
3478# -- Configuration for the overrides-exporter
3480 # -- The overrides-exporter component is optional and can be disabled if desired.
3482 # -- Number of replicas for the overrides-exporter
3484 # -- DNSConfig for overrides-exporter
3486 # -- hostAliases to add
3491 # -- Use the host's user namespace in the overrides-exporter
3494 # -- The Docker registry for the overrides-exporter image. Overrides `loki.image.registry`
3496 # -- Docker image repository for the overrides-exporter image. Overrides `loki.image.repository`
3498 # -- Docker image tag for the overrides-exporter image. Overrides `loki.image.tag`
3500 # -- Command to execute instead of defined in Docker image
3502 # -- The name of the PriorityClass for overrides-exporter pods
3503 priorityClassName: null
3504 # -- Labels for overrides-exporter pods
3506 # -- Annotations for overrides-exporter pods
3508 # -- Labels for overrides-exporter service
3510 # -- Annotations for overrides-exporter service
3511 serviceAnnotations: {}
3512 # -- Additional CLI args for the overrides-exporter
3514 # -- Environment variables to add to the overrides-exporter pods
3516 # -- Environment variables from secrets or configmaps to add to the overrides-exporter pods
3518 # -- Volume mounts to add to the overrides-exporter pods
3519 extraVolumeMounts: []
3520 # -- Volumes to add to the overrides-exporter pods
3522 # -- Resource requests and limits for the overrides-exporter
3524 # -- Containers to add to the overrides-exporter pods
3526 # -- Init containers to add to the overrides-exporter pods
3528 # -- Grace period to allow the overrides-exporter to shutdown before it is killed
3529 terminationGracePeriodSeconds: 300
3530 # -- Affinity for overrides-exporter pods.
3531 # @default -- Hard node anti-affinity
3532 # The value will be passed through tpl.
3535 requiredDuringSchedulingIgnoredDuringExecution:
3538 app.kubernetes.io/component: overrides-exporter
3539 app.kubernetes.io/name: '{{ include "loki.name" . }}'
3540 app.kubernetes.io/instance: '{{ .Release.Name }}'
3541 topologyKey: kubernetes.io/hostname
3542 # -- Pod Disruption Budget maxUnavailable
3543 maxUnavailable: null
3544 # -- Node selector for overrides-exporter pods
3546 # -- Topology Spread Constraints for overrides-exporter pods
3547 # The value will be passed through tpl.
3548 topologySpreadConstraints: []
3549 # -- Tolerations for overrides-exporter pods
3551 # -- Set the optional grpc service protocol. Ex: "grpc", "http2" or "https"
3554# You can use a self hosted memcached by setting enabled to false and providing addresses.
3556 # -- Enable the built in memcached server provided by the chart
3559 # -- Memcached Docker image repository
3560 repository: cgr.dev/chainguard-private/memcached
3561 # -- Memcached Docker image tag
3562 tag: latest@sha256:9448aa794e1afc31d8d7a7cd567f69a5ac51afbca34ecaeaf15fa88deb7cb630
3563 # -- Memcached Docker image pull policy
3564 pullPolicy: IfNotPresent
3565 # -- The SecurityContext override for memcached pods
3571 # -- The name of the PriorityClass for memcached pods
3572 priorityClassName: null
3573 # -- The SecurityContext for memcached containers
3574 containerSecurityContext:
3575 readOnlyRootFilesystem: true
3578 allowPrivilegeEscalation: false
3579 # -- Readiness probe for memcached pods (probe port defaults to container port)
3583 initialDelaySeconds: 5
3587 # -- Liveness probe for memcached pods
3591 initialDelaySeconds: 30
3595 # -- Startup probe for memcached pods
3598 # -- Whether memcached metrics should be exported
3601 repository: cgr.dev/chainguard-private/memcached-exporter
3602 tag: latest@sha256:e4b8bfc0cc6c2ad4f9ef67c3bdf832d30a1e70bf13fdd2f0437c3aac963ab0d9
3603 pullPolicy: IfNotPresent
3607 # -- The SecurityContext for memcached exporter containers
3608 containerSecurityContext:
3609 readOnlyRootFilesystem: true
3612 allowPrivilegeEscalation: false
3613 # -- Extra args to add to the exporter container.
3616 # memcached.tls.enable: true
3617 # memcached.tls.cert-file: /certs/cert.crt
3618 # memcached.tls.key-file: /certs/cert.key
3619 # memcached.tls.ca-file: /certs/ca.crt
3620 # memcached.tls.insecure-skip-verify: false
3621 # memcached.tls.server-name: memcached
3623 # -- Liveness probe for memcached exporter
3628 initialDelaySeconds: 30
3632 # -- Readiness probe for memcached exporter
3637 initialDelaySeconds: 5
3641 # -- Startup probe for memcached exporter
3644 # -- Specifies whether memcached based results-cache should be enabled
3646 # -- Comma separated addresses list in DNS Service Discovery format
3647 addresses: dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "results-cache") }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}
3648 # -- Specify how long cached results should be stored in the results-cache before being expired
3649 defaultValidity: 12h
3650 # -- Memcached operation timeout
3652 # -- Total number of results-cache replicas
3654 # -- Port of the results-cache service
3656 # -- Amount of memory allocated to results-cache for object storage (in MB).
3657 allocatedMemory: 1024
3658 # -- Amount of cpu allocated to results-cache for object storage (in integer or millicores).
3660 # -- Maximum item results-cache for memcached (in MB).
3662 # -- Maximum number of connections allowed
3663 connectionLimit: 16384
3664 # -- Max memory to use for cache write back
3665 writebackSizeLimit: 500MB
3666 # -- Max number of objects to use for cache write back
3667 writebackBuffer: 500000
3668 # -- Number of parallel threads for cache write back
3669 writebackParallelism: 1
3670 # -- Extra init containers for results-cache pods
3672 # -- Annotations for the results-cache pods
3674 # -- Node selector for results-cache pods
3676 # -- Affinity for results-cache pods
3678 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
3679 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
3680 topologySpreadConstraints: []
3682 # topologyKey: kubernetes.io/hostname
3683 # whenUnsatisfiable: ScheduleAnyway
3684 # -- Tolerations for results-cache pods
3686 # -- Pod Disruption Budget maxUnavailable
3688 # -- DNSConfig for results-cache
3690 # -- The name of the PriorityClass for results-cache pods
3691 priorityClassName: null
3692 # -- Use the host's user namespace in results-cache pods
3694 # -- Labels for results-cache pods
3696 # -- Annotations for results-cache pods
3698 # -- Management policy for results-cache pods
3699 podManagementPolicy: Parallel
3700 # -- Grace period to allow the results-cache to shutdown before it is killed
3701 terminationGracePeriodSeconds: 60
3702 # -- Stateful results-cache strategy
3705 # -- Add extended options for results-cache memcached container. The format is the same as for the memcached -o/--extend flag.
3707 # extraExtendedOptions: 'tls,modern,track_sizes'
3708 extraExtendedOptions: ""
3709 # -- Additional CLI args for results-cache
3711 # -- Additional containers to be added to the results-cache pod.
3713 # -- Additional volumes to be added to the results-cache pod (applies to both memcached and exporter containers).
3716 # - name: extra-volume
3718 # secretName: extra-volume-secret
3720 # -- Additional volume mounts to be added to the results-cache pod (applies to both memcached and exporter containers).
3722 # extraVolumeMounts:
3723 # - name: extra-volume
3724 # mountPath: /etc/extra-volume
3726 extraVolumeMounts: []
3727 # -- Resource requests and limits for the results-cache
3728 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
3730 # -- Service annotations and labels
3734 # -- Persistence settings for the results-cache
3736 # -- Enable creating PVCs for the results-cache
3738 # -- Size of persistent disk, must be in G or Gi
3740 # -- Storage class to be used.
3741 # If defined, storageClassName: <storageClass>.
3742 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3743 # If empty or set to null, no storageClassName spec is
3744 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3746 # -- Volume attributes class name to be used.
3747 # If empty or set to null, no volumeAttributesClassName spec is set.
3748 # Requires Kubernetes 1.31
3749 volumeAttributesClassName: null
3750 # -- Volume mount path
3752 # -- PVC additional labels
3755 # -- Append to the name of the resources to make names different for l1 and l2
3757 # -- Specifies whether memcached based chunks-cache should be enabled
3759 # -- Comma separated addresses list in DNS Service Discovery format
3760 addresses: 'dnssrvnoa+_memcached-client._tcp.{{ include "loki.resourceName" (dict "ctx" $ "component" "chunks-cache" "suffix" $.Values.chunksCache.suffix ) }}.{{ include "loki.namespace" $ }}.svc.{{ .Values.global.clusterDomain }}'
3761 # -- Batchsize for sending and receiving chunks from chunks cache
3763 # -- Parallel threads for sending and receiving chunks from chunks cache
3765 # -- Memcached operation timeout
3767 # -- Specify how long cached chunks should be stored in the chunks-cache before being expired
3769 # -- Specify how long cached chunks should be stored in the chunks-cache before being expired
3771 # -- Port of the chunks-cache service
3773 # -- Amount of memory allocated to chunks-cache for object storage (in MB).
3774 allocatedMemory: 8192
3775 # -- Amount of cpu allocated to chunks-cache for object storage (in integer or millicores).
3777 # -- Maximum item memory for chunks-cache (in MB).
3779 # -- Maximum number of connections allowed
3780 connectionLimit: 16384
3781 # -- Max memory to use for cache write back
3782 writebackSizeLimit: 500MB
3783 # -- Max number of objects to use for cache write back
3784 writebackBuffer: 500000
3785 # -- Number of parallel threads for cache write back
3786 writebackParallelism: 1
3787 # -- Extra init containers for chunks-cache pods
3789 # -- Annotations for the chunks-cache pods
3791 # -- Node selector for chunks-cache pods
3793 # -- Affinity for chunks-cache pods
3795 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
3796 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
3797 topologySpreadConstraints: []
3799 # topologyKey: kubernetes.io/hostname
3800 # whenUnsatisfiable: ScheduleAnyway
3801 # -- Tolerations for chunks-cache pods
3803 # -- Pod Disruption Budget maxUnavailable
3805 # -- DNSConfig for chunks-cache
3807 # -- The name of the PriorityClass for chunks-cache pods
3808 priorityClassName: null
3809 # -- Use the host's user namespace in chunks-cache pods
3811 # -- Labels for chunks-cache pods
3813 # -- Annotations for chunks-cache pods
3815 # -- Management policy for chunks-cache pods
3816 podManagementPolicy: Parallel
3817 # -- Grace period to allow the chunks-cache to shutdown before it is killed
3818 terminationGracePeriodSeconds: 60
3819 # -- Stateful chunks-cache strategy
3822 # -- Add extended options for chunks-cache memcached container. The format is the same as for the memcached -o/--extend flag.
3824 # extraExtendedOptions: 'tls,no_hashexpand'
3825 extraExtendedOptions: ""
3826 # -- Additional CLI args for chunks-cache
3828 # -- Additional containers to be added to the chunks-cache pod.
3830 # -- Additional volumes to be added to the chunks-cache pod (applies to both memcached and exporter containers).
3833 # - name: extra-volume
3835 # secretName: extra-volume-secret
3837 # -- Additional volume mounts to be added to the chunks-cache pod (applies to both memcached and exporter containers).
3839 # extraVolumeMounts:
3840 # - name: extra-volume
3841 # mountPath: /etc/extra-volume
3843 extraVolumeMounts: []
3844 # -- Resource requests and limits for the chunks-cache
3845 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
3847 # -- Service annotations and labels
3851 # -- Persistence settings for the chunks-cache
3853 # -- Enable creating PVCs for the chunks-cache
3855 # -- Size of persistent disk, must be in G or Gi
3857 # -- Storage class to be used.
3858 # If defined, storageClassName: <storageClass>.
3859 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3860 # If empty or set to null, no storageClassName spec is
3861 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3863 # -- Volume attributes class name to be used.
3864 # If empty or set to null, no volumeAttributesClassName spec is set.
3865 # Requires Kubernetes 1.31
3866 volumeAttributesClassName: null
3867 # -- Volume mount path
3870 # -- l2 memcache configuration
3872 # -- Append to the name of the resources to make names different for l1 and l2
3874 # -- The age of chunks should be transfered from l1 cache to l2
3876 l2ChunkCacheHandoff: 345600s
3877 # -- Specifies whether memcached based chunks-cache-l2 should be enabled
3879 # -- Comma separated addresses list in DNS Service Discovery format
3880 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 }}'
3881 # -- Batchsize for sending and receiving chunks from chunks cache
3883 # -- Parallel threads for sending and receiving chunks from chunks cache
3885 # -- Memcached operation timeout
3887 # -- Specify how long cached chunks should be stored in the chunks-cache-l2 before being expired
3889 # -- Specify how long cached chunks should be stored in the chunks-cache-l2 before being expired
3891 # -- Port of the chunks-cache-l2 service
3893 # -- Amount of memory allocated to chunks-cache-l2 for object storage (in MB).
3894 allocatedMemory: 8192
3895 # -- Amount of cpu allocated to chunks-cache-l2 for object storage (in integer or millicores).
3897 # -- Maximum item memory for chunks-cache-l2 (in MB).
3899 # -- Maximum number of connections allowed
3900 connectionLimit: 16384
3901 # -- Max memory to use for cache write back
3902 writebackSizeLimit: 500MB
3903 # -- Max number of objects to use for cache write back
3904 writebackBuffer: 500000
3905 # -- Number of parallel threads for cache write back
3906 writebackParallelism: 1
3907 # -- Extra init containers for chunks-cache-l2 pods
3909 # -- Annotations for the chunks-cache-l2 pods
3911 # -- Node selector for chunks-cach-l2 pods
3913 # -- Affinity for chunks-cache-l2 pods
3915 # -- topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints.
3916 # labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services.
3917 topologySpreadConstraints: []
3919 # topologyKey: kubernetes.io/hostname
3920 # whenUnsatisfiable: ScheduleAnyway
3921 # -- Tolerations for chunks-cache-l2 pods
3923 # -- Pod Disruption Budget maxUnavailable
3925 # -- DNSConfig for chunks-cache-l2
3927 # -- The name of the PriorityClass for chunks-cache-l2 pods
3928 priorityClassName: null
3929 # -- Use the host's user namespace in chunks-cache-l2 pods
3931 # -- Labels for chunks-cache-l2 pods
3933 # -- Annotations for chunks-cache-l2 pods
3935 # -- Management policy for chunks-cache-l2 pods
3936 podManagementPolicy: Parallel
3937 # -- Grace period to allow the chunks-cache-l2 to shutdown before it is killed
3938 terminationGracePeriodSeconds: 60
3939 # -- Stateful chunks-cache strategy
3942 # -- Add extended options for chunks-cache-l2 memcached container. The format is the same as for the memcached -o/--extend flag.
3944 # extraExtendedOptions: 'tls,no_hashexpand'
3945 extraExtendedOptions: ""
3946 # -- Additional CLI args for chunks-cache-l2
3948 # -- Additional containers to be added to the chunks-cache-l2 pod.
3950 # -- Additional volumes to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
3953 # - name: extra-volume
3955 # secretName: extra-volume-secret
3957 # -- Additional volume mounts to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers).
3959 # extraVolumeMounts:
3960 # - name: extra-volume
3961 # mountPath: /etc/extra-volume
3963 extraVolumeMounts: []
3964 # -- Resource requests and limits for the chunks-cache-l2
3965 # By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)).
3967 # -- Service annotations and labels
3971 # -- Persistence settings for the chunks-cache-l2
3973 # -- Enable creating PVCs for the chunks-cache-l2
3975 # -- Size of persistent disk, must be in G or Gi
3977 # -- Storage class to be used.
3978 # If defined, storageClassName: <storageClass>.
3979 # If set to "-", storageClassName: "", which disables dynamic provisioning.
3980 # If empty or set to null, no storageClassName spec is
3981 # set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack).
3983 # -- Volume attributes class name to be used.
3984 # If empty or set to null, no volumeAttributesClassName spec is set.
3985 # Requires Kubernetes 1.31
3986 volumeAttributesClassName: null
3987 # -- Volume mount path
3990######################################################################################################################
3992# Subchart configurations
3994######################################################################################################################
3995# -- Setting for the Grafana Rollout Operator https://github.com/grafana/helm-charts/tree/main/charts/rollout-operator
3998 # -- podSecurityContext is the pod security context for the rollout operator.
3999 # When installing on OpenShift, override podSecurityContext settings with
4002 # podSecurityContext:
4012 type: RuntimeDefault
4013 # Set the container security context
4015 readOnlyRootFilesystem: true
4018 allowPrivilegeEscalation: false
4019# -- Configuration for the minio subchart
4023 # Minio requires 2 to 16 drives for erasure code (drivesPerNode * replicas)
4024 # https://docs.min.io/docs/minio-erasure-code-quickstart-guide
4025 # Since we only have 1 replica, that means 2 drives must be used.
4027 # root user; not used for GEL authentication
4029 rootPassword: supersecretpassword
4030 # The first user in the list below is used for Loki/GEL authentication.
4031 # You can add additional users if desired; they will not impact Loki/GEL.
4032 # `accessKey` = username, `secretKey` = password
4034 - accessKey: logs-user
4035 secretKey: supersecretpassword
4054 # Allow the address used by Loki to refer to Minio to be overridden
4056# Create extra manifests via values
4057# Can be a list or dictionary, both are passed through `tpl`. If dict, keys are ignored and only values are used.
4058# Objects can also be defined as multiline strings, useful for templating field names
4063# name: loki-alerting-rules
4065# loki-alerting-rules.yaml: |-
4071# sum(count_over_time({app="loki"} |~ "error")) > 0
4077# message: "loki has encountered errors"
4083# name: loki-distributed-basic-auth
4085# {{- range .Values.loki.tenants }}
4086# {{ .name }}: {{ b64enc .password | quote }}
4092 # -- The Docker registry and image for the k8s sidecar
4093 repository: cgr.dev/chainguard-private/k8s-sidecar
4094 # -- Docker image tag
4096 # -- Docker image sha. If empty, no sha will be used
4097 sha: sha256:3702f57d85004fc1d17405e9c8be734df706120ad47fb40aeec68d7429e0b159
4098 # -- Docker image pull policy
4099 pullPolicy: IfNotPresent
4100 # -- Resource requests and limits for the sidecar
4108 # -- The SecurityContext for the sidecar.
4110 readOnlyRootFilesystem: true
4114 allowPrivilegeEscalation: false
4115 # -- Set to true to skip tls verification for kube api calls.
4116 skipTlsVerify: false
4117 # -- Set to true to disable strict x509 verification for kube api calls.
4118 disableX509StrictVerification: false
4119 # -- Ensure that rule files aren't conflicting and being overwritten by prefixing their name with the namespace they are defined in.
4120 enableUniqueFilenames: false
4121 # -- Readiness probe definition. Probe is disabled on the sidecar by default.
4123 # -- Liveness probe definition. Probe is disabled on the sidecar by default.
4125 # -- Startup probe definition. Probe is disabled on the sidecar by default.
4128 # -- Whether or not to create a sidecar to ingest rule from specific ConfigMaps and/or Secrets.
4130 # -- Label that the configmaps/secrets with rules will be marked with.
4132 # -- Label value that the configmaps/secrets with rules will be set to.
4134 # -- Folder into which the rules will be placed.
4136 # -- The annotation overwriting the folder value.
4137 # The annotation value can be either an absolute or a relative path. Relative paths will be relative to FOLDER.
4138 # Useful for multi-tenancy setups.
4139 folderAnnotation: null
4140 # -- Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces.
4141 # Otherwise the namespace in which the sidecar is running will be used.
4142 # It's also possible to specify 'ALL' to search in all namespaces.
4143 searchNamespace: null
4144 # -- 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.
4146 # -- Search in configmap, secret, or both.
4148 # -- Absolute path to the shell script to execute after a configmap or secret has been reloaded.
4150 # -- WatchServerTimeout: request to the server, asking it to cleanly close the connection after that.
4151 # defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S.
4152 watchServerTimeout: 60
4154 # -- WatchClientTimeout: is a client-side timeout, configuring your local socket.
4155 # If you have a network outage dropping all packets with no RST/FIN,
4156 # this is how long your client waits before realizing & dropping the connection.
4157 # Defaults to 66sec.
4158 watchClientTimeout: 60
4159 # -- Log level of the sidecar container.
4161# -- Monitoring section determines which monitoring features to enable
4163 # Dashboards for monitoring Loki
4165 # -- If enabled, create configmap with dashboards for monitoring Loki
4167 # -- Alternative namespace to create dashboards ConfigMap in
4169 # -- Additional annotations for the dashboards ConfigMap
4171 # -- Labels for the dashboards ConfigMap
4173 grafana_dashboard: "1"
4174 # -- Recording rules for monitoring Loki, required for some dashboards
4176 # -- If enabled, create PrometheusRule resource with Loki recording rules
4178 # -- Include alerting rules
4180 # -- Specify which individual alerts should be disabled
4181 # -- Instead of turning off each alert one by one, set the .monitoring.rules.alerting value to false instead.
4182 # -- If you disable all the alerts and keep .monitoring.rules.alerting set to true, the chart will fail to render.
4184 # -- DEPRECATED: use monitoring.rules.configs.*.enabled instead
4186 # LokiRequestErrors: true
4187 # LokiRequestPanics: true
4206 LokiTooManyCompactorsRunning:
4216 # -- Alternative namespace to create PrometheusRule resources in
4218 # -- Additional annotations for the rules PrometheusRule resource
4220 # -- Additional labels for the rules PrometheusRule resource
4222 # -- Additional annotations for PrometheusRule alerts
4223 additionalRuleAnnotations: {}
4225 # additionalRuleAnnotations:
4226 # runbook_url: "https://runbooks.example.com/oncall/loki"
4227 # summary: "What this alert means and how to respond"
4228 # -- Additional labels for PrometheusRule alerts
4229 additionalRuleLabels: {}
4230 # -- Additional groups to add to the rules file
4231 additionalGroups: []
4232 # - name: additional-loki-rules
4234 # - record: job:loki_request_duration_seconds_bucket:sum_rate
4235 # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job)
4236 # - record: job_route:loki_request_duration_seconds_bucket:sum_rate
4237 # expr: sum(rate(loki_request_duration_seconds_bucket[1m])) by (le, job, route)
4238 # - record: node_namespace_pod_container:container_cpu_usage_seconds_total:sum_rate
4239 # expr: sum(rate(container_cpu_usage_seconds_total[1m])) by (node, namespace, pod, container)
4240 # -- ServiceMonitor configuration
4242 # -- If enabled, ServiceMonitor resources for Prometheus Operator are created
4244 # -- Namespace selector for ServiceMonitor resources
4245 namespaceSelector: {}
4246 # -- ServiceMonitor annotations
4248 # -- Additional ServiceMonitor labels
4250 # -- ServiceMonitor scrape interval
4251 # Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at
4252 # least 1/4 rate interval.
4254 # -- ServiceMonitor scrape timeout in Go duration format (e.g. 15s)
4256 # -- ServiceMonitor relabel configs to apply to samples before scraping
4257 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
4259 # -- ServiceMonitor metric relabel configs to apply to samples before ingestion
4260 # https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint
4261 metricRelabelings: []
4262 # -- ServiceMonitor will use http by default, but you can pick https as well
4264 # -- ServiceMonitor will use these tlsConfig settings to make the health check requests
4266 # -- DEPRECATED If defined, will create a MetricsInstance for the Grafana Agent Operator.
4268 # -- If enabled, MetricsInstance resources for Grafana Agent Operator are created
4270 # -- MetricsInstance annotations
4272 # -- Additional MetricsInstance labels
4274 # -- If defined a MetricsInstance will be created to remote write metrics.
4276 # -- DEPRECATED Self monitoring determines whether Loki should scrape its own logs.
4277 # This feature relies on Grafana Agent Operator, which is deprecated.
4278 # It will create custom resources for GrafanaAgent, LogsInstance, and PodLogs to configure
4279 # scrape configs to scrape its own logs with the labels expected by the included dashboards.
4282 # -- Tenant to use for self monitoring
4284 # -- Name of the tenant
4285 name: "self-monitoring"
4286 # -- Password of the gateway for Basic auth
4288 # -- Namespace to create additional tenant token secret in. Useful if your Grafana instance
4289 # is in a separate namespace. Token will still be created in the canary namespace.
4290 # @default -- The same namespace as the loki chart is installed in.
4291 secretNamespace: '{{ include "loki.namespace" . }}'
4292 # -- DEPRECATED Grafana Agent configuration
4294 # -- DEPRECATED Controls whether to install the Grafana Agent Operator and its CRDs.
4295 # Note that helm will not install CRDs if this flag is enabled during an upgrade.
4296 # In that case install the CRDs manually from https://github.com/grafana/agent/tree/main/production/operator/crds
4297 installOperator: false
4298 # -- Grafana Agent annotations
4300 # -- Additional Grafana Agent labels
4302 # -- Enable the config read api on port 8080 of the agent
4303 enableConfigReadAPI: false
4304 # -- The name of the PriorityClass for GrafanaAgent pods
4305 priorityClassName: null
4306 # -- Resource requests and limits for the grafanaAgent pods
4313 # -- Tolerations for GrafanaAgent pods
4315 # PodLogs configuration
4317 # -- PodLogs version
4318 apiVersion: monitoring.grafana.com/v1alpha1
4319 # -- PodLogs annotations
4321 # -- Additional PodLogs labels
4323 # -- PodLogs relabel configs to apply to samples before scraping
4324 # https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig
4326 # -- Additional pipeline stages to process logs after scraping
4327 # https://grafana.com/docs/agent/latest/operator/api/#pipelinestagespec-a-namemonitoringgrafanacomv1alpha1pipelinestagespeca
4328 additionalPipelineStages: []
4329 # LogsInstance configuration
4331 # -- LogsInstance annotations
4333 # -- Additional LogsInstance labels
4335 # -- Additional clients for remote write
4337# -- DEPRECATED Configuration for the table-manager. The table-manager is only necessary when using a deprecated
4338# index type such as Cassandra, Bigtable, or DynamoDB, it has not been necessary since loki introduced self-
4339# contained index types like 'boltdb-shipper' and 'tsdb'. This will be removed in a future helm chart.
4341 # -- Specifies whether the table-manager should be enabled
4344 # -- The Docker registry for the table-manager image. Overrides `loki.image.registry`
4346 # -- Docker image repository for the table-manager image. Overrides `loki.image.repository`
4348 # -- Docker image tag for the table-manager image. Overrides `loki.image.tag`
4350 # -- Command to execute instead of defined in Docker image
4352 # -- The name of the PriorityClass for table-manager pods
4353 priorityClassName: null
4354 # -- Labels for table-manager pods
4356 # -- Annotations for table-manager deployment
4358 # -- Annotations for table-manager pods
4361 # -- Annotations for table-manager Service
4363 # -- Additional labels for table-manager Service
4365 # -- Additional CLI args for the table-manager
4367 # -- Environment variables to add to the table-manager pods
4369 # -- Environment variables from secrets or configmaps to add to the table-manager pods
4371 # -- Volume mounts to add to the table-manager pods
4372 extraVolumeMounts: []
4373 # -- Volumes to add to the table-manager pods
4375 # -- Resource requests and limits for the table-manager
4377 # -- Containers to add to the table-manager pods
4379 # -- Grace period to allow the table-manager to shutdown before it is killed
4380 terminationGracePeriodSeconds: 30
4381 # -- Use the host's user namespace in table-manager pods
4383 # -- Affinity for table-manager pods.
4384 # @default -- Hard node and anti-affinity
4385 # The value will be passed through tpl.
4388 requiredDuringSchedulingIgnoredDuringExecution:
4391 app.kubernetes.io/component: table-manager
4392 app.kubernetes.io/name: '{{ include "loki.name" . }}'
4393 app.kubernetes.io/instance: '{{ .Release.Name }}'
4394 topologyKey: kubernetes.io/hostname
4395 # -- DNS config table-manager pods
4397 # -- Node selector for table-manager pods
4399 # -- Tolerations for table-manager pods
4401 # -- Enable deletes by retention
4402 retention_deletes_enabled: false
4403 # -- Set retention period