From 9c34efa8bda74b7c25d669c5d8ce2f2fc18ff695 Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Mon, 1 Jul 2024 15:29:58 -0400
Subject: [PATCH 01/11] Enabled the volume API and added a limiter to it

---
 operator/internal/manifests/internal/config/loki-config.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/operator/internal/manifests/internal/config/loki-config.yaml b/operator/internal/manifests/internal/config/loki-config.yaml
index 38326157f2937..837db1ed4e933 100644
--- a/operator/internal/manifests/internal/config/loki-config.yaml
+++ b/operator/internal/manifests/internal/config/loki-config.yaml
@@ -201,6 +201,8 @@ limits_config:
   cardinality_limit: {{ .Stack.Limits.Global.QueryLimits.CardinalityLimit }}
   max_streams_matchers_per_query: 1000
   query_timeout: {{ .Stack.Limits.Global.QueryLimits.QueryTimeout }}
+  volume_enabled: true
+  volume_max_series: 1000
 {{- if .Retention.Enabled }}{{- with .Stack.Limits.Global.Retention }}
   retention_period: {{.Days}}d
 {{- with .Streams }}

From f2f102e881428dcc8541266a9ca9116bcbc0a0f0 Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Tue, 2 Jul 2024 09:56:05 -0400
Subject: [PATCH 02/11] Added volume to lokistack types

---
 operator/apis/loki/v1/lokistack_types.go | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/operator/apis/loki/v1/lokistack_types.go b/operator/apis/loki/v1/lokistack_types.go
index 185f6bb1d8461..02b4ae0bc8fe0 100644
--- a/operator/apis/loki/v1/lokistack_types.go
+++ b/operator/apis/loki/v1/lokistack_types.go
@@ -643,6 +643,13 @@ type QueryLimitSpec struct {
 	// +kubebuilder:validation:Optional
 	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Cardinality Limit"
 	CardinalityLimit int32 `json:"cardinalityLimit,omitempty"`
+	
+	// MaxVolumeSeries defines the maximum number of aggregated series in a log-volume response
+	//
+	// +optional
+	// +kubebuilder:validation:Optional
+	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Max Volume Series"
+	MaxVolumeSeries int32 `json:"maxVolumeSeries,omitempty"`
 }
 
 // BlockedQueryType defines which type of query a blocked query should apply to.

From db04dc41ce48de5cc3e4fff7ced45c092e505fab Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Tue, 2 Jul 2024 11:26:11 -0400
Subject: [PATCH 03/11] Updated testing to reflect the addition of the volume
 API

---
 .../manifests/internal/config/build_test.go   | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/operator/internal/manifests/internal/config/build_test.go b/operator/internal/manifests/internal/config/build_test.go
index 9486771f2611b..76e94c56b47e0 100644
--- a/operator/internal/manifests/internal/config/build_test.go
+++ b/operator/internal/manifests/internal/config/build_test.go
@@ -110,6 +110,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -368,6 +370,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -795,6 +799,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -1154,6 +1160,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -1514,6 +1522,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -1912,6 +1922,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -2243,6 +2255,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 2m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -2683,6 +2697,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -3008,6 +3024,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 2m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -3506,6 +3524,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -3768,6 +3788,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -4031,6 +4053,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -4295,6 +4319,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -4595,6 +4621,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:
@@ -4895,6 +4923,8 @@ limits_config:
   split_queries_by_interval: 30m
   tsdb_max_query_parallelism: 512
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   allow_structured_metadata: true
 memberlist:
   abort_if_cluster_join_fails: true
@@ -5386,6 +5416,8 @@ limits_config:
   per_stream_rate_limit_burst: 15MB
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   allow_structured_metadata: true
 memberlist:
   abort_if_cluster_join_fails: true
@@ -5561,6 +5593,8 @@ limits_config:
   per_stream_rate_limit_burst: 15MB
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   allow_structured_metadata: true
 memberlist:
   abort_if_cluster_join_fails: true
@@ -5730,6 +5764,8 @@ limits_config:
   max_cache_freshness_per_query: 10m
   split_queries_by_interval: 30m
   query_timeout: 1m
+  volume_enabled: true
+  volume_max_series: 1000
   per_stream_rate_limit: 5MB
   per_stream_rate_limit_burst: 15MB
   shard_streams:

From 38d6ea628edc130e4caa64454bdf4ca0af8cab78 Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Tue, 2 Jul 2024 11:50:35 -0400
Subject: [PATCH 04/11] Added CRD variable

---
 operator/internal/manifests/internal/config/loki-config.yaml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/operator/internal/manifests/internal/config/loki-config.yaml b/operator/internal/manifests/internal/config/loki-config.yaml
index 837db1ed4e933..7db4597f1c62d 100644
--- a/operator/internal/manifests/internal/config/loki-config.yaml
+++ b/operator/internal/manifests/internal/config/loki-config.yaml
@@ -202,7 +202,7 @@ limits_config:
   max_streams_matchers_per_query: 1000
   query_timeout: {{ .Stack.Limits.Global.QueryLimits.QueryTimeout }}
   volume_enabled: true
-  volume_max_series: 1000
+  volume_max_series: {{ .Stack.Limits.Global.QueryLimits.MaxVolumeSeries }}
 {{- if .Retention.Enabled }}{{- with .Stack.Limits.Global.Retention }}
   retention_period: {{.Days}}d
 {{- with .Streams }}

From e771653aeb4bdc1be96a6a33a21ef0e391297980 Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Tue, 2 Jul 2024 12:25:05 -0400
Subject: [PATCH 05/11] COmmited make bundle-all

---
 .../loki-operator.clusterserviceversion.yaml       | 14 +++++++++++++-
 .../manifests/loki.grafana.com_lokistacks.yaml     | 10 ++++++++++
 .../loki-operator.clusterserviceversion.yaml       | 14 +++++++++++++-
 .../manifests/loki.grafana.com_lokistacks.yaml     | 10 ++++++++++
 .../loki-operator.clusterserviceversion.yaml       | 14 +++++++++++++-
 .../manifests/loki.grafana.com_lokistacks.yaml     | 10 ++++++++++
 .../crd/bases/loki.grafana.com_lokistacks.yaml     | 10 ++++++++++
 .../bases/loki-operator.clusterserviceversion.yaml | 12 ++++++++++++
 .../bases/loki-operator.clusterserviceversion.yaml | 12 ++++++++++++
 .../bases/loki-operator.clusterserviceversion.yaml | 12 ++++++++++++
 10 files changed, 115 insertions(+), 3 deletions(-)

diff --git a/operator/bundle/community-openshift/manifests/loki-operator.clusterserviceversion.yaml b/operator/bundle/community-openshift/manifests/loki-operator.clusterserviceversion.yaml
index bd28187a5f013..e91e10a64442d 100644
--- a/operator/bundle/community-openshift/manifests/loki-operator.clusterserviceversion.yaml
+++ b/operator/bundle/community-openshift/manifests/loki-operator.clusterserviceversion.yaml
@@ -150,7 +150,7 @@ metadata:
     categories: OpenShift Optional, Logging & Tracing
     certified: "false"
     containerImage: docker.io/grafana/loki-operator:0.6.1
-    createdAt: "2024-06-12T17:07:27Z"
+    createdAt: "2024-07-02T16:13:52Z"
     description: The Community Loki Operator provides Kubernetes native deployment
       and management of Loki and related logging components.
     features.operators.openshift.io/disconnected: "true"
@@ -384,6 +384,12 @@ spec:
         path: limits.global.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.global.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
@@ -495,6 +501,12 @@ spec:
         path: limits.tenants.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.tenants.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
diff --git a/operator/bundle/community-openshift/manifests/loki.grafana.com_lokistacks.yaml b/operator/bundle/community-openshift/manifests/loki.grafana.com_lokistacks.yaml
index df256e183a01e..7cfeec6d074f6 100644
--- a/operator/bundle/community-openshift/manifests/loki.grafana.com_lokistacks.yaml
+++ b/operator/bundle/community-openshift/manifests/loki.grafana.com_lokistacks.yaml
@@ -191,6 +191,11 @@ spec:
                               that is returned by a metric query.
                             format: int32
                             type: integer
+                          maxVolumeSeries:
+                            description: MaxVolumeSeries defines the maximum number
+                              of aggregated series in a log-volume response
+                            format: int32
+                            type: integer
                           queryTimeout:
                             default: 3m
                             description: Timeout when querying ingesters or storage
@@ -366,6 +371,11 @@ spec:
                                 that is returned by a metric query.
                               format: int32
                               type: integer
+                            maxVolumeSeries:
+                              description: MaxVolumeSeries defines the maximum number
+                                of aggregated series in a log-volume response
+                              format: int32
+                              type: integer
                             queryTimeout:
                               default: 3m
                               description: Timeout when querying ingesters or storage
diff --git a/operator/bundle/community/manifests/loki-operator.clusterserviceversion.yaml b/operator/bundle/community/manifests/loki-operator.clusterserviceversion.yaml
index 42d3b88c6d79e..03195bfe7ccec 100644
--- a/operator/bundle/community/manifests/loki-operator.clusterserviceversion.yaml
+++ b/operator/bundle/community/manifests/loki-operator.clusterserviceversion.yaml
@@ -150,7 +150,7 @@ metadata:
     categories: OpenShift Optional, Logging & Tracing
     certified: "false"
     containerImage: docker.io/grafana/loki-operator:0.6.1
-    createdAt: "2024-06-12T17:07:25Z"
+    createdAt: "2024-07-02T16:13:50Z"
     description: The Community Loki Operator provides Kubernetes native deployment
       and management of Loki and related logging components.
     operators.operatorframework.io/builder: operator-sdk-unknown
@@ -377,6 +377,12 @@ spec:
         path: limits.global.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.global.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
@@ -488,6 +494,12 @@ spec:
         path: limits.tenants.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.tenants.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
diff --git a/operator/bundle/community/manifests/loki.grafana.com_lokistacks.yaml b/operator/bundle/community/manifests/loki.grafana.com_lokistacks.yaml
index b349edbecec95..234ec782eb1bf 100644
--- a/operator/bundle/community/manifests/loki.grafana.com_lokistacks.yaml
+++ b/operator/bundle/community/manifests/loki.grafana.com_lokistacks.yaml
@@ -191,6 +191,11 @@ spec:
                               that is returned by a metric query.
                             format: int32
                             type: integer
+                          maxVolumeSeries:
+                            description: MaxVolumeSeries defines the maximum number
+                              of aggregated series in a log-volume response
+                            format: int32
+                            type: integer
                           queryTimeout:
                             default: 3m
                             description: Timeout when querying ingesters or storage
@@ -366,6 +371,11 @@ spec:
                                 that is returned by a metric query.
                               format: int32
                               type: integer
+                            maxVolumeSeries:
+                              description: MaxVolumeSeries defines the maximum number
+                                of aggregated series in a log-volume response
+                              format: int32
+                              type: integer
                             queryTimeout:
                               default: 3m
                               description: Timeout when querying ingesters or storage
diff --git a/operator/bundle/openshift/manifests/loki-operator.clusterserviceversion.yaml b/operator/bundle/openshift/manifests/loki-operator.clusterserviceversion.yaml
index b270d82272608..d21f1adbb7c4d 100644
--- a/operator/bundle/openshift/manifests/loki-operator.clusterserviceversion.yaml
+++ b/operator/bundle/openshift/manifests/loki-operator.clusterserviceversion.yaml
@@ -150,7 +150,7 @@ metadata:
     categories: OpenShift Optional, Logging & Tracing
     certified: "false"
     containerImage: quay.io/openshift-logging/loki-operator:0.1.0
-    createdAt: "2024-06-12T17:07:29Z"
+    createdAt: "2024-07-02T16:13:54Z"
     description: |
       The Loki Operator for OCP provides a means for configuring and managing a Loki stack for cluster logging.
       ## Prerequisites and Requirements
@@ -397,6 +397,12 @@ spec:
         path: limits.global.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.global.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
@@ -508,6 +514,12 @@ spec:
         path: limits.tenants.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.tenants.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
