添加连接、变量和环境变量

您可以使用 Helm 图表以编程方式将连接、变量和任意环境变量添加到您的 Airflow 部署中。

连接和敏感环境变量

values.yaml 文件的 secretextraSecret 部分下,您可以使用 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"

如果需要对名称或值进行模板化,您还可以使用 extraEnvextraEnvFrom

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!"

此条目有帮助吗?