新增連線、變數和環境變數

您可以使用 Helm chart 以程式設計方式向您的 Airflow 部署新增連線、變數和任意環境變數。

連線和敏感環境變數

values.yaml 檔案的 secretextraSecret 部分下,您可以使用 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 支援變數 (Variables),使用者可以使用它們建立動態 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"

如果需要對名稱或值進行模板化處理,您還可以使用 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!"

此條目是否有幫助?