【发布时间】:2021-03-09 18:55:48
【问题描述】:
问题本身
获得了一个 Azure 容器注册表作为图像和图表存储。假设myacr.azurecr.io 推送了 8 个不同的图表。据我之前阅读,Azure ACR 能够存储图表并兼容 Helm 3(版本 3.5.2)。
-
helm repo add myacr https://myacr.azurecr.io/helm/v1/repo --username myusername -password admin123- 添加了回购。好的。 -
helm chart save ./my-chart/ myacr.azurecr.io/helm/my-chart:1.0.0- 图表已保存。好的 -
helm push ./my-chart/ myacr.azurecr.io/helm/my-chart:1.0.0- 推送。在 Azure 门户中可用。好的。 -
helm repo update- 这里出了什么问题?正如预期的那样。好的
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "ingress-nginx" chart repository
...Successfully got an update from the "jetstack" chart repository
...Successfully got an update from the "myacr" chart repository
Update Complete. ⎈Happy Helming!⎈
-
helm search repo -l- 我看到了来自ingress-nginx和jetstack的所有内容,但没有看到来自myacr的列表。 但是,如果我这样做pull和export一切正常 - 图表就位
我尝试了什么
- 根据网络上的一些理论将 repo 名称重命名为 helm/{app} - 失败
- 重新配置带有完整描述的图表等。根据
ingress-nginx- 失败 - 执行
helm search repo -l --devel以查看所有可能的图表版本 - 运气不好 - “关闭再打开” - 使用不同的组合再次删除和添加 repo - 失败
- 每次尝试都使用明确的俚语 - 有点热身,但不能解决问题
问题是
- Azure ACR 是否与 Helm 3 完全兼容?
- 是否有任何特定的解决方法可以使其与 Helm 3 兼容?
- 搜索功能是否对图表结构或版本有任何要求?
【问题讨论】:
-
所以看起来
helm search从远程仓库拉取 index.yaml 文件,保存在本地(在 ~/.cache/helm/repository),并根据保存的索引进行搜索文件。看起来helm chart push没有更新 index.yaml。从我对新的符合 OCI 的 helm repos 文档的阅读来看,它们似乎完全脱离了 index.yaml 文件。 -
这样就可以解释为什么 helm search 不能以这种方式工作,但在您使用
az acr helm push时工作(因为 az cli 显式地重新生成 index.yaml)。 -
新的 helm 搜索必须检查 ~/.cache/helm/registry/cache/index.json 代替
标签: azure kubernetes kubernetes-helm azure-container-registry acr