Nereus/deploy/observability/tempo.yaml

107 lines
2.3 KiB
YAML

# Single-process Tempo with local storage for short-lived lab traces.
---
apiVersion: v1
kind: ConfigMap
metadata:
name: tempo
labels:
app.kubernetes.io/name: tempo
data:
tempo.yaml: |
server:
http_listen_port: 3200
distributor:
receivers:
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:4317
storage:
trace:
backend: local
wal:
path: /var/tempo/wal
local:
path: /var/tempo/traces
---
apiVersion: v1
kind: Service
metadata:
name: tempo
labels:
app.kubernetes.io/name: tempo
spec:
selector:
app.kubernetes.io/name: tempo
ports:
- name: http
port: 3200
targetPort: http
- name: otlp-grpc
port: 4317
targetPort: otlp-grpc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: tempo
labels:
app.kubernetes.io/name: tempo
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: tempo
template:
metadata:
labels:
app.kubernetes.io/name: tempo
spec:
automountServiceAccountToken: false
securityContext:
runAsUser: 10001
runAsGroup: 10001
runAsNonRoot: true
fsGroup: 10001
seccompProfile:
type: RuntimeDefault
containers:
- name: tempo
image: grafana/tempo:3.0.3
args: ["-config.file=/etc/tempo/tempo.yaml"]
ports:
- name: http
containerPort: 3200
- name: otlp-grpc
containerPort: 4317
readinessProbe:
httpGet:
path: /ready
port: http
initialDelaySeconds: 5
periodSeconds: 5
volumeMounts:
- name: config
mountPath: /etc/tempo
readOnly: true
- name: data
mountPath: /var/tempo
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
readOnlyRootFilesystem: true
resources:
requests:
cpu: 25m
memory: 128Mi
limits:
memory: 384Mi
volumes:
- name: config
configMap:
name: tempo
- name: data
emptyDir: {}