Prometheus Blackbox Exporter
DEPRECATED and moved to https://github.com/prometheus-community/helm-charts
Prometheus exporter for blackbox testing
Learn more: https://github.com/prometheus/blackbox_exporter
TL;DR;
$ helm install stable/prometheus-blackbox-exporter
Introduction
This chart creates a Blackbox-Exporter deployment on a Kubernetes cluster using the Helm package manager.
Prerequisites
- Kubernetes 1.8+ with Beta APIs enabled
Installing the Chart
To install the chart with the release name my-release:
$ helm install --name my-release stable/prometheus-blackbox-exporter
The command deploys Blackbox Exporter on the Kubernetes cluster using the default configuration. The configuration section lists the parameters that can be configured during installation.
Uninstalling the Chart
To uninstall/delete the my-release deployment:
$ helm delete --purge my-release
The command removes all the Kubernetes components associated with the chart and deletes the release.
Configuration
The following table lists the configurable parameters of the Blackbox-Exporter chart and their default values.
| Parameter | Description | Default |
|---|---|---|
kind |
You can choose between Deployment or DaemonSet |
Deployment |
config |
Prometheus blackbox configuration | {} |
secretConfig |
Whether to treat blackbox configuration as secret | false |
extraArgs |
Optional flags for blackbox | [] |
image.repository |
container image repository | prom/blackbox-exporter |
image.tag |
container image tag | v0.15.1 |
image.pullPolicy |
container image pull policy | IfNotPresent |
image.pullSecrets |
container image pull secrets | [] |
ingress.annotations |
Ingress annotations | None |
ingress.enabled |
Enables Ingress | false |
ingress.hosts |
Ingress accepted hostnames | None |
ingress.path |
Ingress accepted path | / |
ingress.tls |
Ingress TLS configuration | None |
nodeSelector |
node labels for pod assignment | {} |
runAsUser |
User to run blackbox-exporter container as | 1000 |
readOnlyRootFilesystem |
Set blackbox-exporter file-system to read-only | true |
runAsNonRoot |
Run blackbox-exporter as non-root | true |
tolerations |
node tolerations for pod assignment | [] |
affinity |
node affinity for pod assignment | {} |
podAnnotations |
annotations to add to each pod | {} |
podDisruptionBudget |
pod disruption budget | {} |
pspEnabled |
create pod security policy resources | true |
priorityClassName |
priority class name | None |
allowIcmp |
whether to enable ICMP probes, by giving the pods CAP_NET_RAW and running as root |
false |
resources |
pod resource requests & limits | {} |
restartPolicy |
container restart policy | Always |
livenessProbe |
Container liveness probe | See values.yaml |
readinessProbe |
Container readiness probe | See values.yaml |
networkPolicy.enabled |
Enable network policy and allow access from anywhere | false |
networkPolicy.allowMonitoringNamespace |
Limit access only from monitoring namespace | false |
service.annotations |
annotations for the service | {} |
service.labels |
additional labels for the service | None |
service.type |
type of service to create | ClusterIP |
service.port |
port for the blackbox http service | 9115 |
service.externalIPs |
list of external ips | [] |
serviceAccount.create |
Specifies whether a service account should be created. | true |
serviceAccount.name |
Service account to be used. If not set and serviceAccount.create is true, a name is generated using the fullname template |
|
serviceAccount.annotations |
ServiceAccount annotations | |
serviceMonitor.enabled |
If true, a ServiceMonitor CRD is created for a prometheus operator | false |
serviceMonitor.defaults.labels |
Labels for prometheus operator | {} |
serviceMonitor.defaults.interval |
Interval for prometheus operator endpoint | 30s |
serviceMonitor.defaults.scrapeTimeout |
Scrape timeout for prometheus operator endpoint | 30s |
serviceMonitor.defaults.module |
The module that blackbox will use if serviceMonitor is enabled | http_2xx |
serviceMonitor.targets.[] |
List of targets to scrape | [] |
serviceMonitor.targets.[].name |
Human readable name for the job. It will also appear in job labels in Prometheus | example |
serviceMonitor.targets.[].url |
The URL that blackbox will scrape if serviceMonitor is enabled | http://example.com/healthz |
serviceMonitor.targets.[].labels |
See above in serviceMonitor.defaults |
{{ serviceMonitor.defaults.labels } |
serviceMonitor.targets.[].interval |
See above in serviceMonitor.defaults |
{{ serviceMonitor.defaults.interval }} |
serviceMonitor.targets.[].scrapeTimeout |
See above in serviceMonitor.defaults |
{{ serviceMonitor.defaults.scrateTimeout }} |
serviceMonitor.targets.[].module |
See above in serviceMonitor.defaults |
{{ serviceMonitor.defaults.module }} |
prometheusRule.enabled |
Set this to true to create PrometheusRule for Prometheus operator | false |
prometheusRule.additionalLabels |
Additional labels that can be passed to PrometheusRule | {} |
prometheusRule.namespace |
Namespace where PrometheusRule resource should be created | |
prometheusRule.rules |
PrometheusRule to be created | [] |
strategy |
strategy used to replace old Pods with new ones | {"rollingUpdate":{"maxSurge":1,"maxUnavailable":0},"type":"RollingUpdate"} |
Specify each parameter using the --set key=value[,key=value] argument to helm install. For example,
$ helm install --name my-release \
--set key_1=value_1,key_2=value_2 \
stable/prometheus-blackbox-exporter
Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
# example for staging
$ helm install --name my-release -f values.yaml stable/prometheus-blackbox-exporter
Tip
: You can use the default values.yaml
Upgrading an existing Release to a new major version
4.0.0
This version create the service account by default and introduce pod security policy, it can be enabled by setting pspEnabled: true.
2.0.0
This version removes the podDisruptionBudget.enabled parameter and changes the default value of podDisruptionBudget to {}, in order to fix Helm 3 compatibility.
In order to upgrade, please remove podDisruptionBudget.enabled from your custom values.yaml file and set the content of podDisruptionBudget, for example:
podDisruptionBudget:
maxUnavailable: 0
1.0.0
This version introduce the new recommended labels.
In order to upgrade, delete the Deployment before upgrading:
$ kubectl delete deployment my-release-prometheus-blackbox-exporter
Note that this will cause downtime of the blackbox.