Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

queryfrontend: adapt to tempo-query standalone change #1025

Merged
merged 4 commits into from
Sep 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .chloggen/bump_tempo-query.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
change_type: enhancement

# The name of the component, or a single word describing the area of concern, (e.g. tempostack, tempomonolithic, github action)
component: tempostack

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Bump jaeger to v1.60 by replacing the tempo-query gRPC storage plugin due to the deprecation in Jaeger 1.58.0 with a gRPC standalone service.

# One or more tracking issues related to the change
issues: [1025]

# (Optional) One or more lines of additional information to render under the primary note.
# These lines will be padded with 2 spaces and then inserted directly into the document.
# Use pipe (|) for multiline entries.
subtext:
6 changes: 5 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Current Operator version
OPERATOR_VERSION ?= 0.13.0
TEMPO_VERSION ?= 2.5.0
TEMPO_QUERY_VERSION ?= 2.5.0
TEMPO_QUERY_VERSION ?= main-2999520
JAEGER_QUERY_VERSION ?= 1.60
TEMPO_GATEWAY_VERSION ?= main-2024-08-05-11d0d94
TEMPO_GATEWAY_OPA_VERSION ?= main-2024-04-29-914c13f
OAUTH_PROXY_VERSION=4.12
Expand All @@ -10,6 +11,7 @@ MIN_KUBERNETES_VERSION ?= 1.25.0
MIN_OPENSHIFT_VERSION ?= 4.12

