Project: Grafana Tempo (Observability and Analysis / Observability)
File: object-storage.md

title: Object storage description: Setup for storing traces to Object Storage menuTitle: Object storage weight: 200 aliases: /docs/tempo/operator/object-storage Tempo Operator supports , , , and for TempoStack object storage. Create a on AWS. Deploy the Tempo Operator to your cluster. Create an Object Storage secret with keys as follows: ```console kubectl create secret generic tempostack-dev-s3 \ --from-literal=bucket="<BUCKET_NAME>" \ --from-literal=endpoint="<AWSBUCKETENDPOINT>" \ --from-literal=accesskeyid="<AWSACCESSKEY_ID>" \ --from-literal=accesskeysecret="<AWSACCESSKEY_SECRET>" ``` where `tempostack-dev-s3` is the secret name. Create an instance of TempoStack by referencing the secret name and type as `s3`: ```yaml spec: storage: secret: name: tempostack-dev-s3 type: s3 ``` Create a on Azure. Deploy the Tempo Operator to your cluster. Create an Object Storage secret with keys as follows: ```console kubectl create secret generic tempostack-dev-azure \ --from-literal=container="<AZURECONTAINERNAME>" \ --from-literal=accountname="<AZUREACCOUNT_NAME>" \ --from-literal=accountkey="<AZUREACCOUNT_KEY>" ``` where `tempostack-dev-azure` is the secret name. Create an instance of TempoStack by referencing the secret name and type as `azure`: ```yaml spec: storage: secret: name: tempostack-dev-azure type: azure ``` Create a on Google Cloud Platform. Create a under same project. Create a under same project for GCP authentication. Deploy the Tempo Operator to your cluster. Copy the service account credentials received from GCP into a file name `key.json`. Create an Object Storage secret with keys `bucketname` and `key.json` as follows: ```console kubectl create secret generic tempostack-dev-gcs \ --from-literal=bucketname="<BUCKET_NAME>" \ --from-file=key.json="<PATH/TO/KEY.JSON>" ``` where `tempostack-dev-gcs` is the secret name, `<BUCKET_NAME>` is the name of bucket created in requirements step and `<PATH/TO/KEY.JSON>` is the file path where the `key.json` was copied to. Create an instance of TempoStack by referencing the secret name and type as `gcs`: ```yaml spec: storage: secret: name: tempostack-dev-gcs type: gcs ``` Deploy MinIO on your cluster, e.g. using the or another method. Create a on MinIO using the CLI. Deploy the Tempo Operator to your cluster. Create an Object Storage secret with keys as follows: ```console kubectl create secret generic tempostack-dev-minio \ --from-literal=bucket="<BUCKET_NAME>" \ --from-literal=endpoint="<MINIOBUCKETENDPOINT>" \ --from-literal=accesskeyid="<MINIOACCESSKEY_ID>" \ --from-literal=accesskeysecret="<MINIOACCESSKEY_SECRET>" ``` where `tempostack-dev-minio` is the secret name. Create an instance of TempoStack by referencing the secret name and type as `s3`: ```yaml spec: storage: secret: name: tempostack-dev-minio type: s3 ``` Deploy the on your cluster. Create a bucket via an ObjectBucketClaim. Deploy the Tempo Operator to your cluster. Create an Object Storage secret with keys as follows: ```console kubectl create secret generic tempostack-dev-odf \ --from-literal=bucket="<BUCKET_NAME>" \ --from-literal=endpoint="https://s3.openshift-storage.svc" \ --from-literal=accesskeyid="<ACCESSKEYID>" \ --from-literal=accesskeysecret="<ACCESSKEYSECRET>" ``` where `tempostack-dev-odf` is the secret name. You can copy the values for `BUCKETNAME`, `ACCESSKEYID` and `ACCESSKEY_SECRET` from your ObjectBucketClaim's accompanied secret. Create an instance of TempoStack by referencing the secret name and type as `s3`: ```yaml spec: storage: secret: name: tempostack-dev-odf type: s3 ```