<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Configure Grafana Mimir Helm chart on Grafana Labs</title><link>https://grafana.com/docs/helm-charts/mimir-distributed/latest/configure/</link><description>Recent content in Configure Grafana Mimir Helm chart on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/helm-charts/mimir-distributed/latest/configure/index.xml" rel="self" type="application/rss+xml"/><item><title>Configure Grafana Mimir autoscaling with Helm</title><link>https://grafana.com/docs/helm-charts/mimir-distributed/latest/configure/configure-autoscaling/</link><pubDate>Fri, 31 Oct 2025 14:55:43 +0000</pubDate><guid>https://grafana.com/docs/helm-charts/mimir-distributed/latest/configure/configure-autoscaling/</guid><content><![CDATA[&lt;h1 id=&#34;configure-grafana-mimir-autoscaling-with-helm&#34;&gt;Configure Grafana Mimir autoscaling with Helm&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Autoscaling support in the Helm chart is currently experimental. Use with caution in production environments and thoroughly test in a non-production environment first.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;You can configure autoscaling for Mimir components using (Kubernetes Event-driven Autoscaling) KEDA and Kubernetes Horizontal Pod Autoscaler (HPA).&lt;/p&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Ensure you have a running Mimir cluster deployed with Helm.&lt;/li&gt;
&lt;li&gt;Verify you have the required permissions to modify Helm deployments.&lt;/li&gt;
&lt;li&gt;Familiarize yourself with Kubernetes HPA concepts.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;To use autoscaling, you need:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;KEDA installed in your Kubernetes cluster&lt;/li&gt;
&lt;li&gt;Prometheus metrics available for scaling decisions&lt;/li&gt;
&lt;/ol&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Don&amp;rsquo;t use the same Mimir cluster for storing and querying autoscaling metrics. Using the same cluster can create a dangerous feedback loop.&lt;/p&gt;
&lt;p&gt;For instance, if the Mimir cluster becomes unavailable, autoscaling stops working, because it cannot query the metrics. This prevents the cluster from automatically scaling up during high load or recovery. This inability to scale further exacerbates the cluster&amp;rsquo;s unavailability, which might, in turn, prevent the cluster from recovering.&lt;/p&gt;
&lt;p&gt;Instead, use a separate Prometheus instance or a different metrics backend for autoscaling metrics.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;supported-components&#34;&gt;Supported components&lt;/h2&gt;
&lt;p&gt;The Mimir Helm chart supports autoscaling for the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/mimir/v3.0.x/references/architecture/components/querier/&#34;&gt;Querier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/mimir/v3.0.x/references/architecture/components/query-frontend/&#34;&gt;Query-frontend&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
    &lt;a href=&#34;/docs/mimir/v3.0.x/references/architecture/components/distributor/&#34;&gt;Distributor&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;about-keda&#34;&gt;About KEDA&lt;/h2&gt;
&lt;p&gt;KEDA is a Kubernetes operator that simplifies the setup of HPA with custom metrics from Prometheus. It consists of:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An operator and external metrics server&lt;/li&gt;
&lt;li&gt;Support for multiple metric sources, including Prometheus&lt;/li&gt;
&lt;li&gt;Custom resources (&lt;code&gt;ScaledObject&lt;/code&gt;) that define scaling parameters&lt;/li&gt;
&lt;li&gt;Automatic HPA resource management&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more information, refer to the &lt;a href=&#34;https://keda.sh&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;KEDA documentation&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;configure-autoscaling-for-a-new-installation&#34;&gt;Configure autoscaling for a new installation&lt;/h2&gt;
&lt;p&gt;Follow these steps to enable autoscaling when deploying Mimir for the first time.&lt;/p&gt;
&lt;h3 id=&#34;steps&#34;&gt;Steps&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Configure the Prometheus metrics source in your values file:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;kedaAutoscaling:
  prometheusAddress: &amp;#34;http://prometheus.monitoring:9090&amp;#34;
  pollingInterval: 10&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Enable and configure autoscaling for desired components:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;querier:
  kedaAutoscaling:
    enabled: true
    minReplicaCount: 2
    maxReplicaCount: 10&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy Mimir using Helm:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm upgrade --install mimir grafana/mimir-distributed -f values.yaml&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;expected-outcome&#34;&gt;Expected outcome&lt;/h3&gt;
