A Carvel package for Tempo Operator, a solution to configure, install, upgrade, and operate Grafana Tempo on Kubernetes and OpenShift clusters.
- Kubernetes 1.29+
- Carvel
kctrl
CLI. - Carvel kapp-controller deployed in your Kubernetes cluster. You can install it with Carvel
kapp
(recommended choice) orkubectl
.
kapp deploy -a kapp-controller -y \
-f https://github.com/carvel-dev/kapp-controller/releases/latest/download/release.yml
Add the Kadras package repository to your Kubernetes cluster:
kctrl package repository add -r kadras-packages \
--url ghcr.io/kadras-io/kadras-packages \
-n kadras-system --create-namespace
Installation without package repository
The recommended way of installing the Tempo Operator package is via the Kadras package repository. If you prefer not using the repository, you can add the package definition directly usingkapp
or kubectl
.
kubectl create namespace kadras-system
kapp deploy -a tempo-operator-package -n kadras-system -y \
-f https://github.com/kadras-io/package-for-tempo-operator/releases/latest/download/metadata.yml \
-f https://github.com/kadras-io/package-for-tempo-operator/releases/latest/download/package.yml
Install the Tempo Operator package:
kctrl package install -i tempo-operator \
-p tempo-operator.packages.kadras.io \
-v ${VERSION} \
-n kadras-system
Note You can find the
${VERSION}
value by retrieving the list of package versions available in the Kadras package repository installed on your cluster.kctrl package available list -p tempo-operator.packages.kadras.io -n kadras-system
Verify the installed packages and their status:
kctrl package installed list -n kadras-system
Documentation, tutorials and examples for this package are available in the docs folder. For documentation specific to Tempo Operator, check out grafana.com/docs/tempo.
The Tempo Operator package can be customized via a values.yml
file.
tempo:
tempoStack:
enabled: true
storage:
type: s3
secret_name: s3-tempo-credentials
Reference the values.yml
file from the kctrl
command when installing or upgrading the package.
kctrl package install -i tempo-operator \
-p tempo-operator.packages.kadras.io \
-v ${VERSION} \
-n kadras-system \
--values-file values.yml
The Tempo Operator package has the following configurable properties.
Configurable properties
Config | Default | Description |
---|---|---|
controller.replicas |
1 |
The number of replicas for this Deployment. In order to enable high availability, it should be greater than 1. |
configMapData |
{} |
The YAML contents of the tempo-operator-manager-config ConfigMap. See https://github.com/grafana/tempo-operator/blob/main/docs/operator/config.yaml for more information. |
Settings for Tempo.
Config | Default | Description |
---|---|---|
tempo.namespace |
default |
Namespace where to provision a Tempo installation, stack or monolithic. |
tempo.extraConfig |
{} |
Additional configuration for Tempo that will be merged with the one generated by the Operator. It has higher precedence than the Operator. |
tempo.jaegerui.enabled |
false |
Whether to enable the Jaeger UI to visualize traces. |
tempo.observability.grafana.createDatasource |
false |
Whether a Datasource managed by Grafana Operator should be created for Tempo. |
tempo.observability.metrics.createPrometheusRules |
false |
Whether PrometheusRules for alerts managed by Prometheus Operator should be created for Tempo. |
tempo.observability.metrics.createServiceMonitors |
false |
Whether ServiceMonitors managed by Prometheus Operator should be created for Tempo. |
tempo.observability.tracing.jaegerEndpoint |
"" |
The Jaeger endpoint where to send traces. Only for TempoStack. |
tempo.observability.tracing.samplingFraction |
"" |
Sampling frequence for Tempo traces. Only for TempoStack. |
tempo.storage.backend.type |
memory |
Type of object storage that should be used. Valid options: azure , gcs , s3 , memory (only for TempoMonolithic). |
tempo.storage.backend.secret.name |
"" |
Name of the Secret containing the credentials to access the configured object storage. |
tempo.storage.backend.secret.namespace |
kadras-system |
Namespace containing the Secret with the credentials to access the configured object storage. |
tempo.storage.backend.size |
10Gi |
The size of the storage used by Tempo. |
tempo.resources.limits.cpu |
750m |
Total resource cpu limits for Tempo. |
tempo.resources.limits.memory |
2Gi |
Total resource memory limits for Tempo. |
tempo.resources.requests.cpu |
500m |
Total resource cpu requests for Tempo. |
tempo.resources.requests.cpu |
1Gi |
Total resource memory requests for Tempo. |
Settings for TempoStack.
Config | Default | Description |
---|---|---|
tempo.tempoStack.enabled |
false |
Whether to deploy the built-in TempoStack instance. |
tempo.tempoStack.compactor.replicas |
0 |
Number of replicas to deploy for the Compactor component. In order to enable high availability, it should be greater than 1. |
tempo.tempoStack.distributor.replicas |
0 |
Number of replicas to deploy for the Distributor component. In order to enable high availability, it should be greater than 1. |
tempo.tempoStack.gateway.enabled |
false |
Whether to enable the Tempo Gateway. |
tempo.tempoStack.gateway.ingress.annotations |
{} |
The annotations for the Ingress object. |
tempo.tempoStack.gateway.ingress.host |
"" |
The hostname of the Ingress object. |
tempo.tempoStack.gateway.ingress.ingressClassName |
contour |
The class of the Ingress Controller to use for the Tempo Gateway. |
tempo.tempoStack.gateway.ingress.type |
"" |
Type of Ingress for the Tempo Gateway. Valid options: ingress , route . |
tempo.tempoStack.ingester.replicas |
0 |
Number of replicas to deploy for the Ingester component. In order to enable high availability, it should be greater than 1. |
tempo.tempoStack.ingester.podSecurityContext |
{} |
PodSecurityContext for the Ingester component. |
tempo.tempoStack.querier.replicas |
0 |
Number of replicas to deploy for the Querier component. In order to enable high availability, it should be greater than 1. |
tempo.tempoStack.queryFrontend.replicas |
0 |
Number of replicas to deploy for the Query Frontend component. In order to enable high availability, it should be greater than 1. |
Settings for TempoMonolithic.
Config | Default | Description |
---|---|---|
tempo.tempoMonolithic.enabled |
false |
Whether to deploy the built-in TempoMonolithic instance. |
The security process for reporting vulnerabilities is described in SECURITY.md.
This project is licensed under the Apache License 2.0. See LICENSE for more information.