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.yaml | ait/chart-console-marketplace | chart/values.yaml 里 global.images.frontend.tag |
alauda-console.yaml | ait/chart-console-essentials | chart/values.yaml 里 global.images.alaudaConsole.tag |
console-dex.yaml | ait/chart-console-essentials | chart/values.yaml 里 global.images.uiPluginDex.tag |
console-project.yaml | ait/chart-console-essentials | chart/values.yaml 里 global.images.uiPluginProject.tag |
user-plugin.yaml | ait/chart-console-essentials | chart/values.yaml 里 global.images.uiPluginUser.tag |
chart-frontend.yaml | ait/chart-console-essentials | chart/module-plugin.yaml 里 frontend appRelease 的 chartVersions[].version |
captain.yaml | ait/chart-application-catalog | chart/values.yaml 里 global.images.captain.tag |
chartmuseum.yaml | ait/chart-application-catalog | chart/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.yaml | ait/chart-console-essentials | chart/values.yaml 里 global.images.kubectl.tag |
image-loader.yaml | ait/chart-console-essentials | chart/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.X | release-4.X | release-4.X |
vX.Y.Z-beta.+(master beta) | master | main | master |
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 规避。
参考
- L4 拆分主文档:l4-plugin-plan.md
- Source repo mapping:source-repo-mapping.md
- 切换验证:cutover-validation.md