跳转到内容

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

基于 MIT 许可发布