-
An active OpenShift CLI (
oc) session by a cluster administrator user. See Getting started with the OpenShift CLI.TipEnsure that your OpenShift CLI ( oc) version is up to date and matches your {product-title} version.-
Install the Tempo Operator:
-
Create a subscription.
$ oc apply -f - << EOF apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: tempo-product namespace: openshift-operators spec: channel: stable installPlanApproval: Automatic name: tempo-product source: redhat-operators sourceNamespace: openshift-marketplace EOF
-
Check the Operator status.
oc get csv -n openshift-operators
-
-
Run
oc apply -fto create a Secret for your object storage bucket.Tip$ oc apply -f <secret_file>.yaml$ oc apply -f - << EOF <object_storage_secret> EOF
Example 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
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 authentication -
Use
oc create namespaceoroc applyto create a namespace for the TempoStack instance that you will create in the next step.Tipoc create namespace <namespace_value_of_your_choice>
$ oc apply -f - << EOF apiVersion: project.openshift.io/v1 kind: Project metadata: labels: kubernetes.io/metadata.name: <namespace_value_of_your_choice> openshift.io/cluster-monitoring: "true" name: <namespace_value_of_your_choice> EOF
-
Create a TempoStack instance in the namespace that you created for the TempoStack instance in the previous step.
NoteYou can create multiple TempoStack instances in separate namespaces on the same cluster. -
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.
-
-
Apply the customized CR.
$ oc apply -f - << EOF <TempoStack_custom_resource> EOF
-
-
-
command(s) to confirm successful installation of the Operator
-
command(s) to confirm successful deployment of a TempoStack instance
-
if applicable, a command to open any UI console
-
any other commands?
-
Verify that pods are created on the namespace.
-
Wait until the stack stabilizes.