![](/img/trans.png)
[英]Google cloud artifact registry issue when deploying GKE with terraform and helm
[英]Unable to push Helm Chart to Google Cloud Artifact Registry using OCI
我正在尝试将 helm chart 推送到 Google Cloud OCI注册表(Artifact Registry),但出现禁止错误:
helm push testapp-1.0.0.tgz oci://europe-north1-docker.pkg.dev/project-id/my-artifact-registry/
错误:授权失败:获取匿名令牌失败:意外状态:403 Forbidden
看来我已经通过身份验证了,因为当我尝试推送它但没有“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
名称:测试应用
版本:1.0.0
1.0.0:推送到远程(1 层,总共 3.9 KiB)
我使用服务帐户 json 密钥登录到掌舵注册表,使用以下命令:
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”协议?
或者需要启用任何服务?
或需要任何不同的身份验证?
我按照此处的说明进行操作但没有成功
这很有趣,但这不是我第一次发生这种情况......一旦我将问题提交给 Stackoverflow,我就会遇到一些问题,我能够找到我的问题的问题!
无论如何,问题基本上在于身份验证,其中要登录的 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
我遇到了同样的问题,但使用了 Cloudbuild。 如果这段代码可以帮助某人,我很高兴。
steps:
- name: 'alpine/helm:3.9.1'
id: 'helm package'
args: ['package', '.']
- name: 'alpine/helm:3.9.1'
id: 'helm push'
env:
- 'HELM_REGISTRY_CONFIG=../builder/home/.docker/config.json'
entrypoint: 'sh'
args:
- '-c'
- |
helm push --debug mylibchart-*.tgz oci://europe-west3-docker.pkg.dev/$PROJECT_ID/helm-registry
基本上在我们要推送 *.tgz 的步骤中,我们需要将 env HELM_REGISTRY_CONFIG设置为等于 docker config.json 的默认路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.