From f744d8a0f80a1f0a9c2478e5f688df37c18f6e75 Mon Sep 17 00:00:00 2001 From: Jatin Suri <52750297+jatinsu@users.noreply.github.com> Date: Wed, 3 Jul 2024 01:37:25 -0400 Subject: [PATCH] feat(operator): Add support for the volume API (#13369) --- operator/CHANGELOG.md | 4 ++ operator/apis/loki/v1/lokistack_types.go | 7 ++++ .../loki-operator.clusterserviceversion.yaml | 14 ++++++- .../loki.grafana.com_lokistacks.yaml | 10 +++++ .../loki-operator.clusterserviceversion.yaml | 14 ++++++- .../loki.grafana.com_lokistacks.yaml | 10 +++++ .../loki-operator.clusterserviceversion.yaml | 14 ++++++- .../loki.grafana.com_lokistacks.yaml | 10 +++++ .../bases/loki.grafana.com_lokistacks.yaml | 10 +++++ .../loki-operator.clusterserviceversion.yaml | 12 ++++++ .../loki-operator.clusterserviceversion.yaml | 12 ++++++ .../loki-operator.clusterserviceversion.yaml | 12 ++++++ operator/docs/operator/api.md | 12 ++++++ .../manifests/internal/config/build_test.go | 42 +++++++++++++++++++ .../internal/config/loki-config.yaml | 2 + .../internal/config/loki-runtime-config.yaml | 3 ++ operator/internal/manifests/internal/sizes.go | 4 ++ 17 files changed, 189 insertions(+), 3 deletions(-) diff --git a/operator/CHANGELOG.md b/operator/CHANGELOG.md index 8f16d852c66b8..ceb56417e13f6 100644 --- a/operator/CHANGELOG.md +++ b/operator/CHANGELOG.md @@ -1,5 +1,9 @@ ## Main +## Release 5.8.9 + +- [13369](https://github.com/grafana/loki/pull/13369) **jatinsu**: feat(operator): Add support for the volume API + ## Release 5.8.8 - [13066](https://github.com/grafana/loki/pull/13066) **xperimental**: Use a minimum value for replay memory ceiling diff --git a/operator/apis/loki/v1/lokistack_types.go b/operator/apis/loki/v1/lokistack_types.go index 46415a892398f..7cb3c33512055 100644 --- a/operator/apis/loki/v1/lokistack_types.go +++ b/operator/apis/loki/v1/lokistack_types.go @@ -628,6 +628,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"` } // IngestionLimitSpec defines the limits applied at the ingestion path. diff --git a/operator/bundle/community-openshift/manifests/loki-operator.clusterserviceversion.yaml b/operator/bundle/community-openshift/manifests/loki-operator.clusterserviceversion.yaml index 6751eda80552b..ade1f4560d86d 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.4.0 - createdAt: "2024-05-03T18:26:32Z" + createdAt: "2024-07-03T08:01:34Z" description: The Community Loki Operator provides Kubernetes native deployment and management of Loki and related logging components. features.operators.openshift.io/disconnected: "true" @@ -378,6 +378,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 @@ -462,6 +468,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 86c36c4eb88b4..badd723b27a13 100644 --- a/operator/bundle/community-openshift/manifests/loki.grafana.com_lokistacks.yaml +++ b/operator/bundle/community-openshift/manifests/loki.grafana.com_lokistacks.yaml @@ -170,6 +170,11 @@ spec: series 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 @@ -298,6 +303,11 @@ spec: series 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 db02030f08330..718e0a8ea0631 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.4.0 - createdAt: "2024-05-03T18:26:30Z" + createdAt: "2024-07-03T08:01:33Z" description: The Community Loki Operator provides Kubernetes native deployment and management of Loki and related logging components. operators.operatorframework.io/builder: operator-sdk-unknown @@ -371,6 +371,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 @@ -455,6 +461,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 90ba4f19c5275..03bdf190ea7b8 100644 --- a/operator/bundle/community/manifests/loki.grafana.com_lokistacks.yaml +++ b/operator/bundle/community/manifests/loki.grafana.com_lokistacks.yaml @@ -170,6 +170,11 @@ spec: series 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 @@ -298,6 +303,11 @@ spec: series 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 06cd2834b8f44..c95a76174ac48 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-05-03T18:26:34Z" + createdAt: "2024-07-03T08:01:36Z" description: | The Loki Operator for OCP provides a means for configuring and managing a Loki stack for cluster logging. ## Prerequisites and Requirements @@ -391,6 +391,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 @@ -475,6 +481,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 c34ebd59c8fa8..860d73bbf884c 100644 --- a/operator/bundle/openshift/manifests/loki.grafana.com_lokistacks.yaml +++ b/operator/bundle/openshift/manifests/loki.grafana.com_lokistacks.yaml @@ -170,6 +170,11 @@ spec: series 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 @@ -298,6 +303,11 @@ spec: series 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 1acdaa2418eb3..9322021a4627d 100644 --- a/operator/config/crd/bases/loki.grafana.com_lokistacks.yaml +++ b/operator/config/crd/bases/loki.grafana.com_lokistacks.yaml @@ -152,6 +152,11 @@ spec: series 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 @@ -280,6 +285,11 @@ spec: series 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 531100479cb16..207ef68ad9fa2 100644 --- a/operator/config/manifests/community-openshift/bases/loki-operator.clusterserviceversion.yaml +++ b/operator/config/manifests/community-openshift/bases/loki-operator.clusterserviceversion.yaml @@ -291,6 +291,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 @@ -375,6 +381,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 2d8f27cd01f11..cf5f073f88f96 100644 --- a/operator/config/manifests/community/bases/loki-operator.clusterserviceversion.yaml +++ b/operator/config/manifests/community/bases/loki-operator.clusterserviceversion.yaml @@ -284,6 +284,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 @@ -368,6 +374,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 f20fe3141fc86..1116e81ffc8c0 100644 --- a/operator/config/manifests/openshift/bases/loki-operator.clusterserviceversion.yaml +++ b/operator/config/manifests/openshift/bases/loki-operator.clusterserviceversion.yaml @@ -303,6 +303,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 @@ -387,6 +393,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/docs/operator/api.md b/operator/docs/operator/api.md index 47edbdf8dab7d..ce027084ddd29 100644 --- a/operator/docs/operator/api.md +++ b/operator/docs/operator/api.md @@ -2855,6 +2855,18 @@ int32
CardinalityLimit defines the cardinality limit for index queries.
+maxVolumeSeries
MaxVolumeSeries defines the maximum number of aggregated series in a log-volume response
+