git - 是否有其他方法可以使用 GitSync 将 DAG 从私有(private)存储库挂载到 Kubernetes 上的 Airflow,而无需使用 SSH key ?

标签 git github kubernetes airflow git-sync

我在 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/

相关文章:

nginx - 无法通过 nginx-ingress-controller 访问 Kubernetes ClusterIP 服务

git - 从远程开发分支创建本地分支

Git commit --amend merge 两个提交

git - `docker build` 根据安装顺序挂起

javascript - Github 贡献图

github - github上的"Merge with caution"

ruby-on-rails - 通过 Nginx 代理时使用 OmniAuth 时出现 CallbackError

docker - 用于执行Pod的模式在该Pod中具有来自容器的标签

Kubernetes 中的 Azure DevOps 构建代理

git - 如何从本地存储库恢复源