airflow 如何使用 git sync 从 git 分支的 dag 文件夹中获取 dags

问题描述 投票:0回答:2

我的公司使用

git-sync
将压缩的 dags 同步到气流。我们使用气流舵图来部署气流。我想知道我是否可以让气流只拾取特定文件夹中的压缩包,例如 git 分支中的
dags-dev
,而不是所有压缩包?

这里有一些参考可能有用。

气流舵图值文件。 https://github.com/helm/charts/blob/master/stable/airflow/values.yaml

我们的 dags 代码如下所示:

dags:
      doNotPickle: true
      git:
        url: <git url>
        ref: master
        gitSync:
          enabled: true
          image:
            repository: <some repo>
            tag: 1.0.7
          refreshTime: 60
      initContainer:
        enabled: true
        image:
          repository: <some repo>
          tag: 1.0.7

Airflow git 同步配置如下所示:

AIRFLOW__KUBERNETES__DAGS_VOLUME_SUBPATH: repo # must match AIRFLOW__KUBERNETES__GIT_SUBPATH
AIRFLOW__KUBERNETES__GIT_REPO: <git repo>
AIRFLOW__KUBERNETES__GIT_BRANCH: master
AIRFLOW__KUBERNETES__GIT_DAGS_FOLDER_MOUNT_POINT: /opt/airflow/dags
AIRFLOW__KUBERNETES__GIT_USER: <some user>
AIRFLOW__KUBERNETES__GIT_PASSWORD: <some password>
AIRFLOW__KUBERNETES__GIT_SYNC_CONTAINER_REPOSITORY: gitlab.beno.ai:4567/eng/external-images/k8s.gcr.io/git-sync
AIRFLOW__KUBERNETES__GIT_SYNC_CONTAINER_TAG: v3.1.1
git airflow kubernetes-helm
2个回答
0
投票

您可以定义要忽略的文件夹/文件列表,使用

.airflowignore
文件

https://airflow.apache.org/docs/apache-airflow/stable/concepts.html#airflowignore


0
投票

这个实现好像不支持git subpath,另外如果你看subpath方法后面,有一个git clone,然后是目录过滤。作为 git 用于部分克隆的新功能,git-sparse-checkout 仍处于试验阶段。

因此,一种解决方案是利用 dags-path 指向存储库中的子目录。

###################################
# Airflow - DAGs Configs
###################################
dags:
  ## the airflow dags folder
  ##
  path: /opt/airflow/dags/repo/dir

注意:我建议从这个转移到生产工作负载的任何其他维护的气流实施,因为它现在已存档并且将不再打补丁。

这里是 bitnami/airflow 所需选项的示例

# bitnami airflow helm values.yaml reference
repositories:
  - repository: https://gitlab.com/repo.git
    ## Branch from repository to checkout
    ##
    branch: "master"
    ## An unique identifier for repository, must be unique for each repository
    ##
    name: "dags"
    ## Path to a folder in the repository containing the dags
    ##
    path: ""
© www.soinside.com 2019 - 2024. All rights reserved.