ACP release-4.3 Core 裁剪方案
历史基线参考
ACP release-4.3 Core 裁剪方案 —— 终态
数据源:
alauda/artifacts.git@release-4.3(ccec0e57/v4.3.0-156-gccec0e57),wiki 渲染快照2026-05-03。版本基线:基线建立于 ACP 4.3,落地目标版本为 ACP 4.4(见 ROADMAP S4)。
裁剪目标:多集群 + 应用市场(仅 operator)+ 用户权限,CNI 只留 kube-ovn,访问入口由 ALB 兜底,HA 由 alive 兜底,全部前端及 Helm 市场组件移除。
一、概要
| 指标 | 裁剪前 | 裁剪后 |
|---|---|---|
| Core 插件数 | 24 | 14(−10) |
| 去重 Harbor 仓库数 | 124 | 56(−68,约 −55%) |
含前端镜像(frontend/*) | 13 | 0 |
| 含 Helm 市场组件(captain + chartmuseum) | 2 | 0 |
| 含 calico CNI | 6 | 0 |
二、保留的 14 个插件(终态 artifacts.yaml 应包含的仓库)
bootstrap / 平台底座
1. sentry —— Installer(Helm AppRelease 控制器,全保留)
ait/chart-sentryait/sentryait/imagepulljob-base
2. base —— Cluster Base(删 2 个)
ait/chart-baseait/chart-base-initait/cluster-api-controller3rdparty/kubectl
3. base-central —— Central Base(删 4 个前端)
ait/chart-base-centralait/chart-base-operatorait/base-apiait/base-operatorait/cluster-transformer— 多集群扇出控制器ait/erebus— 多集群 API 代理ait/operator-toolsait/underlord3rdparty/kubectlops/alpine
4. platform-registry —— Internal Registry(全保留)
ait/chart-platform-registryait/platform-registry-installerait/registryait/registry-authacp/minio-plt
用户权限(auth)
5. auth-manager-central —— global IAM(删 3 个前端)
ait/chart-auth-manager-centralait/apollo3rdparty/kubectlops/alpine
6. auth-manager —— 业务集群 RBAC 投影(全保留)
ait/chart-auth-managerait/auth-controller23rdparty/kubectl
应用市场(仅 OLM)
7. marketplace —— 集群级 OLM(全保留)
ait/chart-marketplaceait/marketplaceait/olm-registry3rdparty/operator-framework/olm3rdparty/kubectl
8. marketplace-central —— 中央 OLM 视图(删 3 个:captain + chartmuseum + 前端)
ait/chart-marketplace-centralait/marketplaceacp/updater-manager3rdparty/kubectl
多集群
9. cluster-manager —— CAPI Alauda Provider(删 1 个:image-loader)
ait/chart-cluster-api-provider-alaudaait/capi-provider-alauda-apiserviceait/capi-provider-alauda-managerait/cri-containerdait/kube-nodetkestack/etcdtkestack/kube-apiservertkestack/kube-controller-managertkestack/kube-proxytkestack/kube-schedulertkestack/pause3rdparty/kubectl
网络与访问入口
10. kube-ovn —— CNI(全保留)
acp/chart-cpaas-kube-ovnacp/kube-ovn
11. coredns —— 集群 DNS(全保留)
ait/chart-corednstkestack/coredns
12. alb —— 默认 Ingress + Gateway API 实现(全保留)
acp/chart-alauda-alb2acp/alb2acp/alb-nginx
13. alive —— kube-apiserver VIP / HA(全保留)
acp/chart-alivetkestack/keepalivedtkestack/keepalived-installer
证书
14. cert-manager —— TLS / mTLS 签发(全保留)
3rdparty/chart-cert-manager3rdparty/cert-manager-cainjector3rdparty/cert-manager-controller3rdparty/cert-manager-webhook
三、整体移除的 10 个插件
| 插件 | 原仓库数 | 移除理由 |
|---|---|---|
container-platform | 8 | global 业务 UI(icarus + cyclops + 4 个 frontend),整个就是前端 |
acp-business | 9 | 业务集群 ACP CRD/admission/CSI sidecar/container-debug;不在保留功能内 |
prometheus | 16 | 观测监控,不在保留功能内 |
aiops-base | 5 | AIOps 告警/通知 + ops-core 前端 |
ingress-nginx-operator | 4 | ALB 已覆盖 Ingress |
envoy-gateway-operator | 5 | ALB 已覆盖 Gateway API |
gatewayapi-plugin | 3 | 含前端 + 高级 Gateway server,不在保留功能内 |
calico | 6 | CNI 只保留 kube-ovn |
i18n-zh | 2 | 纯前端中文资源 |
image-registry | 6 | 业务集群对外 registry,不在保留功能内(平台自身用 platform-registry) |
四、保留插件中删除的 12 个组件(diff 表)
| 插件 | 删除组件 | 理由 |
|---|---|---|
base | alauda/alauda-console | 控制台 SPA 后端 |
base | ait/image-loader | 前端资源投递 sidecar |
base-central | frontend/portal | Angular 控制台壳 |
base-central | frontend/chart-frontend | 前端总 chart |
base-central | frontend/assets | 前端静态资源 |
base-central | frontend/i18n | 前端 i18n |
auth-manager-central | frontend/console-dex | 登录 UI |
auth-manager-central | frontend/console-project | 项目管理 UI |
auth-manager-central | frontend/user-plugin | 用户管理 UI |
marketplace-central | acp/captain | 多集群 Helm 控制器 |
marketplace-central | 3rdparty/chartmuseum | Helm chart 仓库 |
marketplace-central | frontend/app-market-plugin | 应用市场前端 |
cluster-manager | ait/image-loader | 前端资源投递 sidecar |
五、保留的 56 个唯一 Harbor 仓库(按命名空间)
acp/ — 8 个
acp/alb-nginx、acp/alb2、acp/chart-alauda-alb2、acp/chart-alive、acp/chart-cpaas-kube-ovn、acp/kube-ovn、acp/minio-plt、acp/updater-manager
ait/ — 32 个
ait/apollo、ait/auth-controller2、ait/base-api、ait/base-operator、ait/capi-provider-alauda-apiservice、ait/capi-provider-alauda-manager、ait/chart-auth-manager、ait/chart-auth-manager-central、ait/chart-base、ait/chart-base-central、ait/chart-base-init、ait/chart-base-operator、ait/chart-cluster-api-provider-alauda、ait/chart-coredns、ait/chart-marketplace、ait/chart-marketplace-central、ait/chart-platform-registry、ait/chart-sentry、ait/cluster-api-controller、ait/cluster-transformer、ait/cri-containerd、ait/erebus、ait/imagepulljob-base、ait/kube-node、ait/marketplace、ait/olm-registry、ait/operator-tools、ait/platform-registry-installer、ait/registry、ait/registry-auth、ait/sentry、ait/underlord
tkestack/ — 9 个
tkestack/coredns、tkestack/etcd、tkestack/keepalived、tkestack/keepalived-installer、tkestack/kube-apiserver、tkestack/kube-controller-manager、tkestack/kube-proxy、tkestack/kube-scheduler、tkestack/pause
3rdparty/ — 6 个
3rdparty/cert-manager-cainjector、3rdparty/cert-manager-controller、3rdparty/cert-manager-webhook、3rdparty/chart-cert-manager、3rdparty/kubectl、3rdparty/operator-framework/olm
ops/ — 1 个
ops/alpine
frontend/ — 0 个
(已全部移除)
alauda/ — 0 个
(alauda-console 与 ac 都已移除)
六、落地清单(实操步骤)
下面按"改动到哪个文件 / 怎么改"分组:
6.1 仓库目录级(10 个 plugin 整体删除)
直接 git rm -r 对应目录:
6.2 plugin artifacts.yaml / metadata.yaml 修改
base/artifacts.yaml—— 删除alauda/alauda-console与ait/image-loader两条artifacts[]base-central/artifacts.yaml—— 删除 4 个frontend/*条目;考虑取消metadata.yaml顶部的varyByDistributeChannel: true(裁完已无 channel 差异)auth-manager-central/artifacts.yaml—— 删除 3 个frontend/*条目marketplace-central/artifacts.yaml—— 删除acp/captain、3rdparty/chartmuseum、frontend/app-market-plugincluster-manager/artifacts.yaml—— 删除ait/image-loader
⚠️ 仅改
artifacts.yaml不够——packtool pack update plugin <dir>会按 chart 实际依赖的镜像重写artifacts.yaml,把删掉的镜像加回来。需要先去 fork chart(见 6.3)。
6.3 chart 侧 fork(必须配合)
| chart | 需要做的事 |
|---|---|
ait/chart-base-central | 关掉 console / image-loader Deployment 与 Ingress;移除前端 ConfigMap |
ait/chart-base | 同上 |
ait/chart-auth-manager-central | 关掉 user-plugin / console-dex / console-project 的前端 Deployment 与对应 ConfigMap;apollo 保留 |
ait/chart-marketplace-central | 关掉 captain + chartmuseum 子 chart / Deployment / ServiceAccount / RBAC;移除 HelmRequest 相关 CRD watcher 配置 |
ait/chart-cluster-api-provider-alauda | 移除 image-loader sidecar 引用 |
6.4 引用 / 依赖一致性
_tools.yaml—— 不动(不含上述任何 plugin 镜像)。.build/scripts/verify-product-consistency.sh+compare-product-yaml.py—— 多渠道(cn/intl/ 等)必须同步剪裁;如果只删 cn 不删 intl,release 流水线会 fail。.build/build.yaml的build-plugins任务依赖metadata.yaml的categories: [core]过滤——14 个保留插件的 metadata.yaml 都不要丢这个 category,否则会被排除在 core 安装包之外。
6.5 上游消费方(外部仓库的影响)
acp-cpaas-installer安装期会依次注册platform-registry、container-platform、katanomi-operator、asm-global、application-services-core、logcenter、prometheus/vm等 ModulePlugin(见 wikiflows/acp-install)。删除container-platform/prometheus后,installer 代码里这部分installPlugins列表也要同步精简,否则 install 会卡在缺失的 ModulePlugin 上。acp-cluster-transformer的 ModulePlugin → ModuleInfo 扇出对去掉的插件不再生效,但本身不需要改。- 业务集群上若历史遗留
Application/NamespaceOverview等 acp-business CRD 的 CR,删除acp-business后这些 CR 会变成"孤儿"——需要数据迁移评估。
七、保留功能能跑通的链路(验证用例)
裁剪后下列链路应仍可工作(测试时按顺序覆盖即可验证完整性):
- 平台 install ——
setup.sh→ minialauda KIND →cpaas-installerPod → Phase 1~12(裁剪过的installPlugins列表)→ sentry 接管 → 14 个 plugin 全部 Reconciled。 - 多集群注册 —— 在 global 上 apply
ClusterCR →cluster-manager提供 CAPI 通路、base-central/erebus路由 API、base-central/cluster-transformer把auth-manager/marketplace/kube-ovn/cert-manager/coredns/alb/aliveModulePlugin 扇出到新集群 → sentry 在新集群上 Reconcile AppRelease。 - OLM 装 operator —— 在业务集群 apply
Subscription→marketplace(OLM controller)走Subscription → InstallPlan → CSV→ operator Pod Ready。 - 用户权限投影 —— global 上 apply
User/UserBinding→auth-manager-central/apollo写 OIDC + AccessToken →auth-manager/auth-controller2投影到目标集群的 ClusterRole/RoleBinding。 - 入口 + HA —— ALB 暴露
apollo/erebusAPI;alive keepalived VIP 给 kube-apiserver;CN/HTTPS 由 cert-manager 签发。
八、风险与待确认
- 没有 console:用户/项目/Subscription 全部要靠
kubectl applyCR;如果团队仍想要 UI,需要自研最小化前端或外部 IAM/Marketplace 工具集成。 - 没有 storage / CSI sidecar:删
acp-business后,Alauda 重打包的 7 个 CSI external sidecar(csi-attacher/csi-provisioner/csi-resizer/csi-snapshotter/livenessprobe/csi-node-driver-registrar/node-driver-registrar)一并消失。如业务集群要用 CSI 驱动(topolvm / rook-ceph 等),需要把这 7 个 sidecar 镜像挪到一个最小化 chart 单独打包。 - chart fork 工作量:6.3 的 5 个 chart 每个都要拉分支改模板,Helm hooks 里若硬编码了被删 ServiceAccount / ConfigMap 名字,要逐一排查。
- 多渠道一致性:所有 distribute channel(cn / intl / reseller IDs)必须同步执行同样的剪裁,否则
verify-product-consistency.sh会拦下 release 构建。
九、元信息
| 项 | 值 |
|---|---|
| 数据快照 | 2026-05-07 |
| 源仓库 SHA | ccec0e57 |
| 源仓库 tag | v4.3.0-156-gccec0e57 |
| ACP 版本 | 4.3 |
| 裁剪决策来源 | 用户 2026-05-07 多轮迭代(保留多集群 + 应用市场仅 operator + 用户权限;保留 alb/alive;删除前端与 image-loader) |