From 195e50d96e28abfd02615298ccfb156de577dd79 Mon Sep 17 00:00:00 2001 From: John Slee Date: Thu, 10 May 2018 08:23:53 +0200 Subject: [PATCH] [stable/prometheus] optional extra Ingress labels (#5186) * [prometheus/stable] allow extra Ingress labels A common pattern with the Traefik ingress controller is to run multiple Traefik deployments with different Kubernetes label selectors, which then discover only matching Ingress resources. Add extraLabels configuration options to allow extra labels to be configured on Prometheus Server and AlertManager resources. * [prometheus/stable] Chart version => 6.2.2 * [prometheus/stable] error cases with empty extraLabels I'd thought this was OK but upon further testing, discovered that it generated errors in some cases. Use a range loop instead. Tested OK with * ingress enabled but no extra labels * ingress enabled with extra labels * both server and alertmanager components * [stable/prometheus] behavioural changes => v6.3.1 --- stable/prometheus/Chart.yaml | 2 +- stable/prometheus/README.md | 2 ++ stable/prometheus/templates/alertmanager-ingress.yaml | 3 +++ stable/prometheus/templates/server-ingress.yaml | 3 +++ stable/prometheus/values.yaml | 8 ++++++++ 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/stable/prometheus/Chart.yaml b/stable/prometheus/Chart.yaml index 09a27e6c0d..74182a9cbe 100755 --- a/stable/prometheus/Chart.yaml +++ b/stable/prometheus/Chart.yaml @@ -1,5 +1,5 @@ name: prometheus -version: 6.4.1 +version: 6.5.0 appVersion: 2.2.1 description: Prometheus is a monitoring system and time series database. home: https://prometheus.io/ diff --git a/stable/prometheus/README.md b/stable/prometheus/README.md index dffea40432..837ddda9ff 100644 --- a/stable/prometheus/README.md +++ b/stable/prometheus/README.md @@ -103,6 +103,7 @@ Parameter | Description | Default `alertmanager.configMapOverrideName` | Prometheus alertmanager ConfigMap override where full-name is `{{.Release.Name}}-{{.Values.alertmanager.configMapOverrideName}}` and setting this value will prevent the default alertmanager ConfigMap from being generated | `""` `alertmanager.ingress.enabled` | If true, alertmanager Ingress will be created | `false` `alertmanager.ingress.annotations` | alertmanager Ingress annotations | `{}` +`alertmanager.ingress.extraLabels` | alertmanager Ingress additional labels | `{}` `alertmanager.ingress.hosts` | alertmanager Ingress hostnames | `[]` `alertmanager.ingress.tls` | alertmanager Ingress TLS configuration (YAML) | `[]` `alertmanager.nodeSelector` | node labels for alertmanager pod assignment | `{}` @@ -216,6 +217,7 @@ Parameter | Description | Default `server.configMapOverrideName` | Prometheus server ConfigMap override where full-name is `{{.Release.Name}}-{{.Values.server.configMapOverrideName}}` and setting this value will prevent the default server ConfigMap from being generated | `""` `server.ingress.enabled` | If true, Prometheus server Ingress will be created | `false` `server.ingress.annotations` | Prometheus server Ingress annotations | `[]` +`server.ingress.extraLabels` | Prometheus server Ingress additional labels | `{}` `server.ingress.hosts` | Prometheus server Ingress hostnames | `[]` `server.ingress.tls` | Prometheus server Ingress TLS configuration (YAML) | `[]` `server.nodeSelector` | node labels for Prometheus server pod assignment | `{}` diff --git a/stable/prometheus/templates/alertmanager-ingress.yaml b/stable/prometheus/templates/alertmanager-ingress.yaml index 2f0088f068..41adae8457 100644 --- a/stable/prometheus/templates/alertmanager-ingress.yaml +++ b/stable/prometheus/templates/alertmanager-ingress.yaml @@ -15,6 +15,9 @@ metadata: component: "{{ .Values.alertmanager.name }}" heritage: {{ .Release.Service }} release: {{ .Release.Name }} +{{- range $key, $value := .Values.alertmanager.ingress.extraLabels }} + {{ $key }}: {{ $value }} +{{- end }} name: {{ template "prometheus.alertmanager.fullname" . }} spec: rules: diff --git a/stable/prometheus/templates/server-ingress.yaml b/stable/prometheus/templates/server-ingress.yaml index 22725db2eb..db828abfa9 100644 --- a/stable/prometheus/templates/server-ingress.yaml +++ b/stable/prometheus/templates/server-ingress.yaml @@ -15,6 +15,9 @@ metadata: component: "{{ .Values.server.name }}" heritage: {{ .Release.Service }} release: {{ .Release.Name }} +{{- range $key, $value := .Values.server.ingress.extraLabels }} + {{ $key }}: {{ $value }} +{{- end }} name: {{ template "prometheus.server.fullname" . }} spec: rules: diff --git a/stable/prometheus/values.yaml b/stable/prometheus/values.yaml index 156dc52aa6..3a3ac4d636 100644 --- a/stable/prometheus/values.yaml +++ b/stable/prometheus/values.yaml @@ -71,6 +71,10 @@ alertmanager: # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: 'true' + ## alertmanager Ingress additional labels + ## + extraLabels: {} + ## alertmanager Ingress hostnames with optional path ## Must be provided if Ingress is enabled ## @@ -479,6 +483,10 @@ server: # kubernetes.io/ingress.class: nginx # kubernetes.io/tls-acme: 'true' + ## Prometheus server Ingress additional labels + ## + extraLabels: {} + ## Prometheus server Ingress hostnames with optional path ## Must be provided if Ingress is enabled ##