<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Install Grafana Loki with Helm on Grafana Labs</title><link>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/</link><description>Recent content in Install Grafana Loki with Helm on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/loki/v2.9.x/setup/install/helm/index.xml" rel="self" type="application/rss+xml"/><item><title>Helm chart components</title><link>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/concepts/</link><pubDate>Thu, 10 Apr 2025 12:15:54 +0000</pubDate><guid>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/concepts/</guid><content><![CDATA[&lt;h1 id=&#34;helm-chart-components&#34;&gt;Helm chart components&lt;/h1&gt;
&lt;p&gt;This section describes the components installed by the Helm Chart.&lt;/p&gt;
&lt;h2 id=&#34;loki-read-and-write&#34;&gt;Loki read and write&lt;/h2&gt;
&lt;p&gt;By default Loki will be installed in the scalable mode. This consists of a read and write component. These can be scaled-out independently.&lt;/p&gt;
&lt;h2 id=&#34;dashboards&#34;&gt;Dashboards&lt;/h2&gt;
&lt;p&gt;This chart includes dashboards for monitoring Loki. These require the scrape configs defined in the &lt;code&gt;monitoring.serviceMonitor&lt;/code&gt; and &lt;code&gt;monitoring.selfMonitoring&lt;/code&gt; sections described below. The dashboards are deployed via a config map which can be mounted on a Grafana instance. The Dashboard require an installation of the Grafana Agent and the Prometheus operator. The agent is installed with this chart.&lt;/p&gt;
&lt;h2 id=&#34;canary&#34;&gt;Canary&lt;/h2&gt;
&lt;p&gt;This chart installs the &lt;a href=&#34;../../../../operations/loki-canary/&#34;&gt;canary&lt;/a&gt; and its alerts by default. This is another tool to verify the Loki deployment is in a healthy state. It can be disabled with &lt;code&gt;monitoring.lokiCanary.enabled=false&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id=&#34;gateway&#34;&gt;Gateway&lt;/h2&gt;
&lt;p&gt;By default and inspired by Grafana&amp;rsquo;s &lt;a href=&#34;https://github.com/grafana/loki/blob/main/production/ksonnet/loki&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Tanka setup&lt;/a&gt;, the chart
installs the gateway component which is an NGINX that exposes Loki&amp;rsquo;s API and automatically proxies requests to the correct
Loki components (read or write, or single instance in the case of filesystem storage).
The gateway must be enabled if an Ingress is required, since the Ingress exposes the gateway only.
If the gateway is enabled, Grafana and log shipping agents, such as Promtail, should be configured to use the gateway.
If NetworkPolicies are enabled, they are more restrictive if the gateway is enabled.&lt;/p&gt;
&lt;h2 id=&#34;caching&#34;&gt;Caching&lt;/h2&gt;
&lt;p&gt;By default, this chart configures in-memory caching. If that caching does not work for your deployment, you should setup memcache.&lt;/p&gt;
]]></content><description>&lt;h1 id="helm-chart-components">Helm chart components&lt;/h1>
&lt;p>This section describes the components installed by the Helm Chart.&lt;/p>
&lt;h2 id="loki-read-and-write">Loki read and write&lt;/h2>
&lt;p>By default Loki will be installed in the scalable mode. This consists of a read and write component. These can be scaled-out independently.&lt;/p></description></item><item><title>Install the monolithic Helm chart</title><link>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/install-monolithic/</link><pubDate>Thu, 10 Apr 2025 12:15:54 +0000</pubDate><guid>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/install-monolithic/</guid><content><![CDATA[&lt;h1 id=&#34;install-the-monolithic-helm-chart&#34;&gt;Install the monolithic Helm chart&lt;/h1&gt;
&lt;p&gt;This Helm Chart installation runs the Grafana Loki &lt;em&gt;single binary&lt;/em&gt; within a Kubernetes cluster.&lt;/p&gt;
&lt;p&gt;If you set the &lt;code&gt;singleBinary.replicas&lt;/code&gt; value to 1, this chart configures Loki to run the &lt;code&gt;all&lt;/code&gt; target in a &lt;a href=&#34;../../../../get-started/deployment-modes/#monolithic-mode&#34;&gt;monolithic mode&lt;/a&gt;, designed to work with a filesystem storage. It will also configure meta-monitoring of metrics and logs.
If you set the &lt;code&gt;singleBinary.replicas&lt;/code&gt; value to 2 or more, this chart configures Loki to run a &lt;em&gt;single binary&lt;/em&gt; in a replicated, highly available mode.  When running replicas of a single binary, you must configure object storage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before you begin: Software Requirements&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Helm 3 or above. See &lt;a href=&#34;https://helm.sh/docs/intro/install/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Installing Helm&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A running Kubernetes cluster&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;To deploy Loki in monolithic mode:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Add &lt;a href=&#34;https://github.com/grafana/helm-charts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana&amp;rsquo;s chart repository&lt;/a&gt; to 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 repo add grafana https://grafana.github.io/helm-charts&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the chart repository:&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 repo update&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create the configuration file &lt;code&gt;values.yaml&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If running a single replica of Loki, configure the &lt;code&gt;filesystem&lt;/code&gt; storage:&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;loki:
  commonConfig:
    replication_factor: 1
  storage:
    type: &amp;#39;filesystem&amp;#39;
singleBinary:
  replicas: 1&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If running Loki with a replication factor greater than 1, set the desired number replicas and provide object storage credentials:&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;loki:
  commonConfig:
    replication_factor: 3
  storage:
    bucketNames:
      chunks: loki-chunks
      ruler: loki-ruler
      admin: loki-admin
    type: &amp;#39;s3&amp;#39;
    s3:
      endpoint: foo.aws.com
      secretAccessKey: supersecret
      accessKeyId: secret
singleBinary:
  replicas: 3&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy the Loki cluster using one of these commands.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Deploy with the defined 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 install --values values.yaml loki grafana/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Deploy with the defined configuration in a custom Kubernetes cluster namespace:&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 install --values values.yaml loki --namespace=loki grafana/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="install-the-monolithic-helm-chart">Install the monolithic Helm chart&lt;/h1>
&lt;p>This Helm Chart installation runs the Grafana Loki &lt;em>single binary&lt;/em> within a Kubernetes cluster.&lt;/p>
&lt;p>If you set the &lt;code>singleBinary.replicas&lt;/code> value to 1, this chart configures Loki to run the &lt;code>all&lt;/code> target in a &lt;a href="../../../../get-started/deployment-modes/#monolithic-mode">monolithic mode&lt;/a>, designed to work with a filesystem storage. It will also configure meta-monitoring of metrics and logs.
If you set the &lt;code>singleBinary.replicas&lt;/code> value to 2 or more, this chart configures Loki to run a &lt;em>single binary&lt;/em> in a replicated, highly available mode. When running replicas of a single binary, you must configure object storage.&lt;/p></description></item><item><title>Install the simple scalable Helm chart</title><link>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/install-scalable/</link><pubDate>Thu, 10 Apr 2025 12:15:54 +0000</pubDate><guid>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/install-scalable/</guid><content><![CDATA[&lt;h1 id=&#34;install-the-simple-scalable-helm-chart&#34;&gt;Install the simple scalable Helm chart&lt;/h1&gt;
&lt;!-- vale Grafana.Quotes = NO --&gt;
&lt;!-- vale Grafana.Quotes = YES --&gt;
&lt;p&gt;This Helm Chart installation runs the Grafana Loki cluster within a Kubernetes cluster.&lt;/p&gt;
&lt;p&gt;If object storge is configured, this chart configures Loki to run &lt;code&gt;read&lt;/code&gt; and &lt;code&gt;write&lt;/code&gt; targets in a &lt;a href=&#34;../../../../get-started/deployment-modes/#simple-scalable&#34;&gt;scalable mode&lt;/a&gt;, highly available architecture (3 replicas of each) designed to work with AWS S3 object storage. It will also configure meta-monitoring of metrics and logs.&lt;/p&gt;
&lt;p&gt;It is not possible to run the scalable mode with the &lt;code&gt;filesystem&lt;/code&gt; storage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Before you begin:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Helm 3 or above. See &lt;a href=&#34;https://helm.sh/docs/intro/install/&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Installing Helm&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;A running Kubernetes cluster.&lt;/li&gt;
&lt;li&gt;A Prometheus operator installation in case meta-monitoring should be used.&lt;/li&gt;
&lt;li&gt;Optionally a Memcached deployment for better performance. Consult the &lt;a href=&#34;../../../../operations/caching/&#34;&gt;caching section&lt;/a&gt; on how to configure Memcached.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;To deploy Loki in scalable mode:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Add &lt;a href=&#34;https://github.com/grafana/helm-charts&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;Grafana&amp;rsquo;s chart repository&lt;/a&gt; to 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 repo add grafana https://grafana.github.io/helm-charts&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Update the chart repository:&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 repo update&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the object storage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Create the configuration file &lt;code&gt;values.yaml&lt;/code&gt;. The example below illustrates a s3 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;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;loki:
  storage:
    bucketNames:
      chunks: chunks
      ruler: ruler
      admin: admin
    type: s3
    s3:
      endpoint: &amp;lt;endpoint&amp;gt;
      region: &amp;lt;AWS region&amp;gt;
      secretAccessKey: &amp;lt;AWS secret access key&amp;gt;
      accessKeyId: &amp;lt;AWS access key ID&amp;gt;
      s3ForcePathStyle: false
      insecure: false&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Consult the &lt;a href=&#34;../reference/&#34;&gt;Reference&lt;/a&gt; for configuring other storage providers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;If you&amp;rsquo;re just trying things, you can use the following configuration instead, that sets MinIO as storage:&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;minio:
  enabled: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install or upgrade the Loki deployment.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;To install:&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 install --values values.yaml loki grafana/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;To upgrade:&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 --values values.yaml loki grafana/loki&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="install-the-simple-scalable-helm-chart">Install the simple scalable Helm chart&lt;/h1>
&lt;!-- vale Grafana.Quotes = NO -->
&lt;!-- vale Grafana.Quotes = YES -->
&lt;p>This Helm Chart installation runs the Grafana Loki cluster within a Kubernetes cluster.&lt;/p></description></item><item><title>Configure storage</title><link>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/configure-storage/</link><pubDate>Thu, 10 Apr 2025 12:15:54 +0000</pubDate><guid>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/configure-storage/</guid><content><![CDATA[&lt;h1 id=&#34;configure-storage&#34;&gt;Configure storage&lt;/h1&gt;
&lt;p&gt;The &lt;a href=&#34;../install-scalable/&#34;&gt;scalable&lt;/a&gt; installation requires a managed object store such as AWS S3 or Google Cloud Storage or a self-hosted store such as Minio. The &lt;a href=&#34;../install-monolithic/&#34;&gt;single binary&lt;/a&gt; installation can only use the filesystem for storage.&lt;/p&gt;
&lt;p&gt;This guide assumes Loki will be installed in one of the modes above and that a &lt;code&gt;values.yaml &lt;/code&gt; has been created.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;To use a managed object store:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;In the &lt;code&gt;values.yaml&lt;/code&gt; file, set the value for &lt;code&gt;storage.type&lt;/code&gt; to &lt;code&gt;azure&lt;/code&gt;, &lt;code&gt;gcs&lt;/code&gt;, or &lt;code&gt;s3&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the storage client under &lt;code&gt;loki.storage.azure&lt;/code&gt;, &lt;code&gt;loki.storage.gcs&lt;/code&gt;, or &lt;code&gt;loki.storage.s3&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;To install Minio alongside Loki:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Change the configuration in &lt;code&gt;values.yaml&lt;/code&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Enable Minio&lt;/li&gt;
&lt;/ul&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;minio:
  enabled: true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;To grant access to S3 via an IAM role without providing credentials:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Provision an IAM role, policy and S3 bucket as described in &lt;a href=&#34;../../../../storage/#aws-deployment-s3-single-store&#34;&gt;Storage&lt;/a&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If the Terraform module was used note the annotation emitted by &lt;code&gt;terraform output -raw annotation&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Add the IAM role annotation to the service account in &lt;code&gt;values.yaml&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&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&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;serviceAccount:
  annotations:
    &amp;#34;eks.amazonaws.com/role-arn&amp;#34;: &amp;#34;arn:aws:iam::&amp;lt;account id&amp;gt;:role/&amp;lt;role name&amp;gt;:&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure the storage:&lt;/p&gt;

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&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&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;loki:
  storage:
    type: &amp;#34;s3&amp;#34;
    s3:
      region: eu-central-1
    bucketNames:
      chunks: &amp;lt;bucket name&amp;gt;
      ruler: &amp;lt;bucket name&amp;gt;
      admin: &amp;lt;bucket name&amp;gt;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Note that &lt;code&gt;endpoint&lt;/code&gt;, &lt;code&gt;secretAccessKey&lt;/code&gt; and &lt;code&gt;accessKeyId&lt;/code&gt; have been omitted.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="configure-storage">Configure storage&lt;/h1>
&lt;p>The &lt;a href="../install-scalable/">scalable&lt;/a> installation requires a managed object store such as AWS S3 or Google Cloud Storage or a self-hosted store such as Minio. The &lt;a href="../install-monolithic/">single binary&lt;/a> installation can only use the filesystem for storage.&lt;/p></description></item><item><title>Helm Chart Values</title><link>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/reference/</link><pubDate>Wed, 06 Sep 2023 12:47:18 +0000</pubDate><guid>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/reference/</guid><content><![CDATA[&lt;!-- Autogenerated. Modify ../production/helm/loki/reference.md.gotmpl --&gt;
&lt;h1 id=&#34;helm-chart-values&#34;&gt;Helm Chart Values&lt;/h1&gt;
&lt;!-- vale Grafana.Quotes = NO --&gt;
&lt;!-- The reference title is required. Use a noun-based title. --&gt;
&lt;!-- vale Grafana.Quotes = YES --&gt;
&lt;p&gt;This is the generated reference for the Loki Helm Chart values.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This reference is for the Loki Helm chart version 3.0 or greater.
If you are using the &lt;code&gt;grafana/loki-stack&lt;/code&gt; Helm chart from the community repo,
please refer to the &lt;code&gt;values.yaml&lt;/code&gt; of the respective Github repository
&lt;a href=&#34;https://github.com/grafana/helm-charts/tree/main/charts/loki-stack&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;grafana/helm-charts&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;!-- Override default values table from helm-docs. See https://github.com/norwoodj/helm-docs/tree/master#advanced-table-rendering --&gt;
&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
  &lt;table&gt;
	&lt;thead&gt;
		&lt;th&gt;Key&lt;/th&gt;
		&lt;th&gt;Type&lt;/th&gt;
		&lt;th&gt;Description&lt;/th&gt;
		&lt;th&gt;Default&lt;/th&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.affinity&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Affinity for backend pods. Passed through `tpl` and, thus, to be configured as string&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;&#34;&gt;
Hard node and soft zone anti-affinity
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for backend StatefulSet&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.autoscaling.behavior&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Behavior policies while scaling.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.autoscaling.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable autoscaling for the backend.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.autoscaling.maxReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Maximum autoscaling replicas for the backend.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
3
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.autoscaling.minReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Minimum autoscaling replicas for the backend.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
1
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.autoscaling.targetCPUUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Target CPU utilization percentage for the backend.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
60
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.autoscaling.targetMemoryUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Target memory utilization percentage for the backend.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.extraArgs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional CLI args for the backend&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.extraEnv&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables to add to the backend pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.extraEnvFrom&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables from secrets or configmaps to add to the backend pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.extraVolumeMounts&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volume mounts to add to the backend pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.extraVolumes&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volumes to add to the backend pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry for the backend image. Overrides `loki.image.registry`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository for the backend image. Overrides `loki.image.repository`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image tag for the backend image. Overrides `loki.image.tag`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.initContainers&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Init containers to add to the backend pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.nodeSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Node selector for backend pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.persistence.enableStatefulSetAutoDeletePVC&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable StatefulSetAutoDeletePVC feature&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.persistence.selector&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Selector for persistent disk&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.persistence.size&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Size of persistent disk&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;10Gi&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.persistence.storageClass&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Storage class to be used. If defined, storageClassName: &lt;storageClass&gt;. If set to &#34;-&#34;, storageClassName: &#34;&#34;, 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).&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.podAnnotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for backend pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.podLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for each `backend` pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.podManagementPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The default is to deploy all pods in parallel.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;Parallel&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for backend pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.replicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Number of replicas for the backend&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
3
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.resources&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Resource requests and limits for the backend&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.selectorLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional selector labels for each `backend` pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.serviceLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Labels for ingester service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.targetModule&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Comma-separated list of Loki modules to load for the read&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;backend&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.terminationGracePeriodSeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;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.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
300
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;backend.tolerations&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Tolerations for backend pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;clusterLabelOverride&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the chart&#39;s cluster label&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.adminApi&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;If enabled, the correct admin_client storage will be configured. If disabled while running enterprise, make sure auth is set to `type: trust`, or that `auth_enabled` is set to `false`.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;enabled&#34;: true
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.adminToken.additionalNamespaces&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional namespace to also create the token in. Useful if your Grafana instance is in a different namespace&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.adminToken.secret&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Alternative name for admin token secret, needed by tokengen and provisioner jobs&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.canarySecret&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Alternative name of the secret to store token for the canary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.cluster_name&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Optional name of the GEL cluster, otherwise will use .Release.Name The cluster name must match what is in your GEL license&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.config&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;{{- if .Values.enterprise.adminApi.enabled }}\n{{- if or .Values.minio.enabled (eq .Values.loki.storage.type \&#34;s3\&#34;) (eq .Values.loki.storage.type \&#34;gcs\&#34;) (eq .Values.loki.storage.type \&#34;azure\&#34;) }}\nadmin_client:\n  storage:\n    s3:\n      bucket_name: {{ .Values.loki.storage.bucketNames.admin }}\n{{- end }}\n{{- end }}\nauth:\n  type: {{ .Values.enterprise.adminApi.enabled | ternary \&#34;enterprise\&#34; \&#34;trust\&#34; }}\nauth_enabled: {{ .Values.loki.auth_enabled }}\ncluster_name: {{ include \&#34;loki.clusterName\&#34; . }}\nlicense:\n  path: /etc/loki/license/license.jwt\n&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.externalConfigName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Name of the external config secret to use&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.externalLicenseName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Name of external license secret to use&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.image.digest&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag with an image digest&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.image.pullPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image pull policy&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;IfNotPresent&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;docker.io&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;grafana/enterprise-logs&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image tag&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.license&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Grafana Enterprise Logs license In order to use Grafana Enterprise Logs features, you will need to provide the contents of your Grafana Enterprise Logs license, either by providing the contents of the license.jwt, or the name Kubernetes Secret that contains your license.jwt. To set the license contents, use the flag `--set-file &#39;enterprise.license.contents=./license.jwt&#39;`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;contents&#34;: &#34;NOTAVALIDLICENSE&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Configuration for `provisioner` target&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;additionalTenants&#34;: [],
  &#34;annotations&#34;: {},
  &#34;enabled&#34;: true,
  &#34;env&#34;: [],
  &#34;extraVolumeMounts&#34;: [],
  &#34;image&#34;: {
    &#34;digest&#34;: null,
    &#34;pullPolicy&#34;: &#34;IfNotPresent&#34;,
    &#34;registry&#34;: &#34;docker.io&#34;,
    &#34;repository&#34;: &#34;grafana/enterprise-logs-provisioner&#34;,
    &#34;tag&#34;: null
  },
  &#34;labels&#34;: {},
  &#34;priorityClassName&#34;: null,
  &#34;provisionedSecretPrefix&#34;: null,
  &#34;securityContext&#34;: {
    &#34;fsGroup&#34;: 10001,
    &#34;runAsGroup&#34;: 10001,
    &#34;runAsNonRoot&#34;: true,
    &#34;runAsUser&#34;: 10001
  }
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.additionalTenants&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional tenants to be created. Each tenant will get a read and write policy and associated token. Tenant must have a name and a namespace for the secret containting the token to be created in. For example additionalTenants:   - name: loki     secretNamespace: grafana&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional annotations for the `provisioner` Job&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Whether the job should be part of the deployment&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.env&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional Kubernetes environment&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.extraVolumeMounts&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volume mounts to add to the provisioner pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.image&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Provisioner image to Utilize&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;digest&#34;: null,
  &#34;pullPolicy&#34;: &#34;IfNotPresent&#34;,
  &#34;registry&#34;: &#34;docker.io&#34;,
  &#34;repository&#34;: &#34;grafana/enterprise-logs-provisioner&#34;,
  &#34;tag&#34;: null
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.image.digest&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag with an image digest&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.image.pullPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image pull policy&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;IfNotPresent&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;docker.io&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;grafana/enterprise-logs-provisioner&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag whose default is the chart&#39;s appVersion&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for the `provisioner` Job&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for provisioner Job&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.provisionedSecretPrefix&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Name of the secret to store provisioned tokens in&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.provisioner.securityContext&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Run containers as user `enterprise-logs(uid=10001)`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;fsGroup&#34;: 10001,
  &#34;runAsGroup&#34;: 10001,
  &#34;runAsNonRoot&#34;: true,
  &#34;runAsUser&#34;: 10001
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Configuration for `tokengen` target&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;annotations&#34;: {},
  &#34;enabled&#34;: true,
  &#34;env&#34;: [],
  &#34;extraArgs&#34;: [],
  &#34;extraEnvFrom&#34;: [],
  &#34;extraVolumeMounts&#34;: [],
  &#34;extraVolumes&#34;: [],
  &#34;labels&#34;: {},
  &#34;priorityClassName&#34;: &#34;&#34;,
  &#34;securityContext&#34;: {
    &#34;fsGroup&#34;: 10001,
    &#34;runAsGroup&#34;: 10001,
    &#34;runAsNonRoot&#34;: true,
    &#34;runAsUser&#34;: 10001
  },
  &#34;targetModule&#34;: &#34;tokengen&#34;,
  &#34;tolerations&#34;: []
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional annotations for the `tokengen` Job&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Whether the job should be part of the deployment&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.env&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional Kubernetes environment&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.extraArgs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional CLI arguments for the `tokengen` target&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.extraEnvFrom&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables from secrets or configmaps to add to the tokengen pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.extraVolumeMounts&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional volume mounts for Pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.extraVolumes&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional volumes for Pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for the `tokengen` Job&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for tokengen Pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.securityContext&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Run containers as user `enterprise-logs(uid=10001)`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;fsGroup&#34;: 10001,
  &#34;runAsGroup&#34;: 10001,
  &#34;runAsNonRoot&#34;: true,
  &#34;runAsUser&#34;: 10001
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.targetModule&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Comma-separated list of Loki modules to load for tokengen&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;tokengen&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.tokengen.tolerations&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Tolerations for tokengen Job&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.useExternalLicense&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Set to true when providing an external license&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;enterprise.version&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;v1.7.3&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;extraObjects&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;fullnameOverride&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the chart&#39;s computed fullname&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.affinity&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Affinity for gateway pods. Passed through `tpl` and, thus, to be configured as string&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;&#34;&gt;
Hard node and soft zone anti-affinity
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for gateway deployment&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.autoscaling.behavior&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Behavior policies while scaling.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.autoscaling.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable autoscaling for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.autoscaling.maxReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Maximum autoscaling replicas for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
3
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.autoscaling.minReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Minimum autoscaling replicas for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
1
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.autoscaling.targetCPUUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Target CPU utilisation percentage for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
60
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.autoscaling.targetMemoryUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Target memory utilisation percentage for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.basicAuth.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enables basic authentication for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.basicAuth.existingSecret&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Existing basic auth secret to use. Must contain &#39;.htpasswd&#39;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.basicAuth.htpasswd&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;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.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;{{ if .Values.loki.tenants }}\n  {{- range $t := .Values.loki.tenants }}\n{{ htpasswd (required \&#34;All tenants must have a &#39;name&#39; set\&#34; $t.name) (required \&#34;All tenants must have a &#39;password&#39; set\&#34; $t.password) }}\n  {{- end }}\n{{ else }} {{ htpasswd (required \&#34;&#39;gateway.basicAuth.username&#39; is required\&#34; .Values.gateway.basicAuth.username) (required \&#34;&#39;gateway.basicAuth.password&#39; is required\&#34; .Values.gateway.basicAuth.password) }} {{ end }}&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.basicAuth.password&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The basic auth password for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.basicAuth.username&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The basic auth username for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.containerSecurityContext&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;The SecurityContext for gateway containers&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;allowPrivilegeEscalation&#34;: false,
  &#34;capabilities&#34;: {
    &#34;drop&#34;: [
      &#34;ALL&#34;
    ]
  },
  &#34;readOnlyRootFilesystem&#34;: true
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.deploymentStrategy.type&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;RollingUpdate&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Specifies whether the gateway should be enabled&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.extraArgs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional CLI args for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.extraEnv&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables to add to the gateway pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.extraEnvFrom&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables from secrets or configmaps to add to the gateway pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.extraVolumeMounts&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volume mounts to add to the gateway pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.extraVolumes&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volumes to add to the gateway pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.image.digest&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the gateway image tag with an image digest&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.image.pullPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The gateway image pull policy&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;IfNotPresent&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry for the gateway image&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;docker.io&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The gateway image repository&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;nginxinc/nginx-unprivileged&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The gateway image tag&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;1.23-alpine&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.ingress.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for the gateway ingress&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.ingress.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Specifies whether an ingress for the gateway should be created&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.ingress.hosts&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Hosts configuration for the gateway ingress&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[
  {
    &#34;host&#34;: &#34;gateway.loki.example.com&#34;,
    &#34;paths&#34;: [
      {
        &#34;path&#34;: &#34;/&#34;
      }
    ]
  }
]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.ingress.ingressClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Ingress Class Name. MAY be required for Kubernetes versions &gt;= 1.18&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.ingress.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Labels for the gateway ingress&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.ingress.tls&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;TLS configuration for the gateway ingress&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[
  {
    &#34;hosts&#34;: [
      &#34;gateway.loki.example.com&#34;
    ],
    &#34;secretName&#34;: &#34;loki-gateway-tls&#34;
  }
]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.lifecycle&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Lifecycle for the gateway container&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.nginxConfig.customBackendUrl&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Override Backend URL&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.nginxConfig.customReadUrl&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Override Read URL&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.nginxConfig.customWriteUrl&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Override Write URL&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.nginxConfig.file&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Config file contents for Nginx. Passed through the `tpl` function to allow templating&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;&#34;&gt;
See values.yaml
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.nginxConfig.httpSnippet&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Allows appending custom configuration to the http block, passed through the `tpl` function to allow templating&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;{{ if .Values.loki.tenants }}proxy_set_header X-Scope-OrgID $remote_user;{{ end }}&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.nginxConfig.logFormat&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;NGINX log format&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;main &#39;$remote_addr - $remote_user [$time_local]  $status &#39;\n        &#39;\&#34;$request\&#34; $body_bytes_sent \&#34;$http_referer\&#34; &#39;\n        &#39;\&#34;$http_user_agent\&#34; \&#34;$http_x_forwarded_for\&#34;&#39;;&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.nginxConfig.serverSnippet&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Allows appending custom configuration to the server block&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.nodeSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Node selector for gateway pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.podAnnotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for gateway pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.podLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for gateway pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.podSecurityContext&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;The SecurityContext for gateway containers&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;fsGroup&#34;: 101,
  &#34;runAsGroup&#34;: 101,
  &#34;runAsNonRoot&#34;: true,
  &#34;runAsUser&#34;: 101
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for gateway pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.readinessProbe.httpGet.path&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.readinessProbe.httpGet.port&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;http&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.readinessProbe.initialDelaySeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
15
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.readinessProbe.timeoutSeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
1
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.replicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Number of replicas for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
1
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.resources&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Resource requests and limits for the gateway&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.service.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for the gateway service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.service.clusterIP&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;ClusterIP of the gateway service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.service.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Labels for gateway service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.service.loadBalancerIP&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Load balancer IPO address if service type is LoadBalancer&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.service.nodePort&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Node port if service type is NodePort&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.service.port&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Port of the gateway service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
80
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.service.type&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Type of the gateway service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;ClusterIP&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.terminationGracePeriodSeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Grace period to allow the gateway to shutdown before it is killed&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
30
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.tolerations&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Tolerations for gateway pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;gateway.verboseLogging&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable logging of 2xx and 3xx HTTP requests&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;global.clusterDomain&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;configures cluster domain (&#34;cluster.local&#34; by default)&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;cluster.local&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;global.dnsNamespace&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;configures DNS service namespace&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;kube-system&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;global.dnsService&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;configures DNS service name&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;kube-dns&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;global.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the Docker registry globally for all images&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;global.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the priorityClassName for all pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;imagePullSecrets&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Image pull secrets for Docker images&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.hosts[0]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;loki.example.com&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.ingressClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.read[0]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/api/prom/tail&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.read[1]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/loki/api/v1/tail&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.read[2]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/loki/api&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.read[3]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/api/prom/rules&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.read[4]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/loki/api/v1/rules&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.read[5]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/prometheus/api/v1/rules&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.read[6]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/prometheus/api/v1/alerts&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.singleBinary[0]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/api/prom/push&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.singleBinary[1]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/loki/api/v1/push&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.singleBinary[2]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/api/prom/tail&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.singleBinary[3]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/loki/api/v1/tail&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.singleBinary[4]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/loki/api&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.singleBinary[5]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/api/prom/rules&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.singleBinary[6]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/loki/api/v1/rules&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.singleBinary[7]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/prometheus/api/v1/rules&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.singleBinary[8]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/prometheus/api/v1/alerts&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.write[0]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/api/prom/push&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.paths.write[1]&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/loki/api/v1/push&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;ingress.tls&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;kubectlImage.digest&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag with an image digest&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;kubectlImage.pullPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image pull policy&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;IfNotPresent&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;kubectlImage.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;docker.io&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;kubectlImage.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;bitnami/kubectl&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;kubectlImage.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag whose default is the chart&#39;s appVersion&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.analytics&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Optional analytics configuration&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Common annotations for all deployments/StatefulSets&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.auth_enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.commonConfig&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Check https://grafana.com/docs/loki/latest/configuration/#common_config for more info on how to provide a common configuration&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;compactor_address&#34;: &#34;{{ include \&#34;loki.compactorAddress\&#34; . }}&#34;,
  &#34;path_prefix&#34;: &#34;/var/loki&#34;,
  &#34;replication_factor&#34;: 3
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.compactor&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Optional compactor configuration&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.config&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Config file contents for Loki&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;&#34;&gt;
See values.yaml
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.configStorageType&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;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](https://grafana.com/docs/loki/latest/configuration/#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](https://kubernetes.io/docs/concepts/configuration/secret/#use-case-as-container-environment-variables).&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;ConfigMap&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.containerSecurityContext&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;The SecurityContext for Loki containers&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;allowPrivilegeEscalation&#34;: false,
  &#34;capabilities&#34;: {
    &#34;drop&#34;: [
      &#34;ALL&#34;
    ]
  },
  &#34;readOnlyRootFilesystem&#34;: true
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.enableServiceLinks&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Should enableServiceLinks be enabled. Default to enable&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.existingSecretForConfig&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Specify an existing secret containing loki configuration. If non-empty, overrides `loki.config`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.externalConfigSecretName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Name of the Secret or ConfigMap that contains the configuration (used for naming even if config is internal).&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;{{ include \&#34;loki.name\&#34; . }}&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.extraMemberlistConfig&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Extra memberlist configuration&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.frontend.scheduler_address&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;{{ include \&#34;loki.querySchedulerAddress\&#34; . }}&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.frontend_worker.scheduler_address&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;{{ include \&#34;loki.querySchedulerAddress\&#34; . }}&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.image.digest&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag with an image digest&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.image.pullPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image pull policy&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;IfNotPresent&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;docker.io&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;grafana/loki&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag whose default is the chart&#39;s appVersion TODO: needed for 3rd target backend functionality revert to null or latest once this behavior is relased&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.index_gateway&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Optional index gateway configuration&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;mode&#34;: &#34;ring&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.ingester&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Optional ingester configuration&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.limits_config&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Limits config&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;enforce_metric_name&#34;: false,
  &#34;max_cache_freshness_per_query&#34;: &#34;10m&#34;,
  &#34;reject_old_samples&#34;: true,
  &#34;reject_old_samples_max_age&#34;: &#34;168h&#34;,
  &#34;split_queries_by_interval&#34;: &#34;15m&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.memberlistConfig&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;memberlist configuration (overrides embedded default)&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.memcached&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Configure memcached as an external cache for chunk and results cache. Disabled by default must enable and specify a host for each cache you would like to use.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;chunk_cache&#34;: {
    &#34;batch_size&#34;: 256,
    &#34;enabled&#34;: false,
    &#34;host&#34;: &#34;&#34;,
    &#34;parallelism&#34;: 10,
    &#34;service&#34;: &#34;memcached-client&#34;
  },
  &#34;results_cache&#34;: {
    &#34;default_validity&#34;: &#34;12h&#34;,
    &#34;enabled&#34;: false,
    &#34;host&#34;: &#34;&#34;,
    &#34;service&#34;: &#34;memcached-client&#34;,
    &#34;timeout&#34;: &#34;500ms&#34;
  }
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.podAnnotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Common annotations for all pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.podLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Common labels for all pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.podSecurityContext&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;The SecurityContext for Loki pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;fsGroup&#34;: 10001,
  &#34;runAsGroup&#34;: 10001,
  &#34;runAsNonRoot&#34;: true,
  &#34;runAsUser&#34;: 10001
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.querier&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Optional querier configuration&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.query_scheduler&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional query scheduler config&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.readinessProbe.httpGet.path&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;/ready&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.readinessProbe.httpGet.port&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;http-metrics&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.readinessProbe.initialDelaySeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
30
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.readinessProbe.timeoutSeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
1
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.revisionHistoryLimit&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;The number of old ReplicaSets to retain to allow rollback&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
10
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.rulerConfig&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Check https://grafana.com/docs/loki/latest/configuration/#ruler for more info on configuring ruler&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.runtimeConfig&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Provides a reloadable runtime configuration file for some specific configuration&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.schemaConfig&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Check https://grafana.com/docs/loki/latest/configuration/#schema_config for more info on how to configure schemas&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.server&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Check https://grafana.com/docs/loki/latest/configuration/#server for more info on the server configuration.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;grpc_listen_port&#34;: 9095,
  &#34;http_listen_port&#34;: 3100
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.storage&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Storage config. Providing this will automatically populate all necessary storage configs in the templated config.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;azure&#34;: {
    &#34;accountKey&#34;: null,
    &#34;accountName&#34;: null,
    &#34;endpointSuffix&#34;: null,
    &#34;requestTimeout&#34;: null,
    &#34;useFederatedToken&#34;: false,
    &#34;useManagedIdentity&#34;: false,
    &#34;userAssignedId&#34;: null
  },
  &#34;bucketNames&#34;: {
    &#34;admin&#34;: &#34;admin&#34;,
    &#34;chunks&#34;: &#34;chunks&#34;,
    &#34;ruler&#34;: &#34;ruler&#34;
  },
  &#34;filesystem&#34;: {
    &#34;chunks_directory&#34;: &#34;/var/loki/chunks&#34;,
    &#34;rules_directory&#34;: &#34;/var/loki/rules&#34;
  },
  &#34;gcs&#34;: {
    &#34;chunkBufferSize&#34;: 0,
    &#34;enableHttp2&#34;: true,
    &#34;requestTimeout&#34;: &#34;0s&#34;
  },
  &#34;s3&#34;: {
    &#34;accessKeyId&#34;: null,
    &#34;endpoint&#34;: null,
    &#34;http_config&#34;: {},
    &#34;insecure&#34;: false,
    &#34;region&#34;: null,
    &#34;s3&#34;: null,
    &#34;s3ForcePathStyle&#34;: false,
    &#34;secretAccessKey&#34;: null,
    &#34;signatureVersion&#34;: null
  },
  &#34;type&#34;: &#34;s3&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.storage_config&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional storage config&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;hedging&#34;: {
    &#34;at&#34;: &#34;250ms&#34;,
    &#34;max_per_second&#34;: 20,
    &#34;up_to&#34;: 3
  }
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.structuredConfig&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Structured loki configuration, takes precedence over `loki.config`, `loki.schemaConfig`, `loki.storageConfig`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;loki.tenants&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Tenants list to be created on nginx htpasswd file, with name and password keys&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;memberlist.service.publishNotReadyAddresses&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;migrate&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Options that may be necessary when performing a migration from another helm chart&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;fromDistributed&#34;: {
    &#34;enabled&#34;: false,
    &#34;memberlistService&#34;: &#34;&#34;
  }
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;migrate.fromDistributed&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;When migrating from a distributed chart like loki-distributed or enterprise-logs&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;enabled&#34;: false,
  &#34;memberlistService&#34;: &#34;&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;migrate.fromDistributed.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Set to true if migrating from a distributed helm chart&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;migrate.fromDistributed.memberlistService&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;If migrating from a distributed service, provide the distributed deployment&#39;s memberlist service DNS so the new deployment can join its ring.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;minio&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;-----------------------------------&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;buckets&#34;: [
    {
      &#34;name&#34;: &#34;chunks&#34;,
      &#34;policy&#34;: &#34;none&#34;,
      &#34;purge&#34;: false
    },
    {
      &#34;name&#34;: &#34;ruler&#34;,
      &#34;policy&#34;: &#34;none&#34;,
      &#34;purge&#34;: false
    },
    {
      &#34;name&#34;: &#34;admin&#34;,
      &#34;policy&#34;: &#34;none&#34;,
      &#34;purge&#34;: false
    }
  ],
  &#34;drivesPerNode&#34;: 2,
  &#34;enabled&#34;: false,
  &#34;persistence&#34;: {
    &#34;size&#34;: &#34;5Gi&#34;
  },
  &#34;replicas&#34;: 1,
  &#34;resources&#34;: {
    &#34;requests&#34;: {
      &#34;cpu&#34;: &#34;100m&#34;,
      &#34;memory&#34;: &#34;128Mi&#34;
    }
  },
  &#34;rootPassword&#34;: &#34;supersecret&#34;,
  &#34;rootUser&#34;: &#34;enterprise-logs&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.dashboards.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional annotations for the dashboards ConfigMap&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.dashboards.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;If enabled, create configmap with dashboards for monitoring Loki&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.dashboards.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Labels for the dashboards ConfigMap&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;grafana_dashboard&#34;: &#34;1&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.dashboards.namespace&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Alternative namespace to create dashboards ConfigMap in&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional annotations for the `loki-canary` Daemonset&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.extraArgs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional CLI arguments for the `loki-canary&#39; command&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.extraEnv&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables to add to the canary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.extraEnvFrom&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables from secrets or configmaps to add to the canary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.image&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Image to use for loki canary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;digest&#34;: null,
  &#34;pullPolicy&#34;: &#34;IfNotPresent&#34;,
  &#34;registry&#34;: &#34;docker.io&#34;,
  &#34;repository&#34;: &#34;grafana/loki-canary&#34;,
  &#34;tag&#34;: null
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.image.digest&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag with an image digest&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.image.pullPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image pull policy&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;IfNotPresent&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;docker.io&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;grafana/loki-canary&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag whose default is the chart&#39;s appVersion&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.labelname&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the label to look for at loki when doing the checks.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;pod&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.nodeSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Node selector for canary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.podLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for each `loki-canary` pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for loki-canary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.resources&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Resource requests and limits for the canary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.tolerations&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Tolerations for canary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.lokiCanary.updateStrategy&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Update strategy for the `loki-canary` Daemonset pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;rollingUpdate&#34;: {
    &#34;maxUnavailable&#34;: 1
  },
  &#34;type&#34;: &#34;RollingUpdate&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.rules.additionalGroups&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional groups to add to the rules file&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.rules.additionalRuleLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for PrometheusRule alerts&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.rules.alerting&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Include alerting rules&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.rules.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional annotations for the rules PrometheusRule resource&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.rules.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;If enabled, create PrometheusRule resource with Loki recording rules&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.rules.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for the rules PrometheusRule resource&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.rules.namespace&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Alternative namespace to create PrometheusRule resources in&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.grafanaAgent.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Grafana Agent annotations&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.grafanaAgent.enableConfigReadAPI&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable the config read api on port 8080 of the agent&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.grafanaAgent.installOperator&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Controls whether to install the Grafana Agent Operator and its CRDs. Note that helm will not install CRDs if this flag is enabled during an upgrade. In that case install the CRDs manually from https://github.com/grafana/agent/tree/main/production/operator/crds&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.grafanaAgent.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional Grafana Agent labels&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.grafanaAgent.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for GrafanaAgent pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.logsInstance.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;LogsInstance annotations&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.logsInstance.clients&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Additional clients for remote write&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.logsInstance.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional LogsInstance labels&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.podLogs.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;PodLogs annotations&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.podLogs.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional PodLogs labels&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.podLogs.relabelings&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;PodLogs relabel configs to apply to samples before scraping https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.tenant&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Tenant to use for self monitoring&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;name&#34;: &#34;self-monitoring&#34;,
  &#34;secretNamespace&#34;: &#34;{{ .Release.Namespace }}&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.tenant.name&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Name of the tenant&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;self-monitoring&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.selfMonitoring.tenant.secretNamespace&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Namespace to create additional tenant token secret in. Useful if your Grafana instance is in a separate namespace. Token will still be created in the canary namespace.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;{{ .Release.Namespace }}&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;ServiceMonitor annotations&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;If enabled, ServiceMonitor resources for Prometheus Operator are created&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.interval&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;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.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;15s&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional ServiceMonitor labels&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.metricRelabelings&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;ServiceMonitor metric relabel configs to apply to samples before ingestion https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#endpoint&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.metricsInstance&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;If defined, will create a MetricsInstance for the Grafana Agent Operator.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;annotations&#34;: {},
  &#34;enabled&#34;: true,
  &#34;labels&#34;: {},
  &#34;remoteWrite&#34;: null
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.metricsInstance.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;MetricsInstance annotations&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.metricsInstance.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;If enabled, MetricsInstance resources for Grafana Agent Operator are created&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.metricsInstance.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional MetricsInstance labels&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.metricsInstance.remoteWrite&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;If defined a MetricsInstance will be created to remote write metrics.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.namespaceSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Namespace selector for ServiceMonitor resources&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.relabelings&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;ServiceMonitor relabel configs to apply to samples before scraping https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/api.md#relabelconfig&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.scheme&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;ServiceMonitor will use http by default, but you can pick https as well&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;http&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.scrapeTimeout&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;ServiceMonitor scrape timeout in Go duration format (e.g. 15s)&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;monitoring.serviceMonitor.tlsConfig&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;ServiceMonitor will use these tlsConfig settings to make the health check requests&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;nameOverride&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the chart&#39;s name&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.alertmanager.namespaceSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Specifies the namespace the alertmanager is running in&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.alertmanager.podSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Specifies the alertmanager Pods. As this is cross-namespace communication, you also need the namespaceSelector.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.alertmanager.port&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Specify the alertmanager port used for alerting&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
9093
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.discovery.namespaceSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Specifies the namespace the discovery Pods are running in&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.discovery.podSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Specifies the Pods labels used for discovery. As this is cross-namespace communication, you also need the namespaceSelector.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.discovery.port&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Specify the port used for discovery&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Specifies whether Network Policies should be created&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.externalStorage.cidrs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Specifies specific network CIDRs you want to limit access to&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.externalStorage.ports&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Specify the port used for external storage, e.g. AWS S3&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.ingress.namespaceSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Specifies the namespaces which are allowed to access the http port&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.ingress.podSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Specifies the Pods which are allowed to access the http port. As this is cross-namespace communication, you also need the namespaceSelector.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.metrics.cidrs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;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.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.metrics.namespaceSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Specifies the namespaces which are allowed to access the metrics port&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;networkPolicy.metrics.podSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Specifies the Pods which are allowed to access the metrics port. As this is cross-namespace communication, you also need the namespaceSelector.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;rbac.pspEnabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;If pspEnabled true, a PodSecurityPolicy is created for K8s that use psp.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;rbac.sccEnabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;For OpenShift set pspEnabled to &#39;false&#39; and sccEnabled to &#39;true&#39; to use the SecurityContextConstraints.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.affinity&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Affinity for read pods. Passed through `tpl` and, thus, to be configured as string&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;&#34;&gt;
Hard node and soft zone anti-affinity
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for read deployment&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.autoscaling.behavior&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Behavior policies while scaling.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.autoscaling.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable autoscaling for the read, this is only used if `queryIndex.enabled: true`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.autoscaling.maxReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Maximum autoscaling replicas for the read&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
3
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.autoscaling.minReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Minimum autoscaling replicas for the read&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
1
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.autoscaling.targetCPUUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Target CPU utilisation percentage for the read&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
60
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.autoscaling.targetMemoryUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Target memory utilisation percentage for the read&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.extraArgs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional CLI args for the read&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.extraEnv&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables to add to the read pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.extraEnvFrom&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables from secrets or configmaps to add to the read pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.extraVolumeMounts&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volume mounts to add to the read pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.extraVolumes&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volumes to add to the read pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry for the read image. Overrides `loki.image.registry`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository for the read image. Overrides `loki.image.repository`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image tag for the read image. Overrides `loki.image.tag`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.legacyReadTarget&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Whether or not to use the 2 target type simple scalable mode (read, write) or the 3 target type (read, write, backend). Legacy refers to the 2 target type, so true will run two targets, false will run 3 targets.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.lifecycle&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Lifecycle for the read container&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.nodeSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Node selector for read pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.persistence.enableStatefulSetAutoDeletePVC&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable StatefulSetAutoDeletePVC feature&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.persistence.selector&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Selector for persistent disk&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.persistence.size&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Size of persistent disk&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;10Gi&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.persistence.storageClass&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Storage class to be used. If defined, storageClassName: &lt;storageClass&gt;. If set to &#34;-&#34;, storageClassName: &#34;&#34;, 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).&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.podAnnotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for read pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.podLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for each `read` pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.podManagementPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The default is to deploy all pods in parallel.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;Parallel&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for read pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.replicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Number of replicas for the read&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
3
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.resources&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Resource requests and limits for the read&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.selectorLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional selector labels for each `read` pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.serviceLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Labels for read service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.targetModule&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Comma-separated list of Loki modules to load for the read&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;read&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.terminationGracePeriodSeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Grace period to allow the read to shutdown before it is killed&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
30
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;read.tolerations&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Tolerations for read pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;serviceAccount.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for the service account&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;serviceAccount.automountServiceAccountToken&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Set this toggle to false to opt out of automounting API credentials for the service account&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;serviceAccount.create&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Specifies whether a ServiceAccount should be created&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;serviceAccount.imagePullSecrets&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Image pull secrets for the service account&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;serviceAccount.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Labels for the service account&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;serviceAccount.name&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the ServiceAccount to use. If not set and create is true, a name is generated using the fullname template&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.affinity&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Affinity for single binary pods. Passed through `tpl` and, thus, to be configured as string&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;&#34;&gt;
Hard node and soft zone anti-affinity
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for single binary StatefulSet&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.autoscaling.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable autoscaling&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.autoscaling.maxReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Maximum autoscaling replicas for the single binary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
3
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.autoscaling.minReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Minimum autoscaling replicas for the single binary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
1
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.autoscaling.targetCPUUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Target CPU utilisation percentage for the single binary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
60
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.autoscaling.targetMemoryUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Target memory utilisation percentage for the single binary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.extraArgs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Labels for single binary service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.extraContainers&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Extra containers to add to the single binary loki pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.extraEnv&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables to add to the single binary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.extraEnvFrom&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables from secrets or configmaps to add to the single binary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.extraVolumeMounts&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volume mounts to add to the single binary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.extraVolumes&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volumes to add to the single binary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry for the single binary image. Overrides `loki.image.registry`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository for the single binary image. Overrides `loki.image.repository`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image tag for the single binary image. Overrides `loki.image.tag`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.initContainers&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Init containers to add to the single binary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.nodeSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Node selector for single binary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.persistence.enableStatefulSetAutoDeletePVC&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable StatefulSetAutoDeletePVC feature&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.persistence.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable persistent disk&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
true
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.persistence.selector&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Selector for persistent disk&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.persistence.size&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Size of persistent disk&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;10Gi&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.persistence.storageClass&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Storage class to be used. If defined, storageClassName: &lt;storageClass&gt;. If set to &#34;-&#34;, storageClassName: &#34;&#34;, 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).&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.podAnnotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for single binary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.podLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for each `single binary` pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for single binary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.replicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Number of replicas for the single binary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
0
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.resources&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Resource requests and limits for the single binary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.selectorLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional selector labels for each `single binary` pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.targetModule&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Comma-separated list of Loki modules to load for the single binary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;all&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.terminationGracePeriodSeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Grace period to allow the single binary to shutdown before it is killed&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
30
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;singleBinary.tolerations&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Tolerations for single binary pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.affinity&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Affinity for table-manager pods. Passed through `tpl` and, thus, to be configured as string&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;&#34;&gt;
Hard node and soft zone anti-affinity
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for table-manager deployment&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.command&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Command to execute instead of defined in Docker image&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Specifies whether the table-manager should be enabled&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.extraArgs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional CLI args for the table-manager&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.extraContainers&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Containers to add to the table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.extraEnv&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables to add to the table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.extraEnvFrom&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables from secrets or configmaps to add to the table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.extraVolumeMounts&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volume mounts to add to the table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.extraVolumes&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volumes to add to the table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry for the table-manager image. Overrides `loki.image.registry`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository for the table-manager image. Overrides `loki.image.repository`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image tag for the table-manager image. Overrides `loki.image.tag`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.nodeSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Node selector for table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.podAnnotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.podLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Labels for table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.resources&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Resource requests and limits for the table-manager&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.retention_deletes_enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable deletes by retention&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.retention_period&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Set retention period&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
0
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.serviceLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Labels for table-manager service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.terminationGracePeriodSeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Grace period to allow the table-manager to shutdown before it is killed&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
30
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tableManager.tolerations&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Tolerations for table-manager pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Section for configuring optional Helm test&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;annotations&#34;: {},
  &#34;enabled&#34;: true,
  &#34;image&#34;: {
    &#34;digest&#34;: null,
    &#34;pullPolicy&#34;: &#34;IfNotPresent&#34;,
    &#34;registry&#34;: &#34;docker.io&#34;,
    &#34;repository&#34;: &#34;grafana/loki-helm-test&#34;,
    &#34;tag&#34;: null
  },
  &#34;labels&#34;: {},
  &#34;prometheusAddress&#34;: &#34;http://prometheus:9090&#34;,
  &#34;timeout&#34;: &#34;1m&#34;
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional annotations for test pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.image&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Image to use for loki canary&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;digest&#34;: null,
  &#34;pullPolicy&#34;: &#34;IfNotPresent&#34;,
  &#34;registry&#34;: &#34;docker.io&#34;,
  &#34;repository&#34;: &#34;grafana/loki-helm-test&#34;,
  &#34;tag&#34;: null
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.image.digest&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag with an image digest&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.image.pullPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image pull policy&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;IfNotPresent&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;docker.io&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;grafana/loki-helm-test&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Overrides the image tag whose default is the chart&#39;s appVersion&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.labels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for the test pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.prometheusAddress&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Address of the prometheus server to query for the test&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;http://prometheus:9090&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;test.timeout&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Number of times to retry the test before failing&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;1m&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;tracing.jaegerAgentHost&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.affinity&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Affinity for write pods. Passed through `tpl` and, thus, to be configured as string&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;&#34;&gt;
Hard node and soft zone anti-affinity
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.annotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for write StatefulSet&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.autoscaling.behavior&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Behavior policies while scaling.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;scaleDown&#34;: {
    &#34;policies&#34;: [
      {
        &#34;periodSeconds&#34;: 1800,
        &#34;type&#34;: &#34;Pods&#34;,
        &#34;value&#34;: 1
      }
    ],
    &#34;stabilizationWindowSeconds&#34;: 3600
  },
  &#34;scaleUp&#34;: {
    &#34;policies&#34;: [
      {
        &#34;periodSeconds&#34;: 900,
        &#34;type&#34;: &#34;Pods&#34;,
        &#34;value&#34;: 1
      }
    ]
  }
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.autoscaling.behavior.scaleUp&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;see https://github.com/grafana/loki/blob/main/docs/sources/operations/storage/wal.md#how-to-scale-updown for scaledown details&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{
  &#34;policies&#34;: [
    {
      &#34;periodSeconds&#34;: 900,
      &#34;type&#34;: &#34;Pods&#34;,
      &#34;value&#34;: 1
    }
  ]
}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.autoscaling.enabled&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable autoscaling for the write.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.autoscaling.maxReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Maximum autoscaling replicas for the write.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
3
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.autoscaling.minReplicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Minimum autoscaling replicas for the write.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
1
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.autoscaling.targetCPUUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Target CPU utilisation percentage for the write.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
60
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.autoscaling.targetMemoryUtilizationPercentage&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Target memory utilization percentage for the write.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.extraArgs&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Additional CLI args for the write&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.extraEnv&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables to add to the write pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.extraEnvFrom&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Environment variables from secrets or configmaps to add to the write pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.extraVolumeClaimTemplates&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;volumeClaimTemplates to add to StatefulSet&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.extraVolumeMounts&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volume mounts to add to the write pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.extraVolumes&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Volumes to add to the write pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.image.registry&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The Docker registry for the write image. Overrides `loki.image.registry`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.image.repository&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image repository for the write image. Overrides `loki.image.repository`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.image.tag&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Docker image tag for the write image. Overrides `loki.image.tag`&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.initContainers&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Init containers to add to the write pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.lifecycle&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Lifecycle for the write container&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.nodeSelector&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Node selector for write pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.persistence.enableStatefulSetAutoDeletePVC&lt;/td&gt;
			&lt;td&gt;bool&lt;/td&gt;
			&lt;td&gt;Enable StatefulSetAutoDeletePVC feature&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
