diff --git a/charts/capsule/templates/metrics-rbac.yaml b/charts/capsule/templates/metrics-rbac.yaml new file mode 100644 index 00000000..7b4c69bc --- /dev/null +++ b/charts/capsule/templates/metrics-rbac.yaml @@ -0,0 +1,42 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + labels: + {{- include "capsule.labels" . | nindent 4 }} + {{- if .Values.serviceMonitor.labels }} + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} + {{- end }} + name: {{ include "capsule.fullname" . }}-metrics-role + namespace: {{ .Values.serviceMonitor.namespace | default .Release.Namespace }} +rules: +- apiGroups: + - "" + resources: + - services + - endpoints + - pods + verbs: + - get + - list + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + labels: + {{- include "capsule.labels" . | nindent 4 }} + {{- if .Values.serviceMonitor.labels }} + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} + {{- end }} + name: {{ include "capsule.fullname" . }}-metrics-rolebinding + namespace: {{ .Values.serviceMonitor.namespace | default .Release.Namespace }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "capsule.fullname" . }}-metrics-role +subjects: +- kind: ServiceAccount + name: {{ .Values.serviceMonitor.serviceAccount.name }} + namespace: {{ .Values.serviceMonitor.serviceAccount.namespace | default .Release.Namespace }} +{{- end }} diff --git a/charts/capsule/templates/servicemonitor.yaml b/charts/capsule/templates/servicemonitor.yaml new file mode 100644 index 00000000..1ed7865c --- /dev/null +++ b/charts/capsule/templates/servicemonitor.yaml @@ -0,0 +1,23 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "capsule.fullname" . }}-monitor + namespace: {{ .Values.serviceMonitor.namespace | default .Release.Namespace }} + labels: + {{- include "capsule.labels" . | nindent 4 }} + {{- if .Values.serviceMonitor.labels }} + {{- toYaml .Values.serviceMonitor.labels | nindent 4 }} + {{- end }} +spec: + endpoints: + - interval: 15s + port: metrics + path: /metrics + jobLabel: app.kubernetes.io/name + selector: + matchLabels: {{ include "capsule.labels" . | nindent 6 }} + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} +{{- end }}