已关闭
【chartRepo】管理集群 BKECluster 资源未适配自定义 chartRepo,离线/私有化场景下 chart addon 安装失败 #291
luolong创建于  8月28日关闭于  9月15日
luolong成员
8月28日 创建

环境信息/ Environment

BKE + Cluster-API v1.4.3
bke-manifests: kubernetes/cluster-api/v1.4.3/003-manage.yaml
cluster-api-provider-bke: pkg/kube/addon.go
bkeadm: pkg/initialize/initialize.go, pkg/config/config.go

问题简述/ Brief Description

bke init 指定自定义仓库时,生成的 cluster.yaml 中的 chartRepo 能正确适配自定义值;但创建管理集群时,由 003-manage.yaml 渲染出的 BKECluster 资源完全缺失 chartRepo 字段,经 Mutating Webhook 填充为默认在线仓库 cr.openfuyao.cn:443/chart,而非用户指定的自定义仓库。在离线/私有化场景下,管理集群部署 chart 类 addon 时会因默认仓库不可达而失败。

问题详情&复现步骤 / Details & Reproduction Steps

  1. 使用自定义仓库执行 bke init ,其中 chartRepo 指向私有仓库地址(如 192.168.1.100:38080/charts)
  2. bkeadm 正确计算 chartRepo(prepareChartRepoConfig() → applyCustomConfig()),生成的 cluster.yaml 中 chartRepo 适配了自定义值
  3. 使用生成的模板文件创建管理集群时,管理集群的 BKECluster 资源由 003-manage.yaml 模板渲染并经 EnsureClusterAPIManagerManifest 阶段 apply 到管理集群,该模板中 cluster: 块只包含 imageRepo 和 httpRepo,缺少 chartRepo 字段
  4. 同时,渲染参数构建函数 getCommonParamFromBKECluster()(cluster-api-provider-bke/pkg/kube/addon.go:896)调用了 setImageRepoParams() 和 setHTTPRepoParams(),但没有对应的 setChartRepoParams() 函数
  5. 渲染出的 BKECluster 资源 chartRepo 为零值,经 server-side apply 触发 BKECluster Mutating Webhook(bkecluster.go:99)→ SetDefaultChartRepo()(defaults.go:202),因 Domain 和 Ip 均为空,填入默认值 cr.openfuyao.cn:443/chart
  6. 管理集群后续部署 chart 类 addon 时,fetchChartPackage() → ResolveReachableChartRepo() → ResolveReachableRepoAddress() 返回错误 "repo not reachable via domain or ip"

根因:

  • 003-manage.yaml 模板缺少 chartRepo: 字段块
  • getCommonParamFromBKECluster() 缺少 setChartRepoParams() 函数
  • Webhook 的 SetDefaultChartRepo() 仅能填入硬编码默认值,无法感知用户自定义仓库

期望结果/ Expected Results

bke init 指定自定义仓库时,管理集群的 BKECluster 资源 chartRepo 字段应适配为用户指定的自定义仓库地址,管理集群上的 chart 类 addon 能正常拉取和安装。

实际结果/Actual Results

管理集群 BKECluster 资源的 chartRepo 被回退为默认在线仓库 cr.openfuyao.cn:443/chart,离线/私有化场景下 chart addon 安装失败。

likedislike
openFuyao-botopenFuyao-bot成员
8月28日 添加了label:sig/sig-Installation
openFuyao-bot
openFuyao-bot成员
8月28日 评论:

欢迎来到 openFuyao 社区

Hey @luolong817 , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。您可以自助配置此仓库的 PR 合并规则,更多详情,请参阅此处。

联系指引

有疑问可以联系 SIG: sig-Installation ,
维护者是: @foxbit, @javadoors, @regandy, @xuyouhong, @zqw1 ,
审核者是: @piamposer-li .

likedislike
Lluolong成员
8月28日 issue优先级由 无优先级 改变为 主要
Lluolong成员
8月28日 修改标题为 “【chartRepo】管理集群 BKECluster 资源未适配自定义 chartRepo,离线/私有化场景下 chart addon 安装失败”,原标题为“【bke-manifests】管理集群 BKECluster 资源未适配自定义 chartRepo,离线/私有化场景下 chart addon 安装失败”
Lluolong成员
8月28日 修改了issue 的描述
Lluolong成员
8月28日 修改了issue 的描述
xuyouh
xuyouh成员
8月31日 评论:

1、起码要确认下默认填的能用
2、管理集群纳管bc的时候需要从引导集群的bc继承下来chartRepo

likedislike
luolong成员
9月3日 评论:

现在003文件拆分为003和004文件了,具体修改在004-manage-cluster.yaml中

likedislike
wangyikaiwangyikai成员
9月9日 关联了pull request:fix issue: add chartRepo template
wangyikaiwangyikai成员
9月9日 关联了pull request:fix issue: add chartRepo template
lihangyulihangyu成员
9月12日 将 wangyikai 设为负责人
lihangyulihangyu成员
9月12日 关联了看板:openFuyao - v26.09问题单
lihangyulihangyu成员
9月12日 关联了里程碑:v26.09
openFuyao-botopenFuyao-bot成员
9月15日 关闭了 issue
lihangyulihangyu成员
9月15日 issue状态由 开启 改变为 待测试
lihangyulihangyu成员
9月15日 重新打开了 issue
lihangyulihangyu成员
9月15日 issue状态由 待测试 改变为 已完成
lihangyulihangyu成员
9月15日 关闭了 issue