You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否通过ApplicationSet为Git仓库递归新增的子文件夹创建应用?

问题描述

我的Git源仓库初始目录结构如下:

K8s-envs/
├── Dev
├── Int
├── Preprod
└── Prod

目前我通过List Generator基于上述结构创建了4个对应环境的Argo CD应用。现在想知道:能否通过ApplicationSet,为这些环境文件夹下递归新增的子文件夹自动创建新的应用?比如目录结构变为:

K8s-envs/
├── Dev
│       ├── sub-folder1
│       ├── sub-folder2
│       └── sub-folder3
├── Int
│       ├── sub-folder1
│       ├── sub-folder2
│       └── sub-folder3
├── Preprod
│       ├── sub-folder1
│       ├── sub-folder2
│       └── sub-folder3
└── Prod
        ├── sub-folder1
        ├── sub-folder2
        └── sub-folder3
解决方案

完全可以实现,你需要改用Git Generator(而非原有的List Generator),并配置递归扫描目录的规则,让ApplicationSet自动识别新增的子文件夹并生成对应应用。

核心配置要点

  • 使用git类型的generator,指定你的仓库地址和分支
  • 开启directories模式,设置recurse: true来递归扫描子目录
  • 通过path过滤只扫描K8s-envs/下的环境目录及其子目录
  • 在template中引用生成的变量(比如{{path.basename}}、{{path}})来动态设置应用名称、源路径等

示例配置

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: env-subfolder-apps
spec:
  generators:
  - git:
      repoURL: <你的Git仓库地址>
      revision: main
      directories:
      - path: K8s-envs/*/*  # 匹配一级环境目录下的所有子文件夹
        recurse: true       # 开启递归,支持更深层的子目录(如果需要)
      # 若要同时保留原有的环境级应用,可再添加一个匹配K8s-envs/*的规则
      - path: K8s-envs/*
  template:
    metadata:
      name: '{{path.basename}}-app'  # 用子文件夹名称作为应用名后缀
    spec:
      project: default
      source:
        repoURL: <你的Git仓库地址>
        targetRevision: main
        path: '{{path}}'  # 指向扫描到的目录路径
      destination:
        server: 'https://kubernetes.default.svc'
        namespace: '{{path.split("/")[1]}}'  # 用环境名(Dev/Int等)作为目标命名空间
      syncPolicy:
        automated:
          prune: true
          selfHeal: true

说明

  1. 上述配置会同时生成两类应用:原有的环境级(如Dev、Int)和子文件夹级(如Dev-sub-folder1),如果不需要环境级应用,可删除- path: K8s-envs/*这一条规则
  2. path的匹配规则支持通配符,K8s-envs/*/*会匹配所有一级环境目录下的直接子目录,若需要支持更深层级(比如sub-folder1下再建子目录),保持recurse: true即可,或者调整path为K8s-envs/**
  3. 模板中的变量可根据你的实际需求调整,比如命名空间、应用名称的格式等

内容的提问来源于stack exchange,提问作者devops_dummy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 15:11:00