Installing {TempoName} in the OpenShift web console involves installing the Tempo Operator, creating a Secret and namespace, and using the Operator to deploy a TempoStack instance in the namespace for use with the Secret.
-
You are logged in to the OpenShift web console as a cluster administrator with the
cluster-adminrole. -
You are using a supported provider of object storage: Red Hat OpenShift Data Foundation, MinIO, Amazon S3, Azure Blob Storage, Google Cloud Storage.
-
Install the Tempo Operator:
-
In the Administrator view of the OpenShift web console, go to Operators → OperatorHub and search for
Tempo Operator. -
Select Tempo Operator that is OpenShift Operator for Tempo → Install → Install → View Operator.
ImportantThis installs the Operator with the default presets:
-
Update channel → stable
-
Installation mode → All namespaces on the cluster
-
Installed Namespace → openshift-operators
-
Update approval → Automatic
-
-
In the Details tab of the installed Operator page, under ClusterServiceVersion details, verify that the installation Status is Succeeded.
-
-
Create a Secret for your object storage bucket.
You can do this in the Administrator view of the OpenShift web console: go to Workloads → Secrets → Create → From YAML.
Table 1. Required Secret parameters Storage provider Secret parameters name: tempostack-dev-odf # examplebucket: <bucket_name> # requires an ObjectBucketClaimendpoint: https://s3.openshift-storage.svcaccess_key_id: <data_foundation_access_key_id>access_key_secret: <data_foundation_access_key_secret>MinIO
See MinIO Operator.
name: tempostack-dev-minio # examplebucket: <minio_bucket_name> # MinIO documentationendpoint: <minio_bucket_endpoint>access_key_id: <minio_access_key_id>access_key_secret: <minio_access_key_secret>Amazon S3
name: tempostack-dev-s3 # examplebucket: <s3_bucket_name> # Amazon S3 documentationendpoint: <s3_bucket_endpoint>access_key_id: <s3_access_key_id>access_key_secret: <s3_access_key_secret>Microsoft Azure Blob Storage
name: tempostack-dev-azure # examplecontainer: <azure_blob_storage_container_name> # Microsoft Azure documentationaccount_name: <azure_blob_storage_account_name>account_key: <azure_blob_storage_account_key>Google Cloud Storage on Google Cloud Platform (GCP)
name: tempostack-dev-gcs # examplebucketname: <google_cloud_storage_bucket_name> # requires a bucket created in a GCP projectkey.json: <path/to/key.json> # requires a service account in the bucket’s GCP project for GCP authenticationExample 1. Secret for Amazon S3 and MinIO storageapiVersion: v1 kind: Secret metadata: name: minio-test stringData: endpoint: http://minio.minio.svc:9000 bucket: tempo access_key_id: tempo access_key_secret: supersecret type: Opaque
-
Create a namespace for the TempoStack instance that you will create in the next step.
You can do this in the Administrator view of the OpenShift web console: go to Home → Projects → Create Project.
-
Create a TempoStack instance.
NoteYou can create multiple TempoStack instances in separate namespaces on the same cluster. You can create a TempoStack instance as follows:
-
Go to Operators → Installed Operators.
TipYou can use the Project: dropdown list to select the namespace that you created for the TempoStack instance in the previous step.
-
Select TempoStack → Create TempoStack → YAML view.
-
In the YAML view, customize the
TempoStackcustom resource (CR):apiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: sample namespace: <namespace_from_previous_step> spec: storageSize: 1Gi storage: secret: name: <secret-name> (1) type: <secret-provider> (2) template: queryFrontend: jaegerQuery: enabled: true ingress: route: termination: edge type: route
-
The value of
namein themetadataof the Secret. -
The accepted values are
azurefor Azure Blob Storage,gcsfor Google Cloud Storage, ands3for Amazon S3 or MinIO or Red Hat OpenShift Data Foundation.Example 2. TempoStack CR for AWS S3 and MinIO storageapiVersion: tempo.grafana.com/v1alpha1 kind: TempoStack metadata: name: simplest namespace: tempostacknamespace spec: storage: secret: name: minio-test type: s3 storageSize: 1Gi resources: total: limits: memory: 2Gi cpu: 2000m template: queryFrontend: jaegerQuery: enabled: true ingress: route: termination: edge type: route
The stack deployed in this example is configured to receive Jaeger Thrift over HTTP and OpenTelemetry Protocol (OTLP), which permits visualizing the data with the Jaeger UI.
-
-
Select Create.
-
-
Verify that pods are created on the namespace.
-
Wait until the stack stabilizes.