跳转到主要内容

Helm chart values

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.

{{< admonition type="note" >}} This reference is for the Loki Helm chart version 3.0 or greater. If you are using the grafana/loki-stack Helm chart from the grafana repo, please refer to the values.yaml of the respective GitHub repository grafana/helm-charts. {{< /admonition >}}

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 Loki components.
  • global — Global values that apply to all components and subcharts, such as image registry, DNS configuration, and common environment variables.
  • 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 verify it is working correctly.
  • memberlist — Configuration for the memberlist service, the gossip-based ring Loki components use for service discovery and hash-ring coordination.
  • 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 loads them into Loki.
  • singleBinary — Configuration for the single binary node(s) used in Monolithic deployment mode, where all Loki components run in a single process.
  • 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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner. 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.annotations object Annotations for bloom-builder {}
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.kind string Kind of compactor deployment. StatefulSet and Deployment are supported. "StatefulSet"
bloomGateway.labels object Labels for bloom-builder {}
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.podManagementPolicy string The default is to deploy all pods in parallel. "Parallel"
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.statefulSetRecreateJob object Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed. # Only applicable if compactor.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. {"enabled":false}
bloomGateway.strategy object UpdateStrategy or Strategy for the pattern ingester. {"rollingUpdate":{"partition":0}}
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.annotations object Annotations for bloom-builder {}
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.kind string Kind of compactor deployment. StatefulSet and Deployment are supported. "StatefulSet"
bloomPlanner.labels object Labels for bloom-builder {}
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.podManagementPolicy string The default is to deploy all pods in parallel. "Parallel"
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.statefulSetRecreateJob object Enable creating a Job to recreate the StatefulSet when the StatefulSet configuration is changed. # Only applicable if compactor.kind is StatefulSet. Useful for PVC size changes, which require recreating the StatefulSet. {"enabled":false}
bloomPlanner.strategy object UpdateStrategy or Strategy for the pattern ingester. {"rollingUpdate":{"partition":0}}
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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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.publishNotReadyAddresses bool publishNotReadyAddresses for all services. Set to false so a pod's Service endpoint is withdrawn as soon as it becomes unready, instead of staying routable for the full termination window. Overridable per component via <component>.service.publishNotReadyAddresses. true
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 When a component sets *.statefulSetRecreateJob.enabled, the pre-upgrade Job can patch PVC storage requests and recreate the StatefulSet for podManagementPolicy, serviceName, or volumeClaimTemplates count/name/size changes. It does not migrate storageClass, accessModes, selectors, or VCT labels. See the chart README section StatefulSet immutability. 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.21"
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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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. Keys used by the workload selectors (app.kubernetes.io/name, app.kubernetes.io/instance, app.kubernetes.io/component and, with zoneAwareReplication, name and rollout-group) are reserved and ignored here: the latter are also used by the per-zone headless Services and grafana/rollout-operator. {}
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<br><br> Example: <pre> tenants:<br> - name: "test-user-1"<br> password: "test-password-1"<br> - name: "test-user-2"<br> passwordHash: "$2y$10$7O40CaY1yz7fu9O24k2/u.ct/wELYHRBsn25v/7AyuQ8E8hrLqpva" # generated using htpasswd -nbBC10 test-user-2 test-password-2 </pre> []
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.registry string Memcached Docker image registry "docker.io"
memcached.image.repository string Memcached Docker image repository "library/memcached"
memcached.image.tag string Memcached Docker image tag "1.6.45-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 Memcached exporter Docker image pull policy "IfNotPresent"
memcachedExporter.image.registry string Memcached exporter Docker image registry "docker.io"
memcachedExporter.image.repository string Memcached exporter Docker image repository "prom/memcached-exporter"
memcachedExporter.image.tag string Memcached exporter Docker image tag "v0.17.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.instanceSelector object instanceSelector for the GrafanaDashboard resources # The grafana-operator matches this against the labels on your Grafana CR # An empty selector (the default) matches every Grafana instance {}
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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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.11.2"
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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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.resourceName\" (dict \"ctx\" $ \"component\" \"canary\") }}.{{ 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: <storageClass>. If set to "-", storageClassName: "", which disables dynamic provisioning. If empty or set to null, no storageClassName spec is set, choosing the default provisioner (gp2 on AWS, standard on GKE, AWS, and OpenStack). 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.persistence.whenDeleted string What to do with the volumes when the StatefulSet is deleted. "Delete"
write.persistence.whenScaled string What to do with the volume when the StatefulSet is scaled down. "Delete"
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. []