From 3814e8f19da9d94c768f3fd10d7dd04a0d529157 Mon Sep 17 00:00:00 2001 From: Eugene Bykov <44170496+eabykov@users.noreply.github.com> Date: Thu, 11 May 2023 12:43:35 +0300 Subject: [PATCH] Added servicemonitor Signed-off-by: Eugene Bykov <44170496+eabykov@users.noreply.github.com> Update README.md Signed-off-by: Eugene Bykov <44170496+eabykov@users.noreply.github.com> Update values.yaml Signed-off-by: Eugene Bykov <44170496+eabykov@users.noreply.github.com> Update service.yaml Signed-off-by: Eugene Bykov <44170496+eabykov@users.noreply.github.com> Update values.yaml Signed-off-by: Eugene Bykov <44170496+eabykov@users.noreply.github.com> Update service.yaml Signed-off-by: Eugene Bykov <44170496+eabykov@users.noreply.github.com> Create servicemonitor.yaml Signed-off-by: Eugene Bykov <44170496+eabykov@users.noreply.github.com> Update service.yaml Signed-off-by: Eugene Bykov <44170496+eabykov@users.noreply.github.com> Create service.yaml Signed-off-by: Eugene Bykov <44170496+eabykov@users.noreply.github.com> --- charts/flagger/README.md | 1 + charts/flagger/templates/service.yaml | 19 ++++++++++++++++ charts/flagger/templates/servicemonitor.yaml | 24 ++++++++++++++++++++ charts/flagger/values.yaml | 4 ++++ 4 files changed, 48 insertions(+) create mode 100644 charts/flagger/templates/service.yaml create mode 100644 charts/flagger/templates/servicemonitor.yaml diff --git a/charts/flagger/README.md b/charts/flagger/README.md index 48b02bb2..aaa8534b 100644 --- a/charts/flagger/README.md +++ b/charts/flagger/README.md @@ -140,6 +140,7 @@ The following tables lists the configurable parameters of the Flagger chart and | `prometheus.install` | If `true`, installs Prometheus configured to scrape all pods in the custer | `false` | | `prometheus.retention` | Prometheus data retention | `2h` | | `selectorLabels` | List of labels that Flagger uses to create pod selectors | `app,name,app.kubernetes.io/name` | +| `serviceMonitor.enabled` | If `true`, creates service and serviceMonitor for monitoring Flagger metrics | `false` | | `configTracking.enabled` | If `true`, flagger will track changes in Secrets and ConfigMaps referenced in the target deployment | `true` | | `eventWebhook` | If set, Flagger will publish events to the given webhook | None | | `slack.url` | Slack incoming webhook | None | diff --git a/charts/flagger/templates/service.yaml b/charts/flagger/templates/service.yaml new file mode 100644 index 00000000..e09c2be2 --- /dev/null +++ b/charts/flagger/templates/service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ template "flagger.name" . }} + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: {{ template "flagger.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} +spec: + ports: + - name: http + port: 8080 + targetPort: http + protocol: TCP + selector: + app.kubernetes.io/name: {{ template "flagger.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} diff --git a/charts/flagger/templates/servicemonitor.yaml b/charts/flagger/templates/servicemonitor.yaml new file mode 100644 index 00000000..d318276e --- /dev/null +++ b/charts/flagger/templates/servicemonitor.yaml @@ -0,0 +1,24 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ template "flagger.name" . }} + namespace: {{ .Release.Namespace }} + labels: + app.kubernetes.io/name: {{ template "flagger.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} +spec: + endpoints: + - path: /metrics + port: http + interval: 30s + scrapeTimeout: 30s + honorLabels: false + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} + selector: + matchLabels: + app.kubernetes.io/name: {{ template "flagger.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} diff --git a/charts/flagger/values.yaml b/charts/flagger/values.yaml index 2dd7fd18..5c09b3b5 100644 --- a/charts/flagger/values.yaml +++ b/charts/flagger/values.yaml @@ -23,6 +23,10 @@ podPriorityClassName: "" metricsServer: "http://prometheus:9090" +# creates serviceMonitor for monitoring Flagger metrics +serviceMonitor: + enabled: false + # accepted values are kubernetes, istio, linkerd, appmesh, contour, nginx, gloo, skipper, traefik, apisix, osm meshProvider: ""