核心概念
argocd架构示意图

以下argocd概念需要具有Git、Docker、Kubernetes、Continuous Delivery和GitOps相关背景
Application(应用): 基于Kubernetes CRD定义的一组Kubernetes资源清单- 应用数据源类型: 构建应用的工具类型(
helm等) - 目标状态: 描述应用的期望状态(如副本数、配额、调度等),由
git仓库内的应用清单文件描述 - 活动状态: 描述应用的活动状态(如副本数、配额、调度、探针状态等)
- 同步状态: 描述应用活动状态与目标状态同步情况(是否一致)
- 同步: 一个动作,使应用程序(集群内)与目标状态(
git仓库清单文件描述)达成一致 - 同步操作执行的状态: 描述同步动作是否成功
- 刷新: 对比
git仓库内的应用目标状态与活动状态,指出不同之处 - 健康状态: 描述应用程序是否运行正常,可以对外提供服务
- 工具: 创建应用程序清单描述文件的工具(如
helm、Kustomize)
Argo CD中项目是什么?
项目提供了应用程序的逻辑分组,这在Argo CD被多个团队使用时非常有用。项目提供以下特性:
- 限制部署的内容(如可
Git源代码库) - 限制应用部署的位置(目标
k8s集群和命名空间) - 限制可部署或不可部署的对象类型(例如
RBAC、CRDs、daemonset、NetworkPolicy等) - 定义项目角色以提供应用程序
RBAC(绑定到OIDC组和/或JWT令牌)
关于默认项目
每个应用程序都属于一个项目。如果未指定,应用程序属于默认项目,该项目是自动创建的,
默认情况下允许从任何源repo部署到任何集群,以及所有资源类型。
默认业务群组只能被修改,不能被删除。最初创建时,它的规范声明如下:
spec:
sourceRepos:
- '*'
destinations:
- namespace: '*'
server: '*'
clusterResourceWhitelist:
- group: '*'
kind: '*'