Skip to content

Generating Applications with ApplicationSet

利用应用程序集控制器自动生成 Argo CD 应用程序

应用程序集控制器是 Argo CD 增加应用程序自动化的一部分,旨在改进 Argo CD 中的多集群支持和集群多租户支持。Argo CD 应用程序可从多个不同来源(包括 Git 或 Argo CD 自己定义的集群列表)进行模板化。

ApplicationSet 控制器提供的工具集还可用于允许开发人员(无法访问 Argo CD 名称空间)在没有集群管理员干预的情况下独立创建应用程序。

警告 请注意安全影响在允许开发人员通过 ApplicationSets 创建应用程序之前。

ApplicationSet 控制器与 Argo CD 同时安装(在同一 namespace 中),控制器会根据新的ApplicationSet自定义资源 (CR)。

下面是一个例子ApplicationSet资源,可用于将 Argo CD 应用程序引用到多个集群:

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: guestbook
spec:
  generators:
  - list:
      elements:
      - cluster: engineering-dev
        url: https://1.2.3.4
      - cluster: engineering-prod
        url: https://2.4.6.8
      - cluster: finance-preprod
        url: https://9.8.7.6
  template:
    metadata:
      name: '{{cluster}}-guestbook'
    spec:
      project: default
      source:
        repoURL: https://github.com/argoproj/argo-cd.git
        targetRevision: HEAD
        path: applicationset/examples/list-generator/guestbook/{{cluster}}
      destination:
        server: '{{url}}'
        namespace: guestbook

列表生成器会将urlcluster字段作为{{param}}-样式的参数,然后将其呈现为三个相应的 Argo CD 应用程序(每个已定义的集群一个)。 瞄准新集群(或移除现有集群)只需更改ApplicationSet资源,并自动创建相应的 Argo CD 应用程序。

同样,对 ApplicationSettemplate因此,管理一组多个 Argo CD 应用程序就像管理单个应用程序一样简单。

在 ApplicationSet 中,除了列表生成器外,还有其他功能更强大的生成器,包括集群生成器(自动使用 Argo CD 定义的集群来制作应用程序模板)和 Git 生成器(使用 Git 仓库的文件/目录来制作应用程序模板)。

要了解有关 ApplicationSet 控制器的更多信息,请查阅应用程序集文档与 Argo CD 一起安装 ApplicationSet 控制器。

注:**开始v2.3在 Argo CD 中,我们不需要单独安装 ApplicationSet Controller,而是将其作为 Argo CD 安装的一部分。