我在 Kubernetes 上有一个 Airflow 环境 (v2.4.3),我想将其与私有(private) git 存储库同步,以便我对主分支中的 DAG 所做的任何更改都会被我的 Airflow 环境自动获取。
根据Airflow documentation ,我可以使用 Git-sync sidecar 以及添加到我的私有(private) git 存储库和 Airflow env 中的 SSH key 来使其工作。
但是,鉴于我不断创建新的私有(private)存储库和 Airflow 环境,我想知道是否有一种更简单的方法将我的私有(private) git 存储库连接到各自的 Airflow 环境。
如果我有一个 web 应用程序管理我的 Airflow 环境,并且在登录我的帐户(或任何其他 git 服务)后可以从 Github 访问 OAuth token ,我可以使用它来连接我的 Airflow 环境并将更改同步到任何 git我在我的帐户下选择的存储库?
最佳答案
我能够弄清楚。
可以使用personal access tokens作为私有(private)存储库所在的任何 git 服务提供的密码以及存储库的用户名。
我刚刚将个人访问 token 作为不透明 secret 存储在我的 Airflow K8s 集群中,并在我的 git-sync sidecar container yaml 中引用了它。我将其包含在 Airflow yaml 部署定义中。
containers:
- name: git-sync
image: registry.k8s.io/git-sync/git-sync:v3.6.5
args:
- "-wait=60"
- "-repo=<repo>"
- "-branch=master"
- "-root=/opt/airflow/dags"
- "-username=<username>"
- "-password-file=/etc/git-secret/token"
volumeMounts:
- name: git-secret
mountPath: /etc/git-secret
readOnly: true
- name: dags-data
mountPath: /opt/airflow/dags
volumes:
- name: dags-data
emptyDir: {}
- name: git-secret
secret:
secretName: github-token
关于git - 是否有其他方法可以使用 GitSync 将 DAG 从私有(private)存储库挂载到 Kubernetes 上的 Airflow,而无需使用 SSH key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75963166/