无法使用 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?