{{- if .Values.monitor.create }}
{{- if .Values.rbac.create }}
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: {{ template "cluster.name" . }}-monitor
  labels:
    app.kubernetes.io/name: {{ template "chart.name" . }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/component: monitor
    helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+"  "_" }}
rules:
- apiGroups: [""]
  resources: ["pods"]
  verbs: ["get", "watch", "list"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: {{ template "cluster.name" . }}-monitor
  labels:
    app.kubernetes.io/name: {{ template "chart.name" . }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/component: monitor
    helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+"  "_" }}
subjects:
- kind: ServiceAccount
  {{- if .Values.monitor.serviceAccount }}
  name: {{ .Values.monitor.serviceAccount }}
  {{- else }}
  name: {{ template "cluster.name" . }}-monitor
  {{- end }}
roleRef:
  kind: Role
  name: {{ template "cluster.name" . }}-monitor
  apiGroup: rbac.authorization.k8s.io
---
{{- if not .Values.monitor.serviceAccount }}
kind: ServiceAccount
apiVersion: v1
metadata:
  name: {{ template "cluster.name" . }}-monitor
  labels:
    app.kubernetes.io/name: {{ template "chart.name" . }}
    app.kubernetes.io/managed-by: {{ .Release.Service }}
    app.kubernetes.io/instance: {{ .Release.Name }}
    app.kubernetes.io/component: monitor
    helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+"  "_" }}
{{- end }}
{{- end }}
{{- end }}
