infra/talos/k8s/monitoring/prom.yaml

111 lines
2.1 KiB
YAML

apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
name: talos-prom
namespace: monitoring
spec:
enableFeatures: []
evaluationInterval: 30s
externalLabels:
cluster: talos
externalUrl: https://prometheus.k8s.home.finn.io
image: quay.io/prometheus/prometheus:v2.55.1
nodeSelector:
kubernetes.io/os: linux
podMetadata:
labels:
app.kubernetes.io/component: prometheus
app.kubernetes.io/instance: talos-prom
podMonitorNamespaceSelector: {}
podMonitorSelector: {}
portName: web
probeNamespaceSelector: {}
probeSelector: {}
replicas: 2
resources:
requests:
memory: 400Mi
retention: 24h
ruleNamespaceSelector: {}
ruleSelector: {}
scrapeConfigNamespaceSelector: {}
scrapeConfigSelector: {}
scrapeInterval: 30s
securityContext:
fsGroup: 2000
runAsNonRoot: true
runAsUser: 1000
serviceAccountName: prometheus-thanos
serviceMonitorNamespaceSelector: {}
serviceMonitorSelector: {}
storage:
volumeClaimTemplate:
spec:
resources:
requests:
storage: 50Gi
thanos:
blockSize: 2h
image: quay.io/thanos/thanos:v0.37.2
objectStorageConfig:
key: thanos.yaml
name: thanos-objstore
version: 2.54.0
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: prometheus-thanos
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: prometheus-self
rules:
- apiGroups:
- ""
resources:
- nodes
- nodes/metrics
- services
- endpoints
- pods
verbs:
- get
- list
- watch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- nonResourceURLs:
- /metrics
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: prometheus-self
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: prometheus-self
subjects:
- kind: ServiceAccount
name: prometheus-thanos
namespace: monitoring
---
apiVersion: v1
kind: Service
metadata:
name: prometheus-thanos-sidecar
spec:
type: NodePort
selector:
app.kubernetes.io/name: prometheus
ports:
- port: 10901
targetPort: 10901