diff --git a/apis/tempo/v1alpha1/zz_generated.deepcopy.go b/apis/tempo/v1alpha1/zz_generated.deepcopy.go index 8707443e1..dcf8d62a8 100644 --- a/apis/tempo/v1alpha1/zz_generated.deepcopy.go +++ b/apis/tempo/v1alpha1/zz_generated.deepcopy.go @@ -326,6 +326,7 @@ func (in *JaegerQuerySpec) DeepCopyInto(out *JaegerQuerySpec) { *out = new(v1.ResourceRequirements) (*in).DeepCopyInto(*out) } + in.TempoQuery.DeepCopyInto(&out.TempoQuery) if in.ServicesQueryDuration != nil { in, out := &in.ServicesQueryDuration, &out.ServicesQueryDuration *out = new(metav1.Duration) @@ -1419,6 +1420,26 @@ func (in *TempoQueryFrontendSpec) DeepCopy() *TempoQueryFrontendSpec { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TempoQuerySpec) DeepCopyInto(out *TempoQuerySpec) { + *out = *in + if in.Resources != nil { + in, out := &in.Resources, &out.Resources + *out = new(v1.ResourceRequirements) + (*in).DeepCopyInto(*out) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TempoQuerySpec. +func (in *TempoQuerySpec) DeepCopy() *TempoQuerySpec { + if in == nil { + return nil + } + out := new(TempoQuerySpec) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *TempoStack) DeepCopyInto(out *TempoStack) { *out = *in diff --git a/bundle/community/manifests/tempo-operator.clusterserviceversion.yaml b/bundle/community/manifests/tempo-operator.clusterserviceversion.yaml index 7c85dbec8..027eb8efa 100644 --- a/bundle/community/manifests/tempo-operator.clusterserviceversion.yaml +++ b/bundle/community/manifests/tempo-operator.clusterserviceversion.yaml @@ -74,7 +74,7 @@ metadata: capabilities: Deep Insights categories: Logging & Tracing,Monitoring containerImage: ghcr.io/grafana/tempo-operator/tempo-operator:v0.13.0 - createdAt: "2024-08-28T09:48:15Z" + createdAt: "2024-09-04T09:14:02Z" description: Create and manage deployments of Tempo, a high-scale distributed tracing backend. operatorframework.io/cluster-monitoring: "true" @@ -1022,6 +1022,13 @@ spec: in the services list displayName: ServicesQueryDuration path: template.queryFrontend.jaegerQuery.servicesQueryDuration + - description: TempoQuery defines options specific to the Tempoo Query component. + displayName: Tempo Query Settings + path: template.queryFrontend.jaegerQuery.tempoQuery + - description: Resources defines resources for this component, this will override + the calculated resources derived from total + displayName: Resources + path: template.queryFrontend.jaegerQuery.tempoQuery.resources - description: NodeSelector defines the simple form of the node-selection constraint. displayName: Node Selector path: template.queryFrontend.nodeSelector @@ -1392,8 +1399,10 @@ spec: env: - name: RELATED_IMAGE_TEMPO value: docker.io/grafana/tempo:2.5.0 + - name: RELATED_IMAGE_JAEGER_QUERY + value: docker.io/jaegertracing/jaeger-query:1.60 - name: RELATED_IMAGE_TEMPO_QUERY - value: docker.io/grafana/tempo-query:2.5.0 + value: docker.io/grafana/tempo-query:main-2999520 - name: RELATED_IMAGE_TEMPO_GATEWAY value: quay.io/observatorium/api:main-2024-08-05-11d0d94 - name: RELATED_IMAGE_TEMPO_GATEWAY_OPA @@ -1540,7 +1549,9 @@ spec: relatedImages: - image: docker.io/grafana/tempo:2.5.0 name: tempo - - image: docker.io/grafana/tempo-query:2.5.0 + - image: docker.io/jaegertracing/jaeger-query:1.60 + name: jaeger-query + - image: docker.io/grafana/tempo-query:main-2999520 name: tempo-query - image: quay.io/observatorium/api:main-2024-08-05-11d0d94 name: tempo-gateway diff --git a/bundle/community/manifests/tempo.grafana.com_tempostacks.yaml b/bundle/community/manifests/tempo.grafana.com_tempostacks.yaml index 3c98cd186..e12fced4a 100644 --- a/bundle/community/manifests/tempo.grafana.com_tempostacks.yaml +++ b/bundle/community/manifests/tempo.grafana.com_tempostacks.yaml @@ -84,6 +84,9 @@ spec: images: description: Images defines the image for each container. properties: + jaegerQuery: + description: JaegerQuery defines the tempo-query container image. + type: string oauthProxy: description: OauthProxy defines the oauth proxy image used to protect the jaegerUI on single tenant. @@ -1450,6 +1453,69 @@ spec: description: ServicesQueryDuration defines how long the services will be available in the services list type: string + tempoQuery: + description: TempoQuery defines options specific to the + Tempoo Query component. + properties: + resources: + description: Resources defines resources for this + component, this will override the calculated resources + derived from total + properties: + claims: + description: |- + 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. + items: + description: ResourceClaim references one entry + in PodSpec.ResourceClaims. + properties: + name: + description: |- + 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. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + type: object type: object type: object type: object diff --git a/bundle/openshift/manifests/tempo-operator.clusterserviceversion.yaml b/bundle/openshift/manifests/tempo-operator.clusterserviceversion.yaml index fff083555..531ed9fc7 100644 --- a/bundle/openshift/manifests/tempo-operator.clusterserviceversion.yaml +++ b/bundle/openshift/manifests/tempo-operator.clusterserviceversion.yaml @@ -74,7 +74,7 @@ metadata: capabilities: Deep Insights categories: Logging & Tracing,Monitoring containerImage: ghcr.io/grafana/tempo-operator/tempo-operator:v0.13.0 - createdAt: "2024-08-28T09:48:13Z" + createdAt: "2024-09-04T09:13:59Z" description: Create and manage deployments of Tempo, a high-scale distributed tracing backend. operatorframework.io/cluster-monitoring: "true" @@ -1022,6 +1022,13 @@ spec: in the services list displayName: ServicesQueryDuration path: template.queryFrontend.jaegerQuery.servicesQueryDuration + - description: TempoQuery defines options specific to the Tempoo Query component. + displayName: Tempo Query Settings + path: template.queryFrontend.jaegerQuery.tempoQuery + - description: Resources defines resources for this component, this will override + the calculated resources derived from total + displayName: Resources + path: template.queryFrontend.jaegerQuery.tempoQuery.resources - description: NodeSelector defines the simple form of the node-selection constraint. displayName: Node Selector path: template.queryFrontend.nodeSelector @@ -1402,8 +1409,10 @@ spec: env: - name: RELATED_IMAGE_TEMPO value: docker.io/grafana/tempo:2.5.0 + - name: RELATED_IMAGE_JAEGER_QUERY + value: docker.io/jaegertracing/jaeger-query:1.60 - name: RELATED_IMAGE_TEMPO_QUERY - value: docker.io/grafana/tempo-query:2.5.0 + value: docker.io/grafana/tempo-query:main-2999520 - name: RELATED_IMAGE_TEMPO_GATEWAY value: quay.io/observatorium/api:main-2024-08-05-11d0d94 - name: RELATED_IMAGE_TEMPO_GATEWAY_OPA @@ -1561,7 +1570,9 @@ spec: relatedImages: - image: docker.io/grafana/tempo:2.5.0 name: tempo - - image: docker.io/grafana/tempo-query:2.5.0 + - image: docker.io/jaegertracing/jaeger-query:1.60 + name: jaeger-query + - image: docker.io/grafana/tempo-query:main-2999520 name: tempo-query - image: quay.io/observatorium/api:main-2024-08-05-11d0d94 name: tempo-gateway diff --git a/bundle/openshift/manifests/tempo.grafana.com_tempostacks.yaml b/bundle/openshift/manifests/tempo.grafana.com_tempostacks.yaml index 3c98cd186..e12fced4a 100644 --- a/bundle/openshift/manifests/tempo.grafana.com_tempostacks.yaml +++ b/bundle/openshift/manifests/tempo.grafana.com_tempostacks.yaml @@ -84,6 +84,9 @@ spec: images: description: Images defines the image for each container. properties: + jaegerQuery: + description: JaegerQuery defines the tempo-query container image. + type: string oauthProxy: description: OauthProxy defines the oauth proxy image used to protect the jaegerUI on single tenant. @@ -1450,6 +1453,69 @@ spec: description: ServicesQueryDuration defines how long the services will be available in the services list type: string + tempoQuery: + description: TempoQuery defines options specific to the + Tempoo Query component. + properties: + resources: + description: Resources defines resources for this + component, this will override the calculated resources + derived from total + properties: + claims: + description: |- + 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. + items: + description: ResourceClaim references one entry + in PodSpec.ResourceClaims. + properties: + name: + description: |- + 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. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + type: object type: object type: object type: object diff --git a/config/crd/bases/tempo.grafana.com_tempostacks.yaml b/config/crd/bases/tempo.grafana.com_tempostacks.yaml index ed108cf7b..6d34f7115 100644 --- a/config/crd/bases/tempo.grafana.com_tempostacks.yaml +++ b/config/crd/bases/tempo.grafana.com_tempostacks.yaml @@ -80,6 +80,9 @@ spec: images: description: Images defines the image for each container. properties: + jaegerQuery: + description: JaegerQuery defines the tempo-query container image. + type: string oauthProxy: description: OauthProxy defines the oauth proxy image used to protect the jaegerUI on single tenant. @@ -1446,6 +1449,69 @@ spec: description: ServicesQueryDuration defines how long the services will be available in the services list type: string + tempoQuery: + description: TempoQuery defines options specific to the + Tempoo Query component. + properties: + resources: + description: Resources defines resources for this + component, this will override the calculated resources + derived from total + properties: + claims: + description: |- + 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. + items: + description: ResourceClaim references one entry + in PodSpec.ResourceClaims. + properties: + name: + description: |- + 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. + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + type: object + type: object + type: object type: object type: object type: object diff --git a/config/manager/manager.yaml b/config/manager/manager.yaml index a37bcea11..2131d8461 100644 --- a/config/manager/manager.yaml +++ b/config/manager/manager.yaml @@ -44,7 +44,7 @@ spec: - name: RELATED_IMAGE_JAEGER_QUERY value: docker.io/jaegertracing/jaeger-query:1.60 - name: RELATED_IMAGE_TEMPO_QUERY - value: ghcr.io/frzifus/tempo-query:standalone + value: docker.io/grafana/tempo-query:main-2999520 - name: RELATED_IMAGE_TEMPO_GATEWAY value: quay.io/observatorium/api:main-2024-08-05-11d0d94 - name: RELATED_IMAGE_TEMPO_GATEWAY_OPA diff --git a/config/manifests/community/bases/tempo-operator.clusterserviceversion.yaml b/config/manifests/community/bases/tempo-operator.clusterserviceversion.yaml index a883fe711..f5ee93004 100644 --- a/config/manifests/community/bases/tempo-operator.clusterserviceversion.yaml +++ b/config/manifests/community/bases/tempo-operator.clusterserviceversion.yaml @@ -951,6 +951,13 @@ spec: in the services list displayName: ServicesQueryDuration path: template.queryFrontend.jaegerQuery.servicesQueryDuration + - description: TempoQuery defines options specific to the Tempoo Query component. + displayName: Tempo Query Settings + path: template.queryFrontend.jaegerQuery.tempoQuery + - description: Resources defines resources for this component, this will override + the calculated resources derived from total + displayName: Resources + path: template.queryFrontend.jaegerQuery.tempoQuery.resources - description: NodeSelector defines the simple form of the node-selection constraint. displayName: Node Selector path: template.queryFrontend.nodeSelector diff --git a/config/manifests/openshift/bases/tempo-operator.clusterserviceversion.yaml b/config/manifests/openshift/bases/tempo-operator.clusterserviceversion.yaml index 098df33f8..cf5b633f7 100644 --- a/config/manifests/openshift/bases/tempo-operator.clusterserviceversion.yaml +++ b/config/manifests/openshift/bases/tempo-operator.clusterserviceversion.yaml @@ -951,6 +951,13 @@ spec: in the services list displayName: ServicesQueryDuration path: template.queryFrontend.jaegerQuery.servicesQueryDuration + - description: TempoQuery defines options specific to the Tempoo Query component. + displayName: Tempo Query Settings + path: template.queryFrontend.jaegerQuery.tempoQuery + - description: Resources defines resources for this component, this will override + the calculated resources derived from total + displayName: Resources + path: template.queryFrontend.jaegerQuery.tempoQuery.resources - description: NodeSelector defines the simple form of the node-selection constraint. displayName: Node Selector path: template.queryFrontend.nodeSelector diff --git a/docs/spec/tempo.grafana.com_tempostacks.yaml b/docs/spec/tempo.grafana.com_tempostacks.yaml index f8f82d81d..cfb737976 100644 --- a/docs/spec/tempo.grafana.com_tempostacks.yaml +++ b/docs/spec/tempo.grafana.com_tempostacks.yaml @@ -9,6 +9,7 @@ spec: # TempoStackSpec defines the desired st memberlist: # MemberList configuration spec enableIPv6: false # EnableIPv6 enables IPv6 support for the memberlist based hash ring. images: # Images defines the image for each container. + jaegerQuery: "" # JaegerQuery defines the tempo-query container image. oauthProxy: "" # OauthProxy defines the oauth proxy image used to protect the jaegerUI on single tenant. tempo: "" # Tempo defines the tempo container image. tempoGateway: "" # TempoGateway defines the tempo-gateway container image. @@ -196,6 +197,16 @@ spec: # TempoStackSpec defines the desired st enabled: false # Enabled enables the monitor tab in the Jaeger console. The PrometheusEndpoint must be configured to enable this feature. prometheusEndpoint: "" # PrometheusEndpoint defines the endpoint to the Prometheus instance that contains the span rate, error, and duration (RED) metrics. For instance on OpenShift this is set to https://thanos-querier.openshift-monitoring.svc.cluster.local:9091 servicesQueryDuration: "" # ServicesQueryDuration defines how long the services will be available in the services list + tempoQuery: # TempoQuery defines options specific to the Tempoo Query component. + resources: # Resources defines resources for this component, this will override the calculated resources derived from total + 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. + limits: # Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + cpu: "750m" + memory: "2Gi" + requests: # Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ + cpu: "500m" + memory: "1Gi" resources: # Resources defines resources for this component, this will override the calculated resources derived from total 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.