DirectorySecurity AdvisoriesPricing
Sign in
Directory
tempo logoHELM

tempo

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
global:
2
# -- Common labels for all object directly managed by this chart.
3
commonLabels: {}
4
# -- Overrides the Docker registry globally for all images
5
imageRegistry: null
6
# -- Overrides the chart's name
7
nameOverride: ""
8
# -- Overrides the chart's computed fullname
9
fullnameOverride: ""
10
# -- Define the amount of instances
11
replicas: 1
12
# -- Number of old history to retain to allow rollback (If not set, default Kubernetes value is set to 10)
13
# revisionHistoryLimit: 1
14
15
# -- labels for tempo
16
labels: {}
17
# -- Annotations for the StatefulSet
18
annotations: {}
19
tempo:
20
registry: chainreg.biz
21
repository: scratch-images/test-tmp/tempo
22
tag: 2.10.8-r2@sha256:7283535e4f2ad447ede997d9a1765a66387d6d8951aabe3311eb3a83c5ef3265
23
pullPolicy: IfNotPresent
24
## Optionally specify an array of imagePullSecrets.
25
## Secrets must be manually created in the namespace.
26
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
27
##
28
# pullSecrets:
29
# - myRegistryKeySecretName
30
31
updateStrategy: RollingUpdate
32
resources: {}
33
# requests:
34
# cpu: 1000m
35
# memory: 4Gi
36
# limits:
37
# cpu: 2000m
38
# memory: 6Gi
39
40
streamOverHttpEnabled: false
41
memBallastSizeMbs: 1024
42
multitenancyEnabled: false
43
# -- If true, Tempo will report anonymous usage data about the shape of a deployment to Grafana Labs
44
reportingEnabled: true
45
metricsGenerator:
46
# -- If true, enables Tempo's metrics generator (https://grafana.com/docs/tempo/next/metrics-generator/)
47
enabled: false
48
remoteWriteUrl: "http://prometheus.monitoring:9090/api/v1/write"
49
# -- Processor-specific configuration for metrics generator (optional)
50
# Supports service_graphs, span_metrics, and local_blocks processors
51
processor: {}
52
# local_blocks:
53
# flush_to_storage: true
54
# filter_server_spans: false
55
# max_block_duration: 1m
56
# service_graphs:
57
# wait: 10s
58
# max_items: 10000
59
# span_metrics:
60
# enable_target_info: true
61
# -- Registry configuration for metrics generator (optional)
62
registry: {}
63
# collection_interval: 15s
64
# external_labels:
65
# cluster: "primary"
66
# -- Storage configuration for metrics generator
67
# This section configures the storage path and remote write endpoints
68
storage:
69
# -- Path for storing metrics blocks. Defaults to /tmp/tempo for backward compatibility, but /var/tempo/metrics is recommended for production with persistent storage
70
path: "/tmp/tempo"
71
# -- Optional remote write configuration (will use remoteWriteUrl if not specified)
72
# Supports full Prometheus remote_write config: https://prometheus.io/docs/prometheus/latest/configuration/configuration/#remote_write
73
remote_write: []
74
# -- Traces storage (WAL) configuration for metrics generator
75
# This configures the Write Ahead Log for traces used by the metrics generator
76
traces_storage:
77
# -- Path for traces storage WAL used by metrics generator
78
path: "/tmp/traces"
79
# -- Configuration options for the ingester.
80
# Refers to: https://grafana.com/docs/tempo/latest/configuration/#ingester
81
ingester: {}
82
# flush_check_period: 10s
83
# trace_idle_period: 10s
84
# max_block_duration: 30m
85
# complete_block_timeout: 1h
86
# -- Configuration options for the querier.
87
# Refers to: https://grafana.com/docs/tempo/latest/configuration/#querier
88
querier: {}
89
# max_concurrent_queries: 20
90
# -- Configuration options for the query-fronted.
91
# Refers to: https://grafana.com/docs/tempo/latest/configuration/#query-frontend
92
queryFrontend: {}
93
# search:
94
# concurrent_jobs: 2000
95
retention: 24h
96
# -- The standard overrides configuration section. This can include a `defaults` object for applying to all tenants (not to be confused with the `global` property of the same name, which overrides `max_byte_per_trace` for all tenants). For an example on how to enable the metrics generator using the `overrides` object, see the 'Activate metrics generator' section below. Refer to [Standard overrides](https://grafana.com/docs/tempo/latest/configuration/#standard-overrides) for more details.
97
overrides:
98
# -- Default config values for all tenants, can be overridden by per-tenant overrides. If a tenant's specific overrides are not found in the `per_tenant_overrides` block, the values in this `default` block will be used. Configs inside this block should follow the new overrides indentation format
99
defaults: {}
100
# metrics_generator:
101
# processors:
102
# - service-graphs
103
# - span-metrics
104
105
# -- Path to the per tenant override config file. The values of the `per_tenant_overrides` config below will be written to the default path `/conf/overrides.yaml`. Users can set tenant-specific overrides settings in a separate file and point per_tenant_override_config to it if not using the per_tenant_overrides block below.
106
per_tenant_override_config: /conf/overrides.yaml
107
# -- The `per tenant` aka `tenant-specific` runtime overrides. This allows overriding values set in the configuration on a per-tenant basis. Note that *all* values must be given for each per-tenant configuration block. Refer to [Runtime overrides](https://grafana.com/docs/tempo/latest/configuration/#runtime-overrides) and [Tenant-Specific overrides](https://grafana.com/docs/tempo/latest/configuration/#tenant-specific-overrides) documentation for more details.
108
per_tenant_overrides: {}
109
# 'tenant-id':
110
# metrics_generator:
111
# processors:
112
# - service-graphs
113
# - span-metrics
114
115
# Tempo server configuration.
116
# Refers to: https://grafana.com/docs/tempo/latest/configuration/#server
117
server:
118
# -- HTTP server listen port
119
http_listen_port: 3200
120
# Readiness and Liveness Probe Configuration Options
121
livenessProbe:
122
httpGet:
123
path: /ready
124
port: 3200
125
initialDelaySeconds: 30
126
periodSeconds: 10
127
timeoutSeconds: 5
128
failureThreshold: 3
129
successThreshold: 1
130
readinessProbe:
131
httpGet:
132
path: /ready
133
port: 3200
134
initialDelaySeconds: 20
135
periodSeconds: 10
136
timeoutSeconds: 5
137
failureThreshold: 3
138
successThreshold: 1
139
storage:
140
trace:
141
# tempo storage backend.
142
# Refers to: https://grafana.com/docs/tempo/latest/configuration/#storage
143
## Use s3 for example
144
# backend: s3
145
# store traces in s3
146
# s3:
147
# bucket: <your s3 bucket> # store traces in this bucket
148
# endpoint: s3.dualstack.us-east-2.amazonaws.com # api endpoint
149
# access_key: ... # optional. access key when using static credentials.
150
# secret_key: ... # optional. secret key when using static credentials.
151
# insecure: false # optional. enable if endpoint is http
152
backend: local
153
local:
154
path: /var/tempo/traces
155
wal:
156
path: /var/tempo/wal
157
# this configuration will listen on all ports and protocols that tempo is capable of.
158
# the receives all come from the OpenTelemetry collector. more configuration information can
159
# be found there: https://github.com/open-telemetry/opentelemetry-collector/tree/master/receiver
160
receivers:
161
jaeger:
162
protocols:
163
grpc:
164
endpoint: 0.0.0.0:14250
165
thrift_binary:
166
endpoint: 0.0.0.0:6832
167
thrift_compact:
168
endpoint: 0.0.0.0:6831
169
thrift_http:
170
endpoint: 0.0.0.0:14268
171
otlp:
172
protocols:
173
grpc:
174
endpoint: "0.0.0.0:4317"
175
http:
176
endpoint: "0.0.0.0:4318"
177
securityContext: {}
178
# allowPrivilegeEscalation: false
179
# capabilities:
180
# drop:
181
# - ALL
182
# readOnlyRootFilesystem: true
183
## Additional container arguments
184
extraArgs: {}
185
# -- Environment variables to add
186
extraEnv: []
187
# -- Environment variables from secrets or configmaps to add to the ingester pods
188
extraEnvFrom: []
189
# -- Volume mounts to add
190
extraVolumeMounts: []
191
# - name: extra-volume
192
# mountPath: /mnt/volume
193
# readOnly: true
194
# existingClaim: volume-claim
195
# -- Tempo configuration file contents
196
# @default -- Dynamically generated tempo configmap
197
config: |
198
stream_over_http_enabled: {{ .Values.tempo.streamOverHttpEnabled }}
199
memberlist:
200
cluster_label: "{{ .Release.Name }}.{{ .Release.Namespace }}"
201
multitenancy_enabled: {{ .Values.tempo.multitenancyEnabled }}
202
usage_report:
203
reporting_enabled: {{ .Values.tempo.reportingEnabled }}
204
compactor:
205
compaction:
206
block_retention: {{ .Values.tempo.retention }}
207
distributor:
208
receivers:
209
{{- toYaml .Values.tempo.receivers | nindent 8 }}
210
ingester:
211
{{- toYaml .Values.tempo.ingester | nindent 6 }}
212
server:
213
{{- toYaml .Values.tempo.server | nindent 6 }}
214
storage:
215
{{- toYaml .Values.tempo.storage | nindent 6 }}
216
querier:
217
{{- toYaml .Values.tempo.querier | nindent 6 }}
218
query_frontend:
219
{{- toYaml .Values.tempo.queryFrontend | nindent 6 }}
220
overrides:
221
{{- toYaml .Values.tempo.overrides | nindent 6 }}
222
{{- if .Values.tempo.metricsGenerator.enabled }}
223
metrics_generator:
224
{{- if .Values.tempo.metricsGenerator.processor }}
225
processor:
226
{{- toYaml .Values.tempo.metricsGenerator.processor | nindent 8 }}
227
{{- end }}
228
{{- if .Values.tempo.metricsGenerator.registry }}
229
registry:
230
{{- toYaml .Values.tempo.metricsGenerator.registry | nindent 8 }}
231
{{- end }}
232
storage:
233
path: {{ .Values.tempo.metricsGenerator.storage.path | quote }}
234
{{- if .Values.tempo.metricsGenerator.storage.remote_write }}
235
remote_write:
236
{{- toYaml .Values.tempo.metricsGenerator.storage.remote_write | nindent 10 }}
237
{{- else }}
238
remote_write:
239
- url: {{ .Values.tempo.metricsGenerator.remoteWriteUrl }}
240
{{- end }}
241
traces_storage:
242
path: {{ .Values.tempo.metricsGenerator.traces_storage.path | quote }}
243
{{- end }}
244
tempoQuery:
245
repository: chainreg.biz/scratch-images/test-tmp/busybox
246
tag: glibc-1.38.0-r2@sha256:81c876518b800ae1cc727f1a3cd0d4c03b542e38afcbc77b0200a18070971f0e
247
pullPolicy: IfNotPresent
248
## Optionally specify an array of imagePullSecrets.
249
## Secrets must be manually created in the namespace.
250
## Refers to: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
251
##
252
# pullSecrets:
253
# - myRegistryKeySecretName
254
255
# -- if False the tempo-query container is not deployed
256
enabled: false
257
service:
258
port: 16686
259
ingress:
260
enabled: false
261
# For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
262
# See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
263
# ingressClassName: nginx
264
# Values can be templated
265
annotations: {}
266
# kubernetes.io/ingress.class: nginx
267
# kubernetes.io/tls-acme: "true"
268
labels: {}
269
path: /
270
# pathType is only for k8s >= 1.1=
271
pathType: Prefix
272
hosts:
273
- query.tempo.example.com
274
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
275
extraPaths: []
276
# - path: /*
277
# backend:
278
# serviceName: ssl-redirect
279
# servicePort: use-annotation
280
## Or for k8s > 1.19
281
# - path: /*
282
# pathType: Prefix
283
# backend:
284
# service:
285
# name: ssl-redirect
286
# port:
287
# name: use-annotation
288
289
tls: []
290
# - secretName: tempo-query-tls
291
# hosts:
292
# - query.tempo.example.com
293
resources: {}
294
# requests:
295
# cpu: 1000m
296
# memory: 4Gi
297
# limits:
298
# cpu: 2000m
299
# memory: 6Gi
300
301
## Additional container arguments
302
extraArgs: {}
303
# -- Environment variables to add
304
extraEnv: []
305
# -- Volume mounts to add
306
extraVolumeMounts: []
307
# - name: extra-volume
308
# mountPath: /mnt/volume
309
# readOnly: true
310
# existingClaim: volume-claim
311
securityContext: {}
312
# allowPrivilegeEscalation: false
313
# capabilities:
314
# drop:
315
# - ALL
316
# readOnlyRootFilesystem: false # fails if true, do not enable
317
# -- securityContext for container
318
securityContext:
319
runAsUser: 10001
320
runAsGroup: 10001
321
fsGroup: 10001
322
runAsNonRoot: true
323
serviceAccount:
324
# -- Specifies whether a ServiceAccount should be created
325
create: true
326
# -- The name of the ServiceAccount to use.
327
# If not set and create is true, a name is generated using the fullname template
328
name: null
329
# -- Image pull secrets for the service account
330
imagePullSecrets: []
331
# -- Annotations for the service account
332
annotations: {}
333
# -- Labels for the service account
334
labels: {}
335
automountServiceAccountToken: true
336
service:
337
type: ClusterIP
338
clusterIP: ""
339
# -- (string) IP address, in case of 'type: LoadBalancer'
340
loadBalancerIP:
341
# -- If service type is LoadBalancer, the exposed protocol can either be "UDP", "TCP" or "UDP,TCP"
342
protocol: "TCP"
343
annotations: {}
344
labels: {}
345
targetPort: ""
346
# -- BETA: Configure the gateway routes for the chart here.
347
# More routes can be added by adding a dictionary key like the 'main' route.
348
# Being BETA this can/will change in the future without notice, do not use unless you want to take that risk
349
# [[ref]](https://gateway-api.sigs.k8s.io/references/spec/#gateway.networking.k8s.io%2fv1alpha2)
350
route:
351
main:
352
# -- Enables or disables the route
353
enabled: false
354
# -- Set the route apiVersion, e.g. gateway.networking.k8s.io/v1 or gateway.networking.k8s.io/v1beta1
355
# If not set, the latest available version will be auto-detected
356
apiVersion: ""
357
# -- Set the route kind. The template renders an HTTPRoute body, so only
358
# HTTPRoute is supported. The field stays configurable for a future route kind.
359
kind: HTTPRoute
360
# -- Route annotations
361
annotations: {}
362
# -- Route labels
363
labels: {}
364
# -- Hostnames for the route
365
hostnames: []
366
# - tempo.example.com
367
# -- Parent references (gateway to attach to)
368
parentRefs: []
369
# - name: my-gateway
370
# namespace: gateway-namespace
371
372
# -- Port of the tempo service to route to. Defaults to the Tempo HTTP API port.
373
# Use 4318 for the OTLP HTTP receiver or tempoQuery.service.port for the Jaeger UI.
374
# The port must be one that the tempo service exposes. The receiver ports follow
375
# `tempo.receivers`, so a route to a disabled receiver fails the render.
376
backendPort: 3200
377
matches:
378
- path:
379
type: PathPrefix
380
value: /
381
## Timeouts define the timeouts that can be configured for an HTTP request.
382
## Ref. https://gateway-api.sigs.k8s.io/api-types/httproute/#timeouts-optional
383
timeouts: {}
384
# request: 10s
385
# backendRequest: 5s
386
387
## Filters define the filters that are applied to requests that match this rule.
388
filters: []
389
## Additional custom rules that can be added to the route
390
additionalRules: []
391
## httpsRedirect adds a filter for redirecting to https (HTTP 301 Moved Permanently).
392
## To redirect HTTP traffic to HTTPS, you need to have a Gateway with both HTTP and HTTPS listeners.
393
## Matches and filters do not take effect if enabled.
394
## Ref. https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/
395
httpsRedirect: false
396
serviceMonitor:
397
enabled: false
398
interval: ""
399
additionalLabels: {}
400
annotations: {}
401
# scrapeTimeout: 10s
402
persistence:
403
enabled: false
404
# -- Enable StatefulSetAutoDeletePVC feature
405
enableStatefulSetAutoDeletePVC: false
406
# storageClassName: local-path
407
accessModes:
408
- ReadWriteOnce
409
size: 10Gi
410
# -- Pod Annotations
411
podAnnotations: {}
412
# -- Pod (extra) Labels
413
podLabels: {}
414
# Apply extra labels to common labels.
415
extraLabels: {}
416
# -- Add initContainers to the Tempo StatefulSet
417
initContainers: []
418
# -- Add extra containers to the Tempo StatefulSet
419
extraContainers: []
420
# -- Volumes to add
421
extraVolumes: []
422
# -- Node labels for pod assignment. See: https://kubernetes.io/docs/user-guide/node-selection/
423
nodeSelector: {}
424
# -- Tolerations for pod assignment. See: https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/
425
tolerations: []
426
# -- Affinity for pod assignment. See: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity
427
affinity: {}
428
# -- The name of the PriorityClass
429
priorityClassName: null
430
# -- hostAliases to add
431
hostAliases: []
432
# - ip: 1.2.3.4
433
# hostnames:
434
# - domain.tld
435
networkPolicy:
436
## @param networkPolicy.enabled Enable creation of NetworkPolicy resources. Only Ingress traffic is filtered for now.
437
##
438
enabled: false
439
## @param networkPolicy.allowExternal Don't require client label for connections
440
## The Policy model to apply. When set to false, only pods with the correct
441
## client label will have network access to tempo port defined.
442
## When true, tempo will accept connections from any source
443
## (with the correct destination port).
444
##
445
ingress: true
446
## @param networkPolicy.ingress When true enables the creation
447
## an ingress network policy
448
##
449
allowExternal: true
450
## @param networkPolicy.explicitNamespacesSelector A Kubernetes LabelSelector to explicitly select namespaces from which traffic could be allowed
451
## If explicitNamespacesSelector is missing or set to {}, only client Pods that are in the networkPolicy's namespace
452
## and that match other criteria, the ones that have the good label, can reach the tempo.
453
## But sometimes, we want the tempo to be accessible to clients from other namespaces, in this case, we can use this
454
## LabelSelector to select these namespaces, note that the networkPolicy's namespace should also be explicitly added.
455
##
456
## Example:
457
## explicitNamespacesSelector:
458
## matchLabels:
459
## role: frontend
460
## matchExpressions:
461
## - {key: role, operator: In, values: [frontend]}
462
##
463
explicitNamespacesSelector: {}
464
##
465
egress:
466
## @param networkPolicy.egress.enabled When enabled, an egress network policy will be
467
## created allowing tempo to connect to external data sources from kubernetes cluster.
468
enabled: false
469
##
470
## @param networkPolicy.egress.blockDNSResolution When enabled, DNS resolution will be blocked
471
## for all pods in the tempo namespace.
472
blockDNSResolution: false
473
##
474
## @param networkPolicy.egress.ports Add individual ports to be allowed by the egress
475
ports: []
476
## Add ports to the egress by specifying - port: <port number>
477
## E.X.
478
## - port: 80
479
## - port: 443
480
##
481
## @param networkPolicy.egress.to Allow egress traffic to specific destinations
482
to: []
483
## Add destinations to the egress by specifying - ipBlock: <CIDR>
484
## E.X.
485
## to:
486
## - namespaceSelector:
487
## matchExpressions:
488
## - {key: role, operator: In, values: [tempo]}
489

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.