【架构设计和各模块功能】
addon-manager:publish 平台的 http 后台模块,使用 Gin 框架,定义了 创建发布单、创建变更审批单、拉取集群列表、拉取组件列表、发布、回滚、变更分发等核心流程的API;
addon-frontend:前端控制台;
task-manager:publish 平台的实际变更动作下发模块,使用 k8s operator 框架,watch 集群的 task-crd资源,并执行变更、发布前检查、后置检查、发布调度动作;
task-crd:包含了一次发布动作中所需要的信息(分批灰度、调度策略、发布通道信息);
ops-center:publish 平台的资源注册模块,与组件管理中心底座kube-apiserver集成,提供相关 crd 自动管控能力,将所有集群相关的云上资源(cluster、nodepool、vpc、subnet、tps)全部 crd 化,由 ops-center 统一管理,并且实时 watch,调用 yunapi 完成资源生命周期管理;
argo-cd:argo是开源的cd方案,以Application CRD的方式来抽象云原