已关闭
【chartRepo】管理集群 BKECluster 资源未适配自定义 chartRepo,离线/私有化场景下 chart addon 安装失败 #291
luolong创建于 8月28日关闭于 9月15日
8月28日 添加了label:sig/sig-Installation
openFuyao-bot
8月28日 评论:
8月28日 评论:
欢迎来到 openFuyao 社区
Hey @luolong817 , 感谢你对社区的贡献.
机器人使用手册
有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。您可以自助配置此仓库的 PR 合并规则,更多详情,请参阅此处。
联系指引
有疑问可以联系 SIG: sig-Installation ,
维护者是: @foxbit, @javadoors, @regandy, @xuyouhong, @zqw1 ,
审核者是: @piamposer-li .


8月28日 修改标题为 “【chartRepo】管理集群 BKECluster 资源未适配自定义 chartRepo,离线/私有化场景下 chart addon 安装失败”,原标题为“【bke-manifests】管理集群 BKECluster 资源未适配自定义 chartRepo,离线/私有化场景下 chart addon 安装失败”
xuyouh
8月31日 评论:
8月31日 评论:
1、起码要确认下默认填的能用
2、管理集群纳管bc的时候需要从引导集群的bc继承下来chartRepo


9月9日 关联了pull request:fix issue: add chartRepo template
9月9日 关联了pull request:fix issue: add chartRepo template
9月12日 将 wangyikai 设为负责人
9月12日 关联了看板:openFuyao - v26.09问题单
9月12日 关联了里程碑:v26.09
9月15日 关闭了 issue
9月15日 issue状态由 开启 改变为 待测试
9月15日 重新打开了 issue
9月15日 issue状态由 待测试 改变为 已完成
9月15日 关闭了 issue
环境信息/ 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
bke init,其中chartRepo指向私有仓库地址(如192.168.1.100:38080/charts)bkeadm正确计算 chartRepo(prepareChartRepoConfig()→applyCustomConfig()),生成的cluster.yaml中 chartRepo 适配了自定义值BKECluster资源由003-manage.yaml模板渲染并经EnsureClusterAPIManagerManifest阶段 apply 到管理集群,该模板中cluster:块只包含imageRepo和httpRepo,缺少chartRepo字段getCommonParamFromBKECluster()(cluster-api-provider-bke/pkg/kube/addon.go:896)调用了setImageRepoParams()和setHTTPRepoParams(),但没有对应的setChartRepoParams()函数BKECluster资源 chartRepo 为零值,经 server-side apply 触发 BKECluster Mutating Webhook(bkecluster.go:99)→SetDefaultChartRepo()(defaults.go:202),因 Domain 和 Ip 均为空,填入默认值cr.openfuyao.cn:443/chartfetchChartPackage()→ResolveReachableChartRepo()→ResolveReachableRepoAddress()返回错误"repo not reachable via domain or ip"根因:
003-manage.yaml模板缺少chartRepo:字段块getCommonParamFromBKECluster()缺少setChartRepoParams()函数SetDefaultChartRepo()仅能填入硬编码默认值,无法感知用户自定义仓库期望结果/ Expected Results
bke init指定自定义仓库时,管理集群的BKECluster资源chartRepo字段应适配为用户指定的自定义仓库地址,管理集群上的 chart 类 addon 能正常拉取和安装。实际结果/Actual Results
管理集群
BKECluster资源的chartRepo被回退为默认在线仓库cr.openfuyao.cn:443/chart,离线/私有化场景下 chart addon 安装失败。