无法使用 OCI 将 Helm Chart 推送到 Google Cloud Artifact Registry

Posted

技术标签:

【中文标题】无法使用 OCI 将 Helm Chart 推送到 Google Cloud Artifact Registry【英文标题】:Unable to push Helm Chart to Google Cloud Artifact Registry using OCI 【发布时间】:2022-01-23 19:07:04 【问题描述】:

我正在尝试将掌舵图推送到 Google Cloud OCI 注册表(工件注册表),但出现禁止错误:

helm push testapp-1.0.0.tgz oci://europe-north1-docker.pkg.dev/project-id/my-artifact-registry/

错误:授权失败:获取匿名令牌失败: 意外状态:403 禁止

我的身份验证似乎没问题,因为当我尝试推送它但没有 "oci://" 时它工作正常:

helm chart push europe-north1-docker.pkg.dev/project-id/my-artifact-registry/charts/testapp:1.0.0

推送指的是存储库 [europe-north1-docker.pkg.dev/..] 参考: europe-north1-docker.pkg.dev/... 摘要:2757354aef8af2db48261d52c17c0df35a99d6fccaf016b0e67e167c391b69c7 大小:3.9 KiB 名称:testapp 版本:1.0.0 1.0.0:推送到远程(1 层,总共 3.9 KiB)

我使用服务帐户 json 密钥登录到 helm 注册表,使用以下命令:

helm registry login -u _json_key_base64 --password <base_64_key> https://europe-north1-docker.pkg.dev

并且此服务帐户具有以下角色:

角色/artifactregistry.admin 角色/artifactregistry.repoAdmin 角色/artifactregistry.writer 角色/container.developer 角色/storage.admin 角色/storage.objectViewer

是否需要在 GCP 中启用任何特定权限才能使用“OCI”协议?

或者需要启用任何服务?

或者需要任何不同的身份验证?

我按照here 的说明进行操作,但没有成功

【问题讨论】:

【参考方案1】:

这很有趣,但这不是我第一次遇到这种情况......一旦我将问题提交给 ***,我就遇到了一些问题,我能够找到我的问题的问题!

不管怎样,问题基本上出在身份验证上,登录的 URL 格式应该是:

https://LOCATION-docker.pkg.dev/PROJECT/REPOSITORY

像这样:

helm registry login -u _json_key_base64 --password <base_64_key> \
   https://europe-north1-docker.pkg.dev/project-id/my-artifact-registry

【讨论】:

以上是关于无法使用 OCI 将 Helm Chart 推送到 Google Cloud Artifact Registry的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 helm chart 将 smtp 设置添加到 prometheus-operator?

使用 Wt 将图表推送到客户端

轻松完爆 Helm chart

Helm Chart 多环境多集群交付实践,透视资源拓扑和差异

helm入门

无法使用 Vapor 将 swift 包推送到 Heroku