mirror of
https://github.com/bitnami/charts.git
synced 2026-08-10 14:15:55 +08:00
[bitnami/airflow] Lint chart
Signed-off-by: Javier J. Salmeron Garcia <jsalmeron@vmware.com>
This commit is contained in:
@@ -1,18 +1,18 @@
|
||||
apiVersion: v1
|
||||
name: airflow
|
||||
version: 3.1.11
|
||||
version: 3.1.12
|
||||
appVersion: 1.10.5
|
||||
description: Apache Airflow is a platform to programmatically author, schedule and monitor workflows.
|
||||
keywords:
|
||||
- apache
|
||||
- airflow
|
||||
- workflow
|
||||
- dag
|
||||
- apache
|
||||
- airflow
|
||||
- workflow
|
||||
- dag
|
||||
home: https://airflow.apache.org/
|
||||
sources:
|
||||
- https://github.com/bitnami/bitnami-docker-airflow
|
||||
- https://github.com/bitnami/bitnami-docker-airflow
|
||||
maintainers:
|
||||
- name: Bitnami
|
||||
email: containers@bitnami.com
|
||||
- name: Bitnami
|
||||
email: containers@bitnami.com
|
||||
engine: gotpl
|
||||
icon: https://bitnami.com/assets/stacks/airflow/img/airflow-stack-110x117.png
|
||||
|
||||
@@ -16,8 +16,8 @@ Bitnami charts can be used with [Kubeapps](https://kubeapps.com/) for deployment
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes 1.4+ with Beta APIs enabled
|
||||
- PV provisioner support in the underlying infrastructure
|
||||
- Kubernetes 1.12+
|
||||
- Helm 2.11+ or Helm 3.0-beta3+
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Test values file for generating all of the yaml and check that
|
||||
# the rendering is correct
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
|
||||
metrics:
|
||||
enabled: true
|
||||
|
||||
config: |
|
||||
test_configuration
|
||||
|
||||
redis:
|
||||
enabled: false
|
||||
externalRedis:
|
||||
password: test
|
||||
|
||||
postgresql:
|
||||
enabled: false
|
||||
externalDatabase:
|
||||
password: test
|
||||
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
dependencies:
|
||||
- name: postgresql
|
||||
version: 6.x.x
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: postgresql.enabled
|
||||
- name: redis
|
||||
version: 9.x.x
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: redis.enabled
|
||||
- name: postgresql
|
||||
version: 6.x.x
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: postgresql.enabled
|
||||
- name: redis
|
||||
version: 9.x.x
|
||||
repository: https://charts.bitnami.com/bitnami
|
||||
condition: redis.enabled
|
||||
|
||||
@@ -47,164 +47,163 @@ spec:
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
initContainers:
|
||||
- name: git-clone-repository
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
git clone {{ .Values.airflow.cloneDagFilesFromGit.repository }} --branch {{ .Values.airflow.cloneDagFilesFromGit.branch }} /dags
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
- name: git-clone-repository
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
git clone {{ .Values.airflow.cloneDagFilesFromGit.repository }} --branch {{ .Values.airflow.cloneDagFilesFromGit.branch }} /dags
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
containers:
|
||||
- name: git-repo-syncer
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
while true; do
|
||||
cd /dags && git pull origin {{ .Values.airflow.cloneDagFilesFromGit.branch }}
|
||||
sleep {{ default "60" .Values.airflow.cloneDagFilesFromGit.interval }}
|
||||
done
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
- name: git-repo-syncer
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
while true; do
|
||||
cd /dags && git pull origin {{ .Values.airflow.cloneDagFilesFromGit.branch }}
|
||||
sleep {{ default "60" .Values.airflow.cloneDagFilesFromGit.interval }}
|
||||
done
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
{{- else }}
|
||||
containers:
|
||||
{{- end }}
|
||||
- name: airflow-scheduler
|
||||
image: {{ template "airflow.schedulerImage" . }}
|
||||
imagePullPolicy: {{ .Values.schedulerImage.pullPolicy | quote }}
|
||||
env:
|
||||
{{- if .Values.schedulerImage.debug }}
|
||||
- name: BASH_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_LOG_LEVEL
|
||||
value: "trace8"
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_NAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlDatabase }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.database | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_USERNAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlUsername }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.user | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_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
|
||||
- name: airflow-scheduler
|
||||
image: {{ template "airflow.schedulerImage" . }}
|
||||
imagePullPolicy: {{ .Values.schedulerImage.pullPolicy | quote }}
|
||||
env:
|
||||
{{- if .Values.schedulerImage.debug }}
|
||||
- name: BASH_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_LOG_LEVEL
|
||||
value: "trace8"
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_HOST
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ template "airflow.postgresql.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.host | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_PORT_NUMBER
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: "5432"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_HOST
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: {{ template "airflow.redis.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.host | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PORT_NUMBER
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: "6379"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
{{- if .Values.redis.enabled }}
|
||||
name: {{ template "airflow.redis.secretName" . }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
name: {{ printf "%s-%s" .Release.Name "externalredis" }}
|
||||
key: redis-password
|
||||
- name: AIRFLOW_DATABASE_NAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlDatabase }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.database | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_USERNAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlUsername }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.user | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_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_DATABASE_HOST
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ template "airflow.postgresql.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.host | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_PORT_NUMBER
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: "5432"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_HOST
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: {{ template "airflow.redis.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.host | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PORT_NUMBER
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: "6379"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
{{- if .Values.redis.enabled }}
|
||||
name: {{ template "airflow.redis.secretName" . }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
name: {{ printf "%s-%s" .Release.Name "externalredis" }}
|
||||
key: redis-password
|
||||
{{- end }}
|
||||
- name: AIRFLOW_EXECUTOR
|
||||
value: "CeleryExecutor"
|
||||
- name: AIRFLOW_FERNET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.airflow.auth.existingSecret }}{{ .Values.airflow.auth.existingSecret }}{{ else }}{{ template "airflow.fullname" . }}{{ end }}
|
||||
key: airflow-fernetKey
|
||||
- name: AIRFLOW_WEBSERVER_HOST
|
||||
value: {{ template "airflow.fullname" . }}
|
||||
- name: AIRFLOW_LOAD_EXAMPLES
|
||||
{{- if .Values.airflow.loadExamples }}
|
||||
value: "yes"
|
||||
{{- else }}
|
||||
value: "no"
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.extraEnvVars }}
|
||||
{{- toYaml .Values.airflow.extraEnvVars | nindent 12 }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_EXECUTOR
|
||||
value: "CeleryExecutor"
|
||||
- name: AIRFLOW_FERNET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.airflow.auth.existingSecret }}{{ .Values.airflow.auth.existingSecret }}{{ else }}{{ template "airflow.fullname" . }}{{ end }}
|
||||
key: airflow-fernetKey
|
||||
- name: AIRFLOW_WEBSERVER_HOST
|
||||
value: {{ template "airflow.fullname" . }}
|
||||
- name: AIRFLOW_LOAD_EXAMPLES
|
||||
{{- if .Values.airflow.loadExamples }}
|
||||
value: "yes"
|
||||
{{- else }}
|
||||
value: "no"
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.extraEnvVars }}
|
||||
{{ toYaml .Values.airflow.extraEnvVars | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
{{- end }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Files.Glob "files/dags/*.py" }}
|
||||
- name: local-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/local
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.dagsConfigMap }}
|
||||
- name: external-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/external
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/git
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.configurationConfigMap }}
|
||||
- name: custom-configuration-file
|
||||
mountPath: /opt/bitnami/airflow/airflow.cfg
|
||||
subPath: airflow.cfg
|
||||
{{- end }}
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 10 }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Files.Glob "files/dags/*.py" }}
|
||||
- name: local-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/local
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.dagsConfigMap }}
|
||||
- name: external-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/external
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/git
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.configurationConfigMap }}
|
||||
- name: custom-configuration-file
|
||||
mountPath: /opt/bitnami/airflow/airflow.cfg
|
||||
subPath: airflow.cfg
|
||||
{{- end }}
|
||||
resources: {{- toYaml .Values.resources | nindent 12 }}
|
||||
volumes:
|
||||
{{- if .Files.Glob "files/dags/*.py" }}
|
||||
- name: local-dag-files
|
||||
configMap:
|
||||
name: {{ template "airflow.fullname" . }}-dag-files
|
||||
- name: local-dag-files
|
||||
configMap:
|
||||
name: {{ template "airflow.fullname" . }}-dag-files
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.dagsConfigMap }}
|
||||
- name: external-dag-files
|
||||
configMap:
|
||||
name: {{ .Values.airflow.dagsConfigMap }}
|
||||
- name: external-dag-files
|
||||
configMap:
|
||||
name: {{ .Values.airflow.dagsConfigMap }}
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
- name: git-cloned-dag-files
|
||||
emptyDir: {}
|
||||
- name: git-cloned-dag-files
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.configurationConfigMap }}
|
||||
- name: custom-configuration-file
|
||||
configMap:
|
||||
name: {{ .Values.airflow.configurationConfigMap }}
|
||||
- name: custom-configuration-file
|
||||
configMap:
|
||||
name: {{ .Values.airflow.configurationConfigMap }}
|
||||
{{- end }}
|
||||
|
||||
@@ -47,194 +47,193 @@ spec:
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
initContainers:
|
||||
- name: git-clone-repository
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
git clone {{ .Values.airflow.cloneDagFilesFromGit.repository }} --branch {{ .Values.airflow.cloneDagFilesFromGit.branch }} /dags
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
- name: git-clone-repository
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
git clone {{ .Values.airflow.cloneDagFilesFromGit.repository }} --branch {{ .Values.airflow.cloneDagFilesFromGit.branch }} /dags
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
containers:
|
||||
- name: git-repo-syncer
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
while true; do
|
||||
cd /dags && git pull origin {{ .Values.airflow.cloneDagFilesFromGit.branch }}
|
||||
sleep {{ default "60" .Values.airflow.cloneDagFilesFromGit.interval }}
|
||||
done
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
- name: git-repo-syncer
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
while true; do
|
||||
cd /dags && git pull origin {{ .Values.airflow.cloneDagFilesFromGit.branch }}
|
||||
sleep {{ default "60" .Values.airflow.cloneDagFilesFromGit.interval }}
|
||||
done
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
{{- else }}
|
||||
containers:
|
||||
{{- end }}
|
||||
- name: airflow-web
|
||||
image: {{ template "airflow.image" . }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
|
||||
env:
|
||||
{{- if .Values.image.debug }}
|
||||
- name: BASH_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_LOG_LEVEL
|
||||
value: "trace8"
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_NAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlDatabase }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.database | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_USERNAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlUsername }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.user | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_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
|
||||
- name: airflow-web
|
||||
image: {{ template "airflow.image" . }}
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
|
||||
env:
|
||||
{{- if .Values.image.debug }}
|
||||
- name: BASH_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_LOG_LEVEL
|
||||
value: "trace8"
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_HOST
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ template "airflow.postgresql.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.host | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_PORT_NUMBER
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: "5432"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_HOST
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: {{ template "airflow.redis.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.host | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PORT_NUMBER
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: "6379"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
{{- if .Values.redis.enabled }}
|
||||
name: {{ template "airflow.redis.secretName" . }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
name: {{ printf "%s-%s" .Release.Name "externalredis" }}
|
||||
key: redis-password
|
||||
- name: AIRFLOW_DATABASE_NAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlDatabase }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.database | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_USERNAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlUsername }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.user | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_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_DATABASE_HOST
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ template "airflow.postgresql.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.host | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_PORT_NUMBER
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: "5432"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_HOST
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: {{ template "airflow.redis.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.host | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PORT_NUMBER
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: "6379"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
{{- if .Values.redis.enabled }}
|
||||
name: {{ template "airflow.redis.secretName" . }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
name: {{ printf "%s-%s" .Release.Name "externalredis" }}
|
||||
key: redis-password
|
||||
{{- end }}
|
||||
- name: AIRFLOW_EXECUTOR
|
||||
value: "CeleryExecutor"
|
||||
- name: AIRFLOW_USERNAME
|
||||
value: {{ .Values.airflow.auth.username }}
|
||||
- name: AIRFLOW_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.airflow.auth.existingSecret }}{{ .Values.airflow.auth.existingSecret }}{{ else }}{{ template "airflow.fullname" . }}{{ end }}
|
||||
key: airflow-password
|
||||
- name: AIRFLOW_FERNET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.airflow.auth.existingSecret }}{{ .Values.airflow.auth.existingSecret }}{{ else }}{{ template "airflow.fullname" . }}{{ end }}
|
||||
key: airflow-fernetKey
|
||||
- name: AIRFLOW_WEBSERVER_HOST
|
||||
value: {{ template "airflow.fullname" . }}
|
||||
{{- if .Values.airflow.baseUrl }}
|
||||
- name: AIRFLOW_BASE_URL
|
||||
value: {{ .Values.airflow.baseUrl }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_LOAD_EXAMPLES
|
||||
{{- if .Values.airflow.loadExamples }}
|
||||
value: "yes"
|
||||
{{- else }}
|
||||
value: "no"
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.extraEnvVars }}
|
||||
{{- toYaml .Values.airflow.extraEnvVars | nindent 12 }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_EXECUTOR
|
||||
value: "CeleryExecutor"
|
||||
- name: AIRFLOW_USERNAME
|
||||
value: {{ .Values.airflow.auth.username }}
|
||||
- name: AIRFLOW_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.airflow.auth.existingSecret }}{{ .Values.airflow.auth.existingSecret }}{{ else }}{{ template "airflow.fullname" . }}{{ end }}
|
||||
key: airflow-password
|
||||
- name: AIRFLOW_FERNET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.airflow.auth.existingSecret }}{{ .Values.airflow.auth.existingSecret }}{{ else }}{{ template "airflow.fullname" . }}{{ end }}
|
||||
key: airflow-fernetKey
|
||||
- name: AIRFLOW_WEBSERVER_HOST
|
||||
value: {{ template "airflow.fullname" . }}
|
||||
{{- if .Values.airflow.baseUrl }}
|
||||
- name: AIRFLOW_BASE_URL
|
||||
value: {{ .Values.airflow.baseUrl }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_LOAD_EXAMPLES
|
||||
{{- if .Values.airflow.loadExamples }}
|
||||
value: "yes"
|
||||
{{- else }}
|
||||
value: "no"
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.extraEnvVars }}
|
||||
{{ toYaml .Values.airflow.extraEnvVars | nindent 8 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 8080
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.livenessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.livenessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
|
||||
{{- end }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.readinessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.readinessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
volumeMounts:
|
||||
{{- if .Files.Glob "files/dags/*.py" }}
|
||||
- name: local-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/local
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.dagsConfigMap }}
|
||||
- name: external-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/external
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/git
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.configurationConfigMap }}
|
||||
- name: custom-configuration-file
|
||||
mountPath: /opt/bitnami/airflow/airflow.cfg
|
||||
subPath: airflow.cfg
|
||||
{{- end }}
|
||||
resources: {{- toYaml .Values.resources | nindent 12 }}
|
||||
volumes:
|
||||
{{- if .Files.Glob "files/dags/*.py" }}
|
||||
- name: local-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/local
|
||||
configMap:
|
||||
name: {{ template "airflow.fullname" . }}-dag-files
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.dagsConfigMap }}
|
||||
- name: external-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/external
|
||||
configMap:
|
||||
name: {{ .Values.airflow.dagsConfigMap }}
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/git
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.configurationConfigMap }}
|
||||
- name: custom-configuration-file
|
||||
mountPath: /opt/bitnami/airflow/airflow.cfg
|
||||
subPath: airflow.cfg
|
||||
configMap:
|
||||
name: {{ .Values.airflow.configurationConfigMap }}
|
||||
{{- end }}
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 10 }}
|
||||
volumes:
|
||||
{{- if .Files.Glob "files/dags/*.py" }}
|
||||
- name: local-dag-files
|
||||
configMap:
|
||||
name: {{ template "airflow.fullname" . }}-dag-files
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.dagsConfigMap }}
|
||||
- name: external-dag-files
|
||||
configMap:
|
||||
name: {{ .Values.airflow.dagsConfigMap }}
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
- name: git-cloned-dag-files
|
||||
emptyDir: {}
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.configurationConfigMap }}
|
||||
- name: custom-configuration-file
|
||||
configMap:
|
||||
name: {{ .Values.airflow.configurationConfigMap }}
|
||||
{{- end }}
|
||||
|
||||
@@ -17,17 +17,18 @@ metadata:
|
||||
{{- end }}
|
||||
spec:
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ .name }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ default "/" .path }}
|
||||
backend:
|
||||
serviceName: "{{ template "airflow.fullname" $ }}"
|
||||
servicePort: http
|
||||
{{- end }}
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ .name }}
|
||||
http:
|
||||
paths:
|
||||
- path: {{ default "/" .path }}
|
||||
backend:
|
||||
serviceName: "{{ template "airflow.fullname" $ }}"
|
||||
servicePort: http
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{ toYaml .Values.ingress.tls | indent 4 }}
|
||||
# Note: toYaml does not indent arrays
|
||||
# yamllint disable rule:indentation
|
||||
tls: {{- toYaml .Values.ingress.tls | nindent 4 }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
@@ -17,57 +17,55 @@ spec:
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
{{ toYaml .Values.metrics.podAnnotations | indent 8 }}
|
||||
annotations: {{- toYaml .Values.metrics.podAnnotations | nindent 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 }}
|
||||
{{- include "airflow.imagePullSecrets" . | nindent 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 }}
|
||||
- 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 | nindent 12 }}
|
||||
{{- end }}
|
||||
|
||||
@@ -12,9 +12,9 @@ metadata:
|
||||
spec:
|
||||
type: ClusterIP
|
||||
ports:
|
||||
- name: metrics
|
||||
port: 9112
|
||||
targetPort: metrics
|
||||
- name: metrics
|
||||
port: 9112
|
||||
targetPort: metrics
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "airflow.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
|
||||
@@ -38,171 +38,168 @@ spec:
|
||||
runAsUser: {{ .Values.securityContext.runAsUser }}
|
||||
{{- end }}
|
||||
{{- if .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{ toYaml .Values.nodeSelector | indent 8 }}
|
||||
nodeSelector: {{- toYaml .Values.nodeSelector | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.tolerations }}
|
||||
tolerations:
|
||||
{{ toYaml .Values.tolerations | indent 8 }}
|
||||
tolerations: {{- toYaml .Values.tolerations | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.affinity }}
|
||||
affinity:
|
||||
{{ toYaml .Values.affinity | indent 8 }}
|
||||
affinity: {{- toYaml .Values.affinity | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
initContainers:
|
||||
- name: git-clone-repository
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
git clone {{ .Values.airflow.cloneDagFilesFromGit.repository }} --branch {{ .Values.airflow.cloneDagFilesFromGit.branch }} /dags
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
- name: git-clone-repository
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
git clone {{ .Values.airflow.cloneDagFilesFromGit.repository }} --branch {{ .Values.airflow.cloneDagFilesFromGit.branch }} /dags
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
containers:
|
||||
- name: git-repo-syncer
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
while true; do
|
||||
cd /dags && git pull origin {{ .Values.airflow.cloneDagFilesFromGit.branch }}
|
||||
sleep {{ default "60" .Values.airflow.cloneDagFilesFromGit.interval }}
|
||||
done
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
- name: git-repo-syncer
|
||||
image: "{{ template "git.image" . }}"
|
||||
imagePullPolicy: {{ .Values.git.pullPolicy | quote }}
|
||||
command:
|
||||
- /bin/bash
|
||||
- -ec
|
||||
- |
|
||||
while true; do
|
||||
cd /dags && git pull origin {{ .Values.airflow.cloneDagFilesFromGit.branch }}
|
||||
sleep {{ default "60" .Values.airflow.cloneDagFilesFromGit.interval }}
|
||||
done
|
||||
volumeMounts:
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /dags
|
||||
{{- else }}
|
||||
containers:
|
||||
{{- end }}
|
||||
- name: airflow-worker
|
||||
image: "{{ template "airflow.workerImage" . }}"
|
||||
imagePullPolicy: "{{ .Values.workerImage.pullPolicy }}"
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 10 }}
|
||||
env:
|
||||
{{- if .Values.workerImage.debug }}
|
||||
- name: BASH_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_LOG_LEVEL
|
||||
value: "trace8"
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_NAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlDatabase }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.database | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_USERNAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlUsername }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.user | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_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
|
||||
- name: airflow-worker
|
||||
image: "{{ template "airflow.workerImage" . }}"
|
||||
imagePullPolicy: "{{ .Values.workerImage.pullPolicy }}"
|
||||
resources:
|
||||
{{ toYaml .Values.resources | indent 10 }}
|
||||
env:
|
||||
{{- if .Values.workerImage.debug }}
|
||||
- name: BASH_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_DEBUG
|
||||
value: "1"
|
||||
- name: NAMI_LOG_LEVEL
|
||||
value: "trace8"
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_HOST
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ template "airflow.postgresql.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.host | quote }}
|
||||
- name: AIRFLOW_DATABASE_NAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlDatabase }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.database | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_USERNAME
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ .Values.postgresql.postgresqlUsername }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.user | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_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_DATABASE_HOST
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: {{ template "airflow.postgresql.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.host | quote }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_PORT_NUMBER
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: "5432"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_HOST
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: {{ template "airflow.redis.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.host | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PORT_NUMBER
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: "6379"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
{{- if .Values.redis.enabled }}
|
||||
name: {{ template "airflow.redis.secretName" . }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
name: {{ printf "%s-%s" .Release.Name "externalredis" }}
|
||||
key: redis-password
|
||||
{{- end }}
|
||||
- name: AIRFLOW_EXECUTOR
|
||||
value: "CeleryExecutor"
|
||||
- name: AIRFLOW_FERNET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.airflow.auth.existingSecret }}{{ .Values.airflow.auth.existingSecret }}{{ else }}{{ template "airflow.fullname" . }}{{ end }}
|
||||
key: airflow-fernetKey
|
||||
- name: AIRFLOW_WEBSERVER_HOST
|
||||
value: {{ template "airflow.fullname" . }}
|
||||
{{- if .Values.airflow.extraEnvVars }}
|
||||
{{ toYaml .Values.airflow.extraEnvVars | nindent 8 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: worker
|
||||
containerPort: {{ .Values.airflow.worker.port }}
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
tcpSocket:
|
||||
port: worker
|
||||
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.livenessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
|
||||
{{- end }}
|
||||
- name: AIRFLOW_DATABASE_PORT_NUMBER
|
||||
{{- if .Values.postgresql.enabled }}
|
||||
value: "5432"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalDatabase.port | quote }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: worker
|
||||
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.readinessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
|
||||
{{- end }}
|
||||
- name: REDIS_HOST
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: {{ template "airflow.redis.fullname" . }}
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.host | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PORT_NUMBER
|
||||
{{- if .Values.redis.enabled }}
|
||||
value: "6379"
|
||||
{{- else }}
|
||||
value: {{ .Values.externalRedis.port | quote }}
|
||||
{{- end }}
|
||||
- name: REDIS_PASSWORD
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
{{- if .Values.redis.enabled }}
|
||||
name: {{ template "airflow.redis.secretName" . }}
|
||||
key: redis-password
|
||||
{{- else }}
|
||||
name: {{ printf "%s-%s" .Release.Name "externalredis" }}
|
||||
key: redis-password
|
||||
volumeMounts:
|
||||
{{- if .Files.Glob "files/dags/*.py" }}
|
||||
- name: local-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/local
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.dagsConfigMap }}
|
||||
- name: external-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/external
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/git
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.configurationConfigMap }}
|
||||
- name: custom-configuration-file
|
||||
mountPath: /opt/bitnami/airflow/airflow.cfg
|
||||
subPath: airflow.cfg
|
||||
{{- end }}
|
||||
- name: AIRFLOW_EXECUTOR
|
||||
value: "CeleryExecutor"
|
||||
- name: AIRFLOW_FERNET_KEY
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: {{ if .Values.airflow.auth.existingSecret }}{{ .Values.airflow.auth.existingSecret }}{{ else }}{{ template "airflow.fullname" . }}{{ end }}
|
||||
key: airflow-fernetKey
|
||||
- name: AIRFLOW_WEBSERVER_HOST
|
||||
value: {{ template "airflow.fullname" . }}
|
||||
{{- if .Values.airflow.extraEnvVars }}
|
||||
{{ toYaml .Values.airflow.extraEnvVars | nindent 8 }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: worker
|
||||
containerPort: {{ .Values.airflow.worker.port }}
|
||||
{{- if .Values.livenessProbe.enabled }}
|
||||
livenessProbe:
|
||||
tcpSocket:
|
||||
port: worker
|
||||
initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.livenessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.livenessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.livenessProbe.failureThreshold }}
|
||||
{{- end }}
|
||||
{{- if .Values.readinessProbe.enabled }}
|
||||
readinessProbe:
|
||||
tcpSocket:
|
||||
port: worker
|
||||
initialDelaySeconds: {{ .Values.readinessProbe.initialDelaySeconds }}
|
||||
periodSeconds: {{ .Values.readinessProbe.periodSeconds }}
|
||||
timeoutSeconds: {{ .Values.readinessProbe.timeoutSeconds }}
|
||||
successThreshold: {{ .Values.readinessProbe.successThreshold }}
|
||||
failureThreshold: {{ .Values.readinessProbe.failureThreshold }}
|
||||
{{- end }}
|
||||
volumeMounts:
|
||||
{{- if .Files.Glob "files/dags/*.py" }}
|
||||
- name: local-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/local
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.dagsConfigMap }}
|
||||
- name: external-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/external
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.cloneDagFilesFromGit.enabled }}
|
||||
- name: git-cloned-dag-files
|
||||
mountPath: /opt/bitnami/airflow/dags/git
|
||||
{{- end }}
|
||||
{{- if .Values.airflow.configurationConfigMap }}
|
||||
- name: custom-configuration-file
|
||||
mountPath: /opt/bitnami/airflow/airflow.cfg
|
||||
subPath: airflow.cfg
|
||||
{{- end }}
|
||||
volumes:
|
||||
{{- if .Files.Glob "files/dags/*.py" }}
|
||||
- name: local-dag-files
|
||||
|
||||
@@ -11,9 +11,9 @@ spec:
|
||||
type: ClusterIP
|
||||
clusterIP: None
|
||||
ports:
|
||||
- name: worker
|
||||
port: 8793
|
||||
targetPort: worker
|
||||
- name: worker
|
||||
port: 8793
|
||||
targetPort: worker
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "airflow.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
|
||||
@@ -19,12 +19,12 @@ spec:
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: http
|
||||
port: 8080
|
||||
{{- if and .Values.service.nodePort (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) }}
|
||||
nodePort: {{ .Values.service.nodePort }}
|
||||
{{- end }}
|
||||
targetPort: http
|
||||
- name: http
|
||||
port: 8080
|
||||
{{- if and .Values.service.nodePort (or (eq .Values.service.type "NodePort") (eq .Values.service.type "LoadBalancer")) }}
|
||||
nodePort: {{ .Values.service.nodePort }}
|
||||
{{- end }}
|
||||
targetPort: http
|
||||
selector:
|
||||
app.kubernetes.io/name: {{ include "airflow.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
|
||||
@@ -140,6 +140,17 @@ airflow:
|
||||
port: 8793
|
||||
replicas: 3
|
||||
|
||||
## All the parameters from the configuration file can be overwritten by using environment variables with this format:
|
||||
## AIRFLOW__{SECTION}__{KEY}. Note the double underscores. More info at https://airflow.readthedocs.io/en/stable/howto/set-config.html
|
||||
##
|
||||
# extraEnvVars:
|
||||
# - name: AIRFLOW__SMTP__SMTP_HOST
|
||||
# value: "localhost"
|
||||
# - name: AIRFLOW__SMTP__SMTP_PORT
|
||||
# value: "25"
|
||||
# - name: AIRFLOW__SMTP__USER
|
||||
# value: ""
|
||||
|
||||
auth:
|
||||
## Option to force users to specify a password. That is required for 'helm upgrade' to work properly.
|
||||
## If it is not forced, a random password will be generated.
|
||||
@@ -162,17 +173,6 @@ airflow:
|
||||
##
|
||||
# existingSecret:
|
||||
|
||||
## All the parameters from the configuration file can be overwritten by using environment variables with this format:
|
||||
## AIRFLOW__{SECTION}__{KEY}. Note the double underscores. More info at https://airflow.readthedocs.io/en/stable/howto/set-config.html
|
||||
##
|
||||
# extraEnvVars:
|
||||
# - name: AIRFLOW__SMTP__SMTP_HOST
|
||||
# value: "localhost"
|
||||
# - name: AIRFLOW__SMTP__SMTP_PORT
|
||||
# value: "25"
|
||||
# - name: AIRFLOW__SMTP__USER
|
||||
# value: ""
|
||||
|
||||
## Kubernetes Security Context
|
||||
## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
||||
##
|
||||
@@ -222,15 +222,15 @@ ingress:
|
||||
## The list of hostnames to be covered with this ingress record.
|
||||
## Most likely this will be just one host, but in the event more hosts are needed, this is an array
|
||||
hosts:
|
||||
- name: airflow.local
|
||||
path: /
|
||||
- name: airflow.local
|
||||
path: /
|
||||
|
||||
## The tls configuration for the ingress
|
||||
## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
|
||||
tls:
|
||||
- hosts:
|
||||
- airflow.local
|
||||
secretName: airflow.local-tls
|
||||
- hosts:
|
||||
- airflow.local
|
||||
secretName: airflow.local-tls
|
||||
|
||||
secrets:
|
||||
## If you're providing your own certificates, please use this to add the certificates as secrets
|
||||
@@ -298,7 +298,7 @@ readinessProbe:
|
||||
postgresql:
|
||||
enabled: true
|
||||
postgresqlUsername: bn_airflow
|
||||
#postgresqlPassword:
|
||||
# postgresqlPassword:
|
||||
postgresqlDatabase: bitnami_airflow
|
||||
|
||||
externalDatabase:
|
||||
@@ -349,10 +349,6 @@ metrics:
|
||||
# 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/
|
||||
##
|
||||
@@ -363,5 +359,8 @@ metrics:
|
||||
# tolerations: []
|
||||
|
||||
## Metrics exporter pod Annotation and Labels
|
||||
# podAnnotations: {}
|
||||
# podLabels: {}
|
||||
|
||||
podAnnotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "9112"
|
||||
|
||||
+22
-22
@@ -140,6 +140,17 @@ airflow:
|
||||
port: 8793
|
||||
replicas: 1
|
||||
|
||||
## All the parameters from the configuration file can be overwritten by using environment variables with this format:
|
||||
## AIRFLOW__{SECTION}__{KEY}. Note the double underscores. More info at https://airflow.readthedocs.io/en/stable/howto/set-config.html
|
||||
##
|
||||
# extraEnvVars:
|
||||
# - name: AIRFLOW__SMTP__SMTP_HOST
|
||||
# value: "localhost"
|
||||
# - name: AIRFLOW__SMTP__SMTP_PORT
|
||||
# value: "25"
|
||||
# - name: AIRFLOW__SMTP__USER
|
||||
# value: ""
|
||||
|
||||
auth:
|
||||
## Option to force users to specify a password. That is required for 'helm upgrade' to work properly.
|
||||
## If it is not forced, a random password will be generated.
|
||||
@@ -162,17 +173,6 @@ airflow:
|
||||
##
|
||||
# existingSecret:
|
||||
|
||||
## All the parameters from the configuration file can be overwritten by using environment variables with this format:
|
||||
## AIRFLOW__{SECTION}__{KEY}. Note the double underscores. More info at https://airflow.readthedocs.io/en/stable/howto/set-config.html
|
||||
##
|
||||
# extraEnvVars:
|
||||
# - name: AIRFLOW__SMTP__SMTP_HOST
|
||||
# value: "localhost"
|
||||
# - name: AIRFLOW__SMTP__SMTP_PORT
|
||||
# value: "25"
|
||||
# - name: AIRFLOW__SMTP__USER
|
||||
# value: ""
|
||||
|
||||
## Kubernetes Security Context
|
||||
## https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
||||
##
|
||||
@@ -222,15 +222,15 @@ ingress:
|
||||
## The list of hostnames to be covered with this ingress record.
|
||||
## Most likely this will be just one host, but in the event more hosts are needed, this is an array
|
||||
hosts:
|
||||
- name: airflow.local
|
||||
path: /
|
||||
- name: airflow.local
|
||||
path: /
|
||||
|
||||
## The tls configuration for the ingress
|
||||
## see: https://kubernetes.io/docs/concepts/services-networking/ingress/#tls
|
||||
tls:
|
||||
- hosts:
|
||||
- airflow.local
|
||||
secretName: airflow.local-tls
|
||||
- hosts:
|
||||
- airflow.local
|
||||
secretName: airflow.local-tls
|
||||
|
||||
secrets:
|
||||
## If you're providing your own certificates, please use this to add the certificates as secrets
|
||||
@@ -298,7 +298,7 @@ readinessProbe:
|
||||
postgresql:
|
||||
enabled: true
|
||||
postgresqlUsername: bn_airflow
|
||||
#postgresqlPassword:
|
||||
# postgresqlPassword:
|
||||
postgresqlDatabase: bitnami_airflow
|
||||
|
||||
externalDatabase:
|
||||
@@ -349,10 +349,6 @@ metrics:
|
||||
# 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/
|
||||
##
|
||||
@@ -363,5 +359,9 @@ metrics:
|
||||
# tolerations: []
|
||||
|
||||
## Metrics exporter pod Annotation and Labels
|
||||
# podAnnotations: {}
|
||||
# podLabels: {}
|
||||
|
||||
podAnnotations:
|
||||
prometheus.io/scrape: "true"
|
||||
prometheus.io/port: "9112"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user