TEMPO_IMAGE ?= docker.io/grafana/tempo:$(TEMPO_VERSION)
JAEGER_QUERY_IMAGE ?= docker.io/jaegertracing/jaeger-query:$(JAEGER_QUERY_VERSION)
TEMPO_QUERY_IMAGE ?= docker.io/grafana/tempo-query:$(TEMPO_QUERY_VERSION)
TEMPO_GATEWAY_IMAGE ?= quay.io/observatorium/api:$(TEMPO_GATEWAY_VERSION)
TEMPO_GATEWAY_OPA_IMAGE ?= quay.io/observatorium/opa-openshift:$(TEMPO_GATEWAY_OPA_VERSION)
Expand Down Expand Up @@ -115,6 +117,7 @@ help: ## Display this help.
.PHONY: manifests
manifests: controller-gen ## Generate WebhookConfiguration, ClusterRole and CustomResourceDefinition objects.
sed -i '/RELATED_IMAGE_TEMPO$$/{n;s@value: .*@value: $(TEMPO_IMAGE)@}' config/manager/manager.yaml
sed -i '/RELATED_IMAGE_JAEGER_QUERY$$/{n;s@value: .*@value: $(JAEGER_QUERY_IMAGE)@}' config/manager/manager.yaml
sed -i '/RELATED_IMAGE_TEMPO_QUERY$$/{n;s@value: .*@value: $(TEMPO_QUERY_IMAGE)@}' config/manager/manager.yaml
sed -i '/RELATED_IMAGE_TEMPO_GATEWAY$$/{n;s@value: .*@value: $(TEMPO_GATEWAY_IMAGE)@}' config/manager/manager.yaml
sed -i '/RELATED_IMAGE_TEMPO_GATEWAY_OPA$$/{n;s@value: .*@value: $(TEMPO_GATEWAY_OPA_IMAGE)@}' config/manager/manager.yaml
Expand Down Expand Up @@ -151,6 +154,7 @@ run: manifests generate ## Run a controller from your host.
-kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io tempo-operator-validating-webhook-configuration
ENABLE_WEBHOOKS=false \
RELATED_IMAGE_TEMPO=$(TEMPO_IMAGE) \
RELATED_IMAGE_JAEGER_QUERY=$(JAEGER_QUERY_IMAGE) \
RELATED_IMAGE_TEMPO_QUERY=$(TEMPO_QUERY_IMAGE) \
RELATED_IMAGE_TEMPO_GATEWAY=$(TEMPO_GATEWAY_IMAGE) \
RELATED_IMAGE_TEMPO_GATEWAY_OPA=$(TEMPO_GATEWAY_OPA_IMAGE) \
Expand Down
9 changes: 9 additions & 0 deletions apis/config/v1alpha1/projectconfig_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ const (
// EnvRelatedImageTempo contains the name of the environment variable where the tempo image location is stored.
EnvRelatedImageTempo = "RELATED_IMAGE_TEMPO"

// EnvRelatedImageJaegerQuery contains the name of the environment variable where the jaegerQuery image location is stored.
EnvRelatedImageJaegerQuery = "RELATED_IMAGE_JAEGER_QUERY"

// EnvRelatedImageTempoQuery contains the name of the environment variable where the tempoQuery image location is stored.
EnvRelatedImageTempoQuery = "RELATED_IMAGE_TEMPO_QUERY"

Expand All @@ -36,6 +39,11 @@ type ImagesSpec struct {
// +optional
TempoQuery string `json:"tempoQuery,omitempty"`

// JaegerQuery defines the tempo-query container image.
//
// +optional
JaegerQuery string `json:"jaegerQuery,omitempty"`

// TempoGateway defines the tempo-gateway container image.
//
// +optional
Expand Down Expand Up @@ -242,6 +250,7 @@ func DefaultProjectConfig() ProjectConfig {
return ProjectConfig{
DefaultImages: ImagesSpec{
Tempo: os.Getenv(EnvRelatedImageTempo),
JaegerQuery: os.Getenv(EnvRelatedImageJaegerQuery),
TempoQuery: os.Getenv(EnvRelatedImageTempoQuery),
TempoGateway: os.Getenv(EnvRelatedImageTempoGateway),
TempoGatewayOpa: os.Getenv(EnvRelatedImageTempoGatewayOpa),
Expand Down
1 change: 1 addition & 0 deletions apis/config/v1alpha1/projectconfig_validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ func (c *ProjectConfig) Validate() error {
// Validate container images if set
for envName, envValue := range map[string]string{
EnvRelatedImageTempo: c.DefaultImages.Tempo,
EnvRelatedImageJaegerQuery: c.DefaultImages.JaegerQuery,
EnvRelatedImageTempoQuery: c.DefaultImages.TempoQuery,
EnvRelatedImageTempoGateway: c.DefaultImages.TempoGateway,
EnvRelatedImageTempoGatewayOpa: c.DefaultImages.TempoGatewayOpa,
Expand Down
16 changes: 16 additions & 0 deletions apis/tempo/v1alpha1/tempostack_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -594,6 +594,13 @@ type JaegerQuerySpec struct {
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources"
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`

// TempoQuery defines options specific to the Tempoo Query component.
//
// +optional
// +kubebuilder:validation:Optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Tempo Query Settings"
TempoQuery TempoQuerySpec `json:"tempoQuery,omitempty"`

// ServicesQueryDuration defines how long the services will be available in the services list
//
// +optional
Expand All @@ -608,6 +615,15 @@ type JaegerQuerySpec struct {
Authentication *JaegerQueryAuthenticationSpec `json:"authentication,omitempty"`
}

// TempoQuerySpec defines Tempo Query options.
type TempoQuerySpec struct {
// Resources defines resources for this component, this will override the calculated resources derived from total
//
// +optional
// +operator-sdk:csv:customresourcedefinitions:type=spec,displayName="Resources"
Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
}

// JaegerQueryMonitor defines configuration for the service monitoring tab in the Jaeger console.
// The monitoring tab uses Prometheus to query span RED metrics.
// This feature requires running OpenTelemetry collector with spanmetricsconnector -
Expand Down
21 changes: 21 additions & 0 deletions apis/tempo/v1alpha1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
66 changes: 66 additions & 0 deletions bundle/community/manifests/tempo.grafana.com_tempostacks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
Loading