From 2ef9c1ea206bb89179769f91115d93f2060183c3 Mon Sep 17 00:00:00 2001 From: Raj Perera Date: Tue, 17 Dec 2019 11:19:59 -0500 Subject: [PATCH] [stable/stolon] Add custom labels support for servicemonitor (#19543) * [stable/stolon] Add custom labels support for servicemonitor Signed-off-by: Raj Perera * [stable/stolon] Document custom labels support for servicemonitor Signed-off-by: Raj Perera * [stable/stolon] Bump chart version Signed-off-by: Raj Perera --- stable/stolon/Chart.yaml | 2 +- stable/stolon/README.md | 13 +++++++------ stable/stolon/templates/metrics-servicemonitor.yaml | 4 ++++ stable/stolon/values.yaml | 2 ++ 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/stable/stolon/Chart.yaml b/stable/stolon/Chart.yaml index 50e22cd8b2..fdaa2e32ad 100644 --- a/stable/stolon/Chart.yaml +++ b/stable/stolon/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v1 name: stolon -version: 1.5.2 +version: 1.5.3 appVersion: 0.13.0 description: Stolon - PostgreSQL cloud native High Availability. home: https://github.com/sorintlab/stolon diff --git a/stable/stolon/README.md b/stable/stolon/README.md index 8b3f6b140d..85a0a44163 100644 --- a/stable/stolon/README.md +++ b/stable/stolon/README.md @@ -55,18 +55,19 @@ Kubernetes is the default store backend. `consul`, `etcdv2` or `etcdv3` can also | `store.kubeResourceKind` | Kubernetes resource kind (only for kubernetes) | `configmap` | | `pgParameters` | [`postgresql.conf`][pgconf] options used during cluster creation | `{}` | | `ports` | Ports to expose on pods | `{"stolon":{"containerPort": 5432},"metrics":{"containerPort": 8080}}`| -| `serviceMonitor.enabled` | Creates a Prometheus serviceMonitor and service object | `false`| -| `serviceMonitor.namespace` | Set to use a different value than the release namespace for deploying the ServiceMonitor object | `nil` | -| `serviceMonitor.interval` | Set to use a different value than the default Prometheus scrape interval | `nil` | -| `serviceMonitor.scrapeTimeout` | Set to use a different value than the default Prometheus scrape timeout | `nil` | +| `serviceMonitor.enabled` | Creates a Prometheus serviceMonitor and service object | `false` | +| `serviceMonitor.labels` | Overrides the default labels added by chart to the ServiceMonitor with labels specified. | `{}` | +| `serviceMonitor.namespace` | Set to use a different value than the release namespace for deploying the ServiceMonitor object | `nil` | +| `serviceMonitor.interval` | Set to use a different value than the default Prometheus scrape interval | `nil` | +| `serviceMonitor.scrapeTimeout` | Set to use a different value than the default Prometheus scrape timeout | `nil` | | `job.autoCreateCluster` | Set to `false` to force-disable auto-cluster-creation which may clear pre-existing postgres db data | `true` | | `job.autoUpdateClusterSpec` | Set to `false` to force-disable auto-cluster-spec-update | `true` | | `clusterSpec` | Stolon cluster spec [reference](https://github.com/sorintlab/stolon/blob/master/doc/cluster_spec.md) | `{}` | | `tls.enabled` | Enable tls support to postgresql | `false` | -| `tls.rootCa` | Ca certificate | `""` | +| `tls.rootCa` | Ca certificate | `""` | | `tls.serverCrt` | Server cerfificate | `""` | | `tls.serverKey` | Server key | `""` | -| `tls.existingSecret` | Existing secret with certificate content to stolon credentials | `""` | +| `tls.existingSecret` | Existing secret with certificate content to stolon credentials | `""` | | `keeper.uid_prefix` | Keeper prefix name | `keeper` | | `keeper.replicaCount` | Number of keeper nodes | `2` | | `keeper.resources` | Keeper resource requests/limit | `{}` | diff --git a/stable/stolon/templates/metrics-servicemonitor.yaml b/stable/stolon/templates/metrics-servicemonitor.yaml index a1bc3282ec..47a0282dcc 100644 --- a/stable/stolon/templates/metrics-servicemonitor.yaml +++ b/stable/stolon/templates/metrics-servicemonitor.yaml @@ -4,10 +4,14 @@ kind: ServiceMonitor metadata: name: {{ template "stolon.fullname" . }} labels: + {{- if .Values.serviceMonitor.labels }} + {{ toYaml .Values.serviceMonitor.labels | nindent 4 }} + {{- else }} app: {{ template "stolon.name" . }} chart: {{ template "stolon.chart" . }} release: {{ .Release.Name }} heritage: {{ .Release.Service }} + {{- end }} {{- if .Values.serviceMonitor.namespace }} namespace: {{ .Values.serviceMonitor.namespace }} {{- end }} diff --git a/stable/stolon/values.yaml b/stable/stolon/values.yaml index 79c27d00be..39e6c678e6 100644 --- a/stable/stolon/values.yaml +++ b/stable/stolon/values.yaml @@ -69,6 +69,8 @@ ports: serviceMonitor: # When set to true then use a ServiceMonitor to collect metrics enabled: false + # Custom labels to use in the ServiceMonitor to be matched with a specific Prometheus + labels: {} # Set the namespace the ServiceMonitor should be deployed to # namespace: default # Set how frequently Prometheus should scrape