Back to Charts

Prometheus Blackbox Exporter

stable/prometheus-blackbox-exporter/README.md

latest14.0 KB
Original Source

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;

bash
$ 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:

bash
$ 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:

bash
$ 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.

ParameterDescriptionDefault
kindYou can choose between Deployment or DaemonSetDeployment
configPrometheus blackbox configuration{}
secretConfigWhether to treat blackbox configuration as secretfalse
extraArgsOptional flags for blackbox[]
image.repositorycontainer image repositoryprom/blackbox-exporter
image.tagcontainer image tagv0.15.1
image.pullPolicycontainer image pull policyIfNotPresent
image.pullSecretscontainer image pull secrets[]
ingress.annotationsIngress annotationsNone
ingress.enabledEnables Ingressfalse
ingress.hostsIngress accepted hostnamesNone
ingress.pathIngress accepted path/
ingress.tlsIngress TLS configurationNone
nodeSelectornode labels for pod assignment{}
runAsUserUser to run blackbox-exporter container as1000
readOnlyRootFilesystemSet blackbox-exporter file-system to read-onlytrue
runAsNonRootRun blackbox-exporter as non-roottrue
tolerationsnode tolerations for pod assignment[]
affinitynode affinity for pod assignment{}
podAnnotationsannotations to add to each pod{}
podDisruptionBudgetpod disruption budget{}
pspEnabledcreate pod security policy resourcestrue
priorityClassNamepriority class nameNone
allowIcmpwhether to enable ICMP probes, by giving the pods CAP_NET_RAW and running as rootfalse
resourcespod resource requests & limits{}
restartPolicycontainer restart policyAlways
livenessProbeContainer liveness probeSee values.yaml
readinessProbeContainer readiness probeSee values.yaml
networkPolicy.enabledEnable network policy and allow access from anywherefalse
networkPolicy.allowMonitoringNamespaceLimit access only from monitoring namespacefalse
service.annotationsannotations for the service{}
service.labelsadditional labels for the serviceNone
service.typetype of service to createClusterIP
service.portport for the blackbox http service9115
service.externalIPslist of external ips[]
serviceAccount.createSpecifies whether a service account should be created.true
serviceAccount.nameService account to be used. If not set and serviceAccount.create is true, a name is generated using the fullname template
serviceAccount.annotationsServiceAccount annotations
serviceMonitor.enabledIf true, a ServiceMonitor CRD is created for a prometheus operatorfalse
serviceMonitor.defaults.labelsLabels for prometheus operator{}
serviceMonitor.defaults.intervalInterval for prometheus operator endpoint30s
serviceMonitor.defaults.scrapeTimeoutScrape timeout for prometheus operator endpoint30s
serviceMonitor.defaults.moduleThe module that blackbox will use if serviceMonitor is enabledhttp_2xx
serviceMonitor.targets.[]List of targets to scrape[]
serviceMonitor.targets.[].nameHuman readable name for the job. It will also appear in job labels in Prometheusexample
serviceMonitor.targets.[].urlThe URL that blackbox will scrape if serviceMonitor is enabledhttp://example.com/healthz
serviceMonitor.targets.[].labelsSee above in serviceMonitor.defaults{{ serviceMonitor.defaults.labels }
serviceMonitor.targets.[].intervalSee above in serviceMonitor.defaults{{ serviceMonitor.defaults.interval }}
serviceMonitor.targets.[].scrapeTimeoutSee above in serviceMonitor.defaults{{ serviceMonitor.defaults.scrateTimeout }}
serviceMonitor.targets.[].moduleSee above in serviceMonitor.defaults{{ serviceMonitor.defaults.module }}
prometheusRule.enabledSet this to true to create PrometheusRule for Prometheus operatorfalse
prometheusRule.additionalLabelsAdditional labels that can be passed to PrometheusRule{}
prometheusRule.namespaceNamespace where PrometheusRule resource should be created
prometheusRule.rulesPrometheusRule to be created[]
strategystrategy 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,

bash
$ 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,

bash
# 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:

yaml
podDisruptionBudget:
  maxUnavailable: 0

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.