&lt;p&gt;After deployment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KEDA creates &lt;code&gt;ScaledObject&lt;/code&gt; resources for configured components.&lt;/li&gt;
&lt;li&gt;HPA resources are automatically created and begin monitoring metrics.&lt;/li&gt;
&lt;li&gt;Components scale based on configured thresholds and behaviors.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;migrate-existing-deployments-to-autoscaling&#34;&gt;Migrate existing deployments to autoscaling&lt;/h2&gt;
&lt;p&gt;Follow these steps to enable autoscaling for an existing Mimir deployment.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Autoscaling support in the Helm chart is currently experimental. Migrating to autoscaling carries risks for cluster availability.&lt;/p&gt;
&lt;p&gt;Enabling autoscaling removes the &lt;code&gt;replicas&lt;/code&gt; field from deployments. If KEDA/HPA hasn&amp;rsquo;t started autoscaling a deployment yet, Kubernetes interprets no replicas as meaning 1 replica. This can cause an outage if the transition is not handled carefully. If you&amp;rsquo;re using GitOps tools like FluxCD or ArgoCD, you might need to take additional steps to manage the transition.&lt;/p&gt;
&lt;p&gt;Consider testing the migration in a non-production environment first.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;before-you-begin-1&#34;&gt;Before you begin&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Back up your current Helm values.&lt;/li&gt;
&lt;li&gt;Plan for potential service disruption.&lt;/li&gt;
&lt;li&gt;Consider testing in a non-production environment first.&lt;/li&gt;
&lt;li&gt;Ensure you have a rollback plan ready.&lt;/li&gt;
&lt;li&gt;Consider migrating one component at a time to minimize risk.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;steps-1&#34;&gt;Steps&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Add the autoscaling configuration with &lt;code&gt;preserveReplicas&lt;/code&gt; enabled:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;querier:
  kedaAutoscaling:
    enabled: true
    preserveReplicas: true # Maintains stability during migration
    # ... autoscaling configuration ...&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Apply the changes and verify the KEDA setup:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;# Apply changes
helm upgrade mimir grafana/mimir-distributed -f values.yaml

# Verify setup
kubectl get hpa
kubectl get scaledobject
kubectl describe hpa&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wait 2-3 polling intervals to confirm that KEDA is managing scaling.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Remove &lt;code&gt;preserveReplicas&lt;/code&gt;.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;querier:
  kedaAutoscaling:
    enabled: true
    # Remove preserveReplicas&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Apply the updated configuration:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;helm upgrade mimir grafana/mimir-distributed -f values.yaml&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;troubleshooting&#34;&gt;Troubleshooting&lt;/h3&gt;
&lt;p&gt;If pods scale down to 1 replica after removing &lt;code&gt;preserveReplicas&lt;/code&gt;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Revert changes:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;querier:
  kedaAutoscaling:
    enabled: true
    preserveReplicas: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Verify KEDA setup:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check HPA status&lt;/li&gt;
&lt;li&gt;Verify metrics are being received&lt;/li&gt;
&lt;li&gt;Check for conflicts with other tools&lt;/li&gt;
&lt;li&gt;Ensure enough time was given for KEDA to take control (at least 2-3 polling intervals)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Try migrating again after resolving issues.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;If you&amp;rsquo;re using GitOps tools like FluxCD or ArgoCD, they might try to reconcile the state and conflict with HPA&amp;rsquo;s scaling decisions. Consult your GitOps tool&amp;rsquo;s documentation for handling HPA transitions.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;monitor-autoscaling-health&#34;&gt;Monitor autoscaling health&lt;/h2&gt;
&lt;p&gt;The following conditions indicate unhealthy autoscaling:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;KEDA operator is down: &lt;code&gt;ScaledObject&lt;/code&gt; changes don&amp;rsquo;t propagate to HPA.&lt;/li&gt;
&lt;li&gt;KEDA metrics server is down: HPA can&amp;rsquo;t receive updated metrics.&lt;/li&gt;
&lt;li&gt;HPA is unable to scale: &lt;code&gt;MimirAutoscalerNotActive&lt;/code&gt; alert fires.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For production deployments, configure &lt;a href=&#34;https://keda.sh/docs/latest/operate/cluster/#high-availability&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;high availability&lt;/a&gt; for KEDA.&lt;/p&gt;
&lt;p&gt;For more information about monitoring autoscaling, refer to 
    &lt;a href=&#34;/docs/mimir/v3.0.x/manage/monitor-grafana-mimir/&#34;&gt;Monitor Grafana Mimir&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-grafana-mimir-autoscaling-with-helm">Configure Grafana Mimir autoscaling with Helm&lt;/h1>
