<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>app-of-apps on </title>
    <link>/tags/app-of-apps/</link>
    <description>Recent content in app-of-apps on </description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Thu, 16 Jul 2026 20:00:00 +0800</lastBuildDate><atom:link href="/tags/app-of-apps/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ArgoCD 应用组织方式的选择和权衡：App-of-Apps 与 ApplicationSet 的实践对比</title>
      <link>/posts/argocd-app-organization-patterns/</link>
      <pubDate>Thu, 16 Jul 2026 20:00:00 +0800</pubDate>
      
      <guid>/posts/argocd-app-organization-patterns/</guid>
      <description>背景 我手上有几个走 GitOps 的 K8s 集群，ArgoCD 是它们唯一的部署入口。随着集群里部署的应用越来越多、环境越分越细，一个绕不开的问题出现了：ArgoCD 里那些 Application YAML，应该怎么组织？
这个问题的答案没有标准模板——ArgoCD 官方文档同时提供了 App-of-Apps 和 ApplicationSet 两种主流模式，社区还有一些混合变体。但我发现不少人在选型时会忽略一个前提：不同模式的优劣取决于你的集群拓扑、团队规模和应用结构。选错了，小则样板文件膨胀，大则每一次改动都牵一发动全身。
ArgoCD 的 Cluster Bootstrapping 文档里，ApplicationSet 配合 Cluster labels 是官方推荐的模式，App-of-Apps 被列为 alternative。这次要整理的正是这些官方文本没有深入展开的取舍过程。
这篇基于我接手过的几套 ArgoCD 架构做一次对比整理（我写这篇时 ArgoCD 最新稳定版为 v2.14.7，以下讨论的内容在该版本下验证通过）。三套架构对应三种典型场景：
场景 关键特征 个人项目 一个 ArgoCD 管两个异构集群，应用类型混杂，单人维护 团队项目 三个同构环境（dev/qa/stg），纯 Helm 应用，多人协作 混合 以上两者兼有——多集群且多环境，团队按领域分工 下面先看每种模式的实操面貌，最后汇总成一张决策表。
模式一：App-of-Apps（扁平显式） 这是 ArgoCD 文档最早推荐的模式。核心思路是：一个 root Application 监视某个 Git 目录，目录下每个 YAML 文件对应一个子 Application。
root (Application) └─ argocd/applications/*.yaml（排除 root.yaml） ├── loki.yaml # multi-source: remote chart + local values ├── kyverno.</description>
    </item>
    
  </channel>
</rss>
