Application CRD的spec字段主要嵌套如下几个字段
◼ source <object>:配置仓库及相关的配置访问及使用方法;支持如下几种类型
◆Kubernetes原生资源配置:直接于配置仓库中获取目标资源配置清单
◆Helm:由chart字段拇要使用的chart,由helm字段指定在chart上使用的自定义配置
◆Kustomize:由kustomize字段进行定义;
◆Jsonnet:由directory字段进行定义;
Repository URL:输入你的配置仓库
HEAD: 更新你仓库分支的最新的版本
path:输入你仓库yaml文件的绝对路径
◼ destination <object>:应用程序要部署到的目标位置
◆server:目标Kubernetes集群的API Server访问入口
◆namespace:目标名称空间
◼ syncPolicy <object>:同步策略,可选字段
◆automated <object>
Prune Resource(自动修剪):集群上某个资源在GitRepo中找不到对应的配置时,自动删除集群上的该资源
Self Heal(自愈):因各种原因(如手动修改)集群上资源的实时状态而导致与GitRepo不匹配时,自动将实 际状态与GitRepo的期望状态同步;
注意:
1、自动同步仅发生在应用处于OutOfSync状态时,ArgoCD并不会对处于Synced或Error状态的Application执行自动同步;
2、对于GitRepo上的一次提交,自动同步仅会执行一次,除非同时启 用Self-Heal机制;
3、启用了自动同步的Application不支持RollBack;
◼ syncOptions <[]string>
SKIP SCHEMA VALIDATION:是否执行资源规范格式的校验,相当于“kubectl apply --validate={true|false}”,默认为true
PRUNE LAST: 在同步操作的最后再执行修剪操作,即其它资源已经部署且转为健康状态后再进行Prune
RESPECT IGNORE DIFFERENCES: 在同步阶段忽略期望状态的字段
AUTO-CREATE NAMESPACE: 自动创建命名空间
APPLY OUT OF SYNC ONLY:仅对那些处于OutOfSync状态的资源执行同步操作
PRUNE PROPAGATION POLICY: 资源修剪传播策略,默认使用foreground策略,即前台执行
◼ retry <object>
状态:
◼ Sync Status:Application的实际状态与Git Repo中定义的期望状态是否一致;
◆Synced:一致
◆OutOfSync:不一致
◼ Health Status:Application的健康状态,是各资源的健康状态的聚合信息
◆Healthy:健康
◆Processing:处于尝试转为健康状态的进程中
◆Degraded:降级,部分资源不健康
◆Missing:缺失,即在GitRepo中存在资源定义,但并未完成部署