新增連線、變數和環境變數¶
您可以使用 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 支援變數 (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"
如果需要對名稱或值進行模板化處理,您還可以使用 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!"