{{- if and .Values.metaMonitoring.grafanaAgent.enabled .Values.metaMonitoring.grafanaAgent.metrics.enabled .Values.metaMonitoring.grafanaAgent.metrics.scrapeK8s.enabled }} {{- with .Values.metaMonitoring.serviceMonitor }} {{- if .enabled }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ include "mimir.resourceName" (dict "ctx" $ "component" "k8s-ksm") }} namespace: {{ .namespace | default $.Release.Namespace | quote }} labels: {{- include "mimir.labels" (dict "ctx" $ "component" "meta-monitoring") | nindent 4 }} {{- with .labels }} {{- toYaml . | nindent 4 }} {{- end }} {{- with .annotations }} annotations: {{- toYaml . | nindent 4 }} {{- end }} spec: endpoints: - port: {{ $.Values.metaMonitoring.grafanaAgent.metrics.scrapeK8s.kubeStateMetrics.service.port }} metricRelabelings: - action: keep regex: "(^|.*;){{ include "mimir.resourceName" (dict "ctx" $) }}.*" sourceLabels: - deployment - statefulset - pod separator: ';' {{- if kindIs "string" .clusterLabel }} relabelings: - targetLabel: cluster replacement: "{{ .clusterLabel | default (include "mimir.clusterName" $) }}" {{- end }} path: /metrics honorLabels: true # retain namespace label from kube-state-metrics {{- with .scrapeTimeout }} scrapeTimeout: {{ . }} {{- end }} {{- with ((((($.Values).metaMonitoring).grafanaAgent).metrics).scrapeK8s).kubeStateMetrics }} namespaceSelector: matchNames: - {{ .namespace }} selector: matchLabels: {{- toYaml .labelSelectors | nindent 6 }} {{- end -}} {{- end -}} {{- end -}} {{- end -}}