From 74dcc7c18c3ed521324757f4f71a435fe737c9a8 Mon Sep 17 00:00:00 2001 From: Andreas Gerstmayr Date: Thu, 1 Feb 2024 18:45:50 +0100 Subject: [PATCH] Drop unimplemented ObservabilitySpec from Monolithic CR, update CSV description (#769) Signed-off-by: Andreas Gerstmayr --- apis/tempo/v1alpha1/tempomonolithic_types.go | 42 --- apis/tempo/v1alpha1/zz_generated.deepcopy.go | 80 ----- .../tempo-operator.clusterserviceversion.yaml | 6 +- .../tempo.grafana.com_tempomonolithics.yaml | 30 -- .../tempo-operator.clusterserviceversion.yaml | 6 +- .../tempo.grafana.com_tempomonolithics.yaml | 30 -- .../tempo.grafana.com_tempomonolithics.yaml | 30 -- .../tempo-operator.clusterserviceversion.yaml | 4 +- .../tempo-operator.clusterserviceversion.yaml | 4 +- docs/operator/api.md | 274 ------------------ .../tempo.grafana.com_tempomonolithics.yaml | 6 - 11 files changed, 10 insertions(+), 502 deletions(-) diff --git a/apis/tempo/v1alpha1/tempomonolithic_types.go b/apis/tempo/v1alpha1/tempomonolithic_types.go index 8cb4a9761..540443a1c 100644 --- a/apis/tempo/v1alpha1/tempomonolithic_types.go +++ b/apis/tempo/v1alpha1/tempomonolithic_types.go @@ -33,11 +33,6 @@ type TempoMonolithicSpec struct { // +kubebuilder:validation:Optional Resources *corev1.ResourceRequirements `json:"resources,omitempty"` - // Observability defines observability configuration for the Tempo deployment - // - // +kubebuilder:validation:Optional - Observability *MonolithicObservabilitySpec `json:"observability,omitempty"` - // ExtraConfig defines any extra (overlay) configuration for components // // +kubebuilder:validation:Optional @@ -263,43 +258,6 @@ type MonolithicJaegerUIRouteSpec struct { Termination TLSRouteTerminationType `json:"termination,omitempty"` } -// MonolithicObservabilitySpec defines the observability settings of the Tempo deployment. -type MonolithicObservabilitySpec struct { - // Metrics defines the metrics configuration of the Tempo deployment - // - // +kubebuilder:validation:Optional - Metrics *MonolithicObservabilityMetricsSpec `json:"metrics,omitempty"` -} - -// MonolithicObservabilityMetricsSpec defines the metrics settings of the Tempo deployment. -type MonolithicObservabilityMetricsSpec struct { - // ServiceMonitors defines the ServiceMonitor configuration - // - // +kubebuilder:validation:Optional - ServiceMonitors *MonolithicObservabilityMetricsServiceMonitorsSpec `json:"serviceMonitors,omitempty"` - - // ServiceMonitors defines the PrometheusRule configuration - // - // +kubebuilder:validation:Optional - PrometheusRules *MonolithicObservabilityMetricsPrometheusRulesSpec `json:"prometheusRules,omitempty"` -} - -// MonolithicObservabilityMetricsServiceMonitorsSpec defines the ServiceMonitor settings. -type MonolithicObservabilityMetricsServiceMonitorsSpec struct { - // Enabled defines if the operator should create ServiceMonitors for this Tempo deployment - // - // +kubebuilder:validation:Required - Enabled bool `json:"enabled"` -} - -// MonolithicObservabilityMetricsPrometheusRulesSpec defines the PrometheusRules settings. -type MonolithicObservabilityMetricsPrometheusRulesSpec struct { - // Enabled defines if the operator should create PrometheusRules for this Tempo deployment - // - // +kubebuilder:validation:Required - Enabled bool `json:"enabled"` -} - // TempoMonolithicStatus defines the observed state of TempoMonolithic. type TempoMonolithicStatus struct { // INSERT ADDITIONAL STATUS FIELD - define observed state of cluster diff --git a/apis/tempo/v1alpha1/zz_generated.deepcopy.go b/apis/tempo/v1alpha1/zz_generated.deepcopy.go index 2f8e30a4e..0b7df2f51 100644 --- a/apis/tempo/v1alpha1/zz_generated.deepcopy.go +++ b/apis/tempo/v1alpha1/zz_generated.deepcopy.go @@ -530,81 +530,6 @@ func (in *MonolithicJaegerUISpec) DeepCopy() *MonolithicJaegerUISpec { return out } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonolithicObservabilityMetricsPrometheusRulesSpec) DeepCopyInto(out *MonolithicObservabilityMetricsPrometheusRulesSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilityMetricsPrometheusRulesSpec. -func (in *MonolithicObservabilityMetricsPrometheusRulesSpec) DeepCopy() *MonolithicObservabilityMetricsPrometheusRulesSpec { - if in == nil { - return nil - } - out := new(MonolithicObservabilityMetricsPrometheusRulesSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonolithicObservabilityMetricsServiceMonitorsSpec) DeepCopyInto(out *MonolithicObservabilityMetricsServiceMonitorsSpec) { - *out = *in -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilityMetricsServiceMonitorsSpec. -func (in *MonolithicObservabilityMetricsServiceMonitorsSpec) DeepCopy() *MonolithicObservabilityMetricsServiceMonitorsSpec { - if in == nil { - return nil - } - out := new(MonolithicObservabilityMetricsServiceMonitorsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonolithicObservabilityMetricsSpec) DeepCopyInto(out *MonolithicObservabilityMetricsSpec) { - *out = *in - if in.ServiceMonitors != nil { - in, out := &in.ServiceMonitors, &out.ServiceMonitors - *out = new(MonolithicObservabilityMetricsServiceMonitorsSpec) - **out = **in - } - if in.PrometheusRules != nil { - in, out := &in.PrometheusRules, &out.PrometheusRules - *out = new(MonolithicObservabilityMetricsPrometheusRulesSpec) - **out = **in - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilityMetricsSpec. -func (in *MonolithicObservabilityMetricsSpec) DeepCopy() *MonolithicObservabilityMetricsSpec { - if in == nil { - return nil - } - out := new(MonolithicObservabilityMetricsSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MonolithicObservabilitySpec) DeepCopyInto(out *MonolithicObservabilitySpec) { - *out = *in - if in.Metrics != nil { - in, out := &in.Metrics, &out.Metrics - *out = new(MonolithicObservabilityMetricsSpec) - (*in).DeepCopyInto(*out) - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MonolithicObservabilitySpec. -func (in *MonolithicObservabilitySpec) DeepCopy() *MonolithicObservabilitySpec { - if in == nil { - return nil - } - out := new(MonolithicObservabilitySpec) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MonolithicStorageSpec) DeepCopyInto(out *MonolithicStorageSpec) { *out = *in @@ -1196,11 +1121,6 @@ func (in *TempoMonolithicSpec) DeepCopyInto(out *TempoMonolithicSpec) { *out = new(v1.ResourceRequirements) (*in).DeepCopyInto(*out) } - if in.Observability != nil { - in, out := &in.Observability, &out.Observability - *out = new(MonolithicObservabilitySpec) - (*in).DeepCopyInto(*out) - } if in.ExtraConfig != nil { in, out := &in.ExtraConfig, &out.ExtraConfig *out = new(ExtraConfigSpec) diff --git a/bundle/community/manifests/tempo-operator.clusterserviceversion.yaml b/bundle/community/manifests/tempo-operator.clusterserviceversion.yaml index b693676fa..a725a48ad 100644 --- a/bundle/community/manifests/tempo-operator.clusterserviceversion.yaml +++ b/bundle/community/manifests/tempo-operator.clusterserviceversion.yaml @@ -56,7 +56,7 @@ metadata: capabilities: Deep Insights categories: Logging & Tracing,Monitoring containerImage: ghcr.io/grafana/tempo-operator/tempo-operator:v0.7.0 - createdAt: "2024-02-01T15:42:35Z" + createdAt: "2024-02-01T17:34:26Z" description: Create and manage deployments of Tempo, a high-scale distributed tracing backend. operatorframework.io/cluster-monitoring: "true" @@ -694,7 +694,7 @@ spec: It can ingest common open source tracing protocols including Jaeger, Zipkin, and OpenTelemetry and requires only object storage to operate. Please refer to the [Tempo documentation](https://grafana.com/docs/tempo/latest/) for more information about Tempo. - The Community Tempo Operator manages Tempo deployments in Microservices mode. + The Community Tempo Operator supports Tempo deployments in Microservices mode (`TempoStack` CR) and Monolithic mode (`TempoMonolithic` CR). ### Operator features * **Resource Limits** - Specify overall resource requests and limits in the `TempoStack` CR; the operator assigns fractions of it to each component @@ -706,7 +706,7 @@ spec: * **Observability** - The operator and `TempoStack` operands expose telemetry (metrics, traces) and integrate with Prometheus `ServiceMonitor` and `PrometheusRule` ### Prerequisites - Tempo requires object storage to store its traces. + `TempoStack` requires object storage to store its traces. `TempoMonolithic` can store traces in-memory, in a Persistent Volume and in object storage. Please ensure that an object storage solution is available and configured. displayName: Community Tempo Operator icon: diff --git a/bundle/community/manifests/tempo.grafana.com_tempomonolithics.yaml b/bundle/community/manifests/tempo.grafana.com_tempomonolithics.yaml index 2e0560dc0..3599e0863 100644 --- a/bundle/community/manifests/tempo.grafana.com_tempomonolithics.yaml +++ b/bundle/community/manifests/tempo.grafana.com_tempomonolithics.yaml @@ -248,36 +248,6 @@ spec: - Managed - Unmanaged type: string - observability: - description: Observability defines observability configuration for - the Tempo deployment - properties: - metrics: - description: Metrics defines the metrics configuration of the - Tempo deployment - properties: - prometheusRules: - description: ServiceMonitors defines the PrometheusRule configuration - properties: - enabled: - description: Enabled defines if the operator should create - PrometheusRules for this Tempo deployment - type: boolean - required: - - enabled - type: object - serviceMonitors: - description: ServiceMonitors defines the ServiceMonitor configuration - properties: - enabled: - description: Enabled defines if the operator should create - ServiceMonitors for this Tempo deployment - type: boolean - required: - - enabled - type: object - type: object - type: object resources: description: Resources defines the compute resource requirements of Tempo. diff --git a/bundle/openshift/manifests/tempo-operator.clusterserviceversion.yaml b/bundle/openshift/manifests/tempo-operator.clusterserviceversion.yaml index 249080de1..b0bef2fb8 100644 --- a/bundle/openshift/manifests/tempo-operator.clusterserviceversion.yaml +++ b/bundle/openshift/manifests/tempo-operator.clusterserviceversion.yaml @@ -56,7 +56,7 @@ metadata: capabilities: Deep Insights categories: Logging & Tracing,Monitoring containerImage: ghcr.io/grafana/tempo-operator/tempo-operator:v0.7.0 - createdAt: "2024-02-01T15:42:34Z" + createdAt: "2024-02-01T17:34:24Z" description: Create and manage deployments of Tempo, a high-scale distributed tracing backend. operatorframework.io/cluster-monitoring: "true" @@ -694,7 +694,7 @@ spec: It can ingest common open source tracing protocols including Jaeger, Zipkin, and OpenTelemetry and requires only object storage to operate. Please refer to the [Tempo documentation](https://grafana.com/docs/tempo/latest/) for more information about Tempo. - The Community Tempo Operator manages Tempo deployments in Microservices mode. + The Community Tempo Operator can manage Tempo deployments in Microservices mode (`TempoStack` CR) and Monolithic mode (`TempoMonolithic` CR). ### Operator features * **Resource Limits** - Specify overall resource requests and limits in the `TempoStack` CR; the operator assigns fractions of it to each component @@ -706,7 +706,7 @@ spec: * **Observability** - The operator and `TempoStack` operands expose telemetry (metrics, traces) and integrate with Prometheus `ServiceMonitor` and `PrometheusRule` ### Prerequisites - Tempo requires object storage to store its traces. + `TempoStack` requires object storage to store its traces. `TempoMonolithic` can store traces in-memory, in a Persistent Volume and in object storage. Please ensure that an object storage solution is available and configured. displayName: Community Tempo Operator icon: diff --git a/bundle/openshift/manifests/tempo.grafana.com_tempomonolithics.yaml b/bundle/openshift/manifests/tempo.grafana.com_tempomonolithics.yaml index 2e0560dc0..3599e0863 100644 --- a/bundle/openshift/manifests/tempo.grafana.com_tempomonolithics.yaml +++ b/bundle/openshift/manifests/tempo.grafana.com_tempomonolithics.yaml @@ -248,36 +248,6 @@ spec: - Managed - Unmanaged type: string - observability: - description: Observability defines observability configuration for - the Tempo deployment - properties: - metrics: - description: Metrics defines the metrics configuration of the - Tempo deployment - properties: - prometheusRules: - description: ServiceMonitors defines the PrometheusRule configuration - properties: - enabled: - description: Enabled defines if the operator should create - PrometheusRules for this Tempo deployment - type: boolean - required: - - enabled - type: object - serviceMonitors: - description: ServiceMonitors defines the ServiceMonitor configuration - properties: - enabled: - description: Enabled defines if the operator should create - ServiceMonitors for this Tempo deployment - type: boolean - required: - - enabled - type: object - type: object - type: object resources: description: Resources defines the compute resource requirements of Tempo. diff --git a/config/crd/bases/tempo.grafana.com_tempomonolithics.yaml b/config/crd/bases/tempo.grafana.com_tempomonolithics.yaml index a49aef251..a03e2265f 100644 --- a/config/crd/bases/tempo.grafana.com_tempomonolithics.yaml +++ b/config/crd/bases/tempo.grafana.com_tempomonolithics.yaml @@ -245,36 +245,6 @@ spec: - Managed - Unmanaged type: string - observability: - description: Observability defines observability configuration for - the Tempo deployment - properties: - metrics: - description: Metrics defines the metrics configuration of the - Tempo deployment - properties: - prometheusRules: - description: ServiceMonitors defines the PrometheusRule configuration - properties: - enabled: - description: Enabled defines if the operator should create - PrometheusRules for this Tempo deployment - type: boolean - required: - - enabled - type: object - serviceMonitors: - description: ServiceMonitors defines the ServiceMonitor configuration - properties: - enabled: - description: Enabled defines if the operator should create - ServiceMonitors for this Tempo deployment - type: boolean - required: - - enabled - type: object - type: object - type: object resources: description: Resources defines the compute resource requirements of Tempo. diff --git a/config/manifests/community/bases/tempo-operator.clusterserviceversion.yaml b/config/manifests/community/bases/tempo-operator.clusterserviceversion.yaml index 72b413f50..d7651c34d 100644 --- a/config/manifests/community/bases/tempo-operator.clusterserviceversion.yaml +++ b/config/manifests/community/bases/tempo-operator.clusterserviceversion.yaml @@ -641,7 +641,7 @@ spec: It can ingest common open source tracing protocols including Jaeger, Zipkin, and OpenTelemetry and requires only object storage to operate. Please refer to the [Tempo documentation](https://grafana.com/docs/tempo/latest/) for more information about Tempo. - The Community Tempo Operator manages Tempo deployments in Microservices mode. + The Community Tempo Operator supports Tempo deployments in Microservices mode (`TempoStack` CR) and Monolithic mode (`TempoMonolithic` CR). ### Operator features * **Resource Limits** - Specify overall resource requests and limits in the `TempoStack` CR; the operator assigns fractions of it to each component @@ -653,7 +653,7 @@ spec: * **Observability** - The operator and `TempoStack` operands expose telemetry (metrics, traces) and integrate with Prometheus `ServiceMonitor` and `PrometheusRule` ### Prerequisites - Tempo requires object storage to store its traces. + `TempoStack` requires object storage to store its traces. `TempoMonolithic` can store traces in-memory, in a Persistent Volume and in object storage. Please ensure that an object storage solution is available and configured. displayName: Community Tempo Operator icon: diff --git a/config/manifests/openshift/bases/tempo-operator.clusterserviceversion.yaml b/config/manifests/openshift/bases/tempo-operator.clusterserviceversion.yaml index 72b413f50..e29e860d1 100644 --- a/config/manifests/openshift/bases/tempo-operator.clusterserviceversion.yaml +++ b/config/manifests/openshift/bases/tempo-operator.clusterserviceversion.yaml @@ -641,7 +641,7 @@ spec: It can ingest common open source tracing protocols including Jaeger, Zipkin, and OpenTelemetry and requires only object storage to operate. Please refer to the [Tempo documentation](https://grafana.com/docs/tempo/latest/) for more information about Tempo. - The Community Tempo Operator manages Tempo deployments in Microservices mode. + The Community Tempo Operator can manage Tempo deployments in Microservices mode (`TempoStack` CR) and Monolithic mode (`TempoMonolithic` CR). ### Operator features * **Resource Limits** - Specify overall resource requests and limits in the `TempoStack` CR; the operator assigns fractions of it to each component @@ -653,7 +653,7 @@ spec: * **Observability** - The operator and `TempoStack` operands expose telemetry (metrics, traces) and integrate with Prometheus `ServiceMonitor` and `PrometheusRule` ### Prerequisites - Tempo requires object storage to store its traces. + `TempoStack` requires object storage to store its traces. `TempoMonolithic` can store traces in-memory, in a Persistent Volume and in object storage. Please ensure that an object storage solution is available and configured. displayName: Community Tempo Operator icon: diff --git a/docs/operator/api.md b/docs/operator/api.md index 6321f5ebb..a50bb9529 100644 --- a/docs/operator/api.md +++ b/docs/operator/api.md @@ -2229,255 +2229,6 @@ Kubernetes core/v1.ResourceRequirements -## MonolithicObservabilityMetricsPrometheusRulesSpec { #tempo-grafana-com-v1alpha1-MonolithicObservabilityMetricsPrometheusRulesSpec } - -

- -(Appears on:MonolithicObservabilityMetricsSpec) - -

- -
- -

MonolithicObservabilityMetricsPrometheusRulesSpec defines the PrometheusRules settings.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
FieldDescription
- -enabled
- - - -bool - - - -
- -

Enabled defines if the operator should create PrometheusRules for this Tempo deployment

- -
- -## MonolithicObservabilityMetricsServiceMonitorsSpec { #tempo-grafana-com-v1alpha1-MonolithicObservabilityMetricsServiceMonitorsSpec } - -

- -(Appears on:MonolithicObservabilityMetricsSpec) - -

- -
- -

MonolithicObservabilityMetricsServiceMonitorsSpec defines the ServiceMonitor settings.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
FieldDescription
- -enabled
- - - -bool - - - -
- -

Enabled defines if the operator should create ServiceMonitors for this Tempo deployment

- -
- -## MonolithicObservabilityMetricsSpec { #tempo-grafana-com-v1alpha1-MonolithicObservabilityMetricsSpec } - -

- -(Appears on:MonolithicObservabilitySpec) - -

- -
- -

MonolithicObservabilityMetricsSpec defines the metrics settings of the Tempo deployment.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FieldDescription
- -serviceMonitors
- - - - - -MonolithicObservabilityMetricsServiceMonitorsSpec - - - - - -
- -

ServiceMonitors defines the ServiceMonitor configuration

- -
- -prometheusRules
- - - - - -MonolithicObservabilityMetricsPrometheusRulesSpec - - - - - -
- -

ServiceMonitors defines the PrometheusRule configuration

- -
- -## MonolithicObservabilitySpec { #tempo-grafana-com-v1alpha1-MonolithicObservabilitySpec } - -

- -(Appears on:TempoMonolithicSpec) - -

- -
- -

MonolithicObservabilitySpec defines the observability settings of the Tempo deployment.

- -
- - - - - - - - - - - - - - - - - - - - - - - - - -
FieldDescription
- -metrics
- - - - - -MonolithicObservabilityMetricsSpec - - - - - -
- -

Metrics defines the metrics configuration of the Tempo deployment

- -
- ## MonolithicStorageSpec { #tempo-grafana-com-v1alpha1-MonolithicStorageSpec }

@@ -5163,31 +4914,6 @@ Kubernetes core/v1.ResourceRequirements -observability
- - - - - -MonolithicObservabilitySpec - - - - - - - - - -

Observability defines observability configuration for the Tempo deployment

- - - - - - - - extraConfig
diff --git a/docs/spec/tempo.grafana.com_tempomonolithics.yaml b/docs/spec/tempo.grafana.com_tempomonolithics.yaml index 6add8f8f8..acdc34eae 100644 --- a/docs/spec/tempo.grafana.com_tempomonolithics.yaml +++ b/docs/spec/tempo.grafana.com_tempomonolithics.yaml @@ -43,12 +43,6 @@ spec: # TempoMonolithicSpec defines the desir host: "" # Host defines the hostname of the Route object. termination: "edge" # Termination specifies the termination type. Default: edge. management: "" # ManagementState defines whether this instance is managed by the operator or self-managed - observability: # Observability defines observability configuration for the Tempo deployment - metrics: # Metrics defines the metrics configuration of the Tempo deployment - prometheusRules: # ServiceMonitors defines the PrometheusRule configuration - enabled: false # Enabled defines if the operator should create PrometheusRules for this Tempo deployment - serviceMonitors: # ServiceMonitors defines the ServiceMonitor configuration - enabled: false # Enabled defines if the operator should create ServiceMonitors for this Tempo deployment resources: # Resources defines the compute resource requirements of Tempo. claims: # Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. This field is immutable. It can only be set for containers. - name: "" # Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container.