From 63c0381bd15b077537667979ec8e3dd2e6503090 Mon Sep 17 00:00:00 2001 From: Jon Date: Tue, 19 Sep 2023 23:18:27 +0930 Subject: [PATCH] feat(metrics): Calico service and monitor added !1 --- docs/projects/kubernetes_monitoring/index.md | 6 ++++ templates/Service-CalicoMetrics.yaml | 20 +++++++++++ templates/ServiceMonitor-Calico.yaml | 36 ++++++++++++++++++++ 3 files changed, 62 insertions(+) create mode 100644 templates/Service-CalicoMetrics.yaml create mode 100644 templates/ServiceMonitor-Calico.yaml diff --git a/docs/projects/kubernetes_monitoring/index.md b/docs/projects/kubernetes_monitoring/index.md index 9fc69af..bbc4e72 100644 --- a/docs/projects/kubernetes_monitoring/index.md +++ b/docs/projects/kubernetes_monitoring/index.md @@ -37,6 +37,12 @@ This helm chart started off with components from multiple open-source projects. - Grafana as the visualization frontend +- Service monitors + + - Calico, _if Selected_ + + > enable calico metrics with `kubectl patch felixconfiguration default --type merge --patch '{"spec":{"prometheusMetricsEnabled": true}}'` + ## Installation diff --git a/templates/Service-CalicoMetrics.yaml b/templates/Service-CalicoMetrics.yaml new file mode 100644 index 0000000..e81c30b --- /dev/null +++ b/templates/Service-CalicoMetrics.yaml @@ -0,0 +1,20 @@ +--- +{{- if eq .Values.nfc_monitoring.kubernetes.networking "calico" -}} + +apiVersion: v1 +kind: Service +metadata: + name: calico-metrics + namespace: kube-system + labels: + k8s-app: calico-node +spec: + clusterIP: None + selector: + k8s-app: calico-node + ports: + - port: 9091 + name: metrics + targetPort: 9091 + +{{- end -}} diff --git a/templates/ServiceMonitor-Calico.yaml b/templates/ServiceMonitor-Calico.yaml new file mode 100644 index 0000000..d40a74e --- /dev/null +++ b/templates/ServiceMonitor-Calico.yaml @@ -0,0 +1,36 @@ +--- +{{- if eq .Values.nfc_monitoring.kubernetes.networking "calico" -}} + +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + labels: + app.kubernetes.io/name: calico + app.kubernetes.io/component: networking + app.kubernetes.io/part-of: {{ $.Chart.Name }} + app.kubernetes.io/version: {{ $.Chart.Version }} + app.kubernetes.io/managed-by: {{ $.Release.Service }} + k8s-app: calico-node + name: calico + namespace: kube-system +spec: + endpoints: + - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token + interval: 15s + port: metrics + relabelings: + - action: replace + regex: (.*) + replacement: $1 + sourceLabels: + - __meta_kubernetes_pod_node_name + targetLabel: instance + scheme: http + # tlsConfig: + # insecureSkipVerify: true + jobLabel: app.kubernetes.io/name + selector: + matchLabels: + k8s-app: calico-node + +{{- end -}}