Skip to content

Kubernetes-native package for Tempo Operator, a solution to manage Grafana Tempo on Kubernetes and OpenShift clusters.

License

Notifications You must be signed in to change notification settings

kadras-io/package-for-tempo-operator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Tempo Operator

Test Workflow Release Workflow The SLSA Level 3 badge The Apache 2.0 license badge Follow us on Twitter

A Carvel package for Tempo Operator, a solution to configure, install, upgrade, and operate Grafana Tempo on Kubernetes and OpenShift clusters.

🚀  Getting Started

Prerequisites

  • Kubernetes 1.29+
  • Carvel kctrl CLI.
  • Carvel kapp-controller deployed in your Kubernetes cluster. You can install it with Carvel kapp (recommended choice) or kubectl.
kapp deploy -a kapp-controller -y \
  -f https://github.com/carvel-dev/kapp-controller/releases/latest/download/release.yml

Installation

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 using kapp 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

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.

🎯  Configuration

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

Values

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.

🛡️  Security

The security process for reporting vulnerabilities is described in SECURITY.md.

🖊️  License

This project is licensed under the Apache License 2.0. See LICENSE for more information.

About

Kubernetes-native package for Tempo Operator, a solution to manage Grafana Tempo on Kubernetes and OpenShift clusters.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages