apiVersion: apps/v1 kind: Deployment metadata: name: tempo namespace: tracing labels: app.kubernetes.io/name: tempo app.kubernetes.io/component: tracing spec: replicas: 1 selector: matchLabels: app.kubernetes.io/name: tempo strategy: type: Recreate template: metadata: labels: app.kubernetes.io/name: tempo annotations: reloader.stakater.com/auto: "true" spec: securityContext: fsGroup: 10001 runAsNonRoot: true runAsUser: 10001 containers: - name: tempo image: grafana/tempo:2.6.1 args: - -config.file=/etc/tempo/tempo.yaml ports: - name: http containerPort: 3200 protocol: TCP - name: grpc containerPort: 9095 protocol: TCP - name: otlp-grpc containerPort: 4317 protocol: TCP - name: otlp-http containerPort: 4318 protocol: TCP volumeMounts: - name: config mountPath: /etc/tempo - name: tempo-data mountPath: /var/tempo resources: requests: cpu: 100m memory: 256Mi limits: cpu: 500m memory: 1Gi readinessProbe: httpGet: path: /ready port: http initialDelaySeconds: 10 periodSeconds: 10 livenessProbe: httpGet: path: /ready port: http initialDelaySeconds: 30 periodSeconds: 30 volumes: - name: config configMap: name: tempo-config - name: tempo-data persistentVolumeClaim: claimName: tempo-data --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: tempo-data namespace: tracing spec: accessModes: - ReadWriteOnce storageClassName: longhorn resources: requests: storage: 10Gi --- apiVersion: v1 kind: Service metadata: name: tempo namespace: tracing labels: app.kubernetes.io/name: tempo spec: type: ClusterIP ports: - name: http port: 3200 targetPort: http - name: grpc port: 9095 targetPort: grpc - name: otlp-grpc port: 4317 targetPort: otlp-grpc - name: otlp-http port: 4318 targetPort: otlp-http selector: app.kubernetes.io/name: tempo