werwerwer
ACP Kernel 拆解与瘦身

ait/pipeline 适配 ACP Kernel L4 拆分

镜像 build 触发的 tag 自动更新链路在 L4 拆分后的版本带与目标仓变化

ait/pipeline 适配 ACP Kernel L4 拆分

背景

ACP Kernel L4 拆分把若干前端 image-load ConfigMap 与 alauda-console server 从 Kernel chart(ait/marketplace、ait/base、ait/chart-base-cluster、ait/chart-auth-manager-central)摘出,落到 ait/chart-console-marketplace、ait/chart-console-essentials 两枚 L4 chart 载体仓。ait/pipeline 仓的 <component>.yaml 描述「该 image build 完后按 tag regex 走哪条版本带,去哪个下游 chart 仓更新哪个字段」,需同步适配。

适配口径

  • 4.3 及之前:路由行为完全不变,继续指向 ait/* chart 仓。
  • 4.4+:新版本带,target 改为 ait/chart-console-* 两个 chart 载体仓的 release-4.X 分支。
  • master / *-beta.+ tag:现行 regex 保留不动,target 由 ait/* master 换成 ait/chart-console-* 的 main。

受影响 component yaml

8 个 yaml,分两类操作:

切目标(regex band split + 替换 target)

component yaml新 target 仓改的字段
app-market-plugin.yamlait/chart-console-marketplacechart/values.yaml 里 global.images.frontend.tag
alauda-console.yamlait/chart-console-essentialschart/values.yaml 里 global.images.alaudaConsole.tag
console-dex.yamlait/chart-console-essentialschart/values.yaml 里 global.images.uiPluginDex.tag
console-project.yamlait/chart-console-essentialschart/values.yaml 里 global.images.uiPluginProject.tag
user-plugin.yamlait/chart-console-essentialschart/values.yaml 里 global.images.uiPluginUser.tag
chart-frontend.yamlait/chart-console-essentialschart/module-plugin.yaml 里 frontend appRelease 的 chartVersions[].version
captain.yamlait/chart-application-catalogchart/values.yaml 里 global.images.captain.tag
chartmuseum.yamlait/chart-application-catalogchart/values.yaml 里 global.images.chartmuseum.tag

原 4.2+ band 的 regex ^v4\.([2-9]|[1-9][0-9]+)\.[0-9]+$ 收窄到 ^v4\.([23])\.[0-9]+$(保留指向旧 ait/* 仓不变),并新增一段 ^v4\.([4-9]|[1-9][0-9]+)\.[0-9]+$ 指向 ait/chart-console-* 的 release-4.X 分支。

captain.yaml / chartmuseum.yaml 的原始 band 结构与上面 6 个 yaml 不同:4.2 自成一段、4.3+ 是另一段(^v4\.3\.[0-9]+$ 之外历史走 ^v4\.([3-9]|[1-9][0-9]+)\.[0-9]+$)。它们的拆分是把原 4.3+ band 收窄到 ^v4\.3\.[0-9]+$(仍指向 ait/marketplace release-4.3 的 charts/central/values.yaml),再新增 ^v4\.([4-9]|[1-9][0-9]+)\.[0-9]+$ 指向 ait/chart-application-catalog,4.2 那段不动。因此这两个 yaml 的 diff 形态与上面 6 个略有差别。

加目标(追加 target,老的保留)

component yaml新增 target字段
kubectl.yamlait/chart-console-essentialschart/values.yaml 里 global.images.kubectl.tag
image-loader.yamlait/chart-console-essentialschart/values.yaml 里 global.images.imageLoader.tag

两个 yaml 现有几十个 ait/* target 行不动,只在 4.2+ band 与 master/beta band 末尾各追加一行指 ait/chart-console-essentials。

分支映射

Tag 形态旧 ait/* 仓新 ait/chart-console-* 仓新 ait/chart-application-catalog 仓
vX.Y.Z(4.X.Y)release-4.Xrelease-4.Xrelease-4.X
vX.Y.Z-beta.+(master beta)mastermainmaster

ait/chart-application-catalog 处于 ait/* 命名空间,沿用既有 ait/* 仓约定 default branch 为 master;因此 master beta band 的目标分支也是 master(master → master),不像 acp-kernel/* 系新仓 default branch 是 main(master → main)。yq eval -i 在两边只是写文件,分支名差异由 pipeline 侧目标分支参数控制即可。

前置条件

  • ait/chart-console-marketplace、ait/chart-console-essentials 两枚仓的初始 chart MR 已合入 main;ait/chart-application-catalog 的初始 chart MR 已合入 master
  • 4.4 release 切分支时,release management 在三个新仓 push release-4.4,时序与 ait/* 仓的 4.4 release 分支切出对齐

风险与边界

  • 4.4+ band 指向 release-4.X,分支不存在时该次 tag push 会失败;master beta band 走 main 不受影响。
  • 4.3 backport beta tag 不在适配范围(业务 4.3 已 GA 无 backport beta 计划);如将来需要,再为对应 component 单独起 ^v4\.([23])\.[0-9]+-beta.+$ 带 routing 到 release-4.3。
  • 老 ait/* 仓里 frontend.tag / alaudaConsole.tag / uiPlugin*.tag 字段已随 L4 carve-out MR 删除;如果 4.4+ band 还指向 ait/*,yq eval -i 会盲增字段——本设计用 regex band split 规避。

参考

On this page