Add metrics exporter

This commit is contained in:
tompizmor
2019-05-02 12:48:46 +02:00
parent 77c87c4937
commit 811b29c170
11 changed files with 297 additions and 104 deletions

View File

@@ -45,97 +45,104 @@ The command removes all the Kubernetes components associated with the chart and
The following tables lists the configurable parameters of the Kafka chart and their default values.
| Parameter | Description | Default |
| ----------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------- |
| `global.imageRegistry` | Global Docker image registry | `nil` |
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `image.registry` | Airflow image registry | `docker.io` |
| `image.repository` | Airflow image name | `bitnami/airflow` |
| `image.tag` | Airflow image tag | `{VERSION}` |
| `image.pullPolicy` | Airflow image pull policy | `Always` |
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `image.debug` | Specify if debug values should be set | `false` |
| `schedulerImage.registry` | Airflow Scheduler image registry | `docker.io` |
| `schedulerImage.repository` | Airflow Scheduler image name | `bitnami/airflow-shceduler` |
| `schedulerImage.tag` | Airflow Scheduler image tag | `{VERSION}` |
| `schedulerImage.pullPolicy` | Airflow Scheduler image pull policy | `Always` |
| `schedulerImage.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `schedulerImage.debug` | Specify if debug values should be set | `false` |
| `workerImage.registry` | Airflow Worker image registry | `docker.io` |
| `workerImage.repository` | Airflow Worker image name | `bitnami/airflow-worker` |
| `workerImage.tag` | Airflow Worker image tag | `{VERSION}` |
| `workerImage.pullPolicy` | Airflow Worker image pull policy | `Always` |
| `workerImage.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `workerImage.debug` | Specify if debug values should be set | `false` |
| `gitImage.registry` | Git image registry | `docker.io` |
| `gitImage.repository` | Git image name | `bitnami/git` |
| `gitImage.tag` | Git image tag | `{VERSION}` |
| `gitImage.pullPolicy` | Git image pull policy | `Always` |
| `gitImage.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `updateStrategy` | Update strategy for the stateful set | `RollingUpdate` |
| `rollingUpdatePartition` | Partition update strategy | `nil` |
| `airflow.airflowConfigurationConfigMap` | Name of an existing config map containing the Airflow config file | `nil` |
| `airflow.dagsConfigMap` | Name of an existing config map containing all the DAGs files you want to load in Airflow. | `nil` |
| `airflow.loadExamples` | Switch to load some Airflow examples | `true` |
| `airflow.cloneDagFilesFromGit.enabled` | Enable in order to download DAG files from git repository. | `false` |
| `airflow.cloneDagFilesFromGit.repository` | Repository where download DAG files from | `nil` |
| `airflow.cloneDagFilesFromGit.revision` | Revision from repository to checkout | `nil` |
| `airflow.baseUrl` | URL used to access to airflow web ui | `nil` |
| `airflow.worker.port` | Airflow Worker port | `8793` |
| `airflow.worker.replicas` | Number of Airflow Worker replicas | `2` |
| `airflow.auth.forcePassword` | Force users to specify a password | `false` |
| `airflow.auth.airflowUsername` | Username to access web UI | `user` |
| `airflow.auth.airflowPassword` | Password to access web UI | `nil` |
| `airflow.auth.fernetKey` | Fernet key to secure connections | `nil` |
| `airflow.auth.existingSecret` | Name of an existing secret containing airflow password and fernet key | `nil` |
| `airflow.extraEnvVars` | Extra environment variables to add to airflow web, worker and scheduler pods | `nil` |
| `securityContext.enabled` | Enable security context | `true` |
| `securityContext.fsGroup` | Group ID for the container | `1001` |
| `securityContext.runAsUser` | User ID for the container | `1001` |
| `service.type` | Kubernetes Service type | `ClusterIP` |
| `service.port` | Airflow Web port | `8080` |
| `service.nodePort` | Kubernetes Service nodePort | `nil` |
| `service.loadBalancerIP` | loadBalancerIP for Kafka Service | `nil` |
| `service.annotations` | Service annotations | `` |
| `ingress.enabled` | Enable ingress controller resource | `false` |
| `ingress.certManager` | Add annotations for cert-manager | `false` |
| `ingress.annotations` | Ingress annotations | `[]` |
| `ingress.hosts[0].name` | Hostname to your Wordpress installation | `airflow.local` |
| `ingress.hosts[0].path` | Path within the url structure | `/` |
| `ingress.tls[0].hosts[0]` | TLS hosts | `airflow.local` |
| `ingress.tls[0].secretName` | TLS Secret (certificates) | `airflow.local-tls` |
| `ingress.secrets[0].name` | TLS Secret Name | `nil` |
| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` |
| `ingress.secrets[0].key` | TLS Secret Key | `nil` |
| `nodeSelector` | Node labels for pod assignment | `{}` |
| `tolerations` | Toleration labels for pod assignment | `[]` |
| `affinity` | Map of node/pod affinities | `{}` |
| `resources` | CPU/Memory resource requests/limits | Memory: `256Mi`, CPU: `250m` |
| `livenessProbe.enabled` | would you like a livessProbed to be enabled | `true` |
| `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | 180 |
| `livenessProbe.periodSeconds` | How often to perform the probe | 20 |
| `livenessProbe.timeoutSeconds` | When the probe times out | 5 |
| `livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | 6 |
| `livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | 1 |
| `readinessProbe.enabled` | would you like a readinessProbe to be enabled | `true` |
| `readinessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | 30 |
| `readinessProbe.periodSeconds` | How often to perform the probe | 10 |
| `readinessProbe.timeoutSeconds` | When the probe times out | 5 |
| `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | 6 |
| `readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | 1 |
| `postgresql.enabled` | Switch to enable or disable the PostgreSQL helm chart | `true` |
| `postgresql.postgresqlUsername` | Airflow Postgresql username | `bn_airflow` |
| `postgresql.postgresqlPassword` | Airflow Postgresql password | `nil` |
| `postgresql.postgresqlDatabase` | Airflow Postgresql database | `bitnami_airflow` |
| `externalDatabase.host` | External PostgreSQL host | `nil` |
| `externalDatabase.user` | External PostgreSQL user | `nil` |
| `externalDatabase.password` | External PostgreSQL password | `nil` |
| `externalDatabase.database` | External PostgreSQL database name | `nil` |
| `externalDatabase.port` | External PostgreSQL port | `nil` |
| `redis.enabled` | Switch to enable or disable the Redis helm chart | `true` |
| `externalRedis.host` | External Redis host | `nil` |
| `externalRedis.port` | External Redis port | `nil` |
| `externalRedis.password` | External Redis password | `nil` |
| Parameter | Description | Default |
| ----------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------ |
| `global.imageRegistry` | Global Docker image registry | `nil` |
| `global.imagePullSecrets` | Global Docker registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `image.registry` | Airflow image registry | `docker.io` |
| `image.repository` | Airflow image name | `bitnami/airflow` |
| `image.tag` | Airflow image tag | `{VERSION}` |
| `image.pullPolicy` | Airflow image pull policy | `Always` |
| `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `image.debug` | Specify if debug values should be set | `false` |
| `schedulerImage.registry` | Airflow Scheduler image registry | `docker.io` |
| `schedulerImage.repository` | Airflow Scheduler image name | `bitnami/airflow-shceduler` |
| `schedulerImage.tag` | Airflow Scheduler image tag | `{VERSION}` |
| `schedulerImage.pullPolicy` | Airflow Scheduler image pull policy | `Always` |
| `schedulerImage.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `schedulerImage.debug` | Specify if debug values should be set | `false` |
| `workerImage.registry` | Airflow Worker image registry | `docker.io` |
| `workerImage.repository` | Airflow Worker image name | `bitnami/airflow-worker` |
| `workerImage.tag` | Airflow Worker image tag | `{VERSION}` |
| `workerImage.pullPolicy` | Airflow Worker image pull policy | `Always` |
| `workerImage.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `workerImage.debug` | Specify if debug values should be set | `false` |
| `gitImage.registry` | Git image registry | `docker.io` |
| `gitImage.repository` | Git image name | `bitnami/git` |
| `gitImage.tag` | Git image tag | `{VERSION}` |
| `gitImage.pullPolicy` | Git image pull policy | `Always` |
| `gitImage.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `updateStrategy` | Update strategy for the stateful set | `RollingUpdate` |
| `rollingUpdatePartition` | Partition update strategy | `nil` |
| `airflow.airflowConfigurationConfigMap` | Name of an existing config map containing the Airflow config file | `nil` |
| `airflow.dagsConfigMap` | Name of an existing config map containing all the DAGs files you want to load in Airflow. | `nil` |
| `airflow.loadExamples` | Switch to load some Airflow examples | `true` |
| `airflow.cloneDagFilesFromGit.enabled` | Enable in order to download DAG files from git repository. | `false` |
| `airflow.cloneDagFilesFromGit.repository` | Repository where download DAG files from | `nil` |
| `airflow.cloneDagFilesFromGit.revision` | Revision from repository to checkout | `nil` |
| `airflow.baseUrl` | URL used to access to airflow web ui | `nil` |
| `airflow.worker.port` | Airflow Worker port | `8793` |
| `airflow.worker.replicas` | Number of Airflow Worker replicas | `2` |
| `airflow.auth.forcePassword` | Force users to specify a password | `false` |
| `airflow.auth.airflowUsername` | Username to access web UI | `user` |
| `airflow.auth.airflowPassword` | Password to access web UI | `nil` |
| `airflow.auth.fernetKey` | Fernet key to secure connections | `nil` |
| `airflow.auth.existingSecret` | Name of an existing secret containing airflow password and fernet key | `nil` |
| `airflow.extraEnvVars` | Extra environment variables to add to airflow web, worker and scheduler pods | `nil` |
| `securityContext.enabled` | Enable security context | `true` |
| `securityContext.fsGroup` | Group ID for the container | `1001` |
| `securityContext.runAsUser` | User ID for the container | `1001` |
| `service.type` | Kubernetes Service type | `ClusterIP` |
| `service.port` | Airflow Web port | `8080` |
| `service.nodePort` | Kubernetes Service nodePort | `nil` |
| `service.loadBalancerIP` | loadBalancerIP for Kafka Service | `nil` |
| `service.annotations` | Service annotations | `` |
| `ingress.enabled` | Enable ingress controller resource | `false` |
| `ingress.certManager` | Add annotations for cert-manager | `false` |
| `ingress.annotations` | Ingress annotations | `[]` |
| `ingress.hosts[0].name` | Hostname to your Wordpress installation | `airflow.local` |
| `ingress.hosts[0].path` | Path within the url structure | `/` |
| `ingress.tls[0].hosts[0]` | TLS hosts | `airflow.local` |
| `ingress.tls[0].secretName` | TLS Secret (certificates) | `airflow.local-tls` |
| `ingress.secrets[0].name` | TLS Secret Name | `nil` |
| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` |
| `ingress.secrets[0].key` | TLS Secret Key | `nil` |
| `nodeSelector` | Node labels for pod assignment | `{}` |
| `tolerations` | Toleration labels for pod assignment | `[]` |
| `affinity` | Map of node/pod affinities | `{}` |
| `resources` | CPU/Memory resource requests/limits | Memory: `256Mi`, CPU: `250m` |
| `livenessProbe.enabled` | would you like a livessProbed to be enabled | `true` |
| `livenessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | 180 |
| `livenessProbe.periodSeconds` | How often to perform the probe | 20 |
| `livenessProbe.timeoutSeconds` | When the probe times out | 5 |
| `livenessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | 6 |
| `livenessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | 1 |
| `readinessProbe.enabled` | would you like a readinessProbe to be enabled | `true` |
| `readinessProbe.initialDelaySeconds` | Delay before liveness probe is initiated | 30 |
| `readinessProbe.periodSeconds` | How often to perform the probe | 10 |
| `readinessProbe.timeoutSeconds` | When the probe times out | 5 |
| `readinessProbe.failureThreshold` | Minimum consecutive failures for the probe to be considered failed after having succeeded. | 6 |
| `readinessProbe.successThreshold` | Minimum consecutive successes for the probe to be considered successful after having failed | 1 |
| `postgresql.enabled` | Switch to enable or disable the PostgreSQL helm chart | `true` |
| `postgresql.postgresqlUsername` | Airflow Postgresql username | `bn_airflow` |
| `postgresql.postgresqlPassword` | Airflow Postgresql password | `nil` |
| `postgresql.postgresqlDatabase` | Airflow Postgresql database | `bitnami_airflow` |
| `externalDatabase.host` | External PostgreSQL host | `nil` |
| `externalDatabase.user` | External PostgreSQL user | `nil` |
| `externalDatabase.password` | External PostgreSQL password | `nil` |
| `externalDatabase.database` | External PostgreSQL database name | `nil` |
| `externalDatabase.port` | External PostgreSQL port | `nil` |
| `redis.enabled` | Switch to enable or disable the Redis helm chart | `true` |
| `externalRedis.host` | External Redis host | `nil` |
| `externalRedis.port` | External Redis port | `nil` |
| `externalRedis.password` | External Redis password | `nil` |
| `metrics.enabled` | Start a side-car prometheus exporter | `false` |
| `metrics.image.registry` | Airflow exporter image registry | `docker.io` |
| `metrics.image.repository` | Airflow exporter image name | `pbweb/airflow-prometheus-exporter` |
| `metrics.image.tag` | Airflow exporter image tag | `latest` |
| `metrics.image.pullPolicy` | Image pull policy | `IfNotPresent` |
| `metrics.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` (does not add image pull secrets to deployed pods) |
| `metrics.podAnnotations` | Additional annotations for Metrics exporter | `{prometheus.io/scrape: "true", prometheus.io/port: "9112"}` |
Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,

