0

我正在kind使用以下命令安装 Airflow:

export RELEASE_NAME=first-release
export NAMESPACE=airflow

helm install $RELEASE_NAME apache-airflow/airflow --namespace $NAMESPACE \
    --set images.airflow.repository=my-dags \
    --set images.airflow.tag=0.0.1 \
    --values env.yaml

文件env.yaml如下所示:

env:
  - name: "AIRFLOW_VAR_KEY"
    value: "value_1"

但是从 Web UI(当我转到 Admins --> Variables 时),这些凭据不会出​​现在那里。

我如何在 期间传递这些凭据helm install?谢谢!

更新:原来环境变量设置成功。但是它不会显示在 Web UI 上

4

2 回答 2

0

好的,所以我想出了这一点:环境变量在 pod 上设置得很好。但是,这不会出现在 Web UI 上。

解决方法:为了让它出现在 Web UI 中,我必须进入 Scheduler pod 并导入变量。可以使用 bash 脚本来完成。

# Get the name of scheduler pod
export SCHEDULER_POD_NAME="$(kubectl get pods --no-headers -o custom-columns=":metadata.name" -n airflow | grep scheduler)"
# Copy variables to the scheduler pod
kubectl cp ./variables.json airflow/$SCHEDULER_POD_NAME:./
# Import variables to scheduler with airflow command
kubectl -n $NAMESPACE exec $SCHEDULER_POD_NAME -- airflow variables import variables.json
于 2021-12-09T07:21:32.103 回答
0

我不确定您的完整env.yaml文件如何

但是要在 Airflow 中设置环境变量

## environment variables for the web/scheduler/worker Pods (for airflow configs)
  ##
  ## WARNING:
  ## - don't include sensitive variables in here, instead make use of `airflow.extraEnv` with Secrets
  ## - don't specify `AIRFLOW__CORE__SQL_ALCHEMY_CONN`, `AIRFLOW__CELERY__RESULT_BACKEND`,
  ##   or `AIRFLOW__CELERY__BROKER_URL`, they are dynamically created from chart values
  ##
  ## NOTE:
  ## - airflow allows environment configs to be set as environment variables
  ## - they take the form: AIRFLOW__<section>__<key>
  ## - see the Airflow documentation: https://airflow.apache.org/docs/stable/howto/set-config.html
  ##
  ## EXAMPLE:
  ##   config:
  ##     ## Security
  ##     AIRFLOW__CORE__SECURE_MODE: "True"
  ##     AIRFLOW__API__AUTH_BACKEND: "airflow.api.auth.backend.deny_all"

参考文件

然后你必须运行你的命令,然后你的DAG将能够访问变量。

Helm 文档:https ://github.com/helm/charts/tree/master/stable/airflow#docs-airflow---configs

确保您正在配置部分:airflow.config

于 2021-12-07T11:47:37.700 回答