diff --git a/operator/bundle/openshift/manifests/loki.grafana.com_lokistacks.yaml b/operator/bundle/openshift/manifests/loki.grafana.com_lokistacks.yaml
index fe4d81f5646f5..4ab2f8aaba2ad 100644
--- a/operator/bundle/openshift/manifests/loki.grafana.com_lokistacks.yaml
+++ b/operator/bundle/openshift/manifests/loki.grafana.com_lokistacks.yaml
@@ -191,6 +191,11 @@ spec:
                               that is returned by a metric query.
                             format: int32
                             type: integer
+                          maxVolumeSeries:
+                            description: MaxVolumeSeries defines the maximum number
+                              of aggregated series in a log-volume response
+                            format: int32
+                            type: integer
                           queryTimeout:
                             default: 3m
                             description: Timeout when querying ingesters or storage
@@ -366,6 +371,11 @@ spec:
                                 that is returned by a metric query.
                               format: int32
                               type: integer
+                            maxVolumeSeries:
+                              description: MaxVolumeSeries defines the maximum number
+                                of aggregated series in a log-volume response
+                              format: int32
+                              type: integer
                             queryTimeout:
                               default: 3m
                               description: Timeout when querying ingesters or storage
diff --git a/operator/config/crd/bases/loki.grafana.com_lokistacks.yaml b/operator/config/crd/bases/loki.grafana.com_lokistacks.yaml
index cc971fd0c562c..2429338bd3a60 100644
--- a/operator/config/crd/bases/loki.grafana.com_lokistacks.yaml
+++ b/operator/config/crd/bases/loki.grafana.com_lokistacks.yaml
@@ -173,6 +173,11 @@ spec:
                               that is returned by a metric query.
                             format: int32
                             type: integer
+                          maxVolumeSeries:
+                            description: MaxVolumeSeries defines the maximum number
+                              of aggregated series in a log-volume response
+                            format: int32
+                            type: integer
                           queryTimeout:
                             default: 3m
                             description: Timeout when querying ingesters or storage
@@ -348,6 +353,11 @@ spec:
                                 that is returned by a metric query.
                               format: int32
                               type: integer
+                            maxVolumeSeries:
+                              description: MaxVolumeSeries defines the maximum number
+                                of aggregated series in a log-volume response
+                              format: int32
+                              type: integer
                             queryTimeout:
                               default: 3m
                               description: Timeout when querying ingesters or storage
diff --git a/operator/config/manifests/community-openshift/bases/loki-operator.clusterserviceversion.yaml b/operator/config/manifests/community-openshift/bases/loki-operator.clusterserviceversion.yaml
index 3627c03d58577..b655b250aea30 100644
--- a/operator/config/manifests/community-openshift/bases/loki-operator.clusterserviceversion.yaml
+++ b/operator/config/manifests/community-openshift/bases/loki-operator.clusterserviceversion.yaml
@@ -297,6 +297,12 @@ spec:
         path: limits.global.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.global.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
@@ -408,6 +414,12 @@ spec:
         path: limits.tenants.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.tenants.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
diff --git a/operator/config/manifests/community/bases/loki-operator.clusterserviceversion.yaml b/operator/config/manifests/community/bases/loki-operator.clusterserviceversion.yaml
index 0aefa95fc2807..7d12fc8ddaad8 100644
--- a/operator/config/manifests/community/bases/loki-operator.clusterserviceversion.yaml
+++ b/operator/config/manifests/community/bases/loki-operator.clusterserviceversion.yaml
@@ -290,6 +290,12 @@ spec:
         path: limits.global.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.global.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
@@ -401,6 +407,12 @@ spec:
         path: limits.tenants.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.tenants.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
diff --git a/operator/config/manifests/openshift/bases/loki-operator.clusterserviceversion.yaml b/operator/config/manifests/openshift/bases/loki-operator.clusterserviceversion.yaml
index 77bb3bff6fcd1..d55686c3addc3 100644
--- a/operator/config/manifests/openshift/bases/loki-operator.clusterserviceversion.yaml
+++ b/operator/config/manifests/openshift/bases/loki-operator.clusterserviceversion.yaml
@@ -309,6 +309,12 @@ spec:
         path: limits.global.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.global.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout
@@ -420,6 +426,12 @@ spec:
         path: limits.tenants.queries.maxQuerySeries
         x-descriptors:
         - urn:alm:descriptor:com.tectonic.ui:number
+      - description: MaxVolumeSeries defines the maximum number of aggregated series
+          in a log-volume response
+        displayName: Max Volume Series
+        path: limits.tenants.queries.maxVolumeSeries
+        x-descriptors:
+        - urn:alm:descriptor:com.tectonic.ui:number
       - description: Timeout when querying ingesters or storage during the execution
           of a query request.
         displayName: Query Timeout

From 845ae3f94b5f1775ec9f21c3ee7f56ca9dbc9642 Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Tue, 2 Jul 2024 12:28:05 -0400
Subject: [PATCH 06/11] Added default values to sizes.go

---
 operator/internal/manifests/internal/sizes.go | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/operator/internal/manifests/internal/sizes.go b/operator/internal/manifests/internal/sizes.go
index be5ac2eefb018..4962e4b3e762c 100644
--- a/operator/internal/manifests/internal/sizes.go
+++ b/operator/internal/manifests/internal/sizes.go
@@ -252,6 +252,7 @@ var StackSizeTable = map[lokiv1.LokiStackSizeType]lokiv1.LokiStackSpec{
 					MaxQuerySeries:          500,
 					QueryTimeout:            "3m",
 					CardinalityLimit:        100000,
+					MaxVolumeSeries:         1000,
 				},
 			},
 		},
@@ -308,6 +309,7 @@ var StackSizeTable = map[lokiv1.LokiStackSizeType]lokiv1.LokiStackSpec{
 					MaxQuerySeries:          500,
 					QueryTimeout:            "3m",
 					CardinalityLimit:        100000,
+					MaxVolumeSeries:         1000,
 				},
 			},
 		},
@@ -367,6 +369,7 @@ var StackSizeTable = map[lokiv1.LokiStackSizeType]lokiv1.LokiStackSpec{
 					MaxQuerySeries:          500,
 					QueryTimeout:            "3m",
 					CardinalityLimit:        100000,
+					MaxVolumeSeries:         1000,
 				},
 			},
 		},
@@ -426,6 +429,7 @@ var StackSizeTable = map[lokiv1.LokiStackSizeType]lokiv1.LokiStackSpec{
 					MaxQuerySeries:          500,
 					QueryTimeout:            "3m",
 					CardinalityLimit:        100000,
+					MaxVolumeSeries:         1000,
 				},
 			},
 		},

From 1e7ebc7e72a80372bf30dc953662a5c70a3a110c Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Tue, 2 Jul 2024 12:32:18 -0400
Subject: [PATCH 07/11] Updated tests for MaxVolulmeSeries

---
 .../manifests/internal/config/build_test.go     | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/operator/internal/manifests/internal/config/build_test.go b/operator/internal/manifests/internal/config/build_test.go
