{{- if and .Values.metrics.serviceMonitor.enabled .Values.metrics.serviceMonitor.includeNode}} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: {{ template "minio.fullname" . }} {{- if .Values.metrics.serviceMonitor.namespace }} namespace: {{ .Values.metrics.serviceMonitor.namespace }} {{ else }} namespace: {{ .Release.Namespace | quote }} {{- end }} labels: app: {{ template "minio.name" . }} chart: {{ template "minio.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} {{- if .Values.metrics.serviceMonitor.additionalLabels }} {{ toYaml .Values.metrics.serviceMonitor.additionalLabels | indent 4 }} {{- end }} {{- if .Values.metrics.serviceMonitor.annotations }} annotations: {{ toYaml .Values.metrics.serviceMonitor.annotations | trimSuffix "\n" | indent 4 }} {{- end }} spec: endpoints: {{- if .Values.tls.enabled }} - port: https scheme: https tlsConfig: ca: secret: name: {{ .Values.tls.certSecret }} key: {{ .Values.tls.publicCrt }} serverName: {{ template "minio.fullname" . }} {{ else }} - port: http scheme: http {{- end }} path: /minio/v2/metrics/node {{- if .Values.metrics.serviceMonitor.interval }} interval: {{ .Values.metrics.serviceMonitor.interval }} {{- end }} {{- if .Values.metrics.serviceMonitor.scrapeTimeout }} scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }} {{- end }} {{- if .Values.metrics.serviceMonitor.relabelConfigs }} {{ toYaml .Values.metrics.serviceMonitor.relabelConfigs | indent 6 }} {{- end }} {{- if not .Values.metrics.serviceMonitor.public }} bearerTokenSecret: name: {{ template "minio.fullname" . }}-prometheus key: token {{- end }} namespaceSelector: matchNames: - {{ .Release.Namespace | quote }} selector: matchLabels: app: {{ include "minio.name" . }} release: {{ .Release.Name }} monitoring: "true" {{- end }} {{- if .Values.metrics.serviceMonitor.enabled }} --- apiVersion: monitoring.coreos.com/v1 kind: Probe metadata: name: {{ template "minio.fullname" . }}-cluster {{- if .Values.metrics.serviceMonitor.namespace }} namespace: {{ .Values.metrics.serviceMonitor.namespace }} {{ else }} namespace: {{ .Release.Namespace | quote }} {{- end }} labels: app: {{ template "minio.name" . }} chart: {{ template "minio.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} {{- if .Values.metrics.serviceMonitor.additionalLabels }} {{ toYaml .Values.metrics.serviceMonitor.additionalLabels | indent 4 }} {{- end }} spec: jobName: {{ template "minio.fullname" . }} prober: url: {{ template "minio.fullname" . }}.{{ .Release.Namespace }}:{{ .Values.service.port }} path: /minio/v2/metrics/cluster {{- if .Values.tls.enabled }} scheme: https tlsConfig: ca: secret: name: {{ .Values.tls.certSecret }} key: {{ .Values.tls.publicCrt }} serverName: {{ template "minio.fullname" . }} {{ else }} scheme: http {{- end }} {{- if .Values.metrics.serviceMonitor.relabelConfigsCluster }} {{ toYaml .Values.metrics.serviceMonitor.relabelConfigsCluster | indent 2 }} {{- end }} targets: staticConfig: static: - {{ template "minio.fullname" . }}.{{ .Release.Namespace }} {{- if not .Values.metrics.serviceMonitor.public }} {{- if .Values.metrics.serviceMonitor.interval }} interval: {{ .Values.metrics.serviceMonitor.interval }} {{- end }} {{- if .Values.metrics.serviceMonitor.scrapeTimeout }} scrapeTimeout: {{ .Values.metrics.serviceMonitor.scrapeTimeout }} {{- end }} bearerTokenSecret: name: {{ template "minio.fullname" . }}-prometheus key: token {{- end }} {{- end }}