&lt;div class="admonition admonition-warning">&lt;blockquote>&lt;p class="title text-uppercase">Warning&lt;/p>&lt;p>Autoscaling support in the Helm chart is currently experimental. Use with caution in production environments and thoroughly test in a non-production environment first.&lt;/p></description></item><item><title>Configure Grafana Mimir to allow Vault Agent to inject certificates and keys into Pods</title><link>https://grafana.com/docs/helm-charts/mimir-distributed/latest/configure/configure-hashicorp-vault-agent/</link><pubDate>Fri, 31 Oct 2025 14:55:43 +0000</pubDate><guid>https://grafana.com/docs/helm-charts/mimir-distributed/latest/configure/configure-hashicorp-vault-agent/</guid><content><![CDATA[&lt;h1 id=&#34;configure-grafana-mimir-to-allow-vault-agent-to-inject-certificates-and-keys-into-pods&#34;&gt;Configure Grafana Mimir to allow Vault Agent to inject certificates and keys into Pods&lt;/h1&gt;
&lt;p&gt;When you enable this feature, Helm updates the annotations on all Pods that have TLS (transport layer security) configurable components.
When you deploy Mimir, Vault Agent fetches the relevant secrets from Vault according to the annotations and mounts them to the Pod.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Vault and Vault Agent must to be running already.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Example &lt;code&gt;values.yaml&lt;/code&gt; file:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;vaultAgent:
  enabled: true
  roleName: &amp;#34;test-role&amp;#34;
  clientCertPath: &amp;#34;client/cert/path&amp;#34;
  clientKeyPath: &amp;#34;client/key/path&amp;#34;
  serverCertPath: &amp;#34;server/cert/path&amp;#34;
  serverKeyPath: &amp;#34;server/key/path&amp;#34;
  caCertPath: &amp;#34;ca/cert/path&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Generated Kubernetes Deployment YAML file based on the preceding example:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;apiVersion: apps/v1
kind: Deployment
metadata:
  name: release-name
  labels:
    helm.sh/chart: mimir-release-1.2.3
    app.kubernetes.io/name: mimir
    app.kubernetes.io/instance: release-name
    app.kubernetes.io/component: comonent-name
    app.kubernetes.io/version: &amp;#34;123&amp;#34;
    app.kubernetes.io/managed-by: Helm
  annotations: {}
  namespace: &amp;#34;default&amp;#34;
spec:
  replicas: 1
  selector:
    matchLabels:
      app.kubernetes.io/name: mimir
      app.kubernetes.io/instance: release-name
      app.kubernetes.io/component: component-name
  strategy:
    type: RollingUpdate
  template:
    metadata:
      annotations:
        vault.hashicorp.com/agent-inject: &amp;#34;true&amp;#34;
        vault.hashicorp.com/role: &amp;#34;test-role&amp;#34;
        vault.hashicorp.com/agent-inject-secret-client.crt: &amp;#34;client/cert/path&amp;#34;
        vault.hashicorp.com/agent-inject-secret-client.key: &amp;#34;client/key/path&amp;#34;
        vault.hashicorp.com/agent-inject-secret-server.crt: &amp;#34;server/cert/path&amp;#34;
        vault.hashicorp.com/agent-inject-secret-server.key: &amp;#34;server/key/path&amp;#34;
        vault.hashicorp.com/agent-inject-secret-root.crt: &amp;#34;ca/cert/path&amp;#34;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;code&gt;vault.hashicorp.com/agent-inject-secret-&amp;lt;FILENAME&amp;gt;: &#39;&amp;lt;PATH&amp;gt;&#39;&lt;/code&gt; tells Vault Agent where to find the secret, and the name of the file to write the secret to. For example: &lt;code&gt;vault.hashicorp.com/agent-inject-secret-client.crt: &#39;client/cert/path&#39;&lt;/code&gt; will look for the secret at the path &lt;code&gt;client/cert/path&lt;/code&gt; within Vault, and mount this secret to the pod as &lt;code&gt;client.crt&lt;/code&gt; in the &lt;code&gt;/vault/secrets/&lt;/code&gt; directory.&lt;/p&gt;
