主题
ApplicationSet
定义
ApplicationSet 控制器是一个 Kubernetes 控制器,它增加了对 ApplicationSet 自定义资源定义 (CRD) 的支持。
该控制器/CRD 能够实现:
- 跨大量集群管理 Argo CD 应用程序
- 单体仓库管理
- 更高的灵活性和自动化程度
核心功能
| 功能 | 说明 |
|---|---|
| 🚀 多集群管理 | 使用单个 Kubernetes 清单定位多个集群 |
| 📦 多应用部署 | 从一个或多个 Git 仓库部署多个应用 |
| 🏗️ 单体仓库支持 | 单个仓库中定义多个 Application 资源 |
| 👥 多租户友好 | 租户无需管理员权限即可部署 |
生成器类型
1. 列表生成器
根据固定的集群名称/URL 列表生成参数
2. 集群生成器
根据 Argo CD 中定义的集群自动生成参数
3. Git 生成器
根据 Git 仓库中的文件或文件夹生成参数
4. 矩阵生成器
组合另外两个生成器的参数
快速开始
yaml
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: example
spec:
generators:
- list:
elements:
- cluster: dev
url: https://kubernetes.default.svc
template:
metadata:
name: '{{cluster}}-app'
spec:
project: default
source:
repoURL: https://github.com/example/repo.git
path: app
destination:
server: '{{url}}'
namespace: default