index 76e94c56b47e0..6fdbdd7181e55 100644
--- a/operator/internal/manifests/internal/config/build_test.go
+++ b/operator/internal/manifests/internal/config/build_test.go
@@ -208,6 +208,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -484,6 +485,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 				Tenants: map[string]lokiv1.PerTenantLimitsTemplateSpec{
@@ -951,6 +953,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -1312,6 +1315,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -1687,6 +1691,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -2030,6 +2035,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 					Retention: &lokiv1.RetentionLimitSpec{
 						Days: 15,
@@ -2433,6 +2439,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "2m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -2832,6 +2839,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -3230,6 +3238,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "2m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -3623,6 +3632,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -3887,6 +3897,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -4151,6 +4162,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -4422,6 +4434,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 				Tenants: map[string]lokiv1.PerTenantLimitsTemplateSpec{
@@ -4724,6 +4737,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 				Tenants: map[string]lokiv1.PerTenantLimitsTemplateSpec{
@@ -5015,6 +5029,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -5105,6 +5120,7 @@ func defaultOptions() Options {
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -5927,6 +5943,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
+            MaxVolumeSeries:         1000,
 					},
 				},
 			},

From b2c0081ef003cddc9301ecae7ee7ba25a6d6a6bb Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Tue, 2 Jul 2024 13:05:29 -0400
Subject: [PATCH 08/11] Added MaxVolumeSeries to loki-runtime-config

---
 .../internal/manifests/internal/config/loki-runtime-config.yaml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/operator/internal/manifests/internal/config/loki-runtime-config.yaml b/operator/internal/manifests/internal/config/loki-runtime-config.yaml
index 935c53f5692dc..78c60b449f9e9 100644
--- a/operator/internal/manifests/internal/config/loki-runtime-config.yaml
+++ b/operator/internal/manifests/internal/config/loki-runtime-config.yaml
@@ -54,6 +54,8 @@ overrides:
     {{- if $spec.QueryLimits.CardinalityLimit }}
     cardinality_limit: {{ $spec.QueryLimits.CardinalityLimit }}
     {{- end }}
+    {{- if $spec.QueryLimits.MaxVolumeSeries }}
+    max_volume_series: {{ $spec.QueryLimits.MaxVolumeSeries }}
     {{- with $l.Blocked }}
     blocked_queries:
     {{- range $blockedQuery := . }}

From 26c1077b7163b9111f78d7b6dbc363835d02e08f Mon Sep 17 00:00:00 2001
From: Jatin Suri <52750297+jatinsu@users.noreply.github.com>
Date: Tue, 2 Jul 2024 14:17:41 -0400
Subject: [PATCH 09/11] Update
 operator/internal/manifests/internal/config/loki-runtime-config.yaml

Co-authored-by: Periklis Tsirakidis <periklis@nefeli.eu>
---
 .../internal/manifests/internal/config/loki-runtime-config.yaml  | 1 +
 1 file changed, 1 insertion(+)

diff --git a/operator/internal/manifests/internal/config/loki-runtime-config.yaml b/operator/internal/manifests/internal/config/loki-runtime-config.yaml
index 78c60b449f9e9..7d5b5e2421085 100644
--- a/operator/internal/manifests/internal/config/loki-runtime-config.yaml
+++ b/operator/internal/manifests/internal/config/loki-runtime-config.yaml
@@ -56,6 +56,7 @@ overrides:
     {{- end }}
     {{- if $spec.QueryLimits.MaxVolumeSeries }}
     max_volume_series: {{ $spec.QueryLimits.MaxVolumeSeries }}
+    {{- end }}
     {{- with $l.Blocked }}
     blocked_queries:
     {{- range $blockedQuery := . }}

From 8ebb94757ca9df926df5666c4a6ea86b93289d04 Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Tue, 2 Jul 2024 14:19:12 -0400
Subject: [PATCH 10/11] Ran api.md and fmt for linter

---
 operator/apis/loki/v1/lokistack_types.go      |   2 +-
 operator/docs/operator/api.md                 | 169 ++----------------
 .../manifests/internal/config/build_test.go   |  32 ++--
 3 files changed, 33 insertions(+), 170 deletions(-)

diff --git a/operator/apis/loki/v1/lokistack_types.go b/operator/apis/loki/v1/lokistack_types.go
index 02b4ae0bc8fe0..90cee75d94475 100644
--- a/operator/apis/loki/v1/lokistack_types.go
+++ b/operator/apis/loki/v1/lokistack_types.go
@@ -643,7 +643,7 @@ type QueryLimitSpec struct {
 	// +kubebuilder:validation:Optional
 	// +operator-sdk:csv:customresourcedefinitions:type=spec,xDescriptors="urn:alm:descriptor:com.tectonic.ui:number",displayName="Cardinality Limit"
 	CardinalityLimit int32 `json:"cardinalityLimit,omitempty"`
-	
+
 	// MaxVolumeSeries defines the maximum number of aggregated series in a log-volume response
 	//
 	// +optional
diff --git a/operator/docs/operator/api.md b/operator/docs/operator/api.md
index ca71ecee6ce3a..b8da6e57c9375 100644
--- a/operator/docs/operator/api.md
+++ b/operator/docs/operator/api.md
@@ -5,8 +5,8 @@ lead: ""
 draft: false
 images: []
 menu:
-  docs:
-    parent: "operator"
++docs:
++parent: "operator"
 weight: 1000
 toc: true
 ---
@@ -17,7 +17,6 @@ This Document contains the types introduced by the Loki Operator to be consumed
 <p>Package v1 contains API Schema definitions for the loki v1 API group</p>
 </div>
 <b>Resource Types:</b>
-
 ## AlertManagerClientBasicAuth { #loki-grafana-com-v1-AlertManagerClientBasicAuth }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -59,7 +58,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerClientConfig { #loki-grafana-com-v1-AlertManagerClientConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -119,7 +117,6 @@ AlertManagerClientBasicAuth
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerClientHeaderAuth { #loki-grafana-com-v1-AlertManagerClientHeaderAuth }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -173,7 +170,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerClientTLSConfig { #loki-grafana-com-v1-AlertManagerClientTLSConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -251,7 +247,6 @@ bool
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerDiscoverySpec { #loki-grafana-com-v1-AlertManagerDiscoverySpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -295,7 +290,6 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerNotificationQueueSpec { #loki-grafana-com-v1-AlertManagerNotificationQueueSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -382,7 +376,6 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerSpec { #loki-grafana-com-v1-AlertManagerSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfigSpec">RulerConfigSpec</a>, <a href="#loki-grafana-com-v1-RulerOverrides">RulerOverrides</a>)
@@ -505,7 +498,6 @@ AlertManagerClientConfig
 </tr>
 </tbody>
 </table>
-
 ## AlertingRule { #loki-grafana-com-v1-AlertingRule }
 <div>
 <p>AlertingRule is the Schema for the alertingrules API</p>
@@ -558,7 +550,6 @@ AlertingRuleStatus
 </tr>
 </tbody>
 </table>
-
 ## AlertingRuleGroup { #loki-grafana-com-v1-AlertingRuleGroup }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertingRuleSpec">AlertingRuleSpec</a>)
@@ -627,7 +618,6 @@ int32
 </tr>
 </tbody>
 </table>
-
 ## AlertingRuleGroupSpec { #loki-grafana-com-v1-AlertingRuleGroupSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertingRuleGroup">AlertingRuleGroup</a>)
@@ -709,7 +699,6 @@ map[string]string
 </tr>
 </tbody>
 </table>
-
 ## AlertingRuleSpec { #loki-grafana-com-v1-AlertingRuleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertingRule">AlertingRule</a>)
@@ -752,7 +741,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## AlertingRuleStatus { #loki-grafana-com-v1-AlertingRuleStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertingRule">AlertingRule</a>)
@@ -784,7 +772,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## AuthenticationSpec { #loki-grafana-com-v1-AuthenticationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-TenantsSpec">TenantsSpec</a>)
@@ -852,7 +839,6 @@ MTLSSpec
 </tr>
 </tbody>
 </table>
-
 ## AuthorizationSpec { #loki-grafana-com-v1-AuthorizationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-TenantsSpec">TenantsSpec</a>)
@@ -913,7 +899,6 @@ OPASpec
 </tr>
 </tbody>
 </table>
-
 ## BlockedQuerySpec { #loki-grafana-com-v1-BlockedQuerySpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-PerTenantQueryLimitSpec">PerTenantQueryLimitSpec</a>)
@@ -981,7 +966,6 @@ BlockedQueryTypes
 </tr>
 </tbody>
 </table>
-
 ## BlockedQueryType { #loki-grafana-com-v1-BlockedQueryType }
 (<code>string</code> alias)
 <div>
@@ -1005,7 +989,6 @@ BlockedQueryTypes
 </td>
 </tr></tbody>
 </table>
-
 ## BlockedQueryTypes { #loki-grafana-com-v1-BlockedQueryTypes }
 (<code>[]github.com/grafana/loki/operator/apis/loki/v1.BlockedQueryType</code> alias)
 <p>
@@ -1014,7 +997,6 @@ BlockedQueryTypes
 <div>
 <p>BlockedQueryTypes defines a slice of BlockedQueryType values to be used for a blocked query.</p>
 </div>
-
 ## CASpec { #loki-grafana-com-v1-CASpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-MTLSSpec">MTLSSpec</a>, <a href="#loki-grafana-com-v1-OIDCSpec">OIDCSpec</a>, <a href="#loki-grafana-com-v1-ObjectStorageTLSSpec">ObjectStorageTLSSpec</a>)
@@ -1057,7 +1039,6 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 </tr>
 </tbody>
 </table>
-
 ## ClusterProxy { #loki-grafana-com-v1-ClusterProxy }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -1111,7 +1092,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## CredentialMode { #loki-grafana-com-v1-CredentialMode }
 (<code>string</code> alias)
 <p>
@@ -1145,7 +1125,6 @@ a secret. This mode is only supported for certain object storage types in certai
 </td>
 </tr></tbody>
 </table>
-
 ## HashRingSpec { #loki-grafana-com-v1-HashRingSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -1190,7 +1169,6 @@ MemberListSpec
 </tr>
 </tbody>
 </table>
-
 ## HashRingType { #loki-grafana-com-v1-HashRingType }
 (<code>string</code> alias)
 <p>
@@ -1211,7 +1189,6 @@ MemberListSpec
 </td>
 </tr></tbody>
 </table>
-
 ## IngestionLimitSpec { #loki-grafana-com-v1-IngestionLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsTemplateSpec">LimitsTemplateSpec</a>, <a href="#loki-grafana-com-v1-PerTenantLimitsTemplateSpec">PerTenantLimitsTemplateSpec</a>)
@@ -1356,7 +1333,6 @@ int32
 </tr>
 </tbody>
 </table>
-
 ## InstanceAddrType { #loki-grafana-com-v1-InstanceAddrType }
 (<code>string</code> alias)
 <p>
@@ -1380,7 +1356,6 @@ int32
 </td>
 </tr></tbody>
 </table>
-
 ## LimitsSpec { #loki-grafana-com-v1-LimitsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -1427,7 +1402,6 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1.PerTenantLimitsTemplate
 </tr>
 </tbody>
 </table>
-
 ## LimitsTemplateSpec { #loki-grafana-com-v1-LimitsTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsSpec">LimitsSpec</a>)
@@ -1487,7 +1461,6 @@ RetentionLimitSpec
 </tr>
 </tbody>
 </table>
-
 ## LokiComponentSpec { #loki-grafana-com-v1-LokiComponentSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiTemplateSpec">LokiTemplateSpec</a>)
@@ -1561,7 +1534,6 @@ of a component.</p>
 </tr>
 </tbody>
 </table>
-
 ## LokiStack { #loki-grafana-com-v1-LokiStack }
 <div>
 <p>LokiStack is the Schema for the lokistacks API</p>
@@ -1616,7 +1588,6 @@ Refer to the Kubernetes API documentation for the fields of the
 </tr>
 </tbody>
 </table>
-
 ## LokiStackComponentStatus { #loki-grafana-com-v1-LokiStackComponentStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackStatus">LokiStackStatus</a>)
@@ -1747,7 +1718,6 @@ PodStatusMap
 </tr>
 </tbody>
 </table>
-
 ## LokiStackConditionReason { #loki-grafana-com-v1-LokiStackConditionReason }
 (<code>string</code> alias)
 <div>
@@ -1842,7 +1812,6 @@ CredentialsRequest, but it can persist if the CCO or its configuration are incor
 </td>
 </tr></tbody>
 </table>
-
 ## LokiStackConditionType { #loki-grafana-com-v1-LokiStackConditionType }
 (<code>string</code> alias)
 <div>
@@ -1874,7 +1843,6 @@ issues. There can be multiple warning conditions active at a time.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## LokiStackSizeType { #loki-grafana-com-v1-LokiStackSizeType }
 (<code>string</code> alias)
 <p>
@@ -1921,7 +1889,6 @@ requirement for single replication factor and auto-compaction.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## LokiStackSpec { #loki-grafana-com-v1-LokiStackSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStack">LokiStack</a>)
@@ -2101,7 +2068,6 @@ TenantsSpec
 </tr>
 </tbody>
 </table>
-
 ## LokiStackStatus { #loki-grafana-com-v1-LokiStackStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStack">LokiStack</a>)
@@ -2163,7 +2129,6 @@ to the storage configuration.</p>
 </tr>
 </tbody>
 </table>
-
 ## LokiStackStorageStatus { #loki-grafana-com-v1-LokiStackStorageStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackStatus">LokiStackStatus</a>)
@@ -2211,7 +2176,6 @@ CredentialMode
 </tr>
 </tbody>
 </table>
-
 ## LokiTemplateSpec { #loki-grafana-com-v1-LokiTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -2342,7 +2306,6 @@ LokiComponentSpec
 </tr>
 </tbody>
 </table>
-
 ## MTLSSpec { #loki-grafana-com-v1-MTLSSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthenticationSpec">AuthenticationSpec</a>)
@@ -2373,7 +2336,6 @@ CASpec
 </tr>
 </tbody>
 </table>
-
 ## ManagementStateType { #loki-grafana-com-v1-ManagementStateType }
 (<code>string</code> alias)
 <p>
@@ -2399,7 +2361,6 @@ reconciled by the operator.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## MemberListSpec { #loki-grafana-com-v1-MemberListSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-HashRingSpec">HashRingSpec</a>)
@@ -2448,7 +2409,6 @@ for the memberlist.</p>
 </tr>
 </tbody>
 </table>
-
 ## ModeType { #loki-grafana-com-v1-ModeType }
 (<code>string</code> alias)
 <p>
@@ -2479,7 +2439,6 @@ using an in-process OpenPolicyAgent Rego authorizer.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## OIDCSpec { #loki-grafana-com-v1-OIDCSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthenticationSpec">AuthenticationSpec</a>)
@@ -2571,7 +2530,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## OPASpec { #loki-grafana-com-v1-OPASpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -2600,7 +2558,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## ObjectStorageSchema { #loki-grafana-com-v1-ObjectStorageSchema }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackStorageStatus">LokiStackStorageStatus</a>, <a href="#loki-grafana-com-v1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -2648,7 +2605,6 @@ using it once the day rolls over.</p>
 </tr>
 </tbody>
 </table>
-
 ## ObjectStorageSchemaVersion { #loki-grafana-com-v1-ObjectStorageSchemaVersion }
 (<code>string</code> alias)
 <p>
@@ -2676,7 +2632,6 @@ used with the Loki cluster.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## ObjectStorageSecretSpec { #loki-grafana-com-v1-ObjectStorageSecretSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -2734,7 +2689,6 @@ own configuration.</p>
 </tr>
 </tbody>
 </table>
-
 ## ObjectStorageSecretType { #loki-grafana-com-v1-ObjectStorageSecretType }
 (<code>string</code> alias)
 <p>
@@ -2767,7 +2721,6 @@ own configuration.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## ObjectStorageSpec { #loki-grafana-com-v1-ObjectStorageSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -2828,7 +2781,6 @@ ObjectStorageTLSSpec
 </tr>
 </tbody>
 </table>
-
 ## ObjectStorageTLSSpec { #loki-grafana-com-v1-ObjectStorageTLSSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -2872,7 +2824,6 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 </tr>
 </tbody>
 </table>
-
 ## OpenshiftTenantSpec { #loki-grafana-com-v1-OpenshiftTenantSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-TenantsSpec">TenantsSpec</a>)
@@ -2907,7 +2858,6 @@ Setting this to an empty array disables admin groups.</p>
 </tr>
 </tbody>
 </table>
-
 ## PerTenantLimitsTemplateSpec { #loki-grafana-com-v1-PerTenantLimitsTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsSpec">LimitsSpec</a>)
@@ -2967,7 +2917,6 @@ RetentionLimitSpec
 </tr>
 </tbody>
 </table>
-
 ## PerTenantQueryLimitSpec { #loki-grafana-com-v1-PerTenantQueryLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-PerTenantLimitsTemplateSpec">PerTenantLimitsTemplateSpec</a>)
@@ -3011,7 +2960,6 @@ QueryLimitSpec
 </tr>
 </tbody>
 </table>
-
 ## PermissionType { #loki-grafana-com-v1-PermissionType }
 (<code>string</code> alias)
 <p>
@@ -3035,7 +2983,6 @@ QueryLimitSpec
 </td>
 </tr></tbody>
 </table>
-
 ## PodStatus { #loki-grafana-com-v1-PodStatus }
 (<code>string</code> alias)
 <div>
@@ -3069,7 +3016,6 @@ At least one container is still running or is in the process of being restarted.
 </td>
 </tr></tbody>
 </table>
-
 ## PodStatusMap { #loki-grafana-com-v1-PodStatusMap }
 (<code>map[github.com/grafana/loki/operator/apis/loki/v1.PodStatus][]string</code> alias)
 <p>
@@ -3078,7 +3024,6 @@ At least one container is still running or is in the process of being restarted.
 <div>
 <p>PodStatusMap defines the type for mapping pod status to pod name.</p>
 </div>
-
 ## PrometheusDuration { #loki-grafana-com-v1-PrometheusDuration }
 (<code>string</code> alias)
 <p>
@@ -3087,7 +3032,6 @@ At least one container is still running or is in the process of being restarted.
 <div>
 <p>PrometheusDuration defines the type for Prometheus durations.</p>
 </div>
-
 ## QueryLimitSpec { #loki-grafana-com-v1-QueryLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsTemplateSpec">LimitsTemplateSpec</a>, <a href="#loki-grafana-com-v1-PerTenantQueryLimitSpec">PerTenantQueryLimitSpec</a>)
@@ -3165,9 +3109,20 @@ int32
 <p>CardinalityLimit defines the cardinality limit for index queries.</p>
 </td>
 </tr>
+<tr>
+<td>
+<code>maxVolumeSeries</code><br/>
+<em>
+int32
+</em>
+</td>
+<td>
+<em>(Optional)</em>
+<p>MaxVolumeSeries defines the maximum number of aggregated series in a log-volume response</p>
+</td>
+</tr>
 </tbody>
 </table>
-
 ## RecordingRule { #loki-grafana-com-v1-RecordingRule }
 <div>
 <p>RecordingRule is the Schema for the recordingrules API</p>
@@ -3220,7 +3175,6 @@ RecordingRuleStatus
 </tr>
 </tbody>
 </table>
-
 ## RecordingRuleGroup { #loki-grafana-com-v1-RecordingRuleGroup }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RecordingRuleSpec">RecordingRuleSpec</a>)
@@ -3289,7 +3243,6 @@ int32
 </tr>
 </tbody>
 </table>
-
 ## RecordingRuleGroupSpec { #loki-grafana-com-v1-RecordingRuleGroupSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RecordingRuleGroup">RecordingRuleGroup</a>)
@@ -3344,7 +3297,6 @@ map[string]string
 </tr>
 </tbody>
 </table>
-
 ## RecordingRuleSpec { #loki-grafana-com-v1-RecordingRuleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RecordingRule">RecordingRule</a>)
@@ -3387,7 +3339,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## RecordingRuleStatus { #loki-grafana-com-v1-RecordingRuleStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RecordingRule">RecordingRule</a>)
@@ -3419,7 +3370,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## RelabelActionType { #loki-grafana-com-v1-RelabelActionType }
 (<code>string</code> alias)
 <p>
@@ -3428,7 +3378,6 @@ string
 <div>
 <p>RelabelActionType defines the enumeration type for RelabelConfig actions.</p>
 </div>
-
 ## RelabelConfig { #loki-grafana-com-v1-RelabelConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerSpec">AlertManagerSpec</a>, <a href="#loki-grafana-com-v1-RemoteWriteClientSpec">RemoteWriteClientSpec</a>)
@@ -3537,7 +3486,6 @@ RelabelActionType
 </tr>
 </tbody>
 </table>
-
 ## RemoteWriteAuthType { #loki-grafana-com-v1-RemoteWriteAuthType }
 (<code>string</code> alias)
 <p>
@@ -3561,7 +3509,6 @@ RelabelActionType
 </td>
 </tr></tbody>
 </table>
-
 ## RemoteWriteClientQueueSpec { #loki-grafana-com-v1-RemoteWriteClientQueueSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RemoteWriteSpec">RemoteWriteSpec</a>)
@@ -3669,7 +3616,6 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
-
 ## RemoteWriteClientSpec { #loki-grafana-com-v1-RemoteWriteClientSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RemoteWriteSpec">RemoteWriteSpec</a>)
@@ -3797,7 +3743,6 @@ bool
 </tr>
 </tbody>
 </table>
-
 ## RemoteWriteSpec { #loki-grafana-com-v1-RemoteWriteSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfigSpec">RulerConfigSpec</a>)
@@ -3869,7 +3814,6 @@ RemoteWriteClientQueueSpec
 </tr>
 </tbody>
 </table>
-
 ## ReplicationSpec { #loki-grafana-com-v1-ReplicationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -3913,7 +3857,6 @@ IMPORTANT: Make sure that the replication factor defined is less than or equal t
 </tr>
 </tbody>
 </table>
-
 ## RetentionLimitSpec { #loki-grafana-com-v1-RetentionLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsTemplateSpec">LimitsTemplateSpec</a>, <a href="#loki-grafana-com-v1-PerTenantLimitsTemplateSpec">PerTenantLimitsTemplateSpec</a>)
@@ -3956,7 +3899,6 @@ uint
 </tr>
 </tbody>
 </table>
-
 ## RetentionStreamSpec { #loki-grafana-com-v1-RetentionStreamSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RetentionLimitSpec">RetentionLimitSpec</a>)
@@ -4008,7 +3950,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## RoleBindingsSpec { #loki-grafana-com-v1-RoleBindingsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -4058,7 +3999,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## RoleSpec { #loki-grafana-com-v1-RoleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -4118,7 +4058,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## RulerConfig { #loki-grafana-com-v1-RulerConfig }
 <div>
 <p>RulerConfig is the Schema for the rulerconfigs API</p>
@@ -4171,7 +4110,6 @@ RulerConfigStatus
 </tr>
 </tbody>
 </table>
-
 ## RulerConfigSpec { #loki-grafana-com-v1-RulerConfigSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfig">RulerConfig</a>)
@@ -4259,7 +4197,6 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1.RulerOverrides
 </tr>
 </tbody>
 </table>
-
 ## RulerConfigStatus { #loki-grafana-com-v1-RulerConfigStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfig">RulerConfig</a>)
@@ -4291,7 +4228,6 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1.RulerOverrides
 </tr>
 </tbody>
 </table>
-
 ## RulerOverrides { #loki-grafana-com-v1-RulerOverrides }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfigSpec">RulerConfigSpec</a>)
@@ -4323,7 +4259,6 @@ AlertManagerSpec
 </tr>
 </tbody>
 </table>
-
 ## RulesSpec { #loki-grafana-com-v1-RulesSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -4382,7 +4317,6 @@ the same namespace as the LokiStack object is in is used.</p>
 </tr>
 </tbody>
 </table>
-
 ## StorageSchemaEffectiveDate { #loki-grafana-com-v1-StorageSchemaEffectiveDate }
 (<code>string</code> alias)
 <p>
@@ -4391,7 +4325,6 @@ the same namespace as the LokiStack object is in is used.</p>
 <div>
 <p>StorageSchemaEffectiveDate defines the type for the Storage Schema Effect Date</p>
 </div>
-
 ## Subject { #loki-grafana-com-v1-Subject }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RoleBindingsSpec">RoleBindingsSpec</a>)
@@ -4431,7 +4364,6 @@ SubjectKind
 </tr>
 </tbody>
 </table>
-
 ## SubjectKind { #loki-grafana-com-v1-SubjectKind }
 (<code>string</code> alias)
 <p>
@@ -4455,7 +4387,6 @@ SubjectKind
 </td>
 </tr></tbody>
 </table>
-
 ## TenantSecretSpec { #loki-grafana-com-v1-TenantSecretSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-OIDCSpec">OIDCSpec</a>)
@@ -4485,7 +4416,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## TenantsSpec { #loki-grafana-com-v1-TenantsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -4559,7 +4489,6 @@ OpenshiftTenantSpec
 </tr>
 </tbody>
 </table>
-
 ## ZoneSpec { #loki-grafana-com-v1-ZoneSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-ReplicationSpec">ReplicationSpec</a>)
@@ -4600,14 +4529,12 @@ string
 </tbody>
 </table>
 <hr/>
-
-
++newline
 # loki.grafana.com/v1beta1 { #loki-grafana-com-v1beta1 }
 <div>
 <p>Package v1beta1 contains API Schema definitions for the loki v1beta1 API group</p>
 </div>
 <b>Resource Types:</b>
-
 ## AlertManagerClientBasicAuth { #loki-grafana-com-v1beta1-AlertManagerClientBasicAuth }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -4649,7 +4576,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerClientConfig { #loki-grafana-com-v1beta1-AlertManagerClientConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -4709,7 +4635,6 @@ AlertManagerClientBasicAuth
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerClientHeaderAuth { #loki-grafana-com-v1beta1-AlertManagerClientHeaderAuth }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -4763,7 +4688,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerClientTLSConfig { #loki-grafana-com-v1beta1-AlertManagerClientTLSConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -4829,7 +4753,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerDiscoverySpec { #loki-grafana-com-v1beta1-AlertManagerDiscoverySpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -4873,7 +4796,6 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerNotificationQueueSpec { #loki-grafana-com-v1beta1-AlertManagerNotificationQueueSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -4960,7 +4882,6 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
-
 ## AlertManagerSpec { #loki-grafana-com-v1beta1-AlertManagerSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfigSpec">RulerConfigSpec</a>, <a href="#loki-grafana-com-v1beta1-RulerOverrides">RulerOverrides</a>)
@@ -5083,7 +5004,6 @@ AlertManagerClientConfig
 </tr>
 </tbody>
 </table>
-
 ## AlertingRule { #loki-grafana-com-v1beta1-AlertingRule }
 <div>
 <p>AlertingRule is the Schema for the alertingrules API</p>
@@ -5136,7 +5056,6 @@ AlertingRuleStatus
 </tr>
 </tbody>
 </table>
-
 ## AlertingRuleGroup { #loki-grafana-com-v1beta1-AlertingRuleGroup }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertingRuleSpec">AlertingRuleSpec</a>)
@@ -5205,7 +5124,6 @@ int32
 </tr>
 </tbody>
 </table>
-
 ## AlertingRuleGroupSpec { #loki-grafana-com-v1beta1-AlertingRuleGroupSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertingRuleGroup">AlertingRuleGroup</a>)
@@ -5287,7 +5205,6 @@ map[string]string
 </tr>
 </tbody>
 </table>
-
 ## AlertingRuleSpec { #loki-grafana-com-v1beta1-AlertingRuleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertingRule">AlertingRule</a>)
@@ -5330,7 +5247,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## AlertingRuleStatus { #loki-grafana-com-v1beta1-AlertingRuleStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertingRule">AlertingRule</a>)
@@ -5362,7 +5278,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## AuthenticationSpec { #loki-grafana-com-v1beta1-AuthenticationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-TenantsSpec">TenantsSpec</a>)
@@ -5415,7 +5330,6 @@ OIDCSpec
 </tr>
 </tbody>
 </table>
-
 ## AuthorizationSpec { #loki-grafana-com-v1beta1-AuthorizationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-TenantsSpec">TenantsSpec</a>)
@@ -5476,7 +5390,6 @@ OPASpec
 </tr>
 </tbody>
 </table>
-
 ## IngestionLimitSpec { #loki-grafana-com-v1beta1-IngestionLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LimitsTemplateSpec">LimitsTemplateSpec</a>)
@@ -5584,7 +5497,6 @@ int32
 </tr>
 </tbody>
 </table>
-
 ## LimitsSpec { #loki-grafana-com-v1beta1-LimitsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -5632,7 +5544,6 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1beta1.LimitsTemplateSpec
 </tr>
 </tbody>
 </table>
-
 ## LimitsTemplateSpec { #loki-grafana-com-v1beta1-LimitsTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LimitsSpec">LimitsSpec</a>)
@@ -5678,7 +5589,6 @@ QueryLimitSpec
 </tr>
 </tbody>
 </table>
-
 ## LokiComponentSpec { #loki-grafana-com-v1beta1-LokiComponentSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiTemplateSpec">LokiTemplateSpec</a>)
@@ -5737,7 +5647,6 @@ the component onto it.</p>
 </tr>
 </tbody>
 </table>
-
 ## LokiStack { #loki-grafana-com-v1beta1-LokiStack }
 <div>
 <p>LokiStack is the Schema for the lokistacks API</p>
@@ -5790,7 +5699,6 @@ Refer to the Kubernetes API documentation for the fields of the
 </tr>
 </tbody>
 </table>
-
 ## LokiStackComponentStatus { #loki-grafana-com-v1beta1-LokiStackComponentStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackStatus">LokiStackStatus</a>)
@@ -5921,7 +5829,6 @@ PodStatusMap
 </tr>
 </tbody>
 </table>
-
 ## LokiStackConditionReason { #loki-grafana-com-v1beta1-LokiStackConditionReason }
 (<code>string</code> alias)
 <div>
@@ -5986,7 +5893,6 @@ for the ruler is missing.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## LokiStackConditionType { #loki-grafana-com-v1beta1-LokiStackConditionType }
 (<code>string</code> alias)
 <div>
@@ -6014,7 +5920,6 @@ are degraded or the cluster cannot connect to object storage.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## LokiStackSizeType { #loki-grafana-com-v1beta1-LokiStackSizeType }
 (<code>string</code> alias)
 <p>
@@ -6053,7 +5958,6 @@ requirement for single replication factor and auto-compaction.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## LokiStackSpec { #loki-grafana-com-v1beta1-LokiStackSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStack">LokiStack</a>)
@@ -6190,7 +6094,6 @@ TenantsSpec
 </tr>
 </tbody>
 </table>
-
 ## LokiStackStatus { #loki-grafana-com-v1beta1-LokiStackStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStack">LokiStack</a>)
@@ -6252,7 +6155,6 @@ to the storage configuration.</p>
 </tr>
 </tbody>
 </table>
-
 ## LokiStackStorageStatus { #loki-grafana-com-v1beta1-LokiStackStorageStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackStatus">LokiStackStatus</a>)
@@ -6286,7 +6188,6 @@ to the LokiStack.</p>
 </tr>
 </tbody>
 </table>
-
 ## LokiTemplateSpec { #loki-grafana-com-v1beta1-LokiTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -6417,7 +6318,6 @@ LokiComponentSpec
 </tr>
 </tbody>
 </table>
-
 ## ManagementStateType { #loki-grafana-com-v1beta1-ManagementStateType }
 (<code>string</code> alias)
 <p>
@@ -6443,7 +6343,6 @@ reconciled by the operator.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## ModeType { #loki-grafana-com-v1beta1-ModeType }
 (<code>string</code> alias)
 <p>
@@ -6471,7 +6370,6 @@ using an in-process OpenPolicyAgent Rego authorizer.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## OIDCSpec { #loki-grafana-com-v1beta1-OIDCSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AuthenticationSpec">AuthenticationSpec</a>)
@@ -6549,7 +6447,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## OPASpec { #loki-grafana-com-v1beta1-OPASpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -6578,7 +6475,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## ObjectStorageSchema { #loki-grafana-com-v1beta1-ObjectStorageSchema }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackStorageStatus">LokiStackStorageStatus</a>, <a href="#loki-grafana-com-v1beta1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -6625,7 +6521,6 @@ date in UTC.</p>
 </tr>
 </tbody>
 </table>
-
 ## ObjectStorageSchemaVersion { #loki-grafana-com-v1beta1-ObjectStorageSchemaVersion }
 (<code>string</code> alias)
 <p>
@@ -6650,7 +6545,6 @@ used with the Loki cluster.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## ObjectStorageSecretSpec { #loki-grafana-com-v1beta1-ObjectStorageSecretSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -6692,7 +6586,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## ObjectStorageSecretType { #loki-grafana-com-v1beta1-ObjectStorageSecretType }
 (<code>string</code> alias)
 <p>
@@ -6722,7 +6615,6 @@ string
 </td>
 </tr></tbody>
 </table>
-
 ## ObjectStorageSpec { #loki-grafana-com-v1beta1-ObjectStorageSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -6783,7 +6675,6 @@ ObjectStorageTLSSpec
 </tr>
 </tbody>
 </table>
-
 ## ObjectStorageTLSSpec { #loki-grafana-com-v1beta1-ObjectStorageTLSSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -6814,7 +6705,6 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 </tr>
 </tbody>
 </table>
-
 ## PermissionType { #loki-grafana-com-v1beta1-PermissionType }
 (<code>string</code> alias)
 <p>
@@ -6838,7 +6728,6 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 </td>
 </tr></tbody>
 </table>
-
 ## PodStatusMap { #loki-grafana-com-v1beta1-PodStatusMap }
 (<code>map[k8s.io/api/core/v1.PodPhase][]string</code> alias)
 <p>
@@ -6847,7 +6736,6 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 <div>
 <p>PodStatusMap defines the type for mapping pod status to pod name.</p>
 </div>
-
 ## PrometheusDuration { #loki-grafana-com-v1beta1-PrometheusDuration }
 (<code>string</code> alias)
 <p>
@@ -6856,7 +6744,6 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 <div>
 <p>PrometheusDuration defines the type for Prometheus durations.</p>
 </div>
-
 ## QueryLimitSpec { #loki-grafana-com-v1beta1-QueryLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LimitsTemplateSpec">LimitsTemplateSpec</a>)
@@ -6912,7 +6799,6 @@ that is returned by a metric query.</p>
 </tr>
 </tbody>
 </table>
-
 ## RecordingRule { #loki-grafana-com-v1beta1-RecordingRule }
 <div>
 <p>RecordingRule is the Schema for the recordingrules API</p>
@@ -6965,7 +6851,6 @@ RecordingRuleStatus
 </tr>
 </tbody>
 </table>
-
 ## RecordingRuleGroup { #loki-grafana-com-v1beta1-RecordingRuleGroup }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RecordingRuleSpec">RecordingRuleSpec</a>)
@@ -7034,7 +6919,6 @@ int32
 </tr>
 </tbody>
 </table>
-
 ## RecordingRuleGroupSpec { #loki-grafana-com-v1beta1-RecordingRuleGroupSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RecordingRuleGroup">RecordingRuleGroup</a>)
@@ -7077,7 +6961,6 @@ pending/firing alerts.</p>
 </tr>
 </tbody>
 </table>
-
 ## RecordingRuleSpec { #loki-grafana-com-v1beta1-RecordingRuleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RecordingRule">RecordingRule</a>)
@@ -7120,7 +7003,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## RecordingRuleStatus { #loki-grafana-com-v1beta1-RecordingRuleStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RecordingRule">RecordingRule</a>)
@@ -7152,7 +7034,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## RelabelActionType { #loki-grafana-com-v1beta1-RelabelActionType }
 (<code>string</code> alias)
 <p>
@@ -7161,7 +7042,6 @@ string
 <div>
 <p>RelabelActionType defines the enumeration type for RelabelConfig actions.</p>
 </div>
-
 ## RelabelConfig { #loki-grafana-com-v1beta1-RelabelConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerSpec">AlertManagerSpec</a>, <a href="#loki-grafana-com-v1beta1-RemoteWriteClientSpec">RemoteWriteClientSpec</a>)
@@ -7270,7 +7150,6 @@ RelabelActionType
 </tr>
 </tbody>
 </table>
-
 ## RemoteWriteAuthType { #loki-grafana-com-v1beta1-RemoteWriteAuthType }
 (<code>string</code> alias)
 <p>
@@ -7294,7 +7173,6 @@ RelabelActionType
 </td>
 </tr></tbody>
 </table>
-
 ## RemoteWriteClientQueueSpec { #loki-grafana-com-v1beta1-RemoteWriteClientQueueSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RemoteWriteSpec">RemoteWriteSpec</a>)
@@ -7402,7 +7280,6 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
-
 ## RemoteWriteClientSpec { #loki-grafana-com-v1beta1-RemoteWriteClientSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RemoteWriteSpec">RemoteWriteSpec</a>)
@@ -7530,7 +7407,6 @@ bool
 </tr>
 </tbody>
 </table>
-
 ## RemoteWriteSpec { #loki-grafana-com-v1beta1-RemoteWriteSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfigSpec">RulerConfigSpec</a>)
@@ -7602,7 +7478,6 @@ RemoteWriteClientQueueSpec
 </tr>
 </tbody>
 </table>
-
 ## RoleBindingsSpec { #loki-grafana-com-v1beta1-RoleBindingsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -7652,7 +7527,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## RoleSpec { #loki-grafana-com-v1beta1-RoleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -7712,7 +7586,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## RulerConfig { #loki-grafana-com-v1beta1-RulerConfig }
 <div>
 <p>RulerConfig is the Schema for the rulerconfigs API</p>
@@ -7765,7 +7638,6 @@ RulerConfigStatus
 </tr>
 </tbody>
 </table>
-
 ## RulerConfigSpec { #loki-grafana-com-v1beta1-RulerConfigSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfig">RulerConfig</a>)
@@ -7853,7 +7725,6 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1beta1.RulerOverrides
 </tr>
 </tbody>
 </table>
-
 ## RulerConfigStatus { #loki-grafana-com-v1beta1-RulerConfigStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfig">RulerConfig</a>)
@@ -7885,7 +7756,6 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1beta1.RulerOverrides
 </tr>
 </tbody>
 </table>
-
 ## RulerOverrides { #loki-grafana-com-v1beta1-RulerOverrides }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfigSpec">RulerConfigSpec</a>)
@@ -7917,7 +7787,6 @@ AlertManagerSpec
 </tr>
 </tbody>
 </table>
-
 ## RulesSpec { #loki-grafana-com-v1beta1-RulesSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -7976,7 +7845,6 @@ the same namespace as the LokiStack object is in is used.</p>
 </tr>
 </tbody>
 </table>
-
 ## StorageSchemaEffectiveDate { #loki-grafana-com-v1beta1-StorageSchemaEffectiveDate }
 (<code>string</code> alias)
 <p>
@@ -7985,7 +7853,6 @@ the same namespace as the LokiStack object is in is used.</p>
 <div>
 <p>StorageSchemaEffectiveDate defines the type for the Storage Schema Effect Date</p>
 </div>
-
 ## Subject { #loki-grafana-com-v1beta1-Subject }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RoleBindingsSpec">RoleBindingsSpec</a>)
@@ -8025,7 +7892,6 @@ SubjectKind
 </tr>
 </tbody>
 </table>
-
 ## SubjectKind { #loki-grafana-com-v1beta1-SubjectKind }
 (<code>string</code> alias)
 <p>
@@ -8049,7 +7915,6 @@ SubjectKind
 </td>
 </tr></tbody>
 </table>
-
 ## TenantSecretSpec { #loki-grafana-com-v1beta1-TenantSecretSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-OIDCSpec">OIDCSpec</a>)
@@ -8079,7 +7944,6 @@ string
 </tr>
 </tbody>
 </table>
-
 ## TenantsSpec { #loki-grafana-com-v1beta1-TenantsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -8140,5 +8004,4 @@ AuthorizationSpec
 </tbody>
 </table>
 <hr/>
-
-
++newline
diff --git a/operator/internal/manifests/internal/config/build_test.go b/operator/internal/manifests/internal/config/build_test.go
index 6fdbdd7181e55..7a9479c34dd48 100644
--- a/operator/internal/manifests/internal/config/build_test.go
+++ b/operator/internal/manifests/internal/config/build_test.go
@@ -485,7 +485,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 				Tenants: map[string]lokiv1.PerTenantLimitsTemplateSpec{
@@ -953,7 +953,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -1315,7 +1315,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -1691,7 +1691,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -2035,7 +2035,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 					Retention: &lokiv1.RetentionLimitSpec{
 						Days: 15,
@@ -2439,7 +2439,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "2m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -2839,7 +2839,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -3238,7 +3238,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "2m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -3632,7 +3632,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -3897,7 +3897,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -4162,7 +4162,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -4434,7 +4434,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 				Tenants: map[string]lokiv1.PerTenantLimitsTemplateSpec{
@@ -4737,7 +4737,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 				Tenants: map[string]lokiv1.PerTenantLimitsTemplateSpec{
@@ -5029,7 +5029,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -5120,7 +5120,7 @@ func defaultOptions() Options {
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},
@@ -5943,7 +5943,7 @@ overrides:
 						MaxQuerySeries:          500,
 						QueryTimeout:            "1m",
 						CardinalityLimit:        100000,
-            MaxVolumeSeries:         1000,
+						MaxVolumeSeries:         1000,
 					},
 				},
 			},

From a005784d4ac7292add684def9f7fab5652de26f1 Mon Sep 17 00:00:00 2001
From: Jatin Suri <surijatin@yahoo.com>
Date: Tue, 2 Jul 2024 14:45:07 -0400
Subject: [PATCH 11/11] Hopefully fixed docs

---
 operator/docs/operator/api.md | 157 +++++++++++++++++++++++++++++++++-
 1 file changed, 153 insertions(+), 4 deletions(-)

diff --git a/operator/docs/operator/api.md b/operator/docs/operator/api.md
index b8da6e57c9375..3e2cb6a850ac5 100644
--- a/operator/docs/operator/api.md
+++ b/operator/docs/operator/api.md
@@ -5,8 +5,8 @@ lead: ""
 draft: false
 images: []
 menu:
-+docs:
-+parent: "operator"
+  docs:
+    parent: "operator"
 weight: 1000
 toc: true
 ---
@@ -17,6 +17,7 @@ This Document contains the types introduced by the Loki Operator to be consumed
 <p>Package v1 contains API Schema definitions for the loki v1 API group</p>
 </div>
 <b>Resource Types:</b>
+
 ## AlertManagerClientBasicAuth { #loki-grafana-com-v1-AlertManagerClientBasicAuth }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -58,6 +59,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerClientConfig { #loki-grafana-com-v1-AlertManagerClientConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -117,6 +119,7 @@ AlertManagerClientBasicAuth
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerClientHeaderAuth { #loki-grafana-com-v1-AlertManagerClientHeaderAuth }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -170,6 +173,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerClientTLSConfig { #loki-grafana-com-v1-AlertManagerClientTLSConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -247,6 +251,7 @@ bool
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerDiscoverySpec { #loki-grafana-com-v1-AlertManagerDiscoverySpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -290,6 +295,7 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerNotificationQueueSpec { #loki-grafana-com-v1-AlertManagerNotificationQueueSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -376,6 +382,7 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerSpec { #loki-grafana-com-v1-AlertManagerSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfigSpec">RulerConfigSpec</a>, <a href="#loki-grafana-com-v1-RulerOverrides">RulerOverrides</a>)
@@ -498,6 +505,7 @@ AlertManagerClientConfig
 </tr>
 </tbody>
 </table>
+
 ## AlertingRule { #loki-grafana-com-v1-AlertingRule }
 <div>
 <p>AlertingRule is the Schema for the alertingrules API</p>
@@ -550,6 +558,7 @@ AlertingRuleStatus
 </tr>
 </tbody>
 </table>
+
 ## AlertingRuleGroup { #loki-grafana-com-v1-AlertingRuleGroup }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertingRuleSpec">AlertingRuleSpec</a>)
@@ -618,6 +627,7 @@ int32
 </tr>
 </tbody>
 </table>
+
 ## AlertingRuleGroupSpec { #loki-grafana-com-v1-AlertingRuleGroupSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertingRuleGroup">AlertingRuleGroup</a>)
@@ -699,6 +709,7 @@ map[string]string
 </tr>
 </tbody>
 </table>
+
 ## AlertingRuleSpec { #loki-grafana-com-v1-AlertingRuleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertingRule">AlertingRule</a>)
@@ -741,6 +752,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## AlertingRuleStatus { #loki-grafana-com-v1-AlertingRuleStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertingRule">AlertingRule</a>)
@@ -772,6 +784,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## AuthenticationSpec { #loki-grafana-com-v1-AuthenticationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-TenantsSpec">TenantsSpec</a>)
@@ -839,6 +852,7 @@ MTLSSpec
 </tr>
 </tbody>
 </table>
+
 ## AuthorizationSpec { #loki-grafana-com-v1-AuthorizationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-TenantsSpec">TenantsSpec</a>)
@@ -899,6 +913,7 @@ OPASpec
 </tr>
 </tbody>
 </table>
+
 ## BlockedQuerySpec { #loki-grafana-com-v1-BlockedQuerySpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-PerTenantQueryLimitSpec">PerTenantQueryLimitSpec</a>)
@@ -966,6 +981,7 @@ BlockedQueryTypes
 </tr>
 </tbody>
 </table>
+
 ## BlockedQueryType { #loki-grafana-com-v1-BlockedQueryType }
 (<code>string</code> alias)
 <div>
@@ -989,6 +1005,7 @@ BlockedQueryTypes
 </td>
 </tr></tbody>
 </table>
+
 ## BlockedQueryTypes { #loki-grafana-com-v1-BlockedQueryTypes }
 (<code>[]github.com/grafana/loki/operator/apis/loki/v1.BlockedQueryType</code> alias)
 <p>
@@ -997,6 +1014,7 @@ BlockedQueryTypes
 <div>
 <p>BlockedQueryTypes defines a slice of BlockedQueryType values to be used for a blocked query.</p>
 </div>
+
 ## CASpec { #loki-grafana-com-v1-CASpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-MTLSSpec">MTLSSpec</a>, <a href="#loki-grafana-com-v1-OIDCSpec">OIDCSpec</a>, <a href="#loki-grafana-com-v1-ObjectStorageTLSSpec">ObjectStorageTLSSpec</a>)
@@ -1039,6 +1057,7 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 </tr>
 </tbody>
 </table>
+
 ## ClusterProxy { #loki-grafana-com-v1-ClusterProxy }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -1092,6 +1111,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## CredentialMode { #loki-grafana-com-v1-CredentialMode }
 (<code>string</code> alias)
 <p>
@@ -1125,6 +1145,7 @@ a secret. This mode is only supported for certain object storage types in certai
 </td>
 </tr></tbody>
 </table>
+
 ## HashRingSpec { #loki-grafana-com-v1-HashRingSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -1169,6 +1190,7 @@ MemberListSpec
 </tr>
 </tbody>
 </table>
+
 ## HashRingType { #loki-grafana-com-v1-HashRingType }
 (<code>string</code> alias)
 <p>
@@ -1189,6 +1211,7 @@ MemberListSpec
 </td>
 </tr></tbody>
 </table>
+
 ## IngestionLimitSpec { #loki-grafana-com-v1-IngestionLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsTemplateSpec">LimitsTemplateSpec</a>, <a href="#loki-grafana-com-v1-PerTenantLimitsTemplateSpec">PerTenantLimitsTemplateSpec</a>)
@@ -1333,6 +1356,7 @@ int32
 </tr>
 </tbody>
 </table>
+
 ## InstanceAddrType { #loki-grafana-com-v1-InstanceAddrType }
 (<code>string</code> alias)
 <p>
@@ -1356,6 +1380,7 @@ int32
 </td>
 </tr></tbody>
 </table>
+
 ## LimitsSpec { #loki-grafana-com-v1-LimitsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -1402,6 +1427,7 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1.PerTenantLimitsTemplate
 </tr>
 </tbody>
 </table>
+
 ## LimitsTemplateSpec { #loki-grafana-com-v1-LimitsTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsSpec">LimitsSpec</a>)
@@ -1461,6 +1487,7 @@ RetentionLimitSpec
 </tr>
 </tbody>
 </table>
+
 ## LokiComponentSpec { #loki-grafana-com-v1-LokiComponentSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiTemplateSpec">LokiTemplateSpec</a>)
@@ -1534,6 +1561,7 @@ of a component.</p>
 </tr>
 </tbody>
 </table>
+
 ## LokiStack { #loki-grafana-com-v1-LokiStack }
 <div>
 <p>LokiStack is the Schema for the lokistacks API</p>
@@ -1588,6 +1616,7 @@ Refer to the Kubernetes API documentation for the fields of the
 </tr>
 </tbody>
 </table>
+
 ## LokiStackComponentStatus { #loki-grafana-com-v1-LokiStackComponentStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackStatus">LokiStackStatus</a>)
@@ -1718,6 +1747,7 @@ PodStatusMap
 </tr>
 </tbody>
 </table>
+
 ## LokiStackConditionReason { #loki-grafana-com-v1-LokiStackConditionReason }
 (<code>string</code> alias)
 <div>
@@ -1812,6 +1842,7 @@ CredentialsRequest, but it can persist if the CCO or its configuration are incor
 </td>
 </tr></tbody>
 </table>
+
 ## LokiStackConditionType { #loki-grafana-com-v1-LokiStackConditionType }
 (<code>string</code> alias)
 <div>
@@ -1843,6 +1874,7 @@ issues. There can be multiple warning conditions active at a time.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## LokiStackSizeType { #loki-grafana-com-v1-LokiStackSizeType }
 (<code>string</code> alias)
 <p>
@@ -1889,6 +1921,7 @@ requirement for single replication factor and auto-compaction.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## LokiStackSpec { #loki-grafana-com-v1-LokiStackSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStack">LokiStack</a>)
@@ -2068,6 +2101,7 @@ TenantsSpec
 </tr>
 </tbody>
 </table>
+
 ## LokiStackStatus { #loki-grafana-com-v1-LokiStackStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStack">LokiStack</a>)
@@ -2129,6 +2163,7 @@ to the storage configuration.</p>
 </tr>
 </tbody>
 </table>
+
 ## LokiStackStorageStatus { #loki-grafana-com-v1-LokiStackStorageStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackStatus">LokiStackStatus</a>)
@@ -2176,6 +2211,7 @@ CredentialMode
 </tr>
 </tbody>
 </table>
+
 ## LokiTemplateSpec { #loki-grafana-com-v1-LokiTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -2306,6 +2342,7 @@ LokiComponentSpec
 </tr>
 </tbody>
 </table>
+
 ## MTLSSpec { #loki-grafana-com-v1-MTLSSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthenticationSpec">AuthenticationSpec</a>)
@@ -2336,6 +2373,7 @@ CASpec
 </tr>
 </tbody>
 </table>
+
 ## ManagementStateType { #loki-grafana-com-v1-ManagementStateType }
 (<code>string</code> alias)
 <p>
@@ -2361,6 +2399,7 @@ reconciled by the operator.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## MemberListSpec { #loki-grafana-com-v1-MemberListSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-HashRingSpec">HashRingSpec</a>)
@@ -2409,6 +2448,7 @@ for the memberlist.</p>
 </tr>
 </tbody>
 </table>
+
 ## ModeType { #loki-grafana-com-v1-ModeType }
 (<code>string</code> alias)
 <p>
@@ -2439,6 +2479,7 @@ using an in-process OpenPolicyAgent Rego authorizer.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## OIDCSpec { #loki-grafana-com-v1-OIDCSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthenticationSpec">AuthenticationSpec</a>)
@@ -2530,6 +2571,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## OPASpec { #loki-grafana-com-v1-OPASpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -2558,6 +2600,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## ObjectStorageSchema { #loki-grafana-com-v1-ObjectStorageSchema }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackStorageStatus">LokiStackStorageStatus</a>, <a href="#loki-grafana-com-v1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -2605,6 +2648,7 @@ using it once the day rolls over.</p>
 </tr>
 </tbody>
 </table>
+
 ## ObjectStorageSchemaVersion { #loki-grafana-com-v1-ObjectStorageSchemaVersion }
 (<code>string</code> alias)
 <p>
@@ -2632,6 +2676,7 @@ used with the Loki cluster.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## ObjectStorageSecretSpec { #loki-grafana-com-v1-ObjectStorageSecretSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -2689,6 +2734,7 @@ own configuration.</p>
 </tr>
 </tbody>
 </table>
+
 ## ObjectStorageSecretType { #loki-grafana-com-v1-ObjectStorageSecretType }
 (<code>string</code> alias)
 <p>
@@ -2721,6 +2767,7 @@ own configuration.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## ObjectStorageSpec { #loki-grafana-com-v1-ObjectStorageSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -2781,6 +2828,7 @@ ObjectStorageTLSSpec
 </tr>
 </tbody>
 </table>
+
 ## ObjectStorageTLSSpec { #loki-grafana-com-v1-ObjectStorageTLSSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -2824,6 +2872,7 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 </tr>
 </tbody>
 </table>
+
 ## OpenshiftTenantSpec { #loki-grafana-com-v1-OpenshiftTenantSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-TenantsSpec">TenantsSpec</a>)
@@ -2858,6 +2907,7 @@ Setting this to an empty array disables admin groups.</p>
 </tr>
 </tbody>
 </table>
+
 ## PerTenantLimitsTemplateSpec { #loki-grafana-com-v1-PerTenantLimitsTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsSpec">LimitsSpec</a>)
@@ -2917,6 +2967,7 @@ RetentionLimitSpec
 </tr>
 </tbody>
 </table>
+
 ## PerTenantQueryLimitSpec { #loki-grafana-com-v1-PerTenantQueryLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-PerTenantLimitsTemplateSpec">PerTenantLimitsTemplateSpec</a>)
@@ -2960,6 +3011,7 @@ QueryLimitSpec
 </tr>
 </tbody>
 </table>
+
 ## PermissionType { #loki-grafana-com-v1-PermissionType }
 (<code>string</code> alias)
 <p>
@@ -2983,6 +3035,7 @@ QueryLimitSpec
 </td>
 </tr></tbody>
 </table>
+
 ## PodStatus { #loki-grafana-com-v1-PodStatus }
 (<code>string</code> alias)
 <div>
@@ -3016,6 +3069,7 @@ At least one container is still running or is in the process of being restarted.
 </td>
 </tr></tbody>
 </table>
+
 ## PodStatusMap { #loki-grafana-com-v1-PodStatusMap }
 (<code>map[github.com/grafana/loki/operator/apis/loki/v1.PodStatus][]string</code> alias)
 <p>
@@ -3024,6 +3078,7 @@ At least one container is still running or is in the process of being restarted.
 <div>
 <p>PodStatusMap defines the type for mapping pod status to pod name.</p>
 </div>
+
 ## PrometheusDuration { #loki-grafana-com-v1-PrometheusDuration }
 (<code>string</code> alias)
 <p>
@@ -3032,6 +3087,7 @@ At least one container is still running or is in the process of being restarted.
 <div>
 <p>PrometheusDuration defines the type for Prometheus durations.</p>
 </div>
+
 ## QueryLimitSpec { #loki-grafana-com-v1-QueryLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsTemplateSpec">LimitsTemplateSpec</a>, <a href="#loki-grafana-com-v1-PerTenantQueryLimitSpec">PerTenantQueryLimitSpec</a>)
@@ -3123,6 +3179,7 @@ int32
 </tr>
 </tbody>
 </table>
+
 ## RecordingRule { #loki-grafana-com-v1-RecordingRule }
 <div>
 <p>RecordingRule is the Schema for the recordingrules API</p>
@@ -3175,6 +3232,7 @@ RecordingRuleStatus
 </tr>
 </tbody>
 </table>
+
 ## RecordingRuleGroup { #loki-grafana-com-v1-RecordingRuleGroup }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RecordingRuleSpec">RecordingRuleSpec</a>)
@@ -3243,6 +3301,7 @@ int32
 </tr>
 </tbody>
 </table>
+
 ## RecordingRuleGroupSpec { #loki-grafana-com-v1-RecordingRuleGroupSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RecordingRuleGroup">RecordingRuleGroup</a>)
@@ -3297,6 +3356,7 @@ map[string]string
 </tr>
 </tbody>
 </table>
+
 ## RecordingRuleSpec { #loki-grafana-com-v1-RecordingRuleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RecordingRule">RecordingRule</a>)
@@ -3339,6 +3399,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## RecordingRuleStatus { #loki-grafana-com-v1-RecordingRuleStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RecordingRule">RecordingRule</a>)
@@ -3370,6 +3431,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## RelabelActionType { #loki-grafana-com-v1-RelabelActionType }
 (<code>string</code> alias)
 <p>
@@ -3378,6 +3440,7 @@ string
 <div>
 <p>RelabelActionType defines the enumeration type for RelabelConfig actions.</p>
 </div>
+
 ## RelabelConfig { #loki-grafana-com-v1-RelabelConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AlertManagerSpec">AlertManagerSpec</a>, <a href="#loki-grafana-com-v1-RemoteWriteClientSpec">RemoteWriteClientSpec</a>)
@@ -3486,6 +3549,7 @@ RelabelActionType
 </tr>
 </tbody>
 </table>
+
 ## RemoteWriteAuthType { #loki-grafana-com-v1-RemoteWriteAuthType }
 (<code>string</code> alias)
 <p>
@@ -3509,6 +3573,7 @@ RelabelActionType
 </td>
 </tr></tbody>
 </table>
+
 ## RemoteWriteClientQueueSpec { #loki-grafana-com-v1-RemoteWriteClientQueueSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RemoteWriteSpec">RemoteWriteSpec</a>)
@@ -3616,6 +3681,7 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
+
 ## RemoteWriteClientSpec { #loki-grafana-com-v1-RemoteWriteClientSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RemoteWriteSpec">RemoteWriteSpec</a>)
@@ -3743,6 +3809,7 @@ bool
 </tr>
 </tbody>
 </table>
+
 ## RemoteWriteSpec { #loki-grafana-com-v1-RemoteWriteSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfigSpec">RulerConfigSpec</a>)
@@ -3814,6 +3881,7 @@ RemoteWriteClientQueueSpec
 </tr>
 </tbody>
 </table>
+
 ## ReplicationSpec { #loki-grafana-com-v1-ReplicationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -3857,6 +3925,7 @@ IMPORTANT: Make sure that the replication factor defined is less than or equal t
 </tr>
 </tbody>
 </table>
+
 ## RetentionLimitSpec { #loki-grafana-com-v1-RetentionLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LimitsTemplateSpec">LimitsTemplateSpec</a>, <a href="#loki-grafana-com-v1-PerTenantLimitsTemplateSpec">PerTenantLimitsTemplateSpec</a>)
@@ -3899,6 +3968,7 @@ uint
 </tr>
 </tbody>
 </table>
+
 ## RetentionStreamSpec { #loki-grafana-com-v1-RetentionStreamSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RetentionLimitSpec">RetentionLimitSpec</a>)
@@ -3950,6 +4020,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## RoleBindingsSpec { #loki-grafana-com-v1-RoleBindingsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -3999,6 +4070,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## RoleSpec { #loki-grafana-com-v1-RoleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -4058,6 +4130,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## RulerConfig { #loki-grafana-com-v1-RulerConfig }
 <div>
 <p>RulerConfig is the Schema for the rulerconfigs API</p>
@@ -4110,6 +4183,7 @@ RulerConfigStatus
 </tr>
 </tbody>
 </table>
+
 ## RulerConfigSpec { #loki-grafana-com-v1-RulerConfigSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfig">RulerConfig</a>)
@@ -4197,6 +4271,7 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1.RulerOverrides
 </tr>
 </tbody>
 </table>
+
 ## RulerConfigStatus { #loki-grafana-com-v1-RulerConfigStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfig">RulerConfig</a>)
@@ -4228,6 +4303,7 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1.RulerOverrides
 </tr>
 </tbody>
 </table>
+
 ## RulerOverrides { #loki-grafana-com-v1-RulerOverrides }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RulerConfigSpec">RulerConfigSpec</a>)
@@ -4259,6 +4335,7 @@ AlertManagerSpec
 </tr>
 </tbody>
 </table>
+
 ## RulesSpec { #loki-grafana-com-v1-RulesSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -4317,6 +4394,7 @@ the same namespace as the LokiStack object is in is used.</p>
 </tr>
 </tbody>
 </table>
+
 ## StorageSchemaEffectiveDate { #loki-grafana-com-v1-StorageSchemaEffectiveDate }
 (<code>string</code> alias)
 <p>
@@ -4325,6 +4403,7 @@ the same namespace as the LokiStack object is in is used.</p>
 <div>
 <p>StorageSchemaEffectiveDate defines the type for the Storage Schema Effect Date</p>
 </div>
+
 ## Subject { #loki-grafana-com-v1-Subject }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-RoleBindingsSpec">RoleBindingsSpec</a>)
@@ -4364,6 +4443,7 @@ SubjectKind
 </tr>
 </tbody>
 </table>
+
 ## SubjectKind { #loki-grafana-com-v1-SubjectKind }
 (<code>string</code> alias)
 <p>
@@ -4387,6 +4467,7 @@ SubjectKind
 </td>
 </tr></tbody>
 </table>
+
 ## TenantSecretSpec { #loki-grafana-com-v1-TenantSecretSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-OIDCSpec">OIDCSpec</a>)
@@ -4416,6 +4497,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## TenantsSpec { #loki-grafana-com-v1-TenantsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-LokiStackSpec">LokiStackSpec</a>)
@@ -4489,6 +4571,7 @@ OpenshiftTenantSpec
 </tr>
 </tbody>
 </table>
+
 ## ZoneSpec { #loki-grafana-com-v1-ZoneSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1-ReplicationSpec">ReplicationSpec</a>)
@@ -4529,12 +4612,14 @@ string
 </tbody>
 </table>
 <hr/>
-+newline
+
+
 # loki.grafana.com/v1beta1 { #loki-grafana-com-v1beta1 }
 <div>
 <p>Package v1beta1 contains API Schema definitions for the loki v1beta1 API group</p>
 </div>
 <b>Resource Types:</b>
+
 ## AlertManagerClientBasicAuth { #loki-grafana-com-v1beta1-AlertManagerClientBasicAuth }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -4576,6 +4661,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerClientConfig { #loki-grafana-com-v1beta1-AlertManagerClientConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -4635,6 +4721,7 @@ AlertManagerClientBasicAuth
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerClientHeaderAuth { #loki-grafana-com-v1beta1-AlertManagerClientHeaderAuth }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -4688,6 +4775,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerClientTLSConfig { #loki-grafana-com-v1beta1-AlertManagerClientTLSConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerClientConfig">AlertManagerClientConfig</a>)
@@ -4753,6 +4841,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerDiscoverySpec { #loki-grafana-com-v1beta1-AlertManagerDiscoverySpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -4796,6 +4885,7 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerNotificationQueueSpec { #loki-grafana-com-v1beta1-AlertManagerNotificationQueueSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerSpec">AlertManagerSpec</a>)
@@ -4882,6 +4972,7 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
+
 ## AlertManagerSpec { #loki-grafana-com-v1beta1-AlertManagerSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfigSpec">RulerConfigSpec</a>, <a href="#loki-grafana-com-v1beta1-RulerOverrides">RulerOverrides</a>)
@@ -5004,6 +5095,7 @@ AlertManagerClientConfig
 </tr>
 </tbody>
 </table>
+
 ## AlertingRule { #loki-grafana-com-v1beta1-AlertingRule }
 <div>
 <p>AlertingRule is the Schema for the alertingrules API</p>
@@ -5056,6 +5148,7 @@ AlertingRuleStatus
 </tr>
 </tbody>
 </table>
+
 ## AlertingRuleGroup { #loki-grafana-com-v1beta1-AlertingRuleGroup }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertingRuleSpec">AlertingRuleSpec</a>)
@@ -5124,6 +5217,7 @@ int32
 </tr>
 </tbody>
 </table>
+
 ## AlertingRuleGroupSpec { #loki-grafana-com-v1beta1-AlertingRuleGroupSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertingRuleGroup">AlertingRuleGroup</a>)
@@ -5205,6 +5299,7 @@ map[string]string
 </tr>
 </tbody>
 </table>
+
 ## AlertingRuleSpec { #loki-grafana-com-v1beta1-AlertingRuleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertingRule">AlertingRule</a>)
@@ -5247,6 +5342,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## AlertingRuleStatus { #loki-grafana-com-v1beta1-AlertingRuleStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertingRule">AlertingRule</a>)
@@ -5278,6 +5374,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## AuthenticationSpec { #loki-grafana-com-v1beta1-AuthenticationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-TenantsSpec">TenantsSpec</a>)
@@ -5330,6 +5427,7 @@ OIDCSpec
 </tr>
 </tbody>
 </table>
+
 ## AuthorizationSpec { #loki-grafana-com-v1beta1-AuthorizationSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-TenantsSpec">TenantsSpec</a>)
@@ -5390,6 +5488,7 @@ OPASpec
 </tr>
 </tbody>
 </table>
+
 ## IngestionLimitSpec { #loki-grafana-com-v1beta1-IngestionLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LimitsTemplateSpec">LimitsTemplateSpec</a>)
@@ -5497,6 +5596,7 @@ int32
 </tr>
 </tbody>
 </table>
+
 ## LimitsSpec { #loki-grafana-com-v1beta1-LimitsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -5544,6 +5644,7 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1beta1.LimitsTemplateSpec
 </tr>
 </tbody>
 </table>
+
 ## LimitsTemplateSpec { #loki-grafana-com-v1beta1-LimitsTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LimitsSpec">LimitsSpec</a>)
@@ -5589,6 +5690,7 @@ QueryLimitSpec
 </tr>
 </tbody>
 </table>
+
 ## LokiComponentSpec { #loki-grafana-com-v1beta1-LokiComponentSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiTemplateSpec">LokiTemplateSpec</a>)
@@ -5647,6 +5749,7 @@ the component onto it.</p>
 </tr>
 </tbody>
 </table>
+
 ## LokiStack { #loki-grafana-com-v1beta1-LokiStack }
 <div>
 <p>LokiStack is the Schema for the lokistacks API</p>
@@ -5699,6 +5802,7 @@ Refer to the Kubernetes API documentation for the fields of the
 </tr>
 </tbody>
 </table>
+
 ## LokiStackComponentStatus { #loki-grafana-com-v1beta1-LokiStackComponentStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackStatus">LokiStackStatus</a>)
@@ -5829,6 +5933,7 @@ PodStatusMap
 </tr>
 </tbody>
 </table>
+
 ## LokiStackConditionReason { #loki-grafana-com-v1beta1-LokiStackConditionReason }
 (<code>string</code> alias)
 <div>
@@ -5893,6 +5998,7 @@ for the ruler is missing.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## LokiStackConditionType { #loki-grafana-com-v1beta1-LokiStackConditionType }
 (<code>string</code> alias)
 <div>
@@ -5920,6 +6026,7 @@ are degraded or the cluster cannot connect to object storage.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## LokiStackSizeType { #loki-grafana-com-v1beta1-LokiStackSizeType }
 (<code>string</code> alias)
 <p>
@@ -5958,6 +6065,7 @@ requirement for single replication factor and auto-compaction.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## LokiStackSpec { #loki-grafana-com-v1beta1-LokiStackSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStack">LokiStack</a>)
@@ -6094,6 +6202,7 @@ TenantsSpec
 </tr>
 </tbody>
 </table>
+
 ## LokiStackStatus { #loki-grafana-com-v1beta1-LokiStackStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStack">LokiStack</a>)
@@ -6155,6 +6264,7 @@ to the storage configuration.</p>
 </tr>
 </tbody>
 </table>
+
 ## LokiStackStorageStatus { #loki-grafana-com-v1beta1-LokiStackStorageStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackStatus">LokiStackStatus</a>)
@@ -6188,6 +6298,7 @@ to the LokiStack.</p>
 </tr>
 </tbody>
 </table>
+
 ## LokiTemplateSpec { #loki-grafana-com-v1beta1-LokiTemplateSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -6318,6 +6429,7 @@ LokiComponentSpec
 </tr>
 </tbody>
 </table>
+
 ## ManagementStateType { #loki-grafana-com-v1beta1-ManagementStateType }
 (<code>string</code> alias)
 <p>
@@ -6343,6 +6455,7 @@ reconciled by the operator.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## ModeType { #loki-grafana-com-v1beta1-ModeType }
 (<code>string</code> alias)
 <p>
@@ -6370,6 +6483,7 @@ using an in-process OpenPolicyAgent Rego authorizer.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## OIDCSpec { #loki-grafana-com-v1beta1-OIDCSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AuthenticationSpec">AuthenticationSpec</a>)
@@ -6447,6 +6561,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## OPASpec { #loki-grafana-com-v1beta1-OPASpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -6475,6 +6590,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## ObjectStorageSchema { #loki-grafana-com-v1beta1-ObjectStorageSchema }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackStorageStatus">LokiStackStorageStatus</a>, <a href="#loki-grafana-com-v1beta1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -6521,6 +6637,7 @@ date in UTC.</p>
 </tr>
 </tbody>
 </table>
+
 ## ObjectStorageSchemaVersion { #loki-grafana-com-v1beta1-ObjectStorageSchemaVersion }
 (<code>string</code> alias)
 <p>
@@ -6545,6 +6662,7 @@ used with the Loki cluster.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## ObjectStorageSecretSpec { #loki-grafana-com-v1beta1-ObjectStorageSecretSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -6586,6 +6704,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## ObjectStorageSecretType { #loki-grafana-com-v1beta1-ObjectStorageSecretType }
 (<code>string</code> alias)
 <p>
@@ -6615,6 +6734,7 @@ string
 </td>
 </tr></tbody>
 </table>
+
 ## ObjectStorageSpec { #loki-grafana-com-v1beta1-ObjectStorageSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -6675,6 +6795,7 @@ ObjectStorageTLSSpec
 </tr>
 </tbody>
 </table>
+
 ## ObjectStorageTLSSpec { #loki-grafana-com-v1beta1-ObjectStorageTLSSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-ObjectStorageSpec">ObjectStorageSpec</a>)
@@ -6705,6 +6826,7 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 </tr>
 </tbody>
 </table>
+
 ## PermissionType { #loki-grafana-com-v1beta1-PermissionType }
 (<code>string</code> alias)
 <p>
@@ -6728,6 +6850,7 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 </td>
 </tr></tbody>
 </table>
+
 ## PodStatusMap { #loki-grafana-com-v1beta1-PodStatusMap }
 (<code>map[k8s.io/api/core/v1.PodPhase][]string</code> alias)
 <p>
@@ -6736,6 +6859,7 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 <div>
 <p>PodStatusMap defines the type for mapping pod status to pod name.</p>
 </div>
+
 ## PrometheusDuration { #loki-grafana-com-v1beta1-PrometheusDuration }
 (<code>string</code> alias)
 <p>
@@ -6744,6 +6868,7 @@ It needs to be in the same namespace as the LokiStack custom resource.</p>
 <div>
 <p>PrometheusDuration defines the type for Prometheus durations.</p>
 </div>
+
 ## QueryLimitSpec { #loki-grafana-com-v1beta1-QueryLimitSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LimitsTemplateSpec">LimitsTemplateSpec</a>)
@@ -6799,6 +6924,7 @@ that is returned by a metric query.</p>
 </tr>
 </tbody>
 </table>
+
 ## RecordingRule { #loki-grafana-com-v1beta1-RecordingRule }
 <div>
 <p>RecordingRule is the Schema for the recordingrules API</p>
@@ -6851,6 +6977,7 @@ RecordingRuleStatus
 </tr>
 </tbody>
 </table>
+
 ## RecordingRuleGroup { #loki-grafana-com-v1beta1-RecordingRuleGroup }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RecordingRuleSpec">RecordingRuleSpec</a>)
@@ -6919,6 +7046,7 @@ int32
 </tr>
 </tbody>
 </table>
+
 ## RecordingRuleGroupSpec { #loki-grafana-com-v1beta1-RecordingRuleGroupSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RecordingRuleGroup">RecordingRuleGroup</a>)
@@ -6961,6 +7089,7 @@ pending/firing alerts.</p>
 </tr>
 </tbody>
 </table>
+
 ## RecordingRuleSpec { #loki-grafana-com-v1beta1-RecordingRuleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RecordingRule">RecordingRule</a>)
@@ -7003,6 +7132,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## RecordingRuleStatus { #loki-grafana-com-v1beta1-RecordingRuleStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RecordingRule">RecordingRule</a>)
@@ -7034,6 +7164,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## RelabelActionType { #loki-grafana-com-v1beta1-RelabelActionType }
 (<code>string</code> alias)
 <p>
@@ -7042,6 +7173,7 @@ string
 <div>
 <p>RelabelActionType defines the enumeration type for RelabelConfig actions.</p>
 </div>
+
 ## RelabelConfig { #loki-grafana-com-v1beta1-RelabelConfig }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AlertManagerSpec">AlertManagerSpec</a>, <a href="#loki-grafana-com-v1beta1-RemoteWriteClientSpec">RemoteWriteClientSpec</a>)
@@ -7150,6 +7282,7 @@ RelabelActionType
 </tr>
 </tbody>
 </table>
+
 ## RemoteWriteAuthType { #loki-grafana-com-v1beta1-RemoteWriteAuthType }
 (<code>string</code> alias)
 <p>
@@ -7173,6 +7306,7 @@ RelabelActionType
 </td>
 </tr></tbody>
 </table>
+
 ## RemoteWriteClientQueueSpec { #loki-grafana-com-v1beta1-RemoteWriteClientQueueSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RemoteWriteSpec">RemoteWriteSpec</a>)
@@ -7280,6 +7414,7 @@ PrometheusDuration
 </tr>
 </tbody>
 </table>
+
 ## RemoteWriteClientSpec { #loki-grafana-com-v1beta1-RemoteWriteClientSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RemoteWriteSpec">RemoteWriteSpec</a>)
@@ -7407,6 +7542,7 @@ bool
 </tr>
 </tbody>
 </table>
+
 ## RemoteWriteSpec { #loki-grafana-com-v1beta1-RemoteWriteSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfigSpec">RulerConfigSpec</a>)
@@ -7478,6 +7614,7 @@ RemoteWriteClientQueueSpec
 </tr>
 </tbody>
 </table>
+
 ## RoleBindingsSpec { #loki-grafana-com-v1beta1-RoleBindingsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -7527,6 +7664,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## RoleSpec { #loki-grafana-com-v1beta1-RoleSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-AuthorizationSpec">AuthorizationSpec</a>)
@@ -7586,6 +7724,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## RulerConfig { #loki-grafana-com-v1beta1-RulerConfig }
 <div>
 <p>RulerConfig is the Schema for the rulerconfigs API</p>
@@ -7638,6 +7777,7 @@ RulerConfigStatus
 </tr>
 </tbody>
 </table>
+
 ## RulerConfigSpec { #loki-grafana-com-v1beta1-RulerConfigSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfig">RulerConfig</a>)
@@ -7725,6 +7865,7 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1beta1.RulerOverrides
 </tr>
 </tbody>
 </table>
+
 ## RulerConfigStatus { #loki-grafana-com-v1beta1-RulerConfigStatus }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfig">RulerConfig</a>)
@@ -7756,6 +7897,7 @@ map[string]github.com/grafana/loki/operator/apis/loki/v1beta1.RulerOverrides
 </tr>
 </tbody>
 </table>
+
 ## RulerOverrides { #loki-grafana-com-v1beta1-RulerOverrides }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RulerConfigSpec">RulerConfigSpec</a>)
@@ -7787,6 +7929,7 @@ AlertManagerSpec
 </tr>
 </tbody>
 </table>
+
 ## RulesSpec { #loki-grafana-com-v1beta1-RulesSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -7845,6 +7988,7 @@ the same namespace as the LokiStack object is in is used.</p>
 </tr>
 </tbody>
 </table>
+
 ## StorageSchemaEffectiveDate { #loki-grafana-com-v1beta1-StorageSchemaEffectiveDate }
 (<code>string</code> alias)
 <p>
@@ -7853,6 +7997,7 @@ the same namespace as the LokiStack object is in is used.</p>
 <div>
 <p>StorageSchemaEffectiveDate defines the type for the Storage Schema Effect Date</p>
 </div>
+
 ## Subject { #loki-grafana-com-v1beta1-Subject }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-RoleBindingsSpec">RoleBindingsSpec</a>)
@@ -7892,6 +8037,7 @@ SubjectKind
 </tr>
 </tbody>
 </table>
+
 ## SubjectKind { #loki-grafana-com-v1beta1-SubjectKind }
 (<code>string</code> alias)
 <p>
@@ -7915,6 +8061,7 @@ SubjectKind
 </td>
 </tr></tbody>
 </table>
+
 ## TenantSecretSpec { #loki-grafana-com-v1beta1-TenantSecretSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-OIDCSpec">OIDCSpec</a>)
@@ -7944,6 +8091,7 @@ string
 </tr>
 </tbody>
 </table>
+
 ## TenantsSpec { #loki-grafana-com-v1beta1-TenantsSpec }
 <p>
 (<em>Appears on:</em><a href="#loki-grafana-com-v1beta1-LokiStackSpec">LokiStackSpec</a>)
@@ -8004,4 +8152,5 @@ AuthorizationSpec
 </tbody>
 </table>
 <hr/>
-+newline
+
+