mirror of
https://github.com/bitnami/charts.git
synced 2026-03-27 15:27:10 +08:00
Add metrics exporter
This commit is contained in:
@@ -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,
|
||||
|
||||
|
||||
@@ -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
|
||||
*/}}
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
73
bitnami/airflow/templates/metrics-deployment.yaml
Normal file
73
bitnami/airflow/templates/metrics-deployment.yaml
Normal 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 }}
|
||||
22
bitnami/airflow/templates/metrics-svc.yaml
Normal file
22
bitnami/airflow/templates/metrics-svc.yaml
Normal 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 }}
|
||||
@@ -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 }}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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: {}
|
||||
@@ -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: {}
|
||||
Reference in New Issue
Block a user