apiVersion: v1 kind: Namespace metadata: name: monitoring --- apiVersion: v1 kind: ServiceAccount metadata: name: prometheus namespace: monitoring --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: prometheus rules: - apiGroups: [""] resources: ["nodes", "nodes/metrics", "services", "endpoints", "pods"] verbs: ["get", "list", "watch"] - apiGroups: ["networking.k8s.io"] resources: ["ingresses"] verbs: ["get", "list", "watch"] - nonResourceURLs: ["/metrics"] verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: prometheus roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: prometheus subjects: - kind: ServiceAccount name: prometheus namespace: monitoring --- apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: kamaji namespace: monitoring labels: monitoring: kamaji spec: namespaceSelector: matchNames: - kamaji-system selector: matchLabels: app.kubernetes.io/instance: kamaji app.kubernetes.io/component: metrics endpoints: - port: metrics path: /metrics interval: 10s --- apiVersion: monitoring.coreos.com/v1 kind: Prometheus metadata: name: kamaji namespace: monitoring spec: replicas: 1 serviceAccountName: prometheus serviceMonitorSelector: matchLabels: monitoring: kamaji resources: requests: cpu: 100m memory: 512Mi retention: 24h