&lt;p&gt;For more information about Vault and Vault Agent, see &lt;a href=&#34;https://www.hashicorp.com/blog/injecting-vault-secrets-into-kubernetes-pods-via-a-sidecar&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Injecting Vault Secrets Into Kubernetes Pods via a Sidecar&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To configure TLS in Mimir, refer to 
    &lt;a href=&#34;/docs/mimir/v3.0.x/manage/secure/securing-communications-with-tls/&#34;&gt;Securing Grafana Mimir communications with TLS&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-grafana-mimir-to-allow-vault-agent-to-inject-certificates-and-keys-into-pods">Configure Grafana Mimir to allow Vault Agent to inject certificates and keys into Pods&lt;/h1>
&lt;p>When you enable this feature, Helm updates the annotations on all Pods that have TLS (transport layer security) configurable components.
When you deploy Mimir, Vault Agent fetches the relevant secrets from Vault according to the annotations and mounts them to the Pod.&lt;/p></description></item><item><title>Configure native histograms</title><link>https://grafana.com/docs/helm-charts/mimir-distributed/latest/configure/configure-native-histograms-ingestion/</link><pubDate>Fri, 31 Oct 2025 14:55:43 +0000</pubDate><guid>https://grafana.com/docs/helm-charts/mimir-distributed/latest/configure/configure-native-histograms-ingestion/</guid><content><![CDATA[&lt;h1 id=&#34;configure-native-histograms&#34;&gt;Configure native histograms&lt;/h1&gt;
&lt;p&gt;To enable support for ingesting Prometheus native histograms over the 
    &lt;a href=&#34;/docs/mimir/v3.0.x/references/http-api/#remote-write&#34;&gt;remote write API&lt;/a&gt; endpoint, set the configuration parameter &lt;code&gt;native_histograms_ingestion_enabled&lt;/code&gt; to true.&lt;/p&gt;
&lt;p&gt;To enable support for querying native histograms together with 
    &lt;a href=&#34;/docs/mimir/v3.0.x/references/architecture/query-sharding/&#34;&gt;Grafana Mimir query sharding&lt;/a&gt;, set the configuration parameter &lt;code&gt;query_result_response_format&lt;/code&gt; to &lt;code&gt;protobuf&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Example values file:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;YAML&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-yaml&#34;&gt;mimir:
  structuredConfig:
    frontend:
      query_result_response_format: protobuf
    limits:
      native_histograms_ingestion_enabled: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Native histograms are an experimental feature of Grafana Mimir.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;To configure bucket limits for native histograms, refer to 
    &lt;a href=&#34;/docs/mimir/v3.0.x/configure/configure-native-histograms-ingestion/&#34;&gt;Configure native histograms&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To configure Grafana Agent or Prometheus to write native histograms to Grafana Mimir, refer to 
    &lt;a href=&#34;/docs/mimir/v3.0.x/send/native-histograms/&#34;&gt;Send native histograms to Mimir&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To visualize native histograms in Mimir, refer to 
    &lt;a href=&#34;/docs/mimir/v3.0.x/visualize/native-histograms/&#34;&gt;Visualize native histograms&lt;/a&gt;.&lt;/p&gt;
]]></content><description>&lt;h1 id="configure-native-histograms">Configure native histograms&lt;/h1>
&lt;p>To enable support for ingesting Prometheus native histograms over the
&lt;a href="/docs/mimir/v3.0.x/references/http-api/#remote-write">remote write API&lt;/a> endpoint, set the configuration parameter &lt;code>native_histograms_ingestion_enabled&lt;/code> to true.&lt;/p>
&lt;p>To enable support for querying native histograms together with
&lt;a href="/docs/mimir/v3.0.x/references/architecture/query-sharding/">Grafana Mimir query sharding&lt;/a>, set the configuration parameter &lt;code>query_result_response_format&lt;/code> to &lt;code>protobuf&lt;/code>.&lt;/p></description></item></channel></rss>