我正在尝试使用 OCI 注册表 (ACR) 来存储我的舵图。我已经找到了推送和拉取图表的方法,但我无法以 OCI 本机方式登录注册表。
目前我可以通过以下方式登录:
az acr login --name myacr
我想使用
helm registry login myacr.azurecr.io
但失败了
Error: Get https://myacr.azurecr.io/v2/: unauthorized: Application not registered with AAD.
这是什么意思?我需要在 AAD 和 ACR 之间执行一些设置吗?
更新
当我尝试使用 AAD 中的用户帐户(用户名作为名称,密码作为密码)进行
helm registry login
时,出现上述错误。
如果我尝试使用服务主体登录,它会起作用。
如果我尝试通过
此方法使用
00000000-0000-0000-0000-000000000000
帐户登录,这也有效。
我怀疑用户帐户还需要做一些额外的事情,但我不确定那是什么。
您遇到的问题是身份验证类型的问题。 Here 显示了所有可用的身份验证方法,但不包含用户帐户。意思是目前不支持。而目前可控的认证方式就是服务主体。您只能在获得适当许可的情况下授予它。
并不是真正的答案,但可能想遵循https://github.com/Azure/azure-cli/issues/14467
还评论说,我已降级到 helm v3.3.3 并继续使用以下命令验证/添加 ACR 存储库
az acr helm repo add --name <containerregistry>
在最新版本的 helm 中你可以这样做
aws ecr get-login-password --region <aws-region> --profile <aws-prfile-if-any> | helm registry login --username AWS --password-stdin aws-account.dkr.ecr.aws-region.amazonaws.com
那么你可以尝试做这样的事情:
helm pull oci://<aws-account>.dkr.ecr.<aws-region>.amazonaws.com/hart-name --version XX.X.XX