apiVersion: apps/v1 kind: Deployment metadata: name: tempo namespace: observability labels: app.kubernetes.io/name: tempo app.kubernetes.io/component: traces app.kubernetes.io/part-of: observability spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: tempo template: metadata: labels: app: tempo app.kubernetes.io/name: tempo app.kubernetes.io/component: traces app.kubernetes.io/part-of: observability annotations: prometheus.io/scrape: "true" prometheus.io/port: "3200" spec: securityContext: runAsUser: 10001 runAsGroup: 10001 fsGroup: 10001 containers: - name: tempo image: grafana/tempo:3.0.3 args: - -config.file=/etc/tempo/tempo.yaml - -target=all ports: - name: http containerPort: 3200 - name: grpc containerPort: 9095 - name: otlp-grpc containerPort: 4317 - name: otlp-http containerPort: 4318 - name: zipkin containerPort: 9411 resources: requests: cpu: 100m memory: 512Mi limits: cpu: "2" memory: 2Gi readinessProbe: httpGet: path: /ready port: http initialDelaySeconds: 30 periodSeconds: 10 livenessProbe: httpGet: path: /ready port: http initialDelaySeconds: 60 periodSeconds: 30 volumeMounts: - name: config mountPath: /etc/tempo - name: data mountPath: /var/tempo volumes: - name: config configMap: name: tempo-config - name: data persistentVolumeClaim: claimName: tempo-data