Documentation for automated readers
A curated documentation index is available at: https://grafana.com/llms.txt
A complete documentation index is available at: https://grafana.com/llms-full.txt
These indexes can help with page discovery before fetching individual documents.
This page is also available in Markdown, which may be easier for automated readers and AI tools to parse than HTML. The Markdown version is available at https://grafana.com/docs/loki/latest/setup/install/helm/reference.md, or by sending Accept: text/markdown to https://grafana.com/docs/loki/latest/setup/install/helm/reference/. For broader documentation discovery, the curated index is available at https://grafana.com/llms.txt and the complete index is available at https://grafana.com/llms-full.txt.
Helm chart values
This is the generated reference for the Loki Helm chart values, sourced from the values.yaml of the chart in the grafana-community/helm-charts repository.
Because the Loki Helm chart exposes a large number of configuration options, this reference is grouped into sections by top-level configuration key. Each section lists the configurable keys under that prefix along with their type, description, and default value.
To navigate it:
- Use the Sections list below to jump to a configuration group.
- Use your browser search (
Ctrl+F) to locate a specific key. - For installation examples and setup instructions, refer to the Helm installation guides rather than this reference.
Note
This reference is for the Loki Helm chart version 3.0 or greater. If you are using the
grafana/loki-stackHelm chart from the grafana repo, please refer to thevalues.yamlof the respective GitHub repository grafana/helm-charts.
Sections
- Top-level values
- backend — Configuration for the backend pod(s)
- bloomBuilder — Configuration for the bloom-builder
- bloomGateway — Configuration for the bloom-gateway
- bloomPlanner — Configuration for the bloom-planner
- chunksCache — Configuration for the Memcached-based chunks-cache, which caches the log chunks Loki fetches from object storage.
- compactor — Configuration for the compactor
- defaults — Default settings applied to the Loki components only.
- distributor — Configuration for the distributor
- gateway — Configuration for the gateway, an NGINX reverse proxy that routes incoming read and write requests to the appropriate Lo…
- global — Global values that apply to all components and subcharts, such as image registry, DNS configuration, and common environm…
- indexGateway — Configuration for the index-gateway
- ingester — Configuration for the ingester
- ingress — Ingress configuration Use either this ingress or the gateway, but not both at once.
- loki — Configuration for running Loki
- lokiCanary — Configuration for the Loki Canary, which continuously pushes logs to and queries them from this Loki installation to ver…
- memberlist — Configuration for the memberlist service, the gossip-based ring Loki components use for service discovery and hash-ring…
- memcached — Common configuration shared by the Memcached deployments backing Loki’s caches.
- memcachedExporter — Configuration for the Prometheus Memcached exporter sidecar that exposes cache metrics.
- migrate — Options that may be necessary when performing a migration from another helm chart
- monitoring — Monitoring section determines which monitoring features to enable
- networkPolicy — Configuration for the Kubernetes NetworkPolicies that control inbound and outbound traffic for Loki components.
- overridesExporter — Configuration for the overrides-exporter
- patternIngester — Configuration for the pattern ingester
- querier — Configuration for the querier
- queryFrontend — Configuration for the query-frontend
- queryScheduler — Configuration for the query-scheduler
- rbac — Configuration for the Kubernetes RBAC resources and Pod Security Policy settings created for Loki.
- read — Configuration for the read pod(s)
- resultsCache — Configuration for the Memcached-based results-cache, which caches query results to speed up repeated queries.
- rollout_operator — Setting for the Grafana Rollout Operator https://github.com/grafana/helm-charts/tree/main/charts/rollout-operator
- route — Gateway API routes for direct routing to Loki services, bypassing the nginx gateway.
- ruler — Configuration for the ruler
- serviceAccount — Configuration for the Kubernetes ServiceAccount used by Loki components.
- sidecar — Configuration for the k8s-sidecar container that watches for ConfigMaps and Secrets (such as rules and dashboards) and l…
- singleBinary — Configuration for the single binary node(s) used in Monolithic deployment mode, where all Loki components run in a singl…
- tableManager — DEPRECATED Configuration for the table-manager.
- test — Section for configuring optional Helm test
- write — Configuration for the write pod(s) in SimpleScalable mode, which run the distributor and ingester components.
Top-level values
Values that are not part of a specific component group.
| Key | Type | Description | Default |
|---|---|---|---|
commonLabels | object | Labels to be added to resources | {} |
deploymentMode | string | Deployment mode lets you specify how to deploy Loki. There are 3 options: - Monolithic (deprecated: SingleBinary): Loki is deployed as a single binary, useful for small installs typically without HA, up to a few tens of GB/day. - SimpleScalable (deprecated, removed in Loki 4): Loki is deployed as 3 targets: read, write, and backend. Useful for medium installs easier to manage than distributed, up to a about 1TB/day. - Distributed: Loki is deployed as individual microservices. The most complicated but most capable, useful for large installs, typically over 1TB/day. There are also 2 additional modes used for migrating between deployment modes: - Monolithic<->SimpleScalable (deprecated: SingleBinary<->SimpleScalable): Migrate from SingleBinary to SimpleScalable (or vice versa) - SimpleScalable<->Distributed: Migrate from SimpleScalable to Distributed (or vice versa) Note: SimpleScalable and Distributed REQUIRE the use of object storage. Ref: https://grafana.com/docs/loki/latest/get-started/deployment-modes/ | "Monolithic" |
extraObjects | string | nil | |
fullnameOverride | string | Overrides the chart’s computed fullname | "" |
ignoreMinioDeprecation | bool | Ignore MinIO deprecation validation when minio.enabled=true. This is a temporary compatibility escape hatch. | false |
imagePullSecrets | list | Image pull secrets for Docker images | [] |
kubeVersionOverride | string | Overrides the version used to determine compatibility of resources with the target Kubernetes cluster. This is useful when using helm template, because then helm will use the client version of kubectl as the Kubernetes version, which may or may not match your cluster’s server version. Example: ‘v1.24.4’. Set to null to use the version that helm devises. | "" |
minio | object | Configuration for the minio subchart (deprecated) | {"address":null,"buckets":[{"name":"chunks","policy":"none","purge":false},{"name":"ruler","policy":"none","purge":false}],"drivesPerNode":2,"enabled":false,"persistence":{"annotations":{},"size":"5Gi"},"replicas":1,"resources":{"requests":{"cpu":"100m","memory":"128Mi"}},"rootPassword":"supersecretpassword","rootUser":"root-user","users":[{"accessKey":"logs-user","policy":"readwrite","secretKey":"supersecretpassword"}]} |
nameOverride | string | Overrides the chart’s name | "" |
namespaceOverride | string | Overrides the chart’s namespace | "" |
podDisruptionBudget | object | Pod Disruption Budget for single binary deployment. Deprecated in favor of singleBinary.podDisruptionBudget | {"enabled":true} |
backend
Configuration for the backend pod(s)
| Key | Type | Description | Default |
|---|---|---|---|
backend.affinity | object | Affinity for backend pods. The value will be passed through tpl. | Hard node anti-affinity |
backend.annotations | object | Annotations for backend StatefulSet | {} |
backend.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
backend.autoscaling.behavior | object | Behavior policies while scaling. | {} |
backend.autoscaling.enabled | bool | Enable autoscaling for the backend. | false |
backend.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the backend. | 6 |
backend.autoscaling.minReplicas | int | Minimum autoscaling replicas for the backend. | 3 |
backend.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilization percentage for the backend. | 60 |
backend.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilization percentage for the backend. | nil |
backend.dnsConfig | object | DNS config for backend pods | {} |
backend.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to SimpleScalable. | true |
backend.extraArgs | list | Additional CLI args for the backend | [] |
backend.extraContainers | list | Containers to add to the backend pods | [] |
backend.extraEnv | list | Environment variables to add to the backend pods | [] |
backend.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the backend pods | [] |
backend.extraVolumeMounts | list | Volume mounts to add to the backend pods | [] |
backend.extraVolumes | list | Volumes to add to the backend pods | [] |
backend.fullnameOverride | string | Override for the backend fullname. By default, this is generated using the fullname template with “-backend” | "{{ include \"loki.name\" . }}-backend" |
backend.hostUsers | string | Use the host’s user namespace in the backend pods. | nil |
backend.image.registry | string | The Docker registry for the backend image. Overrides loki.image.registry | nil |
backend.image.repository | string | Docker image repository for the backend image. Overrides loki.image.repository | nil |
backend.image.tag | string | Docker image tag for the backend image. Overrides loki.image.tag | nil |
backend.initContainers | list | Init containers to add to the backend pods | [] |
backend.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
backend.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
backend.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the backend. Mutually exclusive with autoscaling.enabled | false |
backend.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
backend.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 6 |
backend.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 3 |
backend.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
backend.kedaAutoscaling.triggers | list | KEDA triggers for the backend. Ref: https://keda.sh/docs/latest/scalers/ | [] |
backend.kind | string | Kind of backend workload. StatefulSet and Deployment are supported. | "StatefulSet" |
backend.labels | object | Additional labels for backend StatefulSet | {} |
backend.maxUnavailable | int | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | 1 |
backend.nodeSelector | object | Node selector for backend pods | {} |
backend.persistence.accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
backend.persistence.annotations | object | Annotations for volume claim | {} |
backend.persistence.dataVolumeParameters | object | Parameters used for the data volume when volumeClaimEnabled if false | {"emptyDir":{}} |
backend.persistence.enableStatefulSetAutoDeletePVC | bool | Enable StatefulSetAutoDeletePVC feature | true |
backend.persistence.enabled | bool | Enable volume claims in pod spec | false |
backend.persistence.labels | object | Labels for volume claim | {} |
backend.persistence.selector | string | Selector for persistent disk | nil |
backend.persistence.size | string | Size of persistent disk | "10Gi" |
backend.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
backend.persistence.volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
backend.persistence.volumeClaimsEnabled | bool | Enable volume claims in pod spec. Deprecated in favor of persistence.enabled. | true |
backend.persistence.whenDeleted | string | What to do with the volumes when the StatefulSet is deleted. | "Delete" |
backend.persistence.whenScaled | string | What to do with the volume when the StatefulSet is scaled down. | "Delete" |
backend.podAnnotations | object | Annotations for backend pods | {} |
backend.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
backend.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
backend.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
backend.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
backend.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
backend.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
backend.podLabels | object | Additional labels for each backend pod | {} |
backend.podManagementPolicy | string | The default is to deploy all pods in parallel. | "Parallel" |
backend.priorityClassName | string | The name of the PriorityClass for backend pods | nil |
backend.replicas | int | Number of replicas for the backend. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 3 |
backend.resizePolicy | list | Container resize policy for the backend Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
backend.resources | object | Resource requests and limits for the backend | {} |
backend.selectorLabels | object | Additional selector labels for each backend pod | {} |
backend.service.annotations | object | Annotations for backend Service | {} |
backend.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
backend.service.ipFamilies | list | ipFamilies for backend Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
backend.service.ipFamilyPolicy | string | ipFamilyPolicy for backend Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
backend.service.labels | object | Additional labels for backend Service | {} |
backend.service.sessionAffinity | string | Session affinity for backend Service | "" |
backend.service.sessionAffinityConfig | object | Session affinity config for backend Service | {} |
backend.service.trafficDistribution | string | trafficDistribution for backend Service | "" |
backend.service.type | string | Service type for backend Service | "ClusterIP" |
backend.serviceAccount.annotations | object | Annotations for the service account | {} |
backend.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
backend.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
backend.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
backend.serviceAccount.labels | object | Labels for the service account | {} |
backend.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
backend.sidecar | bool | Whether to enable the rules sidecar | true |
backend.statefulSetRecreateJob | object | EXPERIMENTAL: Enable creating a Job to recreate the backend StatefulSet when the compactor configuration is changed. # Only applicable if compactor.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. | {"enabled":false} |
backend.strategy | object | UpdateStrategy or Strategy for the backend. | {"rollingUpdate":{"partition":0}} |
backend.terminationGracePeriodSeconds | int | Grace period to allow the backend to shutdown before it is killed. Especially for the ingester, this must be increased. It must be long enough so backends can be gracefully shutdown flushing/transferring all data and to successfully leave the member ring on shutdown. | 300 |
backend.topologySpreadConstraints | list | Topology Spread Constraints for backend pods The value will be passed through tpl. | [] |
bloomBuilder
Configuration for the bloom-builder
| Key | Type | Description | Default |
|---|---|---|---|
bloomBuilder.affinity | object | Affinity for bloom-builder pods. The value will be passed through tpl. | Hard node anti-affinity |
bloomBuilder.annotations | object | Annotations for bloom-builder | {} |
bloomBuilder.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
bloomBuilder.autoscaling.behavior.enabled | bool | Enable autoscaling behaviours | false |
bloomBuilder.autoscaling.behavior.scaleDown | object | define scale down policies, must conform to HPAScalingRules | {} |
bloomBuilder.autoscaling.behavior.scaleUp | object | define scale up policies, must conform to HPAScalingRules | {} |
bloomBuilder.autoscaling.customMetrics | list | Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics) | [] |
bloomBuilder.autoscaling.enabled | bool | Enable autoscaling for the bloom-builder | false |
bloomBuilder.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the bloom-builder | 3 |
bloomBuilder.autoscaling.minReplicas | int | Minimum autoscaling replicas for the bloom-builder | 1 |
bloomBuilder.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilisation percentage for the bloom-builder | 60 |
bloomBuilder.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilisation percentage for the bloom-builder | nil |
bloomBuilder.command | string | Command to execute instead of defined in Docker image | nil |
bloomBuilder.dnsConfig | object | DNSConfig for bloom-builder pods | {} |
bloomBuilder.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | false |
bloomBuilder.extraArgs | list | Additional CLI args for the bloom-builder | [] |
bloomBuilder.extraContainers | list | Containers to add to the bloom-builder pods | [] |
bloomBuilder.extraEnv | list | Environment variables to add to the bloom-builder pods | [] |
bloomBuilder.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the bloom-builder pods | [] |
bloomBuilder.extraVolumeMounts | list | Volume mounts to add to the bloom-builder pods | [] |
bloomBuilder.extraVolumes | list | Volumes to add to the bloom-builder pods | [] |
bloomBuilder.hostAliases | list | hostAliases to add | [] |
bloomBuilder.hostUsers | string | Use the host’s user namespace in the boom-builder | nil |
bloomBuilder.image.registry | string | The Docker registry for the bloom-builder image. Overrides loki.image.registry | nil |
bloomBuilder.image.repository | string | Docker image repository for the bloom-builder image. Overrides loki.image.repository | nil |
bloomBuilder.image.tag | string | Docker image tag for the bloom-builder image. Overrides loki.image.tag | nil |
bloomBuilder.initContainers | list | Init containers to add to the bloom-builder pods | [] |
bloomBuilder.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
bloomBuilder.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
bloomBuilder.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the bloom-builder. Mutually exclusive with autoscaling.enabled | false |
bloomBuilder.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
bloomBuilder.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 3 |
bloomBuilder.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 1 |
bloomBuilder.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
bloomBuilder.kedaAutoscaling.triggers | list | KEDA triggers for the bloom-builder. Ref: https://keda.sh/docs/latest/scalers/ | [] |
bloomBuilder.kind | string | Kind of compactor deployment. StatefulSet and Deployment are supported. | "Deployment" |
bloomBuilder.labels | object | Labels for bloom-builder | {} |
bloomBuilder.maxUnavailable | string | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | nil |
bloomBuilder.nodeSelector | object | Node selector for bloom-builder pods | {} |
bloomBuilder.persistence.accessModes | list | Set access modes on the generated volumeClaimTemplate. | ["ReadWriteOnce"] |
bloomBuilder.persistence.annotations | object | Annotations for the generated volumeClaimTemplate. | {} |
bloomBuilder.persistence.enabled | bool | Enable generic ephemeral volume-backed storage for the bloom-builder data volume. | false |
bloomBuilder.persistence.labels | object | Labels for the generated volumeClaimTemplate. | {} |
bloomBuilder.persistence.selector | string | Selector for the generated volumeClaimTemplate. | nil |
bloomBuilder.persistence.size | string | Size of the generated volumeClaimTemplate. | "10Gi" |
bloomBuilder.persistence.storageClass | string | Storage class to be used for the generated volumeClaimTemplate. If defined, storageClassName: | nil |
bloomBuilder.persistence.type | string | Storage type for the bloom-builder. pvc and ephemeral are supported. | "ephemeral" |
bloomBuilder.persistence.volumeAttributesClassName | string | Volume attributes class name to be used for the generated volumeClaimTemplate. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
bloomBuilder.podAnnotations | object | Annotations for bloom-builder pods | {} |
bloomBuilder.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
bloomBuilder.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
bloomBuilder.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
bloomBuilder.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
bloomBuilder.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
bloomBuilder.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
bloomBuilder.podLabels | object | Labels for bloom-builder pods | {} |
bloomBuilder.priorityClassName | string | The name of the PriorityClass for bloom-builder pods | nil |
bloomBuilder.replicas | int | Number of replicas for the bloom-builder. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
bloomBuilder.resizePolicy | list | Container resize policy for the bloom-builder Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
bloomBuilder.resources | object | Resource requests and limits for the bloom-builder | {} |
bloomBuilder.service.annotations | object | Annotations for bloom-builder Service | {} |
bloomBuilder.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
bloomBuilder.service.ipFamilies | list | ipFamilies for bloom-builder Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
bloomBuilder.service.ipFamilyPolicy | string | ipFamilyPolicy for bloom-builder Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
bloomBuilder.service.labels | object | Additional labels for bloom-builder Service | {} |
bloomBuilder.service.sessionAffinity | string | Session affinity for bloom-builder Service | "" |
bloomBuilder.service.sessionAffinityConfig | object | Session affinity config for bloom-builder Service | {} |
bloomBuilder.service.trafficDistribution | string | trafficDistribution for bloom-builder Service | "" |
bloomBuilder.service.type | string | Service Type for bloom-builder Service | "ClusterIP" |
bloomBuilder.serviceAccount.annotations | object | Annotations for the service account | {} |
bloomBuilder.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
bloomBuilder.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
bloomBuilder.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
bloomBuilder.serviceAccount.labels | object | Labels for the service account | {} |
bloomBuilder.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
bloomBuilder.serviceAnnotations | object | Annotations for bloom-builder service @deprecated – This option is deprecated in favor of bloomBuilder.service.annotations | {} |
bloomBuilder.serviceLabels | object | Labels for bloom-builder service @deprecated – This option is deprecated in favor of bloomBuilder.service.labels | {} |
bloomBuilder.statefulSetRecreateJob | object | Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed. # Only applicable if compactor.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. | {"enabled":false} |
bloomBuilder.strategy.rollingUpdate.maxUnavailable | int | Pod Disruption Budget maxUnavailable | 1 |
bloomBuilder.terminationGracePeriodSeconds | int | Grace period to allow the bloom-builder to shutdown before it is killed | 30 |
bloomBuilder.tolerations | list | Tolerations for bloom-builder pods | [] |
bloomGateway
Configuration for the bloom-gateway
| Key | Type | Description | Default |
|---|---|---|---|
bloomGateway.affinity | object | Affinity for bloom-gateway pods. The value will be passed through tpl. | Hard node anti-affinity |
bloomGateway.appProtocol | object | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of bloomGateway.service.appProtocol | {"grpc":""} |
bloomGateway.command | string | Command to execute instead of defined in Docker image | nil |
bloomGateway.dnsConfig | object | DNSConfig for bloom-gateway pods | {} |
bloomGateway.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | false |
bloomGateway.extraArgs | list | Additional CLI args for the bloom-gateway | [] |
bloomGateway.extraContainers | list | Containers to add to the bloom-gateway pods | [] |
bloomGateway.extraEnv | list | Environment variables to add to the bloom-gateway pods | [] |
bloomGateway.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the bloom-gateway pods | [] |
bloomGateway.extraVolumeMounts | list | Volume mounts to add to the bloom-gateway pods | [] |
bloomGateway.extraVolumes | list | Volumes to add to the bloom-gateway pods | [] |
bloomGateway.hostAliases | list | hostAliases to add | [] |
bloomGateway.hostUsers | string | Use the host’s user namespace in the bloom-gateway | nil |
bloomGateway.image.registry | string | The Docker registry for the bloom-gateway image. Overrides loki.image.registry | nil |
bloomGateway.image.repository | string | Docker image repository for the bloom-gateway image. Overrides loki.image.repository | nil |
bloomGateway.image.tag | string | Docker image tag for the bloom-gateway image. Overrides loki.image.tag | nil |
bloomGateway.initContainers | list | Init containers to add to the bloom-gateway pods | [] |
bloomGateway.livenessProbe | object | liveness probe settings for bloom-gateway pods. If empty use loki.livenessProbe | {} |
bloomGateway.nodeSelector | object | Node selector for bloom-gateway pods | {} |
bloomGateway.persistence.annotations | object | Annotations for bloom-gateway PVCs | {} |
bloomGateway.persistence.claims | list | List of the bloom-gateway PVCs | |
bloomGateway.persistence.claims[0].accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
bloomGateway.persistence.claims[0].size | string | Size of persistent disk | "10Gi" |
bloomGateway.persistence.claims[0].volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
bloomGateway.persistence.enableStatefulSetAutoDeletePVC | bool | Enable StatefulSetAutoDeletePVC feature | false |
bloomGateway.persistence.enabled | bool | Enable creating PVCs for the bloom-gateway | false |
bloomGateway.persistence.labels | object | Labels for bloom gateway PVCs | {} |
bloomGateway.podAnnotations | object | Annotations for bloom-gateway pods | {} |
bloomGateway.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
bloomGateway.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
bloomGateway.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
bloomGateway.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
bloomGateway.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
bloomGateway.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
bloomGateway.podLabels | object | Labels for bloom-gateway pods | {} |
bloomGateway.priorityClassName | string | The name of the PriorityClass for bloom-gateway pods | nil |
bloomGateway.readinessProbe | object | readiness probe settings for bloom-gateway pods. If empty, use loki.readinessProbe | {} |
bloomGateway.replicas | int | Number of replicas for the bloom-gateway | 0 |
bloomGateway.resizePolicy | list | Container resize policy for the bloom-gateway Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
bloomGateway.resources | object | Resource requests and limits for the bloom-gateway | {} |
bloomGateway.service.annotations | object | Annotations for bloom-gateway Service | {} |
bloomGateway.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
bloomGateway.service.ipFamilies | list | ipFamilies for bloom-gateway Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
bloomGateway.service.ipFamilyPolicy | string | ipFamilyPolicy for bloom-gateway Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
bloomGateway.service.labels | object | Additional labels for bloom-gateway Service | {} |
bloomGateway.service.sessionAffinity | string | Session affinity for bloom-gateway Service | "" |
bloomGateway.service.sessionAffinityConfig | object | Session affinity config for bloom-gateway Service | {} |
bloomGateway.service.trafficDistribution | string | trafficDistribution for bloom-gateway Service | "" |
bloomGateway.service.type | string | Service Type for bloom-gateway Service | "ClusterIP" |
bloomGateway.serviceAccount.annotations | object | Annotations for the service account | {} |
bloomGateway.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
bloomGateway.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
bloomGateway.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
bloomGateway.serviceAccount.labels | object | Labels for the service account | {} |
bloomGateway.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
bloomGateway.serviceAnnotations | object | Annotations for bloom-gateway service @deprecated – This option is deprecated in favor of bloomGateway.service.annotations | {} |
bloomGateway.serviceLabels | object | Labels for bloom-gateway service @deprecated – This option is deprecated in favor of bloomGateway.service.labels | {} |
bloomGateway.startupProbe | object | startup probe settings for bloom-gateway pods. If empty, use loki.startupProbe | {} |
bloomGateway.terminationGracePeriodSeconds | int | Grace period to allow the bloom-gateway to shutdown before it is killed | 30 |
bloomGateway.tolerations | list | Tolerations for bloom-gateway pods | [] |
bloomPlanner
Configuration for the bloom-planner
| Key | Type | Description | Default |
|---|---|---|---|
bloomPlanner.affinity | object | Affinity for bloom-planner pods. The value will be passed through tpl. | Hard node anti-affinity |
bloomPlanner.appProtocol | object | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of bloomPlanner.service.appProtocol | {"grpc":""} |
bloomPlanner.command | string | Command to execute instead of defined in Docker image | nil |
bloomPlanner.dnsConfig | object | DNSConfig for bloom-planner pods | {} |
bloomPlanner.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | false |
bloomPlanner.extraArgs | list | Additional CLI args for the bloom-planner | [] |
bloomPlanner.extraContainers | list | Containers to add to the bloom-planner pods | [] |
bloomPlanner.extraEnv | list | Environment variables to add to the bloom-planner pods | [] |
bloomPlanner.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the bloom-planner pods | [] |
bloomPlanner.extraVolumeMounts | list | Volume mounts to add to the bloom-planner pods | [] |
bloomPlanner.extraVolumes | list | Volumes to add to the bloom-planner pods | [] |
bloomPlanner.hostAliases | list | hostAliases to add | [] |
bloomPlanner.hostUsers | string | Use the host’s user namespace in the bloom-planner | nil |
bloomPlanner.image.registry | string | The Docker registry for the bloom-planner image. Overrides loki.image.registry | nil |
bloomPlanner.image.repository | string | Docker image repository for the bloom-planner image. Overrides loki.image.repository | nil |
bloomPlanner.image.tag | string | Docker image tag for the bloom-planner image. Overrides loki.image.tag | nil |
bloomPlanner.initContainers | list | Init containers to add to the bloom-planner pods | [] |
bloomPlanner.livenessProbe | object | liveness probe settings for bloom-planner pods. If empty use loki.livenessProbe | {} |
bloomPlanner.nodeSelector | object | Node selector for bloom-planner pods | {} |
bloomPlanner.persistence.claims | list | List of the bloom-planner PVCs | |
bloomPlanner.persistence.claims[0].accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
bloomPlanner.persistence.claims[0].annotations | object | Annotations for bloom-planner PVCs | {} |
bloomPlanner.persistence.claims[0].labels | object | Labels for bloom planner PVCs | {} |
bloomPlanner.persistence.claims[0].size | string | Size of persistent disk | "10Gi" |
bloomPlanner.persistence.claims[0].volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
bloomPlanner.persistence.enableStatefulSetAutoDeletePVC | bool | Enable StatefulSetAutoDeletePVC feature | false |
bloomPlanner.persistence.enabled | bool | Enable creating PVCs for the bloom-planner | false |
bloomPlanner.podAnnotations | object | Annotations for bloom-planner pods | {} |
bloomPlanner.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
bloomPlanner.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
bloomPlanner.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
bloomPlanner.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
bloomPlanner.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
bloomPlanner.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
bloomPlanner.podLabels | object | Labels for bloom-planner pods | {} |
bloomPlanner.priorityClassName | string | The name of the PriorityClass for bloom-planner pods | nil |
bloomPlanner.readinessProbe | object | readiness probe settings for bloom-planner pods. If empty, use loki.readinessProbe | {} |
bloomPlanner.replicas | int | Number of replicas for the bloom-planner | 0 |
bloomPlanner.resizePolicy | list | Container resize policy for the bloom-planner Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
bloomPlanner.resources | object | Resource requests and limits for the bloom-planner | {} |
bloomPlanner.service.annotations | object | Annotations for bloom-planner Service | {} |
bloomPlanner.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
bloomPlanner.service.ipFamilies | list | ipFamilies for bloom-planner Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
bloomPlanner.service.ipFamilyPolicy | string | ipFamilyPolicy for bloom-planner Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
bloomPlanner.service.labels | object | Additional labels for bloom-planner Service | {} |
bloomPlanner.service.sessionAffinity | string | Session affinity for bloom-planner Service | "" |
bloomPlanner.service.sessionAffinityConfig | object | Session affinity config for bloom-planner Service | {} |
bloomPlanner.service.trafficDistribution | string | trafficDistribution for bloom-planner Service | "" |
bloomPlanner.service.type | string | Service Type for bloom-planner Service | "ClusterIP" |
bloomPlanner.serviceAccount.annotations | object | Annotations for the service account | {} |
bloomPlanner.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
bloomPlanner.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
bloomPlanner.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
bloomPlanner.serviceAccount.labels | object | Labels for the service account | {} |
bloomPlanner.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
bloomPlanner.serviceAnnotations | object | Annotations for bloom-planner service @deprecated – This option is deprecated in favor of bloomPlanner.service.annotations | {} |
bloomPlanner.serviceLabels | object | Labels for bloom-planner service @deprecated – This option is deprecated in favor of bloomPlanner.service.labels | {} |
bloomPlanner.startupProbe | object | startup probe settings for bloom-planner pods. If empty use loki.startupProbe | {} |
bloomPlanner.terminationGracePeriodSeconds | int | Grace period to allow the bloom-planner to shutdown before it is killed | 30 |
bloomPlanner.tolerations | list | Tolerations for bloom-planner pods | [] |
chunksCache
Configuration for the Memcached-based chunks-cache, which caches the log chunks Loki fetches from object storage.
| Key | Type | Description | Default |
|---|---|---|---|
chunksCache.addresses | string | Comma separated addresses list in DNS Service Discovery format | "dnssrvnoa+_memcached-client._tcp.{{ include \"loki.resourceName\" (dict \"ctx\" $ \"component\" \"chunks-cache\" \"suffix\" $.Values.chunksCache.suffix ) }}.{{ include \"loki.namespace\" $ }}.svc.{{ .Values.global.clusterDomain }}" |
chunksCache.affinity | object | Affinity for chunks-cache pods | {} |
chunksCache.allocatedCPU | string | Amount of cpu allocated to chunks-cache for object storage (in integer or millicores). | "500m" |
chunksCache.allocatedMemory | int | Amount of memory allocated to chunks-cache for object storage (in MB). | 8192 |
chunksCache.annotations | object | Annotations for the chunks-cache pods | {} |
chunksCache.batchSize | int | Batchsize for sending and receiving chunks from chunks cache | 4 |
chunksCache.connectionLimit | int | Maximum number of connections allowed | 16384 |
chunksCache.defaultValidity | string | Specify how long cached chunks should be stored in the chunks-cache before being expired | "0s" |
chunksCache.dnsConfig | object | DNSConfig for chunks-cache | {} |
chunksCache.enabled | bool | Specifies whether memcached based chunks-cache should be enabled | true |
chunksCache.extraArgs | object | Additional CLI args for chunks-cache | {} |
chunksCache.extraContainers | list | Additional containers to be added to the chunks-cache pod. | [] |
chunksCache.extraExtendedOptions | string | Add extended options for chunks-cache memcached container. The format is the same as for the memcached -o/–extend flag. Example: extraExtendedOptions: ’tls,no_hashexpand’ | "" |
chunksCache.extraVolumeMounts | list | Additional volume mounts to be added to the chunks-cache pod (applies to both memcached and exporter containers). Example: extraVolumeMounts: - name: extra-volume mountPath: /etc/extra-volume readOnly: true | [] |
chunksCache.extraVolumes | list | Additional volumes to be added to the chunks-cache pod (applies to both memcached and exporter containers). Example: extraVolumes: - name: extra-volume secret: secretName: extra-volume-secret | [] |
chunksCache.hostUsers | string | Use the host’s user namespace in chunks-cache pods | nil |
chunksCache.initContainers | list | Extra init containers for chunks-cache pods | [] |
chunksCache.l2.addresses | string | Comma separated addresses list in DNS Service Discovery format | "dnssrvnoa+_memcached-client._tcp.{{ include \"loki.resourceName\" (dict \"ctx\" $ \"component\" \"chunks-cache\" \"suffix\" $.Values.chunksCache.l2.suffix ) }}.{{ include \"loki.namespace\" $ }}.svc.{{ .Values.global.clusterDomain }}" |
chunksCache.l2.affinity | object | Affinity for chunks-cache-l2 pods | {} |
chunksCache.l2.allocatedCPU | string | Amount of cpu allocated to chunks-cache-l2 for object storage (in integer or millicores). | "500m" |
chunksCache.l2.allocatedMemory | int | Amount of memory allocated to chunks-cache-l2 for object storage (in MB). | 8192 |
chunksCache.l2.annotations | object | Annotations for the chunks-cache-l2 pods | {} |
chunksCache.l2.batchSize | int | Batchsize for sending and receiving chunks from chunks cache | 4 |
chunksCache.l2.connectionLimit | int | Maximum number of connections allowed | 16384 |
chunksCache.l2.defaultValidity | string | Specify how long cached chunks should be stored in the chunks-cache-l2 before being expired | "0s" |
chunksCache.l2.dnsConfig | object | DNSConfig for chunks-cache-l2 | {} |
chunksCache.l2.enabled | bool | Specifies whether memcached based chunks-cache-l2 should be enabled | false |
chunksCache.l2.extraArgs | object | Additional CLI args for chunks-cache-l2 | {} |
chunksCache.l2.extraContainers | list | Additional containers to be added to the chunks-cache-l2 pod. | [] |
chunksCache.l2.extraExtendedOptions | string | Add extended options for chunks-cache-l2 memcached container. The format is the same as for the memcached -o/–extend flag. Example: extraExtendedOptions: ’tls,no_hashexpand' | "" |
chunksCache.l2.extraVolumeMounts | list | Additional volume mounts to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers). Example: extraVolumeMounts: - name: extra-volume mountPath: /etc/extra-volume readOnly: true | [] |
chunksCache.l2.extraVolumes | list | Additional volumes to be added to the chunks-cache-l2 pod (applies to both memcached and exporter containers). Example: extraVolumes: - name: extra-volume secret: secretName: extra-volume-secret | [] |
chunksCache.l2.hostUsers | string | Use the host’s user namespace in chunks-cache-l2 pods | nil |
chunksCache.l2.initContainers | list | Extra init containers for chunks-cache-l2 pods | [] |
chunksCache.l2.l2ChunkCacheHandoff | string | The age of chunks should be transferred from l1 cache to l2 4 days | "345600s" |
chunksCache.l2.maxItemMemory | int | Maximum item memory for chunks-cache-l2 (in MB). | 5 |
chunksCache.l2.maxUnavailable | int | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | 1 |
chunksCache.l2.nodeSelector | object | Node selector for chunks-cach-l2 pods | {} |
chunksCache.l2.parallelism | int | Parallel threads for sending and receiving chunks from chunks cache | 5 |
chunksCache.l2.persistence.enabled | bool | Enable creating PVCs for the chunks-cache-l2 | false |
chunksCache.l2.persistence.mountPath | string | Volume mount path | "/data" |
chunksCache.l2.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
chunksCache.l2.persistence.storageSize | string | Size of persistent disk, must be in G or Gi | "10G" |
chunksCache.l2.persistence.volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
chunksCache.l2.podAnnotations | object | Annotations for chunks-cache-l2 pods | {} |
chunksCache.l2.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
chunksCache.l2.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
chunksCache.l2.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
chunksCache.l2.podLabels | object | Labels for chunks-cache-l2 pods | {} |
chunksCache.l2.podManagementPolicy | string | Management policy for chunks-cache-l2 pods | "Parallel" |
chunksCache.l2.port | int | Port of the chunks-cache-l2 service | 11211 |
chunksCache.l2.priorityClassName | string | The name of the PriorityClass for chunks-cache-l2 pods | nil |
chunksCache.l2.replicas | int | Total number of chunks-cache-l2 replicas | 1 |
chunksCache.l2.resizePolicy | list | Container resize policy for the chunks-cache-l2 Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
chunksCache.l2.resources | object | Resource requests and limits for the chunks-cache-l2 By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)). | {} |
chunksCache.l2.service | object | Service annotations and labels | {"annotations":{},"labels":{}} |
chunksCache.l2.statefulStrategy | object | Stateful chunks-cache strategy | {"type":"RollingUpdate"} |
chunksCache.l2.suffix | string | Append to the name of the resources to make names different for l1 and l2 | "l2" |
chunksCache.l2.terminationGracePeriodSeconds | int | Grace period to allow the chunks-cache-l2 to shutdown before it is killed | 60 |
chunksCache.l2.timeout | string | Memcached operation timeout | "2000ms" |
chunksCache.l2.tolerations | list | Tolerations for chunks-cache-l2 pods | [] |
chunksCache.l2.topologySpreadConstraints | list | topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints. labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services. | [] |
chunksCache.l2.writebackBuffer | int | Max number of objects to use for cache write back | 500000 |
chunksCache.l2.writebackParallelism | int | Number of parallel threads for cache write back | 1 |
chunksCache.l2.writebackSizeLimit | string | Max memory to use for cache write back | "500MB" |
chunksCache.maxItemMemory | int | Maximum item memory for chunks-cache (in MB). | 5 |
chunksCache.maxUnavailable | int | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | 1 |
chunksCache.nodeSelector | object | Node selector for chunks-cache pods | {} |
chunksCache.parallelism | int | Parallel threads for sending and receiving chunks from chunks cache | 5 |
chunksCache.persistence.enabled | bool | Enable creating PVCs for the chunks-cache | false |
chunksCache.persistence.mountPath | string | Volume mount path | "/data" |
chunksCache.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
chunksCache.persistence.storageSize | string | Size of persistent disk, must be in G or Gi | "10G" |
chunksCache.persistence.volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
chunksCache.podAnnotations | object | Annotations for chunks-cache pods | {} |
chunksCache.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
chunksCache.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
chunksCache.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
chunksCache.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
chunksCache.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
chunksCache.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
chunksCache.podLabels | object | Labels for chunks-cache pods | {} |
chunksCache.podManagementPolicy | string | Management policy for chunks-cache pods | "Parallel" |
chunksCache.port | int | Port of the chunks-cache service | 11211 |
chunksCache.priorityClassName | string | The name of the PriorityClass for chunks-cache pods | nil |
chunksCache.replicas | int | Total number of chunks-cache replicas | 1 |
chunksCache.resizePolicy | list | Container resize policy for the chunks-cache Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
chunksCache.resources | object | Resource requests and limits for the chunks-cache By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)). | {} |
chunksCache.service | object | Service annotations and labels | {"annotations":{},"labels":{}} |
chunksCache.statefulStrategy | object | Stateful chunks-cache strategy | {"type":"RollingUpdate"} |
chunksCache.suffix | string | Append to the name of the resources to make names different for l1 and l2 | "" |
chunksCache.terminationGracePeriodSeconds | int | Grace period to allow the chunks-cache to shutdown before it is killed | 60 |
chunksCache.timeout | string | Memcached operation timeout | "2000ms" |
chunksCache.tolerations | list | Tolerations for chunks-cache pods | [] |
chunksCache.topologySpreadConstraints | list | topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints. labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services. | [] |
chunksCache.writebackBuffer | int | Max number of objects to use for cache write back | 500000 |
chunksCache.writebackParallelism | int | Number of parallel threads for cache write back | 1 |
chunksCache.writebackSizeLimit | string | Max memory to use for cache write back | "500MB" |
compactor
Configuration for the compactor
| Key | Type | Description | Default |
|---|---|---|---|
compactor.affinity | object | Affinity for compactor pods. The value will be passed through tpl. | Hard node anti-affinity |
compactor.annotations | object | Annotations for compactor | {} |
compactor.appProtocol | object | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of compactor.service.appProtocol | {"grpc":""} |
compactor.command | string | Command to execute instead of defined in Docker image | nil |
compactor.dnsConfig | object | DNSConfig for compactor pods | {} |
compactor.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | true |
compactor.extraArgs | list | Additional CLI args for the compactor | [] |
compactor.extraContainers | list | Containers to add to the compactor pods | [] |
compactor.extraEnv | list | Environment variables to add to the compactor pods | [] |
compactor.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the compactor pods | [] |
compactor.extraVolumeMounts | list | Volume mounts to add to the compactor pods | [] |
compactor.extraVolumes | list | Volumes to add to the compactor pods | [] |
compactor.hostAliases | list | hostAliases to add | [] |
compactor.hostUsers | string | Use the host’s user namespace in the compactor | nil |
compactor.image.registry | string | The Docker registry for the compactor image. Overrides loki.image.registry | nil |
compactor.image.repository | string | Docker image repository for the compactor image. Overrides loki.image.repository | nil |
compactor.image.tag | string | Docker image tag for the compactor image. Overrides loki.image.tag | nil |
compactor.initContainers | list | Init containers to add to the compactor pods | [] |
compactor.kind | string | Kind of compactor deployment. StatefulSet and Deployment are supported. | "StatefulSet" |
compactor.labels | object | Labels for compactor | {} |
compactor.livenessProbe | object | liveness probe settings for compactor pods. If empty use loki.livenessProbe | {} |
compactor.nodeSelector | object | Node selector for compactor pods | {} |
compactor.persistence.accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
compactor.persistence.annotations | object | Annotations for the generated volumeClaimTemplate. | {} |
compactor.persistence.claims | list | List of the compactor PVCs. Deprecated in favor of compactor.persistence.dataVolumeParameters and compactor.persistence.size. | |
compactor.persistence.claims[0].accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
compactor.persistence.claims[0].annotations | object | Annotations for compactor PVCs | {} |
compactor.persistence.claims[0].labels | object | Labels for compactor PVCs | {} |
compactor.persistence.claims[0].volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
compactor.persistence.dataVolumeParameters | object | Parameters used for the data volume when volumeClaimEnabled if false | {"emptyDir":{}} |
compactor.persistence.enableStatefulSetAutoDeletePVC | bool | Enable StatefulSetAutoDeletePVC feature | false |
compactor.persistence.enabled | bool | Enable creating PVCs for the compactor | false |
compactor.persistence.labels | object | Labels for the generated volumeClaimTemplate. | {} |
compactor.persistence.selector | string | Selector for the generated volumeClaimTemplate. | nil |
compactor.persistence.size | string | Size of persistent disk | "10Gi" |
compactor.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
compactor.persistence.type | string | Storage type for the compactor. pvc and ephemeral are supported. | "pvc" |
compactor.persistence.volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
compactor.podAnnotations | object | Annotations for compactor pods | {} |
compactor.podLabels | object | Labels for compactor pods | {} |
compactor.podManagementPolicy | string | PodManagementPolicy for the compactor StatefulSet. Only applicable if compactor.kind is StatefulSet. # OrderedReady and Parallel are supported. | "Parallel" |
compactor.priorityClassName | string | The name of the PriorityClass for compactor pods | nil |
compactor.readinessProbe | object | readiness probe settings for compactor pods. If empty, use loki.readinessProbe | {} |
compactor.replicas | int | Number of replicas for the compactor. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
compactor.resizePolicy | list | Container resize policy for the compactor Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
compactor.resources | object | Resource requests and limits for the compactor | {} |
compactor.service.annotations | object | Annotations for compactor Service | {} |
compactor.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
compactor.service.ipFamilies | list | ipFamilies for compactor Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
compactor.service.ipFamilyPolicy | string | ipFamilyPolicy for compactor Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
compactor.service.labels | object | Additional labels for compactor Service | {} |
compactor.service.sessionAffinity | string | Session affinity for compactor Service | "" |
compactor.service.sessionAffinityConfig | object | Session affinity config for compactor Service | {} |
compactor.service.trafficDistribution | string | trafficDistribution for compactor Service | "" |
compactor.service.type | string | Service Type for compactor Service | "ClusterIP" |
compactor.serviceAccount.annotations | object | Annotations for the compactor service account | {} |
compactor.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
compactor.serviceAccount.imagePullSecrets | list | Image pull secrets for the compactor service account | [] |
compactor.serviceAccount.name | string | The name of the ServiceAccount to use for the compactor. If not set and create is true, a name is generated by appending “-compactor” to the common ServiceAccount. | nil |
compactor.serviceAnnotations | object | Annotations for compactor service @deprecated – This option is deprecated in favor of compactor.service.annotations | {} |
compactor.serviceLabels | object | Labels for compactor service @deprecated – This option is deprecated in favor of compactor.service.labels | {} |
compactor.serviceType | string | Service type for compactor service @deprecated – This option is deprecated in favor of compactor.service.type | "ClusterIP" |
compactor.startupProbe | object | liveness probe settings for ingester pods. If empty use loki.livenessProbe | {} |
compactor.statefulSetRecreateJob | object | EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed. # Only applicable if compactor.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. | {"enabled":false} |
compactor.strategy | object | UpdateStrategy or Strategy for the compactor. | {"rollingUpdate":{"partition":0}} |
compactor.terminationGracePeriodSeconds | int | Grace period to allow the compactor to shutdown before it is killed | 30 |
compactor.tolerations | list | Tolerations for compactor pods | [] |
defaults
Default settings applied to the Loki components only. Not applied to loki-canary, memcached, the gateway/nginx, or other components.
| Key | Type | Description | Default |
|---|---|---|---|
defaults.annotations | object | Annotations for loki Deployments/StatefulSets | {} |
defaults.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
defaults.command | string | Command to execute instead of defined in Docker image | nil |
defaults.containerSecurityContext | object | The SecurityContext for Loki containers for loki pods | {} |
defaults.dnsConfig | object | DNSConfig for loki pods | {} |
defaults.enableServiceLinks | bool | Should enableServiceLinks be enabled. Default to enable | true |
defaults.extraArgs | list | Common additional CLI arguments for loki pods | [] |
defaults.extraEnv | list | Common environment variables to add to all pods directly managed by this chart. | [] |
defaults.extraEnvFrom | list | Common source of environment injections to add to all pods directly managed by this chart. For example to inject values from a Secret, use: extraEnvFrom: - secretRef: name: mysecret | [] |
defaults.extraVolumeMounts | list | Common mount points to add to all pods directly managed by this chart. | [] |
defaults.extraVolumes | list | Common volumes to add to all pods directly managed by this chart. | [] |
defaults.goSettings.goMemLimitFactor | float | Fraction of the container memory limit used to compute GOMEMLIMIT (e.g. 0.85 = 85%). Set to 0 to disable automatic GOMEMLIMIT injection. | 0.85 |
defaults.goSettings.gogc | int | Value to set for GOGC alongside GOMEMLIMIT. Lowering below the default of 100 reduces heap growth between GC cycles, working in tandem with GOMEMLIMIT to smooth memory usage. Set to 0 to disable automatic GOGC injection. | 80 |
defaults.hostAliases | list | hostAliases for loki pods | [] |
defaults.hostUsers | string | Use the host’s user namespace for loki pods | nil |
defaults.kedaAutoscaling.authentication.authModes | string | Authentication modes for the trigger (e.g. “bearer”, “basic”) | "" |
defaults.kedaAutoscaling.authentication.enabled | bool | Enable TriggerAuthentication for KEDA triggers | false |
defaults.kedaAutoscaling.authentication.secretTargetRef | list | Secret key references for TriggerAuthentication | [] |
defaults.kedaAutoscaling.cooldownPeriod | int | Period (seconds) to wait after the last trigger reported active before scaling back to 0. Overridable per component. | 300 |
defaults.kedaAutoscaling.customHeaders | string | Custom HTTP headers to include in Prometheus requests. Useful for multi-tenant setups (e.g. “X-Scope-OrgID=tenant1”) | "" |
defaults.kedaAutoscaling.ignoreNullValues | bool | Whether to ignore null values from Prometheus queries | true |
defaults.kedaAutoscaling.pollingInterval | int | Interval (seconds) to poll each trigger. Overridable per component. | 30 |
defaults.kedaAutoscaling.prometheusAddress | string | Prometheus server address for KEDA triggers | "" |
defaults.kedaAutoscaling.unsafeSsl | bool | Whether to skip SSL verification when connecting to Prometheus | false |
defaults.labels | object | Additional labels for loki Deployments/StatefulSets | {} |
defaults.livenessProbe | object | Configures the liveness probe for loki pods | {} |
defaults.nodeSelector | object | Node selector for loki pods | {} |
defaults.podAnnotations | object | Annotations for loki pods | {} |
defaults.podLabels | object | Additional labels for loki pod | {} |
defaults.podSecurityContext | object | The SecurityContext for loki pods | {} |
defaults.priorityClassName | string | The name of the PriorityClass for loki pods | "" |
defaults.readinessProbe | object | Configures the readiness probe for loki pods | {} |
defaults.service.annotations | object | Common annotations for all services | {} |
defaults.service.ipFamilies | list | ipFamilies for all services Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
defaults.service.ipFamilyPolicy | string | ipFamilyPolicy for all services Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
defaults.service.labels | object | Common labels for all services | {} |
defaults.service.trafficDistribution | string | trafficDistribution for services Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution | "" |
defaults.startupProbe | object | Configures the startup probe for loki pods | {} |
defaults.statefulSetRecreateJob.image.registry | string | "registry.k8s.io" | |
defaults.statefulSetRecreateJob.image.repository | string | "kubectl" | |
defaults.statefulSetRecreateJob.image.tag | string | Overrides the image tag. Defaults to .Capabilities.KubeVersion.Version | "" |
defaults.statefulSetRecreateJob.patchPVC | bool | Enable the PVC resize job for statefulsets. This job will be triggered when the storage size is increased and will recreate the statefulset to allow resizing of PVCs, which is not natively supported by Kubernetes. | true |
defaults.terminationGracePeriodSeconds | int | Grace period to allow the gateway to shutdown before it is killed | 30 |
defaults.tolerations | list | Tolerations for loki pods | [] |
distributor
Configuration for the distributor
| Key | Type | Description | Default |
|---|---|---|---|
distributor.affinity | object | Affinity for distributor pods. The value will be passed through tpl. | Hard node anti-affinity |
distributor.annotations | object | Annotations for distributor | {} |
distributor.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of distributor.service.appProtocol.grpc | "" |
distributor.autoscaling.behavior.enabled | bool | Enable autoscaling behaviours | false |
distributor.autoscaling.behavior.scaleDown | object | define scale down policies, must conform to HPAScalingRules | {} |
distributor.autoscaling.behavior.scaleUp | object | define scale up policies, must conform to HPAScalingRules | {} |
distributor.autoscaling.customMetrics | list | Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics) | [] |
distributor.autoscaling.enabled | bool | Enable autoscaling for the distributor | false |
distributor.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the distributor | 3 |
distributor.autoscaling.minReplicas | int | Minimum autoscaling replicas for the distributor | 1 |
distributor.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilisation percentage for the distributor | 60 |
distributor.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilisation percentage for the distributor | nil |
distributor.command | string | Command to execute instead of defined in Docker image | nil |
distributor.dnsConfig | object | DNSConfig for distributor pods | {} |
distributor.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | true |
distributor.extraArgs | list | Additional CLI args for the distributor | [] |
distributor.extraContainers | list | Containers to add to the distributor pods | [] |
distributor.extraEnv | list | Environment variables to add to the distributor pods | [] |
distributor.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the distributor pods | [] |
distributor.extraVolumeMounts | list | Volume mounts to add to the distributor pods | [] |
distributor.extraVolumes | list | Volumes to add to the distributor pods | [] |
distributor.hostAliases | list | hostAliases to add | [] |
distributor.hostUsers | string | Use the host’s user namespace in the distributor | nil |
distributor.image.registry | string | The Docker registry for the distributor image. Overrides loki.image.registry | nil |
distributor.image.repository | string | Docker image repository for the distributor image. Overrides loki.image.repository | nil |
distributor.image.tag | string | Docker image tag for the distributor image. Overrides loki.image.tag | nil |
distributor.initContainers | list | Init containers to add to the distributor pods | [] |
distributor.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
distributor.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
distributor.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the distributor. Mutually exclusive with autoscaling.enabled | false |
distributor.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
distributor.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 3 |
distributor.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 1 |
distributor.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
distributor.kedaAutoscaling.triggers | list | KEDA triggers for the distributor. Ref: https://keda.sh/docs/latest/scalers/ | [] |
distributor.kind | string | Kind of compactor deployment. StatefulSet and Deployment are supported. | "Deployment" |
distributor.labels | object | Labels for distributor | {} |
distributor.maxSurge | int | Max Surge for distributor pods | 0 |
distributor.maxUnavailable | string | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | nil |
distributor.nodeSelector | object | Node selector for distributor pods | {} |
distributor.podAnnotations | object | Annotations for distributor pods | {} |
distributor.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
distributor.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
distributor.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
distributor.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
distributor.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
distributor.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
distributor.podLabels | object | Labels for distributor pods | {} |
distributor.priorityClassName | string | The name of the PriorityClass for distributor pods | nil |
distributor.replicas | int | Number of replicas for the distributor. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
distributor.resizePolicy | list | Container resize policy for the distributor Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
distributor.resources | object | Resource requests and limits for the distributor | {} |
distributor.service.annotations | object | Annotations for distributor Service | {} |
distributor.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
distributor.service.ipFamilies | list | ipFamilies for distributor Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
distributor.service.ipFamilyPolicy | string | ipFamilyPolicy for distributor Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
distributor.service.labels | object | Additional labels for distributor Service | {} |
distributor.service.sessionAffinity | string | Session affinity for distributor Service | "" |
distributor.service.sessionAffinityConfig | object | Session affinity config for distributor Service | {} |
distributor.service.trafficDistribution | string | trafficDistribution for distributor Service | "" |
distributor.service.type | string | Service Type for distributor Service | "ClusterIP" |
distributor.serviceAccount.annotations | object | Annotations for the service account | {} |
distributor.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
distributor.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
distributor.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
distributor.serviceAccount.labels | object | Labels for the service account | {} |
distributor.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
distributor.serviceAnnotations | object | Annotations for distributor service @deprecated – This option is deprecated in favor of ingester.service.annotations | {} |
distributor.serviceLabels | object | Labels for distributor service @deprecated – This option is deprecated in favor of ingester.service.labels | {} |
distributor.serviceType | string | Service type for distributor service @deprecated – This option is deprecated in favor of ingester.service.type | "ClusterIP" |
distributor.shutdownDelay | string | On SIGTERM, report 503 on /ready and wait this long before shutdown so the LB drains the pod before connections are cut. “0s” (default) disables. When enabling, keep terminationGracePeriodSeconds above shutdownDelay + server.graceful_shutdown_timeout. | "0s" |
distributor.strategy.rollingUpdate.maxUnavailable | int | Pod Disruption Budget maxUnavailable | 1 |
distributor.terminationGracePeriodSeconds | int | Grace period to allow the distributor to shutdown before it is killed | 30 |
distributor.topologySpreadConstraints | list | Topology Spread Constraints for distributor pods The value will be passed through tpl. | [] |
distributor.trafficDistribution | string | trafficDistribution for distributor service | "" |
gateway
Configuration for the gateway, an NGINX reverse proxy that routes incoming read and write requests to the appropriate Loki components.
| Key | Type | Description | Default |
|---|---|---|---|
gateway.affinity | object | Affinity for gateway pods. The value will be passed through tpl. | Hard node anti-affinity |
gateway.annotations | object | Annotations for gateway deployment | {} |
gateway.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | false |
gateway.autoscaling.behavior | object | Behavior policies while scaling. | {} |
gateway.autoscaling.enabled | bool | Enable autoscaling for the gateway | false |
gateway.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the gateway | 3 |
gateway.autoscaling.minReplicas | int | Minimum autoscaling replicas for the gateway | 1 |
gateway.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilisation percentage for the gateway | 60 |
gateway.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilisation percentage for the gateway | nil |
gateway.basicAuth.enabled | bool | Enables basic authentication for the gateway | false |
gateway.basicAuth.existingSecret | string | Existing basic auth secret to use. Must contain ‘.htpasswd’ | nil |
gateway.basicAuth.htpasswd | string | Uses the specified users from the loki.tenants list to create the htpasswd file. if loki.tenants is not set, the gateway.basicAuth.username and gateway.basicAuth.password are used. The value is templated using tpl. Override this to use a custom htpasswd, e.g. in case the default causes high CPU load. | Either `loki.tenants` or `gateway.basicAuth.username` and `gateway.basicAuth.password`. |
gateway.basicAuth.password | string | The basic auth password for the gateway | nil |
gateway.basicAuth.username | string | The basic auth username for the gateway | nil |
gateway.containerPort | int | Default container port | 8080 |
gateway.containerSecurityContext | object | The SecurityContext for gateway containers | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"seccompProfile":{"type":"RuntimeDefault"}} |
gateway.deploymentStrategy.type | string | "RollingUpdate" | |
gateway.dnsConfig | object | DNS config for gateway pods | {} |
gateway.enabled | bool | Specifies whether the gateway should be enabled | true |
gateway.extraArgs | list | Additional CLI args for the gateway | [] |
gateway.extraContainers | list | Containers to add to the gateway pods | [] |
gateway.extraEnv | list | Environment variables to add to the gateway pods | [] |
gateway.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the gateway pods | [] |
gateway.extraVolumeMounts | list | Volume mounts to add to the gateway pods | [] |
gateway.extraVolumes | list | Volumes to add to the gateway pods | [] |
gateway.hostUsers | string | Use the host’s user namespace in the gateway | nil |
gateway.image.digest | string | Overrides the gateway image tag with an image digest | nil |
gateway.image.pullPolicy | string | The gateway image pull policy | "IfNotPresent" |
gateway.image.registry | string | The Docker registry for the gateway image | "docker.io" |
gateway.image.repository | string | The gateway image repository | "nginxinc/nginx-unprivileged" |
gateway.image.tag | string | The gateway image tag | "1.31-alpine" |
gateway.ingress.annotations | object | Annotations for the gateway ingress | {} |
gateway.ingress.enabled | bool | Specifies whether an ingress for the gateway should be created | false |
gateway.ingress.hosts | list | Hosts configuration for the gateway ingress, passed through the tpl function to allow templating | [{"host":"gateway.loki.example.com","paths":[{"path":"/"}]}] |
gateway.ingress.ingressClassName | string | Ingress Class Name. MAY be required for Kubernetes versions >= 1.18 | "" |
gateway.ingress.labels | object | Labels for the gateway ingress | {} |
gateway.ingress.tls | list | TLS configuration for the gateway ingress. Hosts passed through the tpl function to allow templating | [{"hosts":["gateway.loki.example.com"],"secretName":"loki-gateway-tls"}] |
gateway.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
gateway.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
gateway.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the gateway. Mutually exclusive with autoscaling.enabled | false |
gateway.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
gateway.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 3 |
gateway.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 1 |
gateway.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
gateway.kedaAutoscaling.triggers | list | KEDA triggers for the gateway. Ref: https://keda.sh/docs/latest/scalers/ | [] |
gateway.lifecycle | object | Lifecycle for the gateway container | {} |
gateway.livenessProbe | object | liveness probe for the nginx container in the gateway pods. | {} |
gateway.metrics.containerSecurityContext | object | The SecurityContext for memcached exporter containers | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"privileged":false,"readOnlyRootFilesystem":true,"runAsGroup":65532,"runAsNonRoot":true,"runAsUser":65532,"seccompProfile":{"type":"RuntimeDefault"}} |
gateway.metrics.enabled | bool | Whether gateway metrics should be exported | true |
gateway.metrics.extraArgs | list | Extra args to add to the exporter container. | [] |
gateway.metrics.image.pullPolicy | string | "IfNotPresent" | |
gateway.metrics.image.registry | string | "ghcr.io" | |
gateway.metrics.image.repository | string | "jkroepke/access-log-exporter" | |
gateway.metrics.image.tag | string | "0.4.4" | |
gateway.metrics.livenessProbe | object | Liveness probe for memcached exporter | {"failureThreshold":3,"httpGet":{"path":"/health","port":"http-metrics"},"initialDelaySeconds":30,"periodSeconds":10,"timeoutSeconds":5} |
gateway.metrics.readinessProbe | object | Readiness probe for memcached exporter | {"failureThreshold":3,"httpGet":{"path":"/health","port":"http-metrics"},"initialDelaySeconds":5,"periodSeconds":5,"timeoutSeconds":3} |
gateway.metrics.resizePolicy | list | Container resize policy for the gateway metrics exporter Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
gateway.metrics.resources.limits | object | {} | |
gateway.metrics.resources.requests | object | {} | |
gateway.metrics.service.annotations | object | Annotations for the gateway metrics exporter service. Use this instead of gateway.service.annotations to avoid propagating annotations (e.g. external-dns) to the exporter ClusterIP service. | {} |
gateway.metrics.service.labels | object | Labels for the gateway metrics exporter service. | {} |
gateway.metrics.startupProbe | object | Startup probe for memcached exporter | {} |
gateway.nginxConfig.clientMaxBodySize | string | Allows customizing the client_max_body_size directive | "4M" |
gateway.nginxConfig.customBackendUrl | string | Override Backend URL | nil |
gateway.nginxConfig.customReadUrl | string | Override Read URL | nil |
gateway.nginxConfig.customWriteUrl | string | Override Write URL | nil |
gateway.nginxConfig.enableIPv6 | bool | Enable listener for IPv6, disable on IPv4-only systems | true |
gateway.nginxConfig.file | string | Config file contents for Nginx. Passed through the tpl function to allow templating | See values.yaml |
gateway.nginxConfig.httpSnippet | string | Allows appending custom configuration to the http block, passed through the tpl function to allow templating | "" |
gateway.nginxConfig.locationSnippet | string | 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. | "{{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}" |
gateway.nginxConfig.logFormat | string | NGINX log format | "main '$remote_addr - $remote_user [$time_local] $status '\n '\"$request\" $body_bytes_sent \"$http_referer\" '\n '\"$http_user_agent\" \"$http_x_forwarded_for\"';" |
gateway.nginxConfig.resolver | string | Allows overriding the DNS resolver address nginx will use. | "" |
gateway.nginxConfig.schema | string | Which schema to be used when building URLs. Can be ‘http’ or ‘https’. | "http" |
gateway.nginxConfig.serverSnippet | string | Allows appending custom configuration to the server block | "" |
gateway.nginxConfig.ssl | bool | Whether ssl should be appended to the listen directive of the server block or not. | false |
gateway.nodeSelector | object | Node selector for gateway pods | {} |
gateway.podAnnotations | object | Annotations for gateway pods | {} |
gateway.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
gateway.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
gateway.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
gateway.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
gateway.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
gateway.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
gateway.podLabels | object | Additional labels for gateway pods | {} |
gateway.podSecurityContext | object | The SecurityContext for gateway containers | {"fsGroup":101,"runAsGroup":101,"runAsNonRoot":true,"runAsUser":101,"seccompProfile":{"type":"RuntimeDefault"}} |
gateway.priorityClassName | string | The name of the PriorityClass for gateway pods | nil |
gateway.readinessProbe.httpGet.path | string | "/" | |
gateway.readinessProbe.httpGet.port | string | "http" | |
gateway.readinessProbe.initialDelaySeconds | int | 15 | |
gateway.readinessProbe.timeoutSeconds | int | 1 | |
gateway.replicas | int | Number of replicas for the gateway | 1 |
gateway.resizePolicy | list | Container resize policy for the gateway Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
gateway.resources | object | Resource requests and limits for the gateway | {} |
gateway.route.main.additionalRules | list | Additional rules to prepend before the default catch-all rule. Each entry is rendered into spec.rules as written (templating is supported), so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules with no backendRefs (e.g. RequestRedirect, URLRewrite). Useful for advanced routing logic (e.g. header-based routing, auth policies, redirects). Note: the chart-generated rule that points at the gateway service is always rendered for this route — additionalRules are prepended, not a replacement. Example HTTP-to-HTTPS redirect: additionalRules: - filters: - type: RequestRedirect requestRedirect: scheme: https statusCode: 301 matches: - path: { type: PathPrefix, value: / } | [] |
gateway.route.main.annotations | object | Additional annotations for the route | {} |
gateway.route.main.apiVersion | string | Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1beta1. If not set, the latest available version will be auto-detected. | "" |
gateway.route.main.enabled | bool | Specifies whether this Gateway API route should be created | false |
gateway.route.main.filters | list | Filters for the default rule | [] |
gateway.route.main.hostnames | list | Hostnames for the route | [] |
gateway.route.main.kind | string | Set the route kind. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute | "HTTPRoute" |
gateway.route.main.labels | object | Additional labels for the route | {} |
gateway.route.main.matches | list | Matches for the default rule. Defaults to match all paths. | [{"path":{"type":"PathPrefix","value":"/"}}] |
gateway.route.main.parentRefs | list | Parent gateway references to attach the route to | [] |
gateway.route.main.timeouts | object | Timeouts for the default rule | {} |
gateway.service.annotations | object | Annotations for the gateway service | {} |
gateway.service.clusterIP | string | ClusterIP of the gateway service | nil |
gateway.service.ipFamilies | list | ipFamilies for gateway Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
gateway.service.ipFamilyPolicy | string | ipFamilyPolicy for gateway Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
gateway.service.labels | object | Labels for gateway service | {} |
gateway.service.loadBalancerIP | string | Load balancer IPO address if service type is LoadBalancer | nil |
gateway.service.nodePort | int | Node port if service type is NodePort | nil |
gateway.service.port | int | Port of the gateway service | 80 |
gateway.service.sessionAffinity | string | Session affinity for gateway Service | "" |
gateway.service.sessionAffinityConfig | object | Session affinity config for gateway Service | {} |
gateway.service.trafficDistribution | string | trafficDistribution for gateway Service | "" |
gateway.service.type | string | Type of the gateway service | "ClusterIP" |
gateway.serviceAccount.annotations | object | Annotations for the service account | {} |
gateway.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | false |
gateway.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | true |
gateway.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
gateway.serviceAccount.labels | object | Labels for the service account | {} |
gateway.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
gateway.startupProbe | object | startup probe for the nginx container in the gateway pods. | {} |
gateway.terminationGracePeriodSeconds | int | Grace period to allow the gateway to shutdown before it is killed | 30 |
gateway.tolerations | list | [] | |
gateway.topologySpreadConstraints | list | Topology Spread Constraints for gateway pods The value will be passed through tpl. | [] |
gateway.verboseLogging | bool | Enable logging of 2xx and 3xx HTTP requests | true |
global
Global values that apply to all components and subcharts, such as image registry, DNS configuration, and common environment variables.
| Key | Type | Description | Default |
|---|---|---|---|
global.clusterDomain | string | configures cluster domain (“cluster.local” by default) | "cluster.local" |
global.dnsNamespace | string | configures DNS service namespace | "kube-system" |
global.dnsService | string | configures DNS service name | "kube-dns" |
global.extraArgs | list | Common additional CLI arguments for all jobs (that is, -log.level debug, -config.expand-env=true or -log-config-reverse-order) (deprecated, use defaults.extraArgs) scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write. | [] |
global.extraEnv | list | Common environment variables to add to all pods directly managed by this chart. (deprecated, use defaults.extraEnv) scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write. | [] |
global.extraEnvFrom | list | Common source of environment injections to add to all pods directly managed by this chart. (deprecated, use defaults.extraEnvFrom) scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write. For example to inject values from a Secret, use: extraEnvFrom: - secretRef: name: mysecret | [] |
global.extraVolumeMounts | list | Common mount points to add to all pods directly managed by this chart. (deprecated, use defaults.extraVolumeMounts) scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write. | [] |
global.extraVolumes | list | Common volumes to add to all pods directly managed by this chart. (deprecated, use defaults.extraVolumes) scope: backend, bloom-builder, bloom-gateway, bloom-planner, compactor, distributor, index-gateway, ingester, overrides-exporter, pattern-ingester, querier, query-frontend, query-scheduler, read, ruler, write. | [] |
global.image.registry | string | Overrides the Docker registry globally for all images (deprecated, use global.imageRegistry). This has lower precedence than global.imageRegistry, but higher precedence than component-level image.registry values. | nil |
global.imageRegistry | string | Overrides the Docker registry globally for all images (standard format). This has the highest precedence and overrides every component-level image.registry value. | nil |
global.priorityClassName | string | Overrides the priorityClassName for all pods | nil |
indexGateway
Configuration for the index-gateway
| Key | Type | Description | Default |
|---|---|---|---|
indexGateway.affinity | object | Affinity for index-gateway pods. The value will be passed through tpl. | Hard node anti-affinity |
indexGateway.annotations | object | Annotations for index-gateway | {} |
indexGateway.appProtocol | object | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of indexGateway.service.appProtocol | {"grpc":""} |
indexGateway.dnsConfig | object | DNSConfig for index-gateway pods | {} |
indexGateway.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | true |
indexGateway.extraArgs | list | Additional CLI args for the index-gateway | [] |
indexGateway.extraContainers | list | Containers to add to the index-gateway pods | [] |
indexGateway.extraEnv | list | Environment variables to add to the index-gateway pods | [] |
indexGateway.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the index-gateway pods | [] |
indexGateway.extraVolumeMounts | list | Volume mounts to add to the index-gateway pods | [] |
indexGateway.extraVolumes | list | Volumes to add to the index-gateway pods | [] |
indexGateway.hostAliases | list | hostAliases to add | [] |
indexGateway.hostUsers | string | Use the host’s user namespace in the index-gateway | nil |
indexGateway.image.registry | string | The Docker registry for the index-gateway image. Overrides loki.image.registry | nil |
indexGateway.image.repository | string | Docker image repository for the index-gateway image. Overrides loki.image.repository | nil |
indexGateway.image.tag | string | Docker image tag for the index-gateway image. Overrides loki.image.tag | nil |
indexGateway.initContainers | list | Init containers to add to the index-gateway pods | [] |
indexGateway.joinMemberlist | bool | Whether the index gateway should join the memberlist hashring | true |
indexGateway.kind | string | Kind of index-gateway deployment. StatefulSet and Deployment are supported. | "StatefulSet" |
indexGateway.labels | object | Labels for index-gateway | {} |
indexGateway.lifecycle | object | Lifecycle for the index-gateway container | {} |
indexGateway.maxUnavailable | string | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | nil |
indexGateway.nodeSelector | object | Node selector for index-gateway pods | {} |
indexGateway.persistence.accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
indexGateway.persistence.annotations | object | Annotations for index gateway PVCs | {} |
indexGateway.persistence.dataVolumeParameters | object | Parameters used for the data volume when volumeClaimEnabled if false | {"emptyDir":{}} |
indexGateway.persistence.enableStatefulSetAutoDeletePVC | bool | Enable StatefulSetAutoDeletePVC feature | false |
indexGateway.persistence.enabled | bool | Enable creating PVCs which is required when using boltdb-shipper | false |
indexGateway.persistence.labels | object | Labels for index gateway PVCs | {} |
indexGateway.persistence.size | string | Size of persistent disk | "10Gi" |
indexGateway.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
indexGateway.persistence.volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
indexGateway.podAnnotations | object | Annotations for index-gateway pods | {} |
indexGateway.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
indexGateway.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
indexGateway.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
indexGateway.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
indexGateway.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
indexGateway.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
indexGateway.podLabels | object | Labels for index-gateway pods | {} |
indexGateway.priorityClassName | string | The name of the PriorityClass for index-gateway pods | nil |
indexGateway.replicas | int | Number of replicas for the index-gateway. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
indexGateway.resizePolicy | list | Container resize policy for the index-gateway Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
indexGateway.resources | object | Resource requests and limits for the index-gateway | {} |
indexGateway.service.annotations | object | Annotations for index-gateway Service | {} |
indexGateway.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
indexGateway.service.ipFamilies | list | ipFamilies for index-gateway Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
indexGateway.service.ipFamilyPolicy | string | ipFamilyPolicy for index-gateway Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
indexGateway.service.labels | object | Additional labels for index-gateway Service | {} |
indexGateway.service.sessionAffinity | string | Session affinity for index-gateway Service | "" |
indexGateway.service.sessionAffinityConfig | object | Session affinity config for index-gateway Service | {} |
indexGateway.service.trafficDistribution | string | trafficDistribution for index-gateway Service | "" |
indexGateway.service.type | string | Service Type for index-gateway Service | "ClusterIP" |
indexGateway.serviceAccount.annotations | object | Annotations for the service account | {} |
indexGateway.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
indexGateway.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
indexGateway.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
indexGateway.serviceAccount.labels | object | Labels for the service account | {} |
indexGateway.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
indexGateway.serviceAnnotations | object | Annotations for index-gateway service @deprecated – This option is deprecated in favor of indexGateway.service.annotations | {} |
indexGateway.serviceLabels | object | Labels for index-gateway service @deprecated – This option is deprecated in favor of indexGateway.service.labels | {} |
indexGateway.serviceType | string | Service type for index-gateway service @deprecated – This option is deprecated in favor of indexGateway.service.type | "ClusterIP" |
indexGateway.statefulSetRecreateJob | object | EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed. # Only applicable if compactor.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. | {"enabled":false} |
indexGateway.strategy.type | string | One of ‘OnDelete’ or ‘RollingUpdate’ | "RollingUpdate" |
indexGateway.terminationGracePeriodSeconds | int | Grace period to allow the index-gateway to shutdown before it is killed. | 300 |
indexGateway.topologySpreadConstraints | list | Topology Spread Constraints for index-gateway pods The value will be passed through tpl. | [] |
indexGateway.trafficDistribution | string | trafficDistribution for index-gateway service | "" |
ingester
Configuration for the ingester
| Key | Type | Description | Default |
|---|---|---|---|
ingester.affinity | object | Affinity for ingester pods. Ignored if zoneAwareReplication is enabled. The value will be passed through tpl. | Hard node anti-affinity |
ingester.annotations | object | Annotations for ingester | {} |
ingester.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of ingester.service.appProtocol.grpc | "" |
ingester.autoscaling.behavior.enabled | bool | Enable autoscaling behaviours | false |
ingester.autoscaling.behavior.scaleDown | object | define scale down policies, must conform to HPAScalingRules | {} |
ingester.autoscaling.behavior.scaleUp | object | define scale up policies, must conform to HPAScalingRules | {} |
ingester.autoscaling.customMetrics | list | Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics) | [] |
ingester.autoscaling.enabled | bool | Enable autoscaling for the ingester | false |
ingester.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the ingester | 3 |
ingester.autoscaling.minReplicas | int | Minimum autoscaling replicas for the ingester | 1 |
ingester.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilisation percentage for the ingester | 60 |
ingester.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilisation percentage for the ingester | nil |
ingester.command | string | Command to execute instead of defined in Docker image | nil |
ingester.dnsConfig | object | DNSConfig for ingester pods | {} |
ingester.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | true |
ingester.extraArgs | list | Additional CLI args for the ingester | [] |
ingester.extraContainers | list | Containers to add to the ingester pods | [] |
ingester.extraEnv | list | Environment variables to add to the ingester pods | [] |
ingester.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the ingester pods | [] |
ingester.extraVolumeMounts | list | Volume mounts to add to the ingester pods | [] |
ingester.extraVolumes | list | Volumes to add to the ingester pods | [] |
ingester.hostAliases | list | hostAliases to add | [] |
ingester.hostUsers | string | Use the host’s user namespace in the ingester | nil |
ingester.image.registry | string | The Docker registry for the ingester image. Overrides loki.image.registry | nil |
ingester.image.repository | string | Docker image repository for the ingester image. Overrides loki.image.repository | nil |
ingester.image.tag | string | Docker image tag for the ingester image. Overrides loki.image.tag | nil |
ingester.initContainers | list | Init containers to add to the ingester pods | [] |
ingester.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
ingester.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
ingester.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the ingester. Mutually exclusive with autoscaling.enabled | false |
ingester.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
ingester.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 3 |
ingester.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 1 |
ingester.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
ingester.kedaAutoscaling.triggers | list | KEDA triggers for the ingester. Ref: https://keda.sh/docs/latest/scalers/ | [] |
ingester.kind | string | Kind of compactor deployment. StatefulSet and Deployment are supported. | "StatefulSet" |
ingester.labels | object | Labels for ingester | {} |
ingester.lifecycle | object | Lifecycle for the ingester container | {} |
ingester.livenessProbe | object | liveness probe settings for ingester pods. If empty use loki.livenessProbe | {} |
ingester.maxUnavailable | int | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | 1 |
ingester.nodeSelector | object | Node selector for ingester pods | {} |
ingester.persistence.claims | list | List of the ingester PVCs | |
ingester.persistence.claims[0].accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
ingester.persistence.claims[0].storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
ingester.persistence.claims[0].volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
ingester.persistence.enableStatefulSetAutoDeletePVC | bool | Enable StatefulSetAutoDeletePVC feature | false |
ingester.persistence.enabled | bool | Enable creating PVCs which is required when using boltdb-shipper | false |
ingester.persistence.inMemory | bool | Use emptyDir with ramdisk for storage. Please note that all data in ingester will be lost on pod restart | false |
ingester.podAnnotations | object | Annotations for ingester pods | {} |
ingester.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
ingester.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
ingester.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
ingester.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
ingester.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
ingester.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
ingester.podLabels | object | Labels for ingester pods | {} |
ingester.podManagementPolicy | string | PodManagementPolicy for the ingester StatefulSet. Only applicable if compactor.kind is StatefulSet. # OrderedReady and Parallel are supported. | "Parallel" |
ingester.priorityClassName | string | The name of the PriorityClass for ingester pods | nil |
ingester.readinessProbe | object | readiness probe settings for ingester pods. If empty, use loki.readinessProbe | {} |
ingester.replicas | int | Number of replicas for the ingester, when zoneAwareReplication.enabled is true, the total number of replicas will match this value with each zone having 1/3rd of the total replicas. Set to null to omit spec.replicas from the StatefulSet, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
ingester.resizePolicy | list | Container resize policy for the ingester Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
ingester.resources | object | Resource requests and limits for the ingester | {} |
ingester.service.annotations | object | Annotations for ingester Service | {} |
ingester.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
ingester.service.ipFamilies | list | ipFamilies for ingester Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
ingester.service.ipFamilyPolicy | string | ipFamilyPolicy for ingester Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
ingester.service.labels | object | Additional labels for ingester Service | {} |
ingester.service.sessionAffinity | string | Session affinity for ingester Service | "" |
ingester.service.sessionAffinityConfig | object | Session affinity config for ingester Service | {} |
ingester.service.trafficDistribution | string | trafficDistribution for ingester Service | "" |
ingester.service.type | string | Service Type for ingester Service | "ClusterIP" |
ingester.serviceAccount.annotations | object | Annotations for the service account | {} |
ingester.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
ingester.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
ingester.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
ingester.serviceAccount.labels | object | Labels for the service account | {} |
ingester.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
ingester.serviceAnnotations | object | Annotations for ingester service @deprecated – This option is deprecated in favor of ingester.service.annotations | {} |
ingester.serviceLabels | object | Labels for ingester service @deprecated – This option is deprecated in favor of ingester.service.labels | {} |
ingester.serviceType | string | Service type for ingester service @deprecated – This option is deprecated in favor of ingester.service.type | "ClusterIP" |
ingester.startupProbe | object | startup probe settings for ingester pods. If empty use loki.startupProbe | {} |
ingester.statefulSetRecreateJob | object | EXPERIMENTAL: Enable creating a Job to recreate the ingester StatefulSet # Only applicable if ingester.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. | {"enabled":false} |
ingester.strategy | object | UpdateStrategy or Strategy for the ingester. | {"type":"RollingUpdate"} |
ingester.terminationGracePeriodSeconds | int | Grace period to allow the ingester to shutdown before it is killed. Especially for the ingestor, this must be increased. It must be long enough so ingesters can be gracefully shutdown flushing/transferring all data and to successfully leave the member ring on shutdown. | 300 |
ingester.tolerations | list | Tolerations for ingester pods | [] |
ingester.topologySpreadConstraints | list | topologySpread for ingester pods. The value will be passed through tpl. | Defaults to allow skew no more than 1 node |
ingester.trafficDistribution | string | trafficDistribution for ingester service | "" |
ingester.updateStrategy.type | string | One of ‘OnDelete’ or ‘RollingUpdate’ | "RollingUpdate" |
ingester.zoneAwareReplication.enabled | bool | Enable zone awareness. | true |
ingester.zoneAwareReplication.maxUnavailablePct | int | The percent of replicas in each zone that will be restarted at once. In a value of 0-100 | 33 |
ingester.zoneAwareReplication.migration | object | The migration block allows migrating non zone aware ingesters to zone aware ingesters. | {"enabled":false,"excludeDefaultZone":false,"readPath":false,"writePath":false} |
ingester.zoneAwareReplication.zoneA.annotations | object | Specific annotations to add to zone A statefulset | {} |
ingester.zoneAwareReplication.zoneA.extraAffinity | object | optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host The value will be passed through tpl. | {} |
ingester.zoneAwareReplication.zoneA.nodeSelector | string | optionally define a node selector for this zone | nil |
ingester.zoneAwareReplication.zoneA.persistence.storageClass | string | Storage class to use for every PVC in zone A. Overrides the storageClass of each entry in ingester.persistence.claims for this zone only. Use this when you have one StorageClass per availability zone (for example a topology-pinned EBS/PD StorageClass). If null, the claim-level storageClass is used as before, preserving existing behavior. If set to “-”, storageClassName: "" is rendered, which disables dynamic provisioning. | nil |
ingester.zoneAwareReplication.zoneA.podAnnotations | object | Specific annotations to add to zone A pods | {} |
ingester.zoneAwareReplication.zoneB.annotations | object | Specific annotations to add to zone B statefulset | {} |
ingester.zoneAwareReplication.zoneB.extraAffinity | object | optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host The value will be passed through tpl. | {} |
ingester.zoneAwareReplication.zoneB.nodeSelector | string | optionally define a node selector for this zone | nil |
ingester.zoneAwareReplication.zoneB.persistence.storageClass | string | Storage class to use for every PVC in zone B. See ingester.zoneAwareReplication.zoneA.persistence.storageClass for details. If null, the claim-level storageClass is used as before. | nil |
ingester.zoneAwareReplication.zoneB.podAnnotations | object | Specific annotations to add to zone B pods | {} |
ingester.zoneAwareReplication.zoneC.annotations | object | Specific annotations to add to zone C statefulset | {} |
ingester.zoneAwareReplication.zoneC.extraAffinity | object | optionally define extra affinity rules, by default different zones are not allowed to schedule on the same host The value will be passed through tpl. | {} |
ingester.zoneAwareReplication.zoneC.nodeSelector | string | optionally define a node selector for this zone | nil |
ingester.zoneAwareReplication.zoneC.persistence.storageClass | string | Storage class to use for every PVC in zone C. See ingester.zoneAwareReplication.zoneA.persistence.storageClass for details. If null, the claim-level storageClass is used as before. | nil |
ingester.zoneAwareReplication.zoneC.podAnnotations | object | Specific annotations to add to zone C pods | {} |
ingress
Ingress configuration Use either this ingress or the gateway, but not both at once. If you enable this, make sure to disable the gateway. You’ll need to supply authn configuration for your ingress controller.
| Key | Type | Description | Default |
|---|---|---|---|
ingress.hosts | list | Hosts configuration for the ingress, passed through the tpl function to allow templating | ["loki.example.com"] |
ingress.paths.compactor | list | Paths that are exposed by Loki Compactor. If deployment mode is Distributed, the requests are forwarded to the service. If deployment mode is SimpleScalable, the requests are forwarded to k8s service. If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service` | ["/loki/api/v1/delete"] |
ingress.paths.distributor | list | Paths that are exposed by Loki Distributor. If deployment mode is Distributed, the requests are forwarded to the service:. If deployment mode is SimpleScalable, the requests are forwarded to write k8s service:. If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: | ["/api/prom/push","/loki/api/v1/push","/otlp/v1/logs"] |
ingress.paths.queryFrontend | list | Paths that are exposed by Loki Query Frontend. If deployment mode is Distributed, the requests are forwarded to the service. If deployment mode is SimpleScalable, the requests are forwarded to write k8s service. If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service | ["/api/prom/query","/api/prom/label","/api/prom/series","/api/prom/tail","/loki/api/v1/query","/loki/api/v1/query_range","/loki/api/v1/tail","/loki/api/v1/label","/loki/api/v1/labels","/loki/api/v1/series","/loki/api/v1/index/stats","/loki/api/v1/index/volume","/loki/api/v1/index/volume_range","/loki/api/v1/format_query","/loki/api/v1/detected_field","/loki/api/v1/detected_fields","/loki/api/v1/detected_labels","/loki/api/v1/patterns","/ui"] |
ingress.paths.ruler | list | Paths that are exposed by Loki Ruler. If deployment mode is Distributed, the requests are forwarded to the service. If deployment mode is SimpleScalable, the requests are forwarded to k8s service. If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service | ["/api/prom/rules","/api/prom/api/v1/rules","/api/prom/api/v1/alerts","/loki/api/v1/rules","/prometheus/api/v1/rules","/prometheus/api/v1/alerts"] |
ingress.tls | list | TLS configuration for the ingress. Hosts passed through the tpl function to allow templating | [] |
loki
Configuration for running Loki
| Key | Type | Description | Default |
|---|---|---|---|
loki.analytics | object | Optional analytics configuration | {} |
loki.annotations | object | Common annotations for all deployments/StatefulSets | {} |
loki.block_builder | object | Optional block builder configuration | {} |
loki.commonConfig.compactor_grpc_address | string | The gRPC address of the compactor. The use of compactor_grpc_address is preferred over compactor_address. If a customized compactor_address is set, compactor_grpc_address should be set to an empty string. | "{{ include \"loki.compactorAddress\" . }}" |
loki.compactor | object | Optional compactor configuration | {} |
loki.compactor_grpc_client | object | Optional compactor grpc client configuration | {} |
loki.config | string | Config file contents for Loki | See values.yaml |
loki.configObjectName | string | The name of the object which Loki will mount as a volume containing the config. 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. The value will be passed through tpl. | "{{ include \"loki.name\" . }}" |
loki.configStorageType | string | Defines what kind of object stores the configuration, a ConfigMap or a Secret. 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. 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. | "ConfigMap" |
loki.containerSecurityContext | object | The SecurityContext for Loki containers | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"seccompProfile":{"type":"RuntimeDefault"}} |
loki.distributor | object | Optional distributor configuration | {} |
loki.dnsConfig | object | DNS config for Loki pods | {} |
loki.enableServiceLinks | bool | Should enableServiceLinks be enabled. Default to enable | true |
loki.extraMemberlistConfig | object | Extra memberlist configuration | {"abort_if_cluster_join_fails":true,"advertise_port":7946,"bind_port":7946,"max_join_backoff":"1m","max_join_retries":10,"min_join_backoff":"1s","rejoin_interval":"90s"} |
loki.generatedConfigObjectName | string | The name of the Secret or ConfigMap that will be created by this chart. If empty, no configmap or secret will be created. The value will be passed through tpl. | "{{ include \"loki.name\" . }}" |
loki.image.digest | string | Overrides the image tag with an image digest | nil |
loki.image.pullPolicy | string | Docker image pull policy | "IfNotPresent" |
loki.image.registry | string | The Docker registry | "docker.io" |
loki.image.repository | string | Docker image repository | "grafana/loki" |
loki.image.tag | string | Overrides the image tag whose default is the chart’s appVersion | nil |
loki.index_gateway | object | Optional index gateway configuration | {"mode":"simple"} |
loki.ingester | object | Optional ingester configuration | {"wal":{"flush_on_shutdown":true}} |
loki.ingester_client | object | Optional ingester client configuration | {} |
loki.limits_config | object | Limits config | {"max_cache_freshness_per_query":"10m","query_timeout":"300s","reject_old_samples":true,"reject_old_samples_max_age":"168h","split_queries_by_interval":"15m","volume_enabled":true} |
loki.memberlistConfig | object | memberlist configuration (overrides embedded default) | {} |
loki.operational_config | object | Optional operational configuration | {} |
loki.pattern_ingester | object | Optional pattern ingester configuration | {"enabled":false} |
loki.podAnnotations | object | Common annotations for all pods | {} |
loki.podLabels | object | Common labels for all pods | {} |
loki.podSecurityContext | object | The SecurityContext for Loki pods | {"fsGroup":10001,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":10001,"runAsNonRoot":true,"runAsUser":10001,"seccompProfile":{"type":"RuntimeDefault"}} |
loki.querier | object | Optional querier configuration | {} |
loki.query_range | object | Optional querier configuration | {} |
loki.query_scheduler | object | Additional query scheduler config | {} |
loki.revisionHistoryLimit | int | The number of old ReplicaSets to retain to allow rollback | 10 |
loki.rulerConfig | object | Check https://grafana.com/docs/loki/latest/configuration/#ruler for more info on configuring ruler | {"wal":{"dir":"/var/loki/ruler-wal"}} |
loki.runtimeConfig | object | Provides a reloadable runtime configuration file for some specific configuration | {} |
loki.schemaConfig | object | Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas | {} |
loki.server | object | Check https://grafana.com/docs/loki/latest/configuration/#server for more info on the server configuration. | {"graceful_shutdown_timeout":"5s","grpc_listen_port":9095,"grpc_server_max_concurrent_streams":1000,"grpc_server_max_recv_msg_size":104857600,"grpc_server_max_send_msg_size":104857600,"grpc_server_min_time_between_pings":"10s","grpc_server_ping_without_stream_allowed":true,"http_listen_port":3100,"http_server_idle_timeout":"30s","http_server_read_timeout":"10m0s","http_server_write_timeout":"10m0s","log_level":"info"} |
loki.service.ipFamilies | list | ipFamilies for all services Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
loki.service.ipFamilyPolicy | string | ipFamilyPolicy for all services Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
loki.service.trafficDistribution | string | trafficDistribution for services Ref: https://kubernetes.io/docs/concepts/services-networking/service/#traffic-distribution | "" |
loki.serviceAnnotations | object | Common annotations for all services | {} |
loki.serviceLabels | object | Common labels for all services | {} |
loki.storage.s3.backoff_config | object | Check https://grafana.com/docs/loki/latest/configure/#s3_storage_config for more info on how to provide a backoff_config | {} |
loki.storage_config | object | Additional storage config | {"bloom_shipper":{"working_directory":"/var/loki/data/bloomshipper"},"boltdb_shipper":{"index_gateway_client":{"server_address":"{{ include \"loki.indexGatewayAddress\" . }}"}},"hedging":{"at":"250ms","max_per_second":20,"up_to":3},"tsdb_shipper":{"index_gateway_client":{"server_address":"{{ include \"loki.indexGatewayAddress\" . }}"}}} |
loki.structuredConfig | object | Structured loki configuration, takes precedence over loki.config, loki.schemaConfig, loki.storageConfig | {} |
loki.tenants | list | Tenants list to be created on nginx htpasswd file, with name and password or passwordHash keys Example: tenants: | [] |
loki.tracing | object | Enable tracing | {"enabled":false} |
loki.ui | object | Optional Loki UI: Provides access to a operators UI for Loki distributed. When enabled UI will be available at /ui/ of loki-gateway | {"enabled":false,"gateway":{"enabled":true}} |
loki.useTestSchema | bool | a real Loki install requires a proper schemaConfig defined above this, however for testing or playing around you can enable useTestSchema | false |
lokiCanary
Configuration for the Loki Canary, which continuously pushes logs to and queries them from this Loki installation to verify it is working correctly.
| Key | Type | Description | Default |
|---|---|---|---|
lokiCanary.affinity | object | Affinity for canary pods | {} |
lokiCanary.annotations | object | Additional annotations for the loki-canary Daemonset | {} |
lokiCanary.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | false |
lokiCanary.containerSecurityContext | object | The SecurityContext for loki-canary containers | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"seccompProfile":{"type":"RuntimeDefault"}} |
lokiCanary.dnsConfig | object | DNS config for canary pods | {} |
lokiCanary.enabled | bool | true | |
lokiCanary.extraArgs | list | Additional CLI arguments for the ’loki-canary’ command | [] |
lokiCanary.extraEnv | list | Environment variables to add to the canary pods | [] |
lokiCanary.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the canary pods | [] |
lokiCanary.extraVolumeMounts | list | Volume mounts to add to the canary pods | [] |
lokiCanary.extraVolumes | list | Volumes to add to the canary pods | [] |
lokiCanary.hostUsers | string | Use the host’s user namespace in loki-canary pods | nil |
lokiCanary.image.digest | string | Overrides the image tag with an image digest | nil |
lokiCanary.image.pullPolicy | string | Docker image pull policy | "IfNotPresent" |
lokiCanary.image.registry | string | The Docker registry | "docker.io" |
lokiCanary.image.repository | string | Docker image repository | "grafana/loki-canary" |
lokiCanary.image.tag | string | Overrides the image tag whose default is the chart’s appVersion | nil |
lokiCanary.kind | string | The type of the loki canary k8s rollout. This can be a DaemonSet or Deployment. | "DaemonSet" |
lokiCanary.labelname | string | The name of the label to look for at loki when doing the checks. | "pod" |
lokiCanary.labels | object | Additional labels for the loki-canary Daemonset | {} |
lokiCanary.livenessProbe | object | Liveness probe | {"httpGet":{"path":"/metrics","port":"http-metrics"},"initialDelaySeconds":15,"timeoutSeconds":1} |
lokiCanary.lokiurl | string | If set overwrites the default value set by loki.host helper function. Use this if gateway not enabled. | nil |
lokiCanary.nodeSelector | object | Node selector for canary pods | {} |
lokiCanary.podAnnotations | object | Additional annotations for each loki-canary pod | {} |
lokiCanary.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
lokiCanary.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
lokiCanary.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
lokiCanary.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
lokiCanary.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
lokiCanary.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
lokiCanary.podLabels | object | Additional labels for each loki-canary pod | {} |
lokiCanary.podSecurityContext | object | The SecurityContext for loki-canary pods | {"fsGroup":10001,"fsGroupChangePolicy":"OnRootMismatch","runAsGroup":10001,"runAsNonRoot":true,"runAsUser":10001,"seccompProfile":{"type":"RuntimeDefault"}} |
lokiCanary.priorityClassName | string | The name of the PriorityClass for loki-canary pods | nil |
lokiCanary.push | bool | true | |
lokiCanary.readinessProbe | object | Readiness probe | {"httpGet":{"path":"/metrics","port":"http-metrics"},"initialDelaySeconds":15,"timeoutSeconds":1} |
lokiCanary.replicas | int | Replicas for loki-canary when using a Deployment | 1 |
lokiCanary.resizePolicy | list | Container resize policy for the canary Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
lokiCanary.resources | object | Resource requests and limits for the canary | {} |
lokiCanary.revisionHistoryLimit | int | The number of old ReplicaSets to retain to allow rollback | 10 |
lokiCanary.service.annotations | object | Annotations for loki-canary Service | {} |
lokiCanary.service.labels | object | Additional labels for loki-canary Service | {} |
lokiCanary.serviceAccount.annotations | object | Annotations for the service account | {} |
lokiCanary.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | false |
lokiCanary.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | true |
lokiCanary.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
lokiCanary.serviceAccount.labels | object | Labels for the service account | {} |
lokiCanary.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
lokiCanary.startupProbe | object | Startup probe | {} |
lokiCanary.tenant.name | string | Name of the tenant for loki-canary | "self-monitoring" |
lokiCanary.tenant.password | string | Password of the gateway for Basic auth for loki-canary | nil |
lokiCanary.tolerations | list | Tolerations for canary pods | [] |
lokiCanary.updateStrategy.rollingUpdate.maxUnavailable | int | Pod Disruption Budget maxUnavailable | 1 |
memberlist
Configuration for the memberlist service, the gossip-based ring Loki components use for service discovery and hash-ring coordination.
| Key | Type | Description | Default |
|---|---|---|---|
memberlist.service.annotations | object | {} | |
memberlist.service.publishNotReadyAddresses | bool | false |
memcached
Common configuration shared by the Memcached deployments backing Loki’s caches. You can use a self-hosted Memcached by setting enabled to false and providing addresses.
| Key | Type | Description | Default |
|---|---|---|---|
memcached.containerSecurityContext | object | The SecurityContext for memcached containers | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"seccompProfile":{"type":"RuntimeDefault"}} |
memcached.enabled | bool | Enable the built in memcached server provided by the chart | true |
memcached.image.pullPolicy | string | Memcached Docker image pull policy | "IfNotPresent" |
memcached.image.repository | string | Memcached Docker image repository | "memcached" |
memcached.image.tag | string | Memcached Docker image tag | "1.6.42-alpine" |
memcached.livenessProbe | object | Liveness probe for memcached pods | {"failureThreshold":3,"initialDelaySeconds":30,"periodSeconds":10,"tcpSocket":{"port":"client"},"timeoutSeconds":5} |
memcached.podSecurityContext | object | The SecurityContext override for memcached pods | {"fsGroup":11211,"runAsGroup":11211,"runAsNonRoot":true,"runAsUser":11211,"seccompProfile":{"type":"RuntimeDefault"}} |
memcached.priorityClassName | string | The name of the PriorityClass for memcached pods | nil |
memcached.readinessProbe | object | Readiness probe for memcached pods (probe port defaults to container port) | {"failureThreshold":6,"initialDelaySeconds":5,"periodSeconds":5,"tcpSocket":{"port":"client"},"timeoutSeconds":3} |
memcached.serviceAccount.annotations | object | Annotations for the service account | {} |
memcached.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | false |
memcached.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | true |
memcached.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
memcached.serviceAccount.labels | object | Labels for the service account | {} |
memcached.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
memcached.startupProbe | object | Startup probe for memcached pods | {} |
memcachedExporter
Configuration for the Prometheus Memcached exporter sidecar that exposes cache metrics.
| Key | Type | Description | Default |
|---|---|---|---|
memcachedExporter.containerSecurityContext | object | The SecurityContext for memcached exporter containers | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"runAsNonRoot":true,"seccompProfile":{"type":"RuntimeDefault"}} |
memcachedExporter.enabled | bool | Whether memcached metrics should be exported | true |
memcachedExporter.extraArgs | object | Extra args to add to the exporter container. Example: extraArgs: memcached.tls.enable: true memcached.tls.cert-file: /certs/cert.crt memcached.tls.key-file: /certs/cert.key memcached.tls.ca-file: /certs/ca.crt memcached.tls.insecure-skip-verify: false memcached.tls.server-name: memcached | {} |
memcachedExporter.image.pullPolicy | string | "IfNotPresent" | |
memcachedExporter.image.repository | string | "prom/memcached-exporter" | |
memcachedExporter.image.tag | string | "v0.16.0" | |
memcachedExporter.livenessProbe | object | Liveness probe for memcached exporter | {"failureThreshold":3,"httpGet":{"path":"/metrics","port":"http-metrics"},"initialDelaySeconds":30,"periodSeconds":10,"timeoutSeconds":5} |
memcachedExporter.readinessProbe | object | Readiness probe for memcached exporter | {"failureThreshold":3,"httpGet":{"path":"/metrics","port":"http-metrics"},"initialDelaySeconds":5,"periodSeconds":5,"timeoutSeconds":3} |
memcachedExporter.resizePolicy | list | Container resize policy for the memcached exporter Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
memcachedExporter.resources.limits | object | {} | |
memcachedExporter.resources.requests | object | {} | |
memcachedExporter.startupProbe | object | Startup probe for memcached exporter | {} |
migrate
Options that may be necessary when performing a migration from another helm chart
| Key | Type | Description | Default |
|---|---|---|---|
migrate.fromDistributed.enabled | bool | Set to true if migrating from a distributed helm chart | false |
migrate.fromDistributed.memberlistService | string | If migrating from a distributed service, provide the distributed deployment’s memberlist service DNS so the new deployment can join its ring. | "" |
monitoring
Monitoring section determines which monitoring features to enable
| Key | Type | Description | Default |
|---|---|---|---|
monitoring.additionalPrometheusRules | object | Additional PrometheusRule objects to create alongside the chart-managed ones. Each key becomes the resource name suffix; the value must contain a ‘groups’ key with standard Prometheus rule groups. Can contain both recording rules and alerts. e.g.: additionalPrometheusRules: my-alerts: groups: - name: my-loki-alerts rules: - alert: MyLokiAlert expr: ‘up{job=“loki”} == 0’ | {} |
monitoring.alerts.additionalAggregationLabels | list | Extra label dimensions added to all by() aggregation clauses in alert expressions | [] |
monitoring.alerts.additionalRuleAnnotations | object | Additional annotations applied to all individual alert rules | {} |
monitoring.alerts.additionalRuleLabels | object | Additional labels applied to all individual alert rules | {} |
monitoring.alerts.annotations | object | Additional annotations for the alerts PrometheusRule resource | {} |
monitoring.alerts.disabled | object | Selectively disable individual alerts by name. e.g.: disabled: { LokiRequestErrors: true } | {} |
monitoring.alerts.enabled | bool | If enabled, create a PrometheusRule resource with Loki alert rules | false |
monitoring.alerts.keepFiringFor | string | Global keepFiringFor applied to all alert rules | "" |
monitoring.alerts.labels | object | Additional labels for the alerts PrometheusRule resource | {} |
monitoring.alerts.overrides | object | Override for/severity on individual alerts. e.g.: overrides: { LokiRequestErrors: { for: 5m, severity: warning } } | {} |
monitoring.appInstanceLabelName | string | Label name for the app_instance label injected into scraped metrics and recording rules. | "app_instance" |
monitoring.appInstanceLabelValue | string | Value for the app_instance label injected into scraped metrics and recording rules. Supports Helm templating. | "{{ include \"loki.fullname\" . }}" |
monitoring.dashboards.annotations | object | Additional annotations for the dashboards ConfigMap resources | {} |
monitoring.dashboards.defaultDashboardsEditable | bool | Editable flag for the default dashboards | true |
monitoring.dashboards.defaultDashboardsInterval | string | Default interval for Grafana dashboards | "1m" |
monitoring.dashboards.defaultDashboardsTimezone | string | Timezone for the default dashboards | "utc" |
monitoring.dashboards.enabled | bool | If enabled, create configmap resources with dashboards for monitoring Loki | false |
monitoring.dashboards.grafanaOperator.annotations | object | Additional annotations for the GrafanaOperator resources | {} |
monitoring.dashboards.grafanaOperator.enabled | bool | If enabled, GrafanaOperator resources for Grafana Operator are created to deploy the dashboards. | false |
monitoring.dashboards.grafanaOperator.folder | string | Which folder contains all dashboards in Grafana # This folder will be created on the Root level # Only one of ‘folder’, ‘folderUID’ or ‘folderRef’ can be set # | "General" |
monitoring.dashboards.grafanaOperator.folderRef | string | Which GrafanaFolder reference contains all dashboards in Grafana # This allows you to use subfolder hierarchy. # Only one of ‘folder’, ‘folderUID’ or ‘folderRef’ can be set # | nil |
monitoring.dashboards.grafanaOperator.folderUID | string | Which UID of the target folder contains all dashboards in Grafana # This allows you to use subfolder hierarchy # Only one of ‘folder’, ‘folderUID’ or ‘folderRef’ can be set # | nil |
monitoring.dashboards.grafanaOperator.labels | object | Additional labels for the GrafanaOperator resources | {} |
monitoring.dashboards.grafanaOperator.resyncPeriod | string | How frequently the operator should resync resources (in duration format) | "10m" |
monitoring.dashboards.labels | object | Labels for the dashboards ConfigMap resources | {"grafana_dashboard":"1"} |
monitoring.multiCluster.clusterName | string | Value for the ‘cluster’ label. Supports Helm templating. When empty, recording rules and alerts are not modified — only dashboards show the cluster variable. e.g. clusterName: ‘{{ .Values.global.clusterName }}’ | "" |
monitoring.multiCluster.enabled | bool | When enabled, shows the cluster variable in dashboards. If clusterName is also set, the chart adds ‘cluster’ labels to scraped metrics, recording rules, and alerts, and includes ‘cluster’ in recording rule aggregations. If clusterName is left empty, only dashboard changes are applied — use this when an external tool (e.g. Grafana Alloy) manages cluster label injection and PromQL rewriting. | false |
monitoring.namespace | string | Alternative namespace to deploy all monitoring resources (ServiceMonitor, PrometheusRule, ConfigMap dashboards) in. Defaults to the release namespace. | nil |
monitoring.rules.additionalAggregationLabels | list | Extra label dimensions added to all by() aggregation clauses in recording rules | [] |
monitoring.rules.additionalRuleAnnotations | object | Additional annotations applied to all individual recording rules | {} |
monitoring.rules.additionalRuleLabels | object | Additional labels applied to all individual recording rules | {} |
monitoring.rules.annotations | object | Additional annotations for the PrometheusRule resource | {} |
monitoring.rules.enabled | bool | If enabled, create a PrometheusRule resource with Loki recording rules | false |
monitoring.rules.labels | object | Additional labels for the PrometheusRule resource | {} |
monitoring.serviceMonitor.annotations | object | ServiceMonitor annotations | {} |
monitoring.serviceMonitor.enabled | bool | If enabled, ServiceMonitor resources for Prometheus Operator are created | false |
monitoring.serviceMonitor.interval | string | ServiceMonitor scrape interval Default is 15s because included recording rules use a 1m rate, and scrape interval needs to be at least 1/4 rate interval. | "15s" |
monitoring.serviceMonitor.jobPrefix | string | The job label is required for the included dashboards to work. | "{{ include \"loki.namespace\" $ }}/" |
monitoring.serviceMonitor.labels | object | Additional ServiceMonitor labels | {} |
monitoring.serviceMonitor.metricRelabelings | list | ServiceMonitor metric relabel configs to apply to samples before ingestion https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint | [] |
monitoring.serviceMonitor.namespaceSelector | object | Namespace selector for ServiceMonitor resources | {} |
monitoring.serviceMonitor.relabelings | list | ServiceMonitor relabel configs to apply to samples before scraping https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig | [] |
monitoring.serviceMonitor.scheme | string | ServiceMonitor will use http by default, but you can pick https as well | "http" |
monitoring.serviceMonitor.scrapeTimeout | string | ServiceMonitor scrape timeout in Go duration format (e.g. 15s) | nil |
monitoring.serviceMonitor.tlsConfig | string | ServiceMonitor will use these tlsConfig settings to make the health check requests | nil |
networkPolicy
Configuration for the Kubernetes NetworkPolicies that control inbound and outbound traffic for Loki components.
| Key | Type | Description | Default |
|---|---|---|---|
networkPolicy.alertmanager.namespaceSelector | object | Specifies the namespace the Alertmanager is running in | {} |
networkPolicy.alertmanager.podSelector | object | Specifies the Alertmanager Pods. As this is cross-namespace communication, you also need the namespaceSelector. | {} |
networkPolicy.alertmanager.port | int | Specify the Alertmanager port used for alerting | 9093 |
networkPolicy.discovery.namespaceSelector | object | Specifies the namespace the discovery Pods are running in | {} |
networkPolicy.discovery.podSelector | object | Specifies the Pods labels used for discovery. As this is cross-namespace communication, you also need the namespaceSelector. | {} |
networkPolicy.discovery.port | int | Specify the port used for discovery | nil |
networkPolicy.enabled | bool | Specifies whether Network Policies should be created | false |
networkPolicy.externalStorage.cidrs | list | Specifies specific network CIDRs you want to limit access to | [] |
networkPolicy.externalStorage.ports | list | Specify the port used for external storage, e.g. AWS S3 | [] |
networkPolicy.ingress.namespaceSelector | object | Specifies the namespaces which are allowed to access the http port | {} |
networkPolicy.ingress.podSelector | object | Specifies the Pods which are allowed to access the http port. As this is cross-namespace communication, you also need the namespaceSelector. | {} |
networkPolicy.metrics.cidrs | list | Specifies specific network CIDRs which are allowed to access the metrics port. In case you use namespaceSelector, you also have to specify your kubelet networks here. The metrics ports are also used for probes. | [] |
networkPolicy.metrics.namespaceSelector | object | Specifies the namespaces which are allowed to access the metrics port | {} |
networkPolicy.metrics.podSelector | object | Specifies the Pods which are allowed to access the metrics port. As this is cross-namespace communication, you also need the namespaceSelector. | {} |
overridesExporter
Configuration for the overrides-exporter
| Key | Type | Description | Default |
|---|---|---|---|
overridesExporter.affinity | object | Affinity for overrides-exporter pods. The value will be passed through tpl. | Hard node anti-affinity |
overridesExporter.annotations | object | Annotations for overrides-exporter | {} |
overridesExporter.appProtocol | object | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of overridesExporter.service.appProtocol | {"grpc":""} |
overridesExporter.command | string | Command to execute instead of defined in Docker image | nil |
overridesExporter.dnsConfig | object | DNSConfig for overrides-exporter | {} |
overridesExporter.enabled | bool | The overrides-exporter component is optional and can be disabled if desired. | false |
overridesExporter.extraArgs | list | Additional CLI args for the overrides-exporter | [] |
overridesExporter.extraContainers | list | Containers to add to the overrides-exporter pods | [] |
overridesExporter.extraEnv | list | Environment variables to add to the overrides-exporter pods | [] |
overridesExporter.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the overrides-exporter pods | [] |
overridesExporter.extraVolumeMounts | list | Volume mounts to add to the overrides-exporter pods | [] |
overridesExporter.extraVolumes | list | Volumes to add to the overrides-exporter pods | [] |
overridesExporter.hostAliases | list | hostAliases to add | [] |
overridesExporter.hostUsers | string | Use the host’s user namespace in the overrides-exporter | nil |
overridesExporter.image.registry | string | The Docker registry for the overrides-exporter image. Overrides loki.image.registry | nil |
overridesExporter.image.repository | string | Docker image repository for the overrides-exporter image. Overrides loki.image.repository | nil |
overridesExporter.image.tag | string | Docker image tag for the overrides-exporter image. Overrides loki.image.tag | nil |
overridesExporter.initContainers | list | Init containers to add to the overrides-exporter pods | [] |
overridesExporter.kind | string | Kind of backend workload. StatefulSet and Deployment are supported. | "Deployment" |
overridesExporter.labels | object | Labels for overrides-exporter | {} |
overridesExporter.maxUnavailable | string | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | nil |
overridesExporter.nodeSelector | object | Node selector for overrides-exporter pods | {} |
overridesExporter.podAnnotations | object | Annotations for overrides-exporter pods | {} |
overridesExporter.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
overridesExporter.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
overridesExporter.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
overridesExporter.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
overridesExporter.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
overridesExporter.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
overridesExporter.podLabels | object | Labels for overrides-exporter pods | {} |
overridesExporter.priorityClassName | string | The name of the PriorityClass for overrides-exporter pods | nil |
overridesExporter.replicas | int | Number of replicas for the overrides-exporter. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
overridesExporter.resizePolicy | list | Container resize policy for the overrides-exporter Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
overridesExporter.resources | object | Resource requests and limits for the overrides-exporter | {} |
overridesExporter.service.annotations | object | Annotations for overrides-exporter Service | {} |
overridesExporter.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
overridesExporter.service.ipFamilies | list | ipFamilies for overrides-exporter Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
overridesExporter.service.ipFamilyPolicy | string | ipFamilyPolicy for overrides-exporter Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
overridesExporter.service.labels | object | Additional labels for overrides-exporter Service | {} |
overridesExporter.service.sessionAffinity | string | Session affinity for overrides-exporter Service | "" |
overridesExporter.service.sessionAffinityConfig | object | Session affinity config for overrides-exporter Service | {} |
overridesExporter.service.trafficDistribution | string | trafficDistribution for overrides-exporter Service | "" |
overridesExporter.service.type | string | Service Type for overrides-exporter Service | "ClusterIP" |
overridesExporter.serviceAccount.annotations | object | Annotations for the service account | {} |
overridesExporter.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
overridesExporter.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
overridesExporter.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
overridesExporter.serviceAccount.labels | object | Labels for the service account | {} |
overridesExporter.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
overridesExporter.serviceAnnotations | object | Annotations for overrides-exporter service @deprecated – This option is deprecated in favor of overridesExporter.service.annotations | {} |
overridesExporter.serviceLabels | object | Labels for overrides-exporter service @deprecated – This option is deprecated in favor of overridesExporter.service.labels | {} |
overridesExporter.terminationGracePeriodSeconds | int | Grace period to allow the overrides-exporter to shutdown before it is killed | 300 |
overridesExporter.topologySpreadConstraints | list | Topology Spread Constraints for overrides-exporter pods The value will be passed through tpl. | [] |
patternIngester
Configuration for the pattern ingester
| Key | Type | Description | Default |
|---|---|---|---|
patternIngester.affinity | object | Affinity for pattern ingester pods. The value will be passed through tpl. | Hard node anti-affinity |
patternIngester.annotations | object | Annotations for pattern ingester | {} |
patternIngester.appProtocol | object | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | {"grpc":""} |
patternIngester.command | string | Command to execute instead of defined in Docker image | nil |
patternIngester.dnsConfig | object | DNSConfig for pattern ingester pods | {} |
patternIngester.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | false |
patternIngester.extraArgs | list | Additional CLI args for the pattern ingester | [] |
patternIngester.extraContainers | list | Containers to add to the pattern ingester pods | [] |
patternIngester.extraEnv | list | Environment variables to add to the pattern ingester pods | [] |
patternIngester.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the pattern ingester pods | [] |
patternIngester.extraVolumeMounts | list | Volume mounts to add to the pattern ingester pods | [] |
patternIngester.extraVolumes | list | Volumes to add to the pattern ingester pods | [] |
patternIngester.hostAliases | list | hostAliases to add | [] |
patternIngester.hostUsers | string | Use the host’s user namespace in the pattern ingester | nil |
patternIngester.image.registry | string | The Docker registry for the pattern ingester image. Overrides loki.image.registry | nil |
patternIngester.image.repository | string | Docker image repository for the pattern ingester image. Overrides loki.image.repository | nil |
patternIngester.image.tag | string | Docker image tag for the pattern ingester image. Overrides loki.image.tag | nil |
patternIngester.initContainers | list | Init containers to add to the pattern ingester pods | [] |
patternIngester.kind | string | Kind of compactor deployment. StatefulSet and Deployment are supported. | "StatefulSet" |
patternIngester.labels | object | Labels for pattern ingester | {} |
patternIngester.livenessProbe | object | liveness probe settings for pattern ingester pods. If empty use loki.livenessProbe | {} |
patternIngester.maxUnavailable | string | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | nil |
patternIngester.nodeSelector | object | Node selector for pattern ingester pods | {} |
patternIngester.persistence.claims | list | List of the pattern ingester PVCs | |
patternIngester.persistence.claims[0].accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
patternIngester.persistence.claims[0].annotations | object | Annotations for pattern ingester PVCs | {} |
patternIngester.persistence.claims[0].labels | object | Labels for pattern ingester PVCs | {} |
patternIngester.persistence.claims[0].volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
patternIngester.persistence.enableStatefulSetAutoDeletePVC | bool | Enable StatefulSetAutoDeletePVC feature | false |
patternIngester.persistence.enabled | bool | Enable creating PVCs for the pattern ingester | false |
patternIngester.persistence.size | string | Size of persistent disk | "10Gi" |
patternIngester.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
patternIngester.podAnnotations | object | Annotations for pattern ingester pods | {} |
patternIngester.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
patternIngester.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
patternIngester.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
patternIngester.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
patternIngester.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
patternIngester.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
patternIngester.podLabels | object | Labels for pattern ingester pods | {} |
patternIngester.priorityClassName | string | The name of the PriorityClass for pattern ingester pods | nil |
patternIngester.readinessProbe | object | readiness probe settings for pattern ingester pods. If empty, use loki.readinessProbe | {} |
patternIngester.replicas | int | Number of replicas for the pattern ingester. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
patternIngester.resizePolicy | list | Container resize policy for the pattern ingester Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
patternIngester.resources | object | Resource requests and limits for the pattern ingester | {} |
patternIngester.serviceAccount.annotations | object | Annotations for the service account | {} |
patternIngester.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
patternIngester.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
patternIngester.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
patternIngester.serviceAccount.labels | object | Labels for the service account | {} |
patternIngester.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
patternIngester.startupProbe | object | startup probe settings for pattern ingester pods. If empty use loki.startupProbe | {} |
patternIngester.statefulSetRecreateJob | object | EXPERIMENTAL: Enable creating a Job to recreate the compactor StatefulSet when the compactor configuration is changed. # Only applicable if compactor.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. | {"enabled":false} |
patternIngester.strategy | object | UpdateStrategy or Strategy for the pattern ingester. | {"rollingUpdate":{"partition":0}} |
patternIngester.terminationGracePeriodSeconds | int | Grace period to allow the pattern ingester to shutdown before it is killed | 30 |
patternIngester.topologySpreadConstraints | list | Topology Spread Constraints for pattern ingester pods The value will be passed through tpl. | [] |
querier
Configuration for the querier
| Key | Type | Description | Default |
|---|---|---|---|
querier.affinity | object | Affinity for querier pods. The value will be passed through tpl. | Hard node anti-affinity |
querier.annotations | object | Annotations for querier | {} |
querier.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of querier.service.appProtocol.grpc | "" |
querier.autoscaling.behavior.enabled | bool | Enable autoscaling behaviours | false |
querier.autoscaling.behavior.scaleDown | object | define scale down policies, must conform to HPAScalingRules | {} |
querier.autoscaling.behavior.scaleUp | object | define scale up policies, must conform to HPAScalingRules | {} |
querier.autoscaling.customMetrics | list | Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics) | [] |
querier.autoscaling.enabled | bool | Enable autoscaling for the querier, this is only used if indexGateway.enabled: true | false |
querier.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the querier | 3 |
querier.autoscaling.minReplicas | int | Minimum autoscaling replicas for the querier | 1 |
querier.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilisation percentage for the querier | 60 |
querier.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilisation percentage for the querier | nil |
querier.command | string | Command to execute instead of defined in Docker image | nil |
querier.dnsConfig | object | DNSConfig for querier pods | {} |
querier.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | true |
querier.extraArgs | list | Additional CLI args for the querier | [] |
querier.extraContainers | list | Containers to add to the querier pods | [] |
querier.extraEnv | list | Environment variables to add to the querier pods | [] |
querier.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the querier pods | [] |
querier.extraVolumeMounts | list | Volume mounts to add to the querier pods | [] |
querier.extraVolumes | list | Volumes to add to the querier pods | [] |
querier.hostAliases | list | hostAliases to add | [] |
querier.hostUsers | string | Use the host’s user namespace in the querier | nil |
querier.image.registry | string | The Docker registry for the querier image. Overrides loki.image.registry | nil |
querier.image.repository | string | Docker image repository for the querier image. Overrides loki.image.repository | nil |
querier.image.tag | string | Docker image tag for the querier image. Overrides loki.image.tag | nil |
querier.initContainers | list | Init containers to add to the querier pods | [] |
querier.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
querier.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
querier.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the querier. Mutually exclusive with autoscaling.enabled | false |
querier.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
querier.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 10 |
querier.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 1 |
querier.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
querier.kedaAutoscaling.triggers | list | KEDA triggers for the querier. Defaults to a Prometheus trigger using inflight requests. | [{"metadata":{"authModes":"{{ .Values.defaults.kedaAutoscaling.authentication.authModes }}","customHeaders":"{{ .Values.defaults.kedaAutoscaling.customHeaders }}","ignoreNullValues":"{{ .Values.defaults.kedaAutoscaling.ignoreNullValues }}","query":"sum(max_over_time(loki_query_scheduler_inflight_requests{quantile=\"0.75\"}[2m]))","serverAddress":"{{ .Values.defaults.kedaAutoscaling.prometheusAddress }}","threshold":"4","unsafeSsl":"{{ .Values.defaults.kedaAutoscaling.unsafeSsl }}"},"name":"querier_autoscaling_metric","type":"prometheus"}] |
querier.kind | string | Kind of compactor deployment. StatefulSet and Deployment are supported. | "Deployment" |
querier.labels | object | Labels for querier | {} |
querier.maxSurge | int | Max Surge for querier pods | 0 |
querier.maxUnavailable | string | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | nil |
querier.nodeSelector | object | Node selector for querier pods | {} |
querier.podAnnotations | object | Annotations for querier pods | {} |
querier.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
querier.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
querier.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
querier.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
querier.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
querier.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
querier.podLabels | object | Labels for querier pods | {} |
querier.priorityClassName | string | The name of the PriorityClass for querier pods | nil |
querier.replicas | int | Number of replicas for the querier. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
querier.resizePolicy | list | Container resize policy for the querier Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
querier.resources | object | Resource requests and limits for the querier | {} |
querier.service.annotations | object | Annotations for querier Service | {} |
querier.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
querier.service.ipFamilies | list | ipFamilies for querier Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
querier.service.ipFamilyPolicy | string | ipFamilyPolicy for querier Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
querier.service.labels | object | Additional labels for querier Service | {} |
querier.service.sessionAffinity | string | Session affinity for querier Service | "" |
querier.service.sessionAffinityConfig | object | Session affinity config for querier Service | {} |
querier.service.trafficDistribution | string | trafficDistribution for querier Service | "" |
querier.service.type | string | Service Type for querier Service | "ClusterIP" |
querier.serviceAccount.annotations | object | Annotations for the service account | {} |
querier.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
querier.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
querier.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
querier.serviceAccount.labels | object | Labels for the service account | {} |
querier.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
querier.serviceAnnotations | object | Annotations for querier service @deprecated – This option is deprecated in favor of querier.service.annotations | {} |
querier.serviceLabels | object | Labels for querier service @deprecated – This option is deprecated in favor of querier.service.labels | {} |
querier.serviceType | string | Service type for querier service @deprecated – This option is deprecated in favor of querier.service.type | "ClusterIP" |
querier.strategy.rollingUpdate.maxUnavailable | int | Pod Disruption Budget maxUnavailable | 1 |
querier.terminationGracePeriodSeconds | int | Grace period to allow the querier to shutdown before it is killed | 30 |
querier.tolerations | list | Tolerations for querier pods | [] |
querier.topologySpreadConstraints | list | topologySpread for querier pods. The value will be passed through tpl. | Defaults to allow skew no more then 1 node |
querier.trafficDistribution | string | trafficDistribution for querier service | "" |
queryFrontend
Configuration for the query-frontend
| Key | Type | Description | Default |
|---|---|---|---|
queryFrontend.affinity | object | Affinity for query-frontend pods. The value will be passed through tpl. | Hard node anti-affinity |
queryFrontend.annotations | object | Annotations for query-frontend | {} |
queryFrontend.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of queryFrontend.service.appProtocol.grpc | "" |
queryFrontend.autoscaling.behavior.enabled | bool | Enable autoscaling behaviours | false |
queryFrontend.autoscaling.behavior.scaleDown | object | define scale down policies, must conform to HPAScalingRules | {} |
queryFrontend.autoscaling.behavior.scaleUp | object | define scale up policies, must conform to HPAScalingRules | {} |
queryFrontend.autoscaling.customMetrics | list | Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics) | [] |
queryFrontend.autoscaling.enabled | bool | Enable autoscaling for the query-frontend | false |
queryFrontend.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the query-frontend | 3 |
queryFrontend.autoscaling.minReplicas | int | Minimum autoscaling replicas for the query-frontend | 1 |
queryFrontend.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilisation percentage for the query-frontend | 60 |
queryFrontend.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilisation percentage for the query-frontend | nil |
queryFrontend.command | string | Command to execute instead of defined in Docker image | nil |
queryFrontend.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | true |
queryFrontend.extraArgs | list | Additional CLI args for the query-frontend | [] |
queryFrontend.extraContainers | list | Containers to add to the query-frontend pods | [] |
queryFrontend.extraEnv | list | Environment variables to add to the query-frontend pods | [] |
queryFrontend.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the query-frontend pods | [] |
queryFrontend.extraVolumeMounts | list | Volume mounts to add to the query-frontend pods | [] |
queryFrontend.extraVolumes | list | Volumes to add to the query-frontend pods | [] |
queryFrontend.hostAliases | list | hostAliases to add | [] |
queryFrontend.hostUsers | string | Use the host’s user namespace in the query-frontend | nil |
queryFrontend.image.registry | string | The Docker registry for the query-frontend image. Overrides loki.image.registry | nil |
queryFrontend.image.repository | string | Docker image repository for the query-frontend image. Overrides loki.image.repository | nil |
queryFrontend.image.tag | string | Docker image tag for the query-frontend image. Overrides loki.image.tag | nil |
queryFrontend.initContainers | list | init containers to add to the query-frontend pods | [] |
queryFrontend.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
queryFrontend.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
queryFrontend.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the query-frontend. Mutually exclusive with autoscaling.enabled | false |
queryFrontend.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
queryFrontend.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 3 |
queryFrontend.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 1 |
queryFrontend.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
queryFrontend.kedaAutoscaling.triggers | list | KEDA triggers for the query-frontend. Ref: https://keda.sh/docs/latest/scalers/ | [] |
queryFrontend.kind | string | Kind of compactor deployment. StatefulSet and Deployment are supported. | "Deployment" |
queryFrontend.labels | object | Labels for query-frontend | {} |
queryFrontend.loadBalancer | object | Enable load balancer port for query-frontend | {"enabled":true} |
queryFrontend.maxUnavailable | string | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | nil |
queryFrontend.nodeSelector | object | Node selector for query-frontend pods | {} |
queryFrontend.podAnnotations | object | Annotations for query-frontend pods | {} |
queryFrontend.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
queryFrontend.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
queryFrontend.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
queryFrontend.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
queryFrontend.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
queryFrontend.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
queryFrontend.podLabels | object | Labels for query-frontend pods | {} |
queryFrontend.priorityClassName | string | The name of the PriorityClass for query-frontend pods | nil |
queryFrontend.replicas | int | Number of replicas for the query-frontend. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
queryFrontend.resizePolicy | list | Container resize policy for the query-frontend Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
queryFrontend.resources | object | Resource requests and limits for the query-frontend | {} |
queryFrontend.service.annotations | object | Annotations for query-frontend Service | {} |
queryFrontend.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
queryFrontend.service.ipFamilies | list | ipFamilies for query-frontend Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
queryFrontend.service.ipFamilyPolicy | string | ipFamilyPolicy for query-frontend Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
queryFrontend.service.labels | object | Additional labels for query-frontend Service | {} |
queryFrontend.service.sessionAffinity | string | Session affinity for query-frontend Service | "" |
queryFrontend.service.sessionAffinityConfig | object | Session affinity config for query-frontend Service | {} |
queryFrontend.service.trafficDistribution | string | trafficDistribution for query-frontend Service | "" |
queryFrontend.service.type | string | Service Type for query-frontend Service | "ClusterIP" |
queryFrontend.serviceAccount.annotations | object | Annotations for the service account | {} |
queryFrontend.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
queryFrontend.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
queryFrontend.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
queryFrontend.serviceAccount.labels | object | Labels for the service account | {} |
queryFrontend.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
queryFrontend.serviceAnnotations | object | Annotations for query-frontend service @deprecated – This option is deprecated in favor of queryFrontend.service.annotations | {} |
queryFrontend.serviceLabels | object | Labels for query-frontend service @deprecated – This option is deprecated in favor of queryFrontend.service.labels | {} |
queryFrontend.serviceType | string | Service type for query-frontend service @deprecated – This option is deprecated in favor of queryFrontend.service.type | "ClusterIP" |
queryFrontend.strategy.rollingUpdate.maxUnavailable | int | Pod Disruption Budget maxUnavailable | 1 |
queryFrontend.terminationGracePeriodSeconds | int | Grace period to allow the query-frontend to shutdown before it is killed | 30 |
queryFrontend.topologySpreadConstraints | list | Topology Spread Constraints for query-frontend pods The value will be passed through tpl. | [] |
queryFrontend.trafficDistribution | string | trafficDistribution for query-frontend service | "" |
queryScheduler
Configuration for the query-scheduler
| Key | Type | Description | Default |
|---|---|---|---|
queryScheduler.affinity | object | Affinity for query-scheduler pods. The value will be passed through tpl. | Hard node anti-affinity |
queryScheduler.annotations | object | Annotations for query-scheduler | {} |
queryScheduler.appProtocol | object | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of queryScheduler.service.appProtocol | {"grpc":""} |
queryScheduler.dnsConfig | object | DNSConfig for query-scheduler | {} |
queryScheduler.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to Distributed. | true |
queryScheduler.extraArgs | list | Additional CLI args for the query-scheduler | [] |
queryScheduler.extraContainers | list | Containers to add to the query-scheduler pods | [] |
queryScheduler.extraEnv | list | Environment variables to add to the query-scheduler pods | [] |
queryScheduler.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the query-scheduler pods | [] |
queryScheduler.extraVolumeMounts | list | Volume mounts to add to the query-scheduler pods | [] |
queryScheduler.extraVolumes | list | Volumes to add to the query-scheduler pods | [] |
queryScheduler.hostAliases | list | hostAliases to add | [] |
queryScheduler.hostUsers | string | Use the host’s user namespace in the query-scheduler | nil |
queryScheduler.image.registry | string | The Docker registry for the query-scheduler image. Overrides loki.image.registry | nil |
queryScheduler.image.repository | string | Docker image repository for the query-scheduler image. Overrides loki.image.repository | nil |
queryScheduler.image.tag | string | Docker image tag for the query-scheduler image. Overrides loki.image.tag | nil |
queryScheduler.initContainers | list | init containers to add to the query-scheduler pods | [] |
queryScheduler.kind | string | Kind of query-scheduler deployment. StatefulSet and Deployment are supported. | "Deployment" |
queryScheduler.labels | object | Labels for query-scheduler | {} |
queryScheduler.maxUnavailable | int | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | 1 |
queryScheduler.nodeSelector | object | Node selector for query-scheduler pods | {} |
queryScheduler.podAnnotations | object | Annotations for query-scheduler pods | {} |
queryScheduler.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
queryScheduler.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
queryScheduler.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
queryScheduler.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
queryScheduler.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
queryScheduler.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
queryScheduler.podLabels | object | Labels for query-scheduler pods | {} |
queryScheduler.priorityClassName | string | The name of the PriorityClass for query-scheduler pods | nil |
queryScheduler.replicas | int | Number of replicas for the query-scheduler. It should be lower than -querier.max-concurrent to avoid generating back-pressure in queriers; it’s also recommended that this value evenly divides the latter Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
queryScheduler.resizePolicy | list | Container resize policy for the query-scheduler Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
queryScheduler.resources | object | Resource requests and limits for the query-scheduler | {} |
queryScheduler.service.annotations | object | Annotations for query-scheduler Service | {} |
queryScheduler.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
queryScheduler.service.ipFamilies | list | ipFamilies for query-scheduler Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
queryScheduler.service.ipFamilyPolicy | string | ipFamilyPolicy for query-scheduler Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
queryScheduler.service.labels | object | Additional labels for query-scheduler Service | {} |
queryScheduler.service.sessionAffinity | string | Session affinity for query-scheduler Service | "" |
queryScheduler.service.sessionAffinityConfig | object | Session affinity config for query-scheduler Service | {} |
queryScheduler.service.trafficDistribution | string | trafficDistribution for query-scheduler Service | "" |
queryScheduler.service.type | string | Service Type for query-scheduler Service | "ClusterIP" |
queryScheduler.serviceAccount.annotations | object | Annotations for the service account | {} |
queryScheduler.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
queryScheduler.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
queryScheduler.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
queryScheduler.serviceAccount.labels | object | Labels for the service account | {} |
queryScheduler.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
queryScheduler.serviceAnnotations | object | Annotations for query-scheduler service @deprecated – This option is deprecated in favor of queryScheduler.service.annotations | {} |
queryScheduler.serviceLabels | object | Labels for query-scheduler service @deprecated – This option is deprecated in favor of queryScheduler.service.labels | {} |
queryScheduler.serviceType | string | Service type for query-scheduler service @deprecated – This option is deprecated in favor of queryScheduler.service.type | "ClusterIP" |
queryScheduler.strategy.rollingUpdate.maxUnavailable | int | Pod Disruption Budget maxUnavailable | 1 |
queryScheduler.terminationGracePeriodSeconds | int | Grace period to allow the query-scheduler to shutdown before it is killed | 30 |
queryScheduler.topologySpreadConstraints | list | Topology Spread Constraints for query-scheduler pods The value will be passed through tpl. | [] |
queryScheduler.trafficDistribution | string | trafficDistribution for query-scheduler service | "" |
rbac
Configuration for the Kubernetes RBAC resources and Pod Security Policy settings created for Loki.
| Key | Type | Description | Default |
|---|---|---|---|
rbac.namespaced | bool | Whether to install RBAC in the namespace only or cluster-wide. Useful if you want to watch ConfigMap globally. | false |
rbac.sccAllowHostDirVolumePlugin | bool | Toggle this to true to allow the use of hostPath volumes on OpenShift | false |
rbac.sccEnabled | bool | For OpenShift set sccEnabled to ’true’ to use the SecurityContextConstraints. | false |
read
Configuration for the read pod(s)
| Key | Type | Description | Default |
|---|---|---|---|
read.affinity | object | Affinity for read pods. The value will be passed through tpl. | Hard node anti-affinity |
read.annotations | object | Annotations for read deployment | {} |
read.autoscaling.behavior | object | Behavior policies while scaling. | {} |
read.autoscaling.enabled | bool | Enable autoscaling for the read, this is only used if queryIndex.enabled: true | false |
read.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the read | 6 |
read.autoscaling.minReplicas | int | Minimum autoscaling replicas for the read | 2 |
read.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilisation percentage for the read | 60 |
read.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilisation percentage for the read | nil |
read.dnsConfig | object | DNS config for read pods | {} |
read.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to SimpleScalable. | true |
read.extraArgs | list | Additional CLI args for the read | [] |
read.extraContainers | list | Containers to add to the read pods | [] |
read.extraEnv | list | Environment variables to add to the read pods | [] |
read.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the read pods | [] |
read.extraVolumeMounts | list | Volume mounts to add to the read pods | [] |
read.extraVolumes | list | Volumes to add to the read pods | [] |
read.fullnameOverride | string | Override for the read fullname. By default, this is generated using the fullname template with “-backend” | "{{ include \"loki.name\" . }}-read" |
read.hostUsers | string | Use the host’s user namespace in the read pods. | nil |
read.image.registry | string | The Docker registry for the read image. Overrides loki.image.registry | nil |
read.image.repository | string | Docker image repository for the read image. Overrides loki.image.repository | nil |
read.image.tag | string | Docker image tag for the read image. Overrides loki.image.tag | nil |
read.initContainers | list | init containers to add to the read pods | [] |
read.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
read.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
read.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the read. Mutually exclusive with autoscaling.enabled | false |
read.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
read.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 6 |
read.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 2 |
read.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
read.kedaAutoscaling.triggers | list | KEDA triggers for the read. Ref: https://keda.sh/docs/latest/scalers/ | [] |
read.kind | string | Kind of read deployment. StatefulSet and Deployment are supported. | "Deployment" |
read.labels | object | Additional labels for read deployment | {} |
read.lifecycle | object | Lifecycle for the read container | {} |
read.livenessProbe | object | liveness probe settings for read pods. If empty, applies no livenessProbe | {} |
read.maxUnavailable | int | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | 1 |
read.nodeSelector | object | Node selector for read pods | {} |
read.podAnnotations | object | Annotations for read pods | {} |
read.podDisruptionBudget.annotations | object | Annotations for read Pod Disruption Budget | {} |
read.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget for read pods | true |
read.podDisruptionBudget.labels | object | Labels for read Pod Disruption Budget | {} |
read.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
read.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
read.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
read.podLabels | object | Additional labels for each read pod | {} |
read.priorityClassName | string | The name of the PriorityClass for read pods | nil |
read.replicas | int | Number of replicas for the read. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 3 |
read.resizePolicy | list | Container resize policy for the read Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
read.resources | object | Resource requests and limits for the read | {} |
read.selectorLabels | object | Additional selector labels for each read pod | {} |
read.service.annotations | object | Annotations for read Service | {} |
read.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
read.service.ipFamilies | list | ipFamilies for read Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
read.service.ipFamilyPolicy | string | ipFamilyPolicy for read Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
read.service.labels | object | Additional labels for read Service | {} |
read.service.sessionAffinity | string | Session affinity for read Service | "" |
read.service.sessionAffinityConfig | object | Session affinity config for read Service | {} |
read.service.trafficDistribution | string | trafficDistribution for read Service | "" |
read.service.type | string | Service Type for read Service | "ClusterIP" |
read.serviceAccount.annotations | object | Annotations for the service account | {} |
read.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
read.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
read.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
read.serviceAccount.labels | object | Labels for the service account | {} |
read.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
read.startupProbe | object | startup probe for the read pods. If empty, applies no startupProbe | {} |
read.strategy.rollingUpdate.maxUnavailable | int | Pod Disruption Budget maxUnavailable | 1 |
read.terminationGracePeriodSeconds | int | Grace period to allow the read to shutdown before it is killed | 30 |
read.topologySpreadConstraints | list | Topology Spread Constraints for read pods The value will be passed through tpl. | [] |
resultsCache
Configuration for the Memcached-based results-cache, which caches query results to speed up repeated queries.
| Key | Type | Description | Default |
|---|---|---|---|
resultsCache.addresses | string | Comma separated addresses list in DNS Service Discovery format | "dnssrvnoa+_memcached-client._tcp.{{ include \"loki.resourceName\" (dict \"ctx\" $ \"component\" \"results-cache\") }}.{{ include \"loki.namespace\" $ }}.svc.{{ .Values.global.clusterDomain }}" |
resultsCache.affinity | object | Affinity for results-cache pods | {} |
resultsCache.allocatedCPU | string | Amount of cpu allocated to results-cache for object storage (in integer or millicores). | "500m" |
resultsCache.allocatedMemory | int | Amount of memory allocated to results-cache for object storage (in MB). | 1024 |
resultsCache.annotations | object | Annotations for the results-cache pods | {} |
resultsCache.connectionLimit | int | Maximum number of connections allowed | 16384 |
resultsCache.defaultValidity | string | Specify how long cached results should be stored in the results-cache before being expired | "12h" |
resultsCache.dnsConfig | object | DNSConfig for results-cache | {} |
resultsCache.enabled | bool | Specifies whether memcached based results-cache should be enabled | true |
resultsCache.extraArgs | object | Additional CLI args for results-cache | {} |
resultsCache.extraContainers | list | Additional containers to be added to the results-cache pod. | [] |
resultsCache.extraExtendedOptions | string | Add extended options for results-cache memcached container. The format is the same as for the memcached -o/–extend flag. Example: extraExtendedOptions: ’tls,modern,track_sizes’ | "" |
resultsCache.extraVolumeMounts | list | Additional volume mounts to be added to the results-cache pod (applies to both memcached and exporter containers). Example: extraVolumeMounts: - name: extra-volume mountPath: /etc/extra-volume readOnly: true | [] |
resultsCache.extraVolumes | list | Additional volumes to be added to the results-cache pod (applies to both memcached and exporter containers). Example: extraVolumes: - name: extra-volume secret: secretName: extra-volume-secret | [] |
resultsCache.hostUsers | string | Use the host’s user namespace in results-cache pods | nil |
resultsCache.initContainers | list | Extra init containers for results-cache pods | [] |
resultsCache.maxItemMemory | int | Maximum item results-cache for memcached (in MB). | 5 |
resultsCache.maxUnavailable | int | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | 1 |
resultsCache.nodeSelector | object | Node selector for results-cache pods | {} |
resultsCache.persistence.enabled | bool | Enable creating PVCs for the results-cache | false |
resultsCache.persistence.labels | object | PVC additional labels | {} |
resultsCache.persistence.mountPath | string | Volume mount path | "/data" |
resultsCache.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
resultsCache.persistence.storageSize | string | Size of persistent disk, must be in G or Gi | "10G" |
resultsCache.persistence.volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
resultsCache.podAnnotations | object | Annotations for results-cache pods | {} |
resultsCache.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
resultsCache.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
resultsCache.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
resultsCache.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
resultsCache.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
resultsCache.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
resultsCache.podLabels | object | Labels for results-cache pods | {} |
resultsCache.podManagementPolicy | string | Management policy for results-cache pods | "Parallel" |
resultsCache.port | int | Port of the results-cache service | 11211 |
resultsCache.priorityClassName | string | The name of the PriorityClass for results-cache pods | nil |
resultsCache.replicas | int | Total number of results-cache replicas | 1 |
resultsCache.resizePolicy | list | Container resize policy for the results-cache Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
resultsCache.resources | object | Resource requests and limits for the results-cache By default a safe memory limit will be requested based on allocatedMemory value (floor (* 1.2 allocatedMemory)). | {} |
resultsCache.service | object | Service annotations and labels | {"annotations":{},"labels":{}} |
resultsCache.statefulStrategy | object | Stateful results-cache strategy | {"type":"RollingUpdate"} |
resultsCache.terminationGracePeriodSeconds | int | Grace period to allow the results-cache to shutdown before it is killed | 60 |
resultsCache.timeout | string | Memcached operation timeout | "500ms" |
resultsCache.tolerations | list | Tolerations for results-cache pods | [] |
resultsCache.topologySpreadConstraints | list | topologySpreadConstraints allows to customize the default topologySpreadConstraints. This can be either a single dict as shown below or a slice of topologySpreadConstraints. labelSelector is taken from the constraint itself (if it exists) or is generated by the chart using the same selectors as for services. | [] |
resultsCache.writebackBuffer | int | Max number of objects to use for cache write back | 500000 |
resultsCache.writebackParallelism | int | Number of parallel threads for cache write back | 1 |
resultsCache.writebackSizeLimit | string | Max memory to use for cache write back | "500MB" |
rollout_operator
Setting for the Grafana Rollout Operator https://github.com/grafana/helm-charts/tree/main/charts/rollout-operator
| Key | Type | Description | Default |
|---|---|---|---|
rollout_operator.podSecurityContext | object | podSecurityContext is the pod security context for the rollout operator. When installing on OpenShift, override podSecurityContext settings with rollout_operator: podSecurityContext: fsGroup: null runAsGroup: null runAsUser: null | {"fsGroup":10001,"runAsGroup":10001,"runAsNonRoot":true,"runAsUser":10001,"seccompProfile":{"type":"RuntimeDefault"}} |
rollout_operator.webhooks.enabled | bool | Enable the rollout-operator webhooks. See https://github.com/grafana/rollout-operator/#webhooks. Note that the webhooks require custom resource definitions. If upgrading, manually apply the files in the crds directory. | true |
rollout_operator.webhooks.failurePolicy | string | Validating and mutating webhook failure policy. Ignore or Fail. | "Ignore" |
rollout_operator.webhooks.timeoutSeconds | int | Timeout in seconds for the prepare-downscale mutating webhook. Must be between 1 and 30. | 10 |
route
Gateway API routes for direct routing to Loki services, bypassing the nginx gateway. Use either this or the top-level ingress, but not both at once. Each entry in the map creates a separate HTTPRoute resource. The key “main” produces a route named after the loki fullname; any other key appends the key as a suffix. This allows defining multiple routes, e.g. one HTTPRoute and one GRPCRoute.
| Key | Type | Description | Default |
|---|---|---|---|
route.main.additionalRules | list | Additional rules to prepend before the generated path-routing rules. Each entry is rendered into spec.rules as written (templating is supported), so any HTTPRoute/GRPCRoute rule shape is accepted — including filter-only rules with no backendRefs (e.g. RequestRedirect, URLRewrite). | [] |
route.main.annotations | object | Annotations for the route | {} |
route.main.apiVersion | string | Gateway API version to use. Auto-detected from cluster capabilities if empty. | "" |
route.main.backendPort | string | Backend port override for all generated rules. When unset, GRPCRoute automatically uses loki.server.grpc_listen_port (default 9095) and all other kinds use loki.server.http_listen_port (default 3100). | nil |
route.main.enabled | bool | Specifies whether this Gateway API route should be created | false |
route.main.hostnames | list | Hostnames for the route | [] |
route.main.kind | string | Kind of the route resource. Valid options are GRPCRoute, HTTPRoute, TCPRoute, TLSRoute, UDPRoute | "HTTPRoute" |
route.main.labels | object | Labels for the route | {} |
route.main.parentRefs | list | Parent references for the route (required for Gateway API) | [] |
route.main.paths.compactor | list | Paths that are exposed by Loki Compactor. If deployment mode is Distributed, the requests are forwarded to the service. If deployment mode is SimpleScalable, the requests are forwarded to k8s service. If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service. | ["/loki/api/v1/delete"] |
route.main.paths.distributor | list | Paths that are exposed by Loki Distributor. If deployment mode is Distributed, the requests are forwarded to the service: {{"loki.distributorFullname"}}. If deployment mode is SimpleScalable, the requests are forwarded to write k8s service: {{"loki.writeFullname"}}. If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service: {{"loki.fullname"}} | ["/api/prom/push","/loki/api/v1/push","/otlp/v1/logs"] |
route.main.paths.queryFrontend | list | Paths that are exposed by Loki Query Frontend. If deployment mode is Distributed, the requests are forwarded to the service. If deployment mode is SimpleScalable, the requests are forwarded to read k8s service. If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service` | ["/api/prom/query","/api/prom/label","/api/prom/series","/api/prom/tail","/loki/api/v1/query","/loki/api/v1/query_range","/loki/api/v1/tail","/loki/api/v1/label","/loki/api/v1/labels","/loki/api/v1/series","/loki/api/v1/index/stats","/loki/api/v1/index/volume","/loki/api/v1/index/volume_range","/loki/api/v1/format_query","/loki/api/v1/detected_field","/loki/api/v1/detected_fields","/loki/api/v1/detected_labels","/loki/api/v1/patterns","/ui"] |
route.main.paths.ruler | list | Paths that are exposed by Loki Ruler. If deployment mode is Distributed, the requests are forwarded to the service. If deployment mode is SimpleScalable, the requests are forwarded to k8s service. If deployment mode is SingleBinary, the requests are forwarded to the central/single k8s service. | ["/api/prom/rules","/api/prom/api/v1/rules","/api/prom/api/v1/alerts","/loki/api/v1/rules","/prometheus/api/v1/rules","/prometheus/api/v1/alerts"] |
ruler
Configuration for the ruler
| Key | Type | Description | Default |
|---|---|---|---|
ruler.affinity | object | Affinity for ruler pods. The value will be passed through tpl. | Hard node anti-affinity |
ruler.annotations | object | Annotations for ruler | {} |
ruler.appProtocol | object | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” @deprecated – This option is deprecated in favor of ruler.service.appProtocol | {"grpc":""} |
ruler.command | string | Command to execute instead of defined in Docker image | nil |
ruler.directories | object | Directories containing rules files. If used, you must also configure loki.rulerConfig.storage to use local storage. | {} |
ruler.dnsConfig | object | DNSConfig for ruler pods | {} |
ruler.enabled | bool | The ruler component is optional and can be disabled if desired. | true |
ruler.extraArgs | list | Additional CLI args for the ruler | [] |
ruler.extraContainers | list | Containers to add to the ruler pods | [] |
ruler.extraEnv | list | Environment variables to add to the ruler pods | [] |
ruler.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the ruler pods | [] |
ruler.extraVolumeMounts | list | Volume mounts to add to the ruler pods | [] |
ruler.extraVolumes | list | Volumes to add to the ruler pods | [] |
ruler.hostAliases | list | hostAliases to add | [] |
ruler.hostUsers | string | Use the host’s user namespace in the ruler | nil |
ruler.image.registry | string | The Docker registry for the ruler image. Overrides loki.image.registry | nil |
ruler.image.repository | string | Docker image repository for the ruler image. Overrides loki.image.repository | nil |
ruler.image.tag | string | Docker image tag for the ruler image. Overrides loki.image.tag | nil |
ruler.initContainers | list | Init containers to add to the ruler pods | [] |
ruler.kind | string | Kind of ruler deployment. StatefulSet and Deployment are supported. | "StatefulSet" |
ruler.labels | object | Labels for ruler | {} |
ruler.maxUnavailable | string | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | nil |
ruler.nodeSelector | object | Node selector for ruler pods | {} |
ruler.persistence.accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
ruler.persistence.annotations | object | Annotations for ruler PVCs | {} |
ruler.persistence.enabled | bool | Enable creating PVCs which is required when using recording rules | false |
ruler.persistence.labels | object | Labels for ruler PVCs | {} |
ruler.persistence.size | string | Size of persistent disk | "10Gi" |
ruler.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
ruler.persistence.volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
ruler.podAnnotations | object | Annotations for ruler pods | {} |
ruler.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
ruler.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
ruler.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
ruler.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
ruler.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
ruler.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
ruler.podLabels | object | Labels for ruler pods | {} |
ruler.priorityClassName | string | The name of the PriorityClass for ruler pods | nil |
ruler.replicas | int | Number of replicas for the ruler. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
ruler.resizePolicy | list | Container resize policy for the ruler Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
ruler.resources | object | Resource requests and limits for the ruler | {} |
ruler.service.annotations | object | Annotations for ruler Service | {} |
ruler.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
ruler.service.ipFamilies | list | ipFamilies for ruler Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
ruler.service.ipFamilyPolicy | string | ipFamilyPolicy for ruler Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
ruler.service.labels | object | Additional labels for ruler Service | {} |
ruler.service.sessionAffinity | string | Session affinity for ruler Service | "" |
ruler.service.sessionAffinityConfig | object | Session affinity config for ruler Service | {} |
ruler.service.trafficDistribution | string | trafficDistribution for ruler Service | "" |
ruler.service.type | string | Service Type for ruler Service | "ClusterIP" |
ruler.serviceAccount.annotations | object | Annotations for the service account | {} |
ruler.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
ruler.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
ruler.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
ruler.serviceAccount.labels | object | Labels for the service account | {} |
ruler.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
ruler.serviceAnnotations | object | Annotations for ruler service @deprecated – This option is deprecated in favor of ruler.service.annotations | {} |
ruler.serviceLabels | object | Labels for ruler service @deprecated – This option is deprecated in favor of ruler.service.labels | {} |
ruler.sidecar | bool | Whether to enable the rules sidecar | false |
ruler.statefulSetRecreateJob | object | EXPERIMENTAL: Enable creating a Job to recreate the ruler StatefulSet when the ruler configuration is changed. # Only applicable if ruler.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. | {"enabled":false} |
ruler.terminationGracePeriodSeconds | int | Grace period to allow the ruler to shutdown before it is killed | 300 |
ruler.topologySpreadConstraints | list | Topology Spread Constraints for ruler pods The value will be passed through tpl. | [] |
serviceAccount
Configuration for the Kubernetes ServiceAccount used by Loki components.
| Key | Type | Description | Default |
|---|---|---|---|
serviceAccount.annotations | object | Annotations for the service account | {} |
serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | true |
serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
serviceAccount.labels | object | Labels for the service account | {} |
serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
sidecar
Configuration for the k8s-sidecar container that watches for ConfigMaps and Secrets (such as rules and dashboards) and loads them into Loki.
| Key | Type | Description | Default |
|---|---|---|---|
sidecar.disableX509StrictVerification | bool | Set to true to disable strict x509 verification for kube api calls. | false |
sidecar.enableUniqueFilenames | bool | Ensure that rule files aren’t conflicting and being overwritten by prefixing their name with the namespace they are defined in. | false |
sidecar.image.pullPolicy | string | Docker image pull policy | "IfNotPresent" |
sidecar.image.registry | string | "docker.io" | |
sidecar.image.repository | string | The Docker registry and image for the k8s sidecar | "kiwigrid/k8s-sidecar" |
sidecar.image.sha | string | Docker image sha. If empty, no sha will be used | "" |
sidecar.image.tag | string | Docker image tag | "2.8.0" |
sidecar.livenessProbe | object | Liveness probe definition. | {"enabled":true,"failureThreshold":3,"httpGet":{"path":"/healthz","port":"http-sidecar"},"initialDelaySeconds":30,"periodSeconds":30,"successThreshold":1,"timeoutSeconds":1} |
sidecar.readinessProbe | object | Readiness probe definition. | {"enabled":true,"failureThreshold":3,"httpGet":{"path":"/healthz","port":"http-sidecar"},"initialDelaySeconds":3,"periodSeconds":10,"successThreshold":1,"timeoutSeconds":1} |
sidecar.resizePolicy | list | Container resize policy for the sidecar Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
sidecar.resources | object | Resource requests and limits for the sidecar | {} |
sidecar.rules.enabled | bool | Whether or not to create a sidecar to ingest rule from specific ConfigMaps and/or Secrets. | true |
sidecar.rules.folder | string | Folder into which the rules will be placed. | "/rules" |
sidecar.rules.folderAnnotation | string | The annotation overwriting the folder value. The annotation value can be either an absolute or a relative path. Relative paths will be relative to FOLDER. Useful for multi-tenancy setups. | nil |
sidecar.rules.healthPort | int | Health Server port of the sidecar container. | 8080 |
sidecar.rules.label | string | Label that the configmaps/secrets with rules will be marked with. | "loki_rule" |
sidecar.rules.labelValue | string | Label value that the configmaps/secrets with rules will be set to. | "" |
sidecar.rules.logLevel | string | Log level of the sidecar container. | "INFO" |
sidecar.rules.resource | string | Search in configmap, secret, or both. | "both" |
sidecar.rules.script | string | Absolute path to the shell script to execute after a configmap or secret has been reloaded. | nil |
sidecar.rules.searchNamespace | string | Comma separated list of namespaces. If specified, the sidecar will search for config-maps/secrets inside these namespaces. Otherwise the namespace in which the sidecar is running will be used. It’s also possible to specify ‘ALL’ to search in all namespaces. | nil |
sidecar.rules.watchClientTimeout | int | WatchClientTimeout: is a client-side timeout, configuring your local socket. If you have a network outage dropping all packets with no RST/FIN, this is how long your client waits before realizing & dropping the connection. Defaults to 66sec. | 60 |
sidecar.rules.watchMethod | string | 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. | "WATCH" |
sidecar.rules.watchServerTimeout | int | WatchServerTimeout: request to the server, asking it to cleanly close the connection after that. defaults to 60sec; much higher values like 3600 seconds (1h) are feasible for non-Azure K8S. | 60 |
sidecar.securityContext | object | The SecurityContext for the sidecar. | {"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]},"readOnlyRootFilesystem":true,"seccompProfile":{"type":"RuntimeDefault"}} |
sidecar.skipTlsVerify | bool | Set to true to skip tls verification for kube api calls. | false |
sidecar.startupProbe | object | Startup probe definition. | {"enabled":false} |
singleBinary
Configuration for the single binary node(s) used in Monolithic deployment mode, where all Loki components run in a single process.
| Key | Type | Description | Default |
|---|---|---|---|
singleBinary.affinity | object | Affinity for single binary pods. The value will be passed through tpl. | Hard node anti-affinity |
singleBinary.annotations | object | Annotations for single binary StatefulSet | {} |
singleBinary.autoscaling.behavior.enabled | bool | Enable autoscaling behaviours | false |
singleBinary.autoscaling.behavior.scaleDown | object | define scale down policies, must conform to HPAScalingRules | {} |
singleBinary.autoscaling.behavior.scaleUp | object | define scale up policies, must conform to HPAScalingRules | {} |
singleBinary.autoscaling.customMetrics | list | Allows one to define custom metrics using the HPA/v2 schema (for example, Pods, Object or External metrics) | [] |
singleBinary.autoscaling.enabled | bool | Enable autoscaling | false |
singleBinary.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the single binary | 3 |
singleBinary.autoscaling.minReplicas | int | Minimum autoscaling replicas for the single binary | 1 |
singleBinary.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilisation percentage for the single binary | 60 |
singleBinary.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilisation percentage for the single binary | nil |
singleBinary.dnsConfig | object | {} | |
singleBinary.enabled | bool | Enable the single binary component. Requires loki.deploymentMode to be set to SingleBinary. | true |
singleBinary.extraArgs | list | Labels for single binary service | [] |
singleBinary.extraContainers | list | Extra containers to add to the single binary loki pod | [] |
singleBinary.extraEnv | list | Environment variables to add to the single binary pods | [] |
singleBinary.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the single binary pods | [] |
singleBinary.extraVolumeMounts | list | Volume mounts to add to the single binary pods | [] |
singleBinary.extraVolumes | list | Volumes to add to the single binary pods | [] |
singleBinary.hostUsers | string | Use the host’s user namespace in the single binary pods | nil |
singleBinary.image.registry | string | The Docker registry for the single binary image. Overrides loki.image.registry | nil |
singleBinary.image.repository | string | Docker image repository for the single binary image. Overrides loki.image.repository | nil |
singleBinary.image.tag | string | Docker image tag for the single binary image. Overrides loki.image.tag | nil |
singleBinary.initContainers | list | Init containers to add to the single binary pods | [] |
singleBinary.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
singleBinary.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
singleBinary.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the single binary. Mutually exclusive with autoscaling.enabled | false |
singleBinary.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
singleBinary.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 3 |
singleBinary.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 1 |
singleBinary.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
singleBinary.kedaAutoscaling.triggers | list | KEDA triggers for the single binary. Ref: https://keda.sh/docs/latest/scalers/ | [] |
singleBinary.kind | string | Kind of read deployment. StatefulSet and Deployment are supported. | "StatefulSet" |
singleBinary.labels | object | Additional labels for single binary StatefulSet | {} |
singleBinary.nodeSelector | object | Node selector for single binary pods | {} |
singleBinary.persistence.accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
singleBinary.persistence.annotations | object | Annotations for volume claim | {} |
singleBinary.persistence.dataVolumeParameters | object | Parameters used for the storage volume when persistence.enabled is false. Allows replacing the default emptyDir volume with a custom volume definition. For example, to use an existing PVC: dataVolumeParameters: persistentVolumeClaim: claimName: my-existing-pvc | {} |
singleBinary.persistence.enableStatefulSetAutoDeletePVC | bool | Enable StatefulSetAutoDeletePVC feature | false |
singleBinary.persistence.enabled | bool | Enable persistent disk | true |
singleBinary.persistence.labels | object | Labels for volume claim | {} |
singleBinary.persistence.selector | string | Selector for persistent disk | nil |
singleBinary.persistence.size | string | Size of persistent disk | "10Gi" |
singleBinary.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
singleBinary.persistence.whenDeleted | string | What to do with the volumes when the StatefulSet is deleted. | "Delete" |
singleBinary.persistence.whenScaled | string | What to do with the volume when the StatefulSet is scaled down. | "Delete" |
singleBinary.podAnnotations | object | Annotations for single binary pods | {} |
singleBinary.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
singleBinary.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
singleBinary.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
singleBinary.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
singleBinary.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
singleBinary.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
singleBinary.podLabels | object | Additional labels for each single binary pod | {} |
singleBinary.podManagementPolicy | string | The default is to deploy all pods in parallel. | "Parallel" |
singleBinary.priorityClassName | string | The name of the PriorityClass for single binary pods | nil |
singleBinary.replicas | int | Number of replicas for the single binary. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 0 |
singleBinary.resizePolicy | list | Container resize policy for the single binary Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
singleBinary.resources | object | Resource requests and limits for the single binary | {} |
singleBinary.selectorLabels | object | Additional selector labels for each single binary pod | {} |
singleBinary.service.annotations | object | Annotations for single binary Service | {} |
singleBinary.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
singleBinary.service.ipFamilies | list | ipFamilies for single binary Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
singleBinary.service.ipFamilyPolicy | string | ipFamilyPolicy for single binary Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
singleBinary.service.labels | object | Additional labels for single binary Service | {} |
singleBinary.service.sessionAffinity | string | Session affinity for single binary Service | "" |
singleBinary.service.sessionAffinityConfig | object | Session affinity config for single binary Service | {} |
singleBinary.service.trafficDistribution | string | trafficDistribution single binary Service | "" |
singleBinary.service.type | string | Service Type for single binary Service | "ClusterIP" |
singleBinary.sidecar | bool | Whether to enable the rules sidecar | true |
singleBinary.statefulSetRecreateJob | object | EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed. # Only applicable if compactor.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. | {"enabled":false} |
singleBinary.strategy | object | UpdateStrategy or Strategy for single binary. | {"rollingUpdate":{"partition":0}} |
singleBinary.targetModule | string | Comma-separated list of Loki modules to load for the single binary | "all" |
singleBinary.terminationGracePeriodSeconds | int | Grace period to allow the single binary to shutdown before it is killed | 30 |
singleBinary.tolerations | list | Tolerations for single binary pods | [] |
singleBinary.topologySpreadConstraints | list | Topology Spread Constraints for single binary pods The value will be passed through tpl. | [] |
tableManager
DEPRECATED Configuration for the table-manager. The table-manager is only necessary when using a deprecated index type such as Cassandra, Bigtable, or DynamoDB, it has not been necessary since loki introduced self- contained index types like ‘boltdb-shipper’ and ’tsdb’. This will be removed in a future helm chart.
| Key | Type | Description | Default |
|---|---|---|---|
tableManager.affinity | object | Affinity for table-manager pods. The value will be passed through tpl. | Hard node and anti-affinity |
tableManager.annotations | object | Annotations for table-manager deployment | {} |
tableManager.command | string | Command to execute instead of defined in Docker image | nil |
tableManager.dnsConfig | object | DNS config table-manager pods | {} |
tableManager.enabled | bool | Specifies whether the table-manager should be enabled | false |
tableManager.extraArgs | list | Additional CLI args for the table-manager | [] |
tableManager.extraContainers | list | Containers to add to the table-manager pods | [] |
tableManager.extraEnv | list | Environment variables to add to the table-manager pods | [] |
tableManager.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the table-manager pods | [] |
tableManager.extraVolumeMounts | list | Volume mounts to add to the table-manager pods | [] |
tableManager.extraVolumes | list | Volumes to add to the table-manager pods | [] |
tableManager.hostUsers | string | Use the host’s user namespace in table-manager pods | nil |
tableManager.image.registry | string | The Docker registry for the table-manager image. Overrides loki.image.registry | nil |
tableManager.image.repository | string | Docker image repository for the table-manager image. Overrides loki.image.repository | nil |
tableManager.image.tag | string | Docker image tag for the table-manager image. Overrides loki.image.tag | nil |
tableManager.nodeSelector | object | Node selector for table-manager pods | {} |
tableManager.podAnnotations | object | Annotations for table-manager pods | {} |
tableManager.podLabels | object | Labels for table-manager pods | {} |
tableManager.priorityClassName | string | The name of the PriorityClass for table-manager pods | nil |
tableManager.resizePolicy | list | Container resize policy for the table-manager Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
tableManager.resources | object | Resource requests and limits for the table-manager | {} |
tableManager.retention_deletes_enabled | bool | Enable deletes by retention | false |
tableManager.retention_period | int | Set retention period | 0 |
tableManager.service.annotations | object | Annotations for table-manager Service | {} |
tableManager.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
tableManager.service.ipFamilies | list | ipFamilies for table-manager Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
tableManager.service.ipFamilyPolicy | string | ipFamilyPolicy for table-manager Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
tableManager.service.labels | object | Additional labels for table-manager Service | {} |
tableManager.service.sessionAffinity | string | Session affinity for table-manager Service | "" |
tableManager.service.sessionAffinityConfig | object | Session affinity config for table-manager Service | {} |
tableManager.service.trafficDistribution | string | trafficDistribution for table-manager Service | "" |
tableManager.service.type | string | Service Type for table-manager Service | "ClusterIP" |
tableManager.serviceAccount.annotations | object | Annotations for the service account | {} |
tableManager.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
tableManager.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
tableManager.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
tableManager.serviceAccount.labels | object | Labels for the service account | {} |
tableManager.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
tableManager.terminationGracePeriodSeconds | int | Grace period to allow the table-manager to shutdown before it is killed | 30 |
tableManager.tolerations | list | Tolerations for table-manager pods | [] |
test
Section for configuring optional Helm test
| Key | Type | Description | Default |
|---|---|---|---|
test.annotations | object | Additional annotations for test pods | {} |
test.canaryServiceAddress | string | Used to directly query the metrics endpoint of the canary for testing, this approach avoids needing prometheus for testing. This in a newer approach to using prometheusAddress such that tests do not have a dependency on prometheus | "http://{{ include \"loki-canary.fullname\" $ }}.{{ include \"loki.namespace\" $ }}.svc.{{ .Values.global.clusterDomain }}:3500/metrics" |
test.hostUsers | string | Use the host’s user namespace in test pods | nil |
test.image.digest | string | Overrides the image tag with an image digest | nil |
test.image.pullPolicy | string | Docker image pull policy | "IfNotPresent" |
test.image.registry | string | The Docker registry | "docker.io" |
test.image.repository | string | Docker image repository | "grafana/loki-helm-test" |
test.image.tag | string | Overrides the image tag whose default is the chart’s appVersion | "latest" |
test.labels | object | Additional labels for the test pods | {} |
test.prometheusAddress | string | Address of the prometheus server to query for the test. This overrides any value set for canaryServiceAddress. This is kept for backward compatibility and may be removed in future releases. Previous value was ‘http://prometheus:9090’ | "" |
test.timeout | string | Number of times to retry the test before failing | "1m" |
write
Configuration for the write pod(s) in SimpleScalable mode, which run the distributor and ingester components.
| Key | Type | Description | Default |
|---|---|---|---|
write.affinity | object | Affinity for write pods. The value will be passed through tpl. | Hard node anti-affinity |
write.annotations | object | Annotations for write StatefulSet | {} |
write.autoscaling.behavior.scaleUp | object | see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details | {"policies":[{"periodSeconds":900,"type":"Pods","value":1}]} |
write.autoscaling.enabled | bool | Enable autoscaling for the write. | false |
write.autoscaling.maxReplicas | int | Maximum autoscaling replicas for the write. | 6 |
write.autoscaling.minReplicas | int | Minimum autoscaling replicas for the write. | 2 |
write.autoscaling.targetCPUUtilizationPercentage | int | Target CPU utilisation percentage for the write. | 60 |
write.autoscaling.targetMemoryUtilizationPercentage | string | Target memory utilization percentage for the write. | nil |
write.dnsConfig | object | DNS config for write pods | {} |
write.enabled | bool | Enable the component. Requires loki.deploymentMode to be set to SimpleScalable. | true |
write.extraArgs | list | Additional CLI args for the write | [] |
write.extraContainers | list | Containers to add to the write pods | [] |
write.extraEnv | list | Environment variables to add to the write pods | [] |
write.extraEnvFrom | list | Environment variables from secrets or configmaps to add to the write pods | [] |
write.extraVolumeClaimTemplates | list | volumeClaimTemplates to add to StatefulSet | [] |
write.extraVolumeMounts | list | Volume mounts to add to the write pods | [] |
write.extraVolumes | list | Volumes to add to the write pods | [] |
write.fullnameOverride | string | Override for the write fullname. By default, this is generated using the fullname template with “-backend” | "{{ include \"loki.name\" . }}-write" |
write.hostUsers | string | Use the host’s user namespace in the write pods. | nil |
write.image.registry | string | The Docker registry for the write image. Overrides loki.image.registry | nil |
write.image.repository | string | Docker image repository for the write image. Overrides loki.image.repository | nil |
write.image.tag | string | Docker image tag for the write image. Overrides loki.image.tag | nil |
write.initContainers | list | Init containers to add to the write pods | [] |
write.kedaAutoscaling.behavior | object | Behavior configuration for KEDA ScaledObject (horizontalPodAutoscalerConfig.behavior). Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#advanced | {} |
write.kedaAutoscaling.cooldownPeriod | string | Period to wait after the last trigger reported active before scaling the resource back to 0 (seconds). Defaults to defaults.kedaAutoscaling.cooldownPeriod if not set. | nil |
write.kedaAutoscaling.enabled | bool | Enable KEDA autoscaling for the write. Mutually exclusive with autoscaling.enabled | false |
write.kedaAutoscaling.fallback | object | Fallback configuration for KEDA ScaledObject. Applied when the trigger metric cannot be retrieved. Ref: https://keda.sh/docs/latest/reference/scaledobject-spec/#fallback | {} |
write.kedaAutoscaling.maxReplicas | int | Maximum replicas for KEDA autoscaling | 6 |
write.kedaAutoscaling.minReplicas | int | Minimum replicas for KEDA autoscaling | 2 |
write.kedaAutoscaling.pollingInterval | string | Interval (seconds) to poll each trigger. Defaults to defaults.kedaAutoscaling.pollingInterval if not set. | nil |
write.kedaAutoscaling.triggers | list | KEDA triggers for the write. Ref: https://keda.sh/docs/latest/scalers/ | [] |
write.kind | string | Kind of write workload. StatefulSet and Deployment are supported. | "StatefulSet" |
write.labels | object | Additional labels for write StatefulSet | {} |
write.lifecycle | object | Lifecycle for the write container | {} |
write.maxUnavailable | int | Pod Disruption Budget maxUnavailable @deprecated – This is deprecated in favor of podDisruptionBudget.maxUnavailable. | 1 |
write.nodeSelector | object | Node selector for write pods | {} |
write.persistence.accessModes | list | Set access modes on the PersistentVolumeClaim | ["ReadWriteOnce"] |
write.persistence.annotations | object | Annotations for volume claim | {} |
write.persistence.dataVolumeParameters | object | Parameters used for the data volume when volumeClaimEnabled if false | {"emptyDir":{}} |
write.persistence.enableStatefulSetAutoDeletePVC | bool | Enable StatefulSetAutoDeletePVC feature | false |
write.persistence.labels | object | Labels for volume claim | {} |
write.persistence.selector | string | Selector for persistent disk | nil |
write.persistence.size | string | Size of persistent disk | "10Gi" |
write.persistence.storageClass | string | Storage class to be used. If defined, storageClassName: | nil |
write.persistence.volumeAttributesClassName | string | Volume attributes class name to be used. If empty or set to null, no volumeAttributesClassName spec is set. Requires Kubernetes 1.31 | nil |
write.persistence.volumeClaimsEnabled | bool | Enable volume claims in pod spec | true |
write.podAnnotations | object | Annotations for write pods | {} |
write.podDisruptionBudget.annotations | object | Annotations for Pod Disruption Budget | {} |
write.podDisruptionBudget.enabled | bool | Enable Pod Disruption Budget | true |
write.podDisruptionBudget.labels | object | Labels for Pod Disruption Budget | {} |
write.podDisruptionBudget.maxUnavailable | string | Pod Disruption Budget maxUnavailable | nil |
write.podDisruptionBudget.minAvailable | string | Pod Disruption Budget minAvailable | nil |
write.podDisruptionBudget.unhealthyPodEvictionPolicy | string | Pod Disruption Budget unhealthyPodEvictionPolicy | nil |
write.podLabels | object | Additional labels for each write pod | {} |
write.podManagementPolicy | string | The default is to deploy all pods in parallel. | "Parallel" |
write.priorityClassName | string | The name of the PriorityClass for write pods | nil |
write.replicas | int | Number of replicas for the write. Set to null to omit spec.replicas from the workload, allowing an external controller (e.g. HPA, KEDA, rollout-operator) to manage replica counts without Helm resetting them. | 3 |
write.resizePolicy | list | Container resize policy for the write Example: resizePolicy: - resourceName: cpu restartPolicy: NotRequired - resourceName: memory restartPolicy: RestartContainer | [] |
write.resources | object | Resource requests and limits for the write | {} |
write.selectorLabels | object | Additional selector labels for each write pod | {} |
write.service.annotations | object | Annotations for write Service | {} |
write.service.appProtocol.grpc | string | Set the optional grpc service protocol. Ex: “grpc”, “http2” or “https” | "" |
write.service.ipFamilies | list | ipFamilies for write Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | [] |
write.service.ipFamilyPolicy | string | ipFamilyPolicy for write Service Ref: https://kubernetes.io/docs/concepts/services-networking/dual-stack/#services | "" |
write.service.labels | object | Additional labels for write Service | {} |
write.service.sessionAffinity | string | Session affinity for write Service | "" |
write.service.sessionAffinityConfig | object | Session affinity config for write Service | {} |
write.service.trafficDistribution | string | trafficDistribution for write Service | "" |
write.service.type | string | Service Type for write Service | "ClusterIP" |
write.serviceAccount.annotations | object | Annotations for the service account | {} |
write.serviceAccount.automountServiceAccountToken | bool | Set this toggle to false to opt out of automounting API credentials for the service account | true |
write.serviceAccount.create | bool | Specifies whether a ServiceAccount should be created | false |
write.serviceAccount.imagePullSecrets | list | Image pull secrets for the service account | [] |
write.serviceAccount.labels | object | Labels for the service account | {} |
write.serviceAccount.name | string | The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template | nil |
write.statefulSetRecreateJob | object | EXPERIMENTAL: Enable creating a Job to recreate the write StatefulSet when the compactor configuration is changed. # Only applicable if compactor.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. | {"enabled":false} |
write.strategy | object | UpdateStrategy or Strategy for the write. | {"rollingUpdate":{"partition":0}} |
write.terminationGracePeriodSeconds | int | Grace period to allow the write to shutdown before it is killed. Especially for the ingester, this must be increased. It must be long enough so writes can be gracefully shutdown flushing/transferring all data and to successfully leave the member ring on shutdown. | 300 |
write.tolerations | list | [] | |
write.topologySpreadConstraints | list | Topology Spread Constraints for write pods The value will be passed through tpl. | [] |
Was this page helpful?
Related resources from Grafana Labs