View File

@@ -123,6 +123,29 @@ Also, we can't use a single if because lazy evaluation is not an option
{{- end -}}
{{- end -}}
{{/*
Return the proper Airflow Metrics image name
*/}}
{{- define "airflow.metrics.image" -}}
{{- $registryName := .Values.metrics.image.registry -}}
{{- $repositoryName := .Values.metrics.image.repository -}}
{{- $tag := .Values.metrics.image.tag | toString -}}
{{/*
Helm 2.11 supports the assignment of a value to a variable defined in a different scope,
but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic.
Also, we can't use a single if because lazy evaluation is not an option
*/}}
{{- if .Values.global }}
{{- if .Values.global.imageRegistry }}
{{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}}
{{- else -}}
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
{{- end -}}
{{- else -}}
{{- printf "%s/%s:%s" $registryName $repositoryName $tag -}}
{{- end -}}
{{- end -}}
{{/*
Return the proper Docker Image Registry Secret Names
*/}}

View File

@@ -7,13 +7,13 @@ metadata:
helm.sh/chart: {{ include "airflow.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
component: scheduler
app.kubernetes.io/component: scheduler
spec:
selector:
matchLabels:
app.kubernetes.io/name: {{ include "airflow.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
component: scheduler
app.kubernetes.io/component: scheduler
replicas: {{ .Values.replicaCount }}
template:
metadata:
@@ -21,7 +21,7 @@ spec:
app.kubernetes.io/name: {{ include "airflow.name" . }}
helm.sh/chart: {{ include "airflow.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
component: scheduler
app.kubernetes.io/component: scheduler
{{- if .Values.podAnnotations }}
annotations:
{{ toYaml .Values.podAnnotations | nindent 8 }}

View File

@@ -7,13 +7,13 @@ metadata:
helm.sh/chart: {{ include "airflow.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
component: web
app.kubernetes.io/component: web
spec:
selector:
matchLabels:
app.kubernetes.io/name: {{ include "airflow.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
component: web
app.kubernetes.io/component: web
replicas: {{ .Values.replicaCount }}
template:
metadata:
@@ -21,7 +21,7 @@ spec:
app.kubernetes.io/name: {{ include "airflow.name" . }}
helm.sh/chart: {{ include "airflow.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
component: web
app.kubernetes.io/component: web
{{- if .Values.podAnnotations }}
annotations:
{{ toYaml .Values.podAnnotations | nindent 8 }}

View File

@@ -0,0 +1,73 @@
{{- if .Values.metrics.enabled }}
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: {{ template "airflow.fullname" . }}-exporter
labels:
app.kubernetes.io/name: {{ include "airflow.name" . }}
helm.sh/chart: {{ include "airflow.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/component: metrics
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: {{ include "airflow.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
annotations:
{{ toYaml .Values.metrics.podAnnotations | indent 8 }}
labels:
app.kubernetes.io/name: {{ include "airflow.name" . }}
app.kubernetes.io/component: metrics
app.kubernetes.io/instance: {{ .Release.Name }}
spec:
{{- include "airflow.imagePullSecrets" . | indent 6 }}
containers:
- image: {{ template "airflow.metrics.image" . }}
name: airflow-exporter
env:
- name: AIRFLOW_PROMETHEUS_DATABASE_BACKEND
value: "postgres"
- name: AIRFLOW_PROMETHEUS_DATABASE_HOST
{{- if .Values.postgresql.enabled }}
value: {{ template "airflow.postgresql.fullname" . }}
{{- else }}
value: {{ .Values.externalDatabase.host | quote }}
{{- end }}
- name: AIRFLOW_PROMETHEUS_DATABASE_PORT
{{- if .Values.postgresql.enabled }}
value: "5432"
{{- else }}
value: {{ .Values.externalDatabase.port | quote }}
{{- end }}
- name: AIRFLOW_PROMETHEUS_DATABASE_USER
{{- if .Values.postgresql.enabled }}
value: {{ .Values.postgresql.postgresqlUsername }}
{{- else }}
value: {{ .Values.externalDatabase.user | quote }}
{{- end }}
- name: AIRFLOW_PROMETHEUS_DATABASE_PASSWORD
valueFrom:
secretKeyRef:
{{- if .Values.postgresql.enabled }}
name: {{ template "airflow.postgresql.fullname" . }}
key: postgresql-password
{{- else }}
name: {{ printf "%s-%s" .Release.Name "externaldb" }}
key: db-password
{{- end }}
- name: AIRFLOW_PROMETHEUS_DATABASE_NAME
{{- if .Values.postgresql.enabled }}
value: {{ .Values.postgresql.postgresqlDatabase }}
{{- else }}
value: {{ .Values.externalDatabase.database | quote }}
{{- end }}
ports:
- name: metrics
containerPort: 9112
resources:
{{ toYaml .Values.metrics.resources | indent 10 }}
{{- end }}

View File

@@ -0,0 +1,22 @@
{{- if .Values.metrics.enabled }}
apiVersion: v1
kind: Service
metadata:
name: {{ template "airflow.fullname" . }}-exporter
labels:
app.kubernetes.io/name: {{ include "airflow.name" . }}
helm.sh/chart: {{ include "airflow.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
app.kubernetes.io/component: metrics
spec:
type: ClusterIP
ports:
- name: metrics
port: 9112
targetPort: metrics
selector:
app.kubernetes.io/name: {{ include "airflow.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/component: metrics
{{- end }}

View File

@@ -7,13 +7,13 @@ metadata:
helm.sh/chart: {{ include "airflow.chart" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
component: worker
app.kubernetes.io/component: worker
spec:
selector:
matchLabels:
app.kubernetes.io/name: {{ include "airflow.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
component: worker
app.kubernetes.io/component: worker
serviceName: {{ template "airflow.fullname" . }}-headless
replicas: {{ .Values.airflow.worker.replicas }}
updateStrategy:
@@ -29,7 +29,7 @@ spec:
labels:
app.kubernetes.io/name: {{ include "airflow.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
component: worker
app.kubernetes.io/component: worker
spec:
{{- include "airflow.imagePullSecrets" . | indent 6 }}
{{- if .Values.securityContext.enabled }}

View File

@@ -17,4 +17,4 @@ spec:
selector:
app.kubernetes.io/name: {{ include "airflow.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
component: worker
app.kubernetes.io/component: worker

View File

@@ -28,4 +28,4 @@ spec:
selector:
app.kubernetes.io/name: {{ include "airflow.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
component: web
app.kubernetes.io/component: web

View File

@@ -320,4 +320,38 @@ externalRedis:
## Redis port number
port: 6379
## Redis password
password: ""
password: ""
## Prometheus Exporter / Metrics
##
metrics:
enabled: false
image:
registry: docker.io
repository: pbweb/airflow-prometheus-exporter
tag: latest
pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
##
# pullSecrets:
# - myRegistryKeySecretName
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9112"
## Metrics exporter resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
# resources: {}
## Metrics exporter labels and tolerations for pod assignment
# nodeSelector: {"beta.kubernetes.io/arch": "amd64"}
# tolerations: []
## Metrics exporter pod Annotation and Labels
# podAnnotations: {}
# podLabels: {}

View File

@@ -320,4 +320,38 @@ externalRedis:
## Redis port number
port: 6379
## Redis password
password: ""
password: ""
## Prometheus Exporter / Metrics
##
metrics:
enabled: false
image:
registry: docker.io
repository: pbweb/airflow-prometheus-exporter
tag: latest
pullPolicy: IfNotPresent
## Optionally specify an array of imagePullSecrets.
## Secrets must be manually created in the namespace.
## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
##
# pullSecrets:
# - myRegistryKeySecretName
podAnnotations:
prometheus.io/scrape: "true"
prometheus.io/port: "9112"
## Metrics exporter resource requests and limits
## ref: http://kubernetes.io/docs/user-guide/compute-resources/
##
# resources: {}
## Metrics exporter labels and tolerations for pod assignment
# nodeSelector: {"beta.kubernetes.io/arch": "amd64"}
# tolerations: []
## Metrics exporter pod Annotation and Labels
# podAnnotations: {}
# podLabels: {}