添加连接、变量和环境变量¶
您可以使用 Helm 图表以编程方式将连接、变量和任意环境变量添加到您的 Airflow 部署中。
连接和敏感环境变量¶
在 values.yaml
文件的 secret
和 extraSecret
部分下,您可以使用 Helm 图表将连接字符串和敏感环境变量传递到 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 图表,您还可以将环境变量注入到 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!"