false
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.persistence.selector&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Selector for persistent disk&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.persistence.size&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Size of persistent disk&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;10Gi&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.persistence.storageClass&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Storage class to be used. If defined, storageClassName: &lt;storageClass&gt;. If set to &#34;-&#34;, storageClassName: &#34;&#34;, 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).&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.podAnnotations&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Annotations for write pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.podLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional labels for each `write` pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.podManagementPolicy&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The default is to deploy all pods in parallel.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;Parallel&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.priorityClassName&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;The name of the PriorityClass for write pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
null
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.replicas&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;Number of replicas for the write&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
3
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.resources&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Resource requests and limits for the write&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.selectorLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Additional selector labels for each `write` pod&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.serviceLabels&lt;/td&gt;
			&lt;td&gt;object&lt;/td&gt;
			&lt;td&gt;Labels for ingester service&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
{}
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.targetModule&lt;/td&gt;
			&lt;td&gt;string&lt;/td&gt;
			&lt;td&gt;Comma-separated list of Loki modules to load for the write&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
&#34;write&#34;
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.terminationGracePeriodSeconds&lt;/td&gt;
			&lt;td&gt;int&lt;/td&gt;
			&lt;td&gt;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.&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
300
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;write.tolerations&lt;/td&gt;
			&lt;td&gt;list&lt;/td&gt;
			&lt;td&gt;Tolerations for write pods&lt;/td&gt;
			&lt;td&gt;&lt;pre lang=&#34;json&#34;&gt;
