-
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 -f
to 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 # example
bucket: <bucket_name> # requires an ObjectBucketClaim
endpoint: https://s3.openshift-storage.svc
access_key_id: <data_foundation_access_key_id>
access_key_secret: <data_foundation_access_key_secret>
MinIO
See MinIO Operator.
name: tempostack-dev-minio # example
bucket: <minio_bucket_name> # MinIO documentation
endpoint: <minio_bucket_endpoint>
access_key_id: <minio_access_key_id>
access_key_secret: <minio_access_key_secret>
Amazon S3
name: tempostack-dev-s3 # example
bucket: <s3_bucket_name> # Amazon S3 documentation
endpoint: <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 # example
container: <azure_blob_storage_container_name> # Microsoft Azure documentation
account_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 # example
bucketname: <google_cloud_storage_bucket_name> # requires a bucket created in a GCP project
key.json: <path/to/key.json> # requires a service account in the bucket’s GCP project for GCP authentication
-
Use
oc create namespace
oroc apply
to 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
TempoStack
custom 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
name
in themetadata
of the Secret. -
The accepted values are
azure
for Azure Blob Storage,gcs
for Google Cloud Storage, ands3
for 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.