apiVersion: apps/v1 kind: Deployment metadata: name: prometheus spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: prometheus template: metadata: labels: app: prometheus spec: containers: - name: prometheus image: prom/prometheus:v3.5.0 args: - --config.file=/etc/prometheus/prometheus.yml - --storage.tsdb.path=/prometheus - --storage.tsdb.retention.time=15d - --web.enable-lifecycle - --web.enable-remote-write-receiver # Not in the Ansible template. Without it Prometheus discards the # exemplars Tempo's metrics-generator remote-writes # (send_exemplars: true), so the datasource's # exemplarTraceIdDestinations has nothing to link. - --enable-feature=exemplar-storage ports: - containerPort: 9090 readinessProbe: httpGet: path: /-/ready port: 9090 resources: requests: cpu: 50m memory: 256Mi limits: memory: 1Gi volumeMounts: - name: config mountPath: /etc/prometheus/prometheus.yml subPath: prometheus.yml - name: rules mountPath: /etc/prometheus/rules - name: data mountPath: /prometheus volumes: - name: config configMap: name: prometheus-config - name: rules configMap: name: prometheus-rules - name: data persistentVolumeClaim: claimName: prometheus-data