[]
&lt;/pre&gt;
&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;

&lt;/div&gt;

]]></content><description>&lt;!-- Autogenerated. Modify ../production/helm/loki/reference.md.gotmpl -->
&lt;h1 id="helm-chart-values">Helm Chart Values&lt;/h1>
&lt;!-- vale Grafana.Quotes = NO -->
&lt;!-- The reference title is required. Use a noun-based title. -->
&lt;!-- vale Grafana.Quotes = YES -->
&lt;p>This is the generated reference for the Loki Helm Chart values.&lt;/p></description></item><item><title>Monitoring</title><link>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/monitor-and-alert/</link><pubDate>Thu, 10 Apr 2025 12:15:54 +0000</pubDate><guid>https://grafana.com/docs/loki/v2.9.x/setup/install/helm/monitor-and-alert/</guid><content><![CDATA[&lt;h1 id=&#34;monitoring&#34;&gt;Monitoring&lt;/h1&gt;
&lt;p&gt;There are two common ways to monitor Loki:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;with-grafana-cloud/&#34;&gt;Monitor using Grafana Cloud (recommended)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;with-local-monitoring/&#34;&gt;Monitor using Local Monitoring&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="monitoring">Monitoring&lt;/h1>
&lt;p>There are two common ways to monitor Loki:&lt;/p>
&lt;ul>
&lt;li>&lt;a href="with-grafana-cloud/">Monitor using Grafana Cloud (recommended)&lt;/a>&lt;/li>
&lt;li>&lt;a href="with-local-monitoring/">Monitor using Local Monitoring&lt;/a>&lt;/li>
&lt;/ul></description></item></channel></rss>