[stable/prometheus-blackbox-exporter] Breaking change: general upgrade and ServiceMonitor (#11426)

* [stable/prometheus-blackbox-exporter] Add optional ServiceMonitor.

Signed-off-by: Cédric de Saint Martin <cdesaintmartin@wiremind.fr>

* [stable/prometheus-blackbox-exporter] Breaking change: use recommended labels.

Signed-off-by: Cédric de Saint Martin <cdesaintmartin@wiremind.fr>

* Add desaintmartin to owners.

Signed-off-by: Cédric de Saint Martin <cdesaintmartin@wiremind.fr>

* [stable/prometheus-blackbox-exporter] Update deployment to apps/v1.

Signed-off-by: Cédric de Saint Martin <cdesaintmartin@wiremind.fr>

* Fix default servicemonitor name to example.com.

Signed-off-by: Cédric de Saint Martin <cdesaintmartin@wiremind.fr>
This commit is contained in:
Cédric de Saint Martin
2019-07-24 07:40:16 -07:00
committed by Kubernetes Prow Robot
parent b12fdfa50b
commit 9fb9f2adc2
9 changed files with 108 additions and 26 deletions
@@ -1,7 +1,7 @@
apiVersion: v1
description: Prometheus Blackbox Exporter
name: prometheus-blackbox-exporter
version: 0.4.0
version: 1.0.0
appVersion: 0.14.0
home: https://github.com/prometheus/blackbox_exporter
sources:
@@ -11,5 +11,7 @@ keywords:
- blackbox
- monitoring
maintainers:
- name: desaintmartin
email: cedric@desaintmartin.fr
- name: gianrubio
email: gianrubio@gmail.com
+3 -1
View File
@@ -1,4 +1,6 @@
approvers:
- desaintmartin
- gianrubio
reviewers:
- gianrubio
- desaintmartin
- gianrubio
@@ -72,6 +72,11 @@ The following table lists the configurable parameters of the Blackbox-Exporter c
| `service.type` | type of service to create | `ClusterIP` |
| `service.port` | port for the blackbox http service | `9115` |
| `service.externalIPs` | list of external ips | [] |
| `serviceMonitor.enabled` | If true, a ServiceMonitor CRD is created for a prometheus operator | `false` |
| `serviceMonitor.labels` | Labels for prometheus operator | `{}` |
| `serviceMonitor.interval` | Interval for prometheus operator endpoint | `30s` |
| `serviceMonitor.url` | The URL that blackbox will scrape if serviceMonitor is enabled | `http://example.com/healthz` |
| `serviceMonitor.urlHumanReadable` | Optional human readable URL that will appear in Prometheus / AlertManager | `nil` |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
@@ -89,3 +94,16 @@ $ helm install --name my-release -f values.yaml stable/prometheus-blackbox-expor
```
> **Tip**: You can use the default [values.yaml](values.yaml)
## Upgrading an existing Release to a new major version
### 1.0.0
This version introduce the new recommended labels.
In order to upgrade, delete the Deployment before upgrading:
```bash
$ kubectl delete deployment my-release-prometheus-blackbox-exporter
```
Note that this will cause downtime of the blackbox.
@@ -4,10 +4,10 @@ kind: {{ if .Values.secretConfig -}} Secret {{- else -}} ConfigMap {{- end }}
metadata:
name: {{ template "prometheus-blackbox-exporter.fullname" . }}
labels:
chart: {{ template "prometheus-blackbox-exporter.chart" . }}
app: {{ template "prometheus-blackbox-exporter.name" . }}
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }}
{{ if .Values.secretConfig -}} stringData: {{- else -}} data: {{- end }}
blackbox.yaml: |
{{ toYaml .Values.config | indent 4 }}
@@ -1,18 +1,18 @@
apiVersion: apps/v1beta2
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "prometheus-blackbox-exporter.fullname" . }}
labels:
chart: {{ template "prometheus-blackbox-exporter.chart" . }}
app: {{ template "prometheus-blackbox-exporter.name" . }}
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }}
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels:
app: {{ template "prometheus-blackbox-exporter.name" . }}
release: "{{ .Release.Name }}"
app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
strategy:
rollingUpdate:
maxSurge: 1
@@ -21,8 +21,10 @@ spec:
template:
metadata:
labels:
app: {{ template "prometheus-blackbox-exporter.name" . }}
release: "{{ .Release.Name }}"
app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }}
annotations:
{{ toYaml .Values.podAnnotations | indent 8 }}
spec:
@@ -6,10 +6,10 @@ kind: Ingress
metadata:
name: {{ template "prometheus-blackbox-exporter.fullname" . }}
labels:
app: {{ template "prometheus-blackbox-exporter.name" . }}
chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }}
annotations:
{{ toYaml .Values.ingress.annotations | indent 4 }}
spec:
@@ -27,4 +27,4 @@ spec:
tls:
{{ toYaml .Values.ingress.tls | indent 4 }}
{{- end -}}
{{- end -}}
{{- end -}}
@@ -7,10 +7,10 @@ metadata:
{{ toYaml .Values.service.annotations | indent 4 }}
{{- end }}
labels:
chart: {{ template "prometheus-blackbox-exporter.chart" . }}
app: {{ template "prometheus-blackbox-exporter.name" . }}
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }}
{{- if .Values.service.labels }}
{{ toYaml .Values.service.labels | indent 4 }}
{{- end }}
@@ -25,5 +25,5 @@ spec:
{{ toYaml .Values.service.externalIPs | indent 4 }}
{{- end }}
selector:
app: {{ template "prometheus-blackbox-exporter.name" . }}
release: "{{ .Release.Name }}"
app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
@@ -0,0 +1,45 @@
{{- if .Values.serviceMonitor.enabled }}
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: {{ template "prometheus-blackbox-exporter.fullname" . }}
labels:
app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
helm.sh/chart: {{ include "prometheus-blackbox-exporter.chart" . }}
{{- if .Values.serviceMonitor.labels }}
{{- toYaml .Values.serviceMonitor.labels | nindent 4 }}
{{- end }}
spec:
endpoints:
- port: http
scheme: http
path: "/probe"
interval: {{ .Values.serviceMonitor.interval }}
scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }}
params:
module:
- http_2xx
target:
- {{ .Values.serviceMonitor.url }}
metricRelabelings:
- sourceLabels: [__address__]
targetLabel: __param_target
- sourceLabels: [__param_target]
targetLabel: instance
- targetLabel: target
{{- if .Values.serviceMonitor.urlHumanReadable }}
replacement: {{ .Values.serviceMonitor.urlHumanReadable }}
{{- else }}
replacement: {{ .Values.serviceMonitor.url }}
{{- end }}
jobLabel: "{{ .Release.Name }}"
selector:
matchLabels:
app.kubernetes.io/name: {{ include "prometheus-blackbox-exporter.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
namespaceSelector:
matchNames:
- {{ .Release.Namespace }}
{{- end }}
@@ -80,3 +80,16 @@ configmapReload:
## Ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
resources: {}
serviceMonitor:
## If true, a ServiceMonitor CRD is created for a prometheus operator
## https://github.com/coreos/prometheus-operator
##
enabled: false
labels: {}
interval: 30s
scrapeTimeout: 30s
# The URL that blackbox will scrape
url: http://example.com/healthz
# Optional human readable URL that will appear in Prometheus / AlertManager
urlHumanReadable: # www.changemeoriwillfail.com