添加连接、变量和环境变量¶
您可以使用 Helm chart 以编程方式向 Airflow 部署添加连接、变量和任意环境变量。
连接和敏感环境变量¶
在 values.yaml
的 secret
和 extraSecret
部分下,您可以使用 Helm chart 将连接字符串和敏感环境变量传递到 Airflow 中。为了说明这一点,让我们创建一个名为 override.yaml
的 yaml 文件,以覆盖 values.yaml
文件中这些部分下的值。
# override.yaml
secret:
- envName: "AIRFLOW_CONN_GCP"
secretName: "my-airflow-connections"
secretKey: "AIRFLOW_CONN_GCP"
- envName: "my-env"
secretName: "my-secret-name"
secretKey: "my-secret-key"
extraSecrets:
my-airflow-connections:
data: |
AIRFLOW_CONN_GCP: 'base64_encoded_gcp_conn_string'
my-secret-name:
stringData: |
my-secret-key: my-secret
变量¶
Airflow 支持变量,使用户能够创建动态 DAG。您可以通过三种方式在 Airflow 中设置变量 - UI,命令行和 DAG 文件中。有关更多信息,请参阅 管理变量。
使用 Helm chart,您还可以将环境变量注入到 Airflow 中。因此,在示例 override.yaml
文件中,我们可以覆盖 values.yaml
文件中 env
部分中感兴趣的值。
env:
- name: "AIRFLOW_VAR_KEY"
value: "value_1"
- name: "AIRFLOW_VAR_ANOTHER_KEY"
value: "value_2"
如果需要对名称或值进行模板化,您还可以使用 extraEnv
和 extraEnvFrom
。
extraEnv: |
- name: AIRFLOW_VAR_HELM_RELEASE_NAME
value: '{{ .Release.Name }}'
extraEnvFrom: |
- configMapRef:
name: '{{ .Release.Name }}-airflow-variables'
extraConfigMaps:
'{{ .Release.Name }}-airflow-variables':
data: |
AIRFLOW_VAR_HELLO_MESSAGE: "Hi!"