我想使用用户为AKS和ArgoCD分配或管理的身份来创建应用程序。
我在ACR上为AKS标识分配了AcrPull,然后尝试使用
argocd repo add myACR.azurecr.io --type helm --name helm --enable-oci
helm
是我在那里的repos的根。它工作正常,我可以在argocd用户界面的连接状态中看到一个绿色的"成功"勾号。
但当我尝试为其中一个实际图像创建应用程序时,它失败了,并显示helm pull oci://myACR.azurecr.io/helm/mychart --version 0.0.1 --destination /tmp/helm706383544
失败退出状态1:错误:授权失败:无法获取匿名令牌:意外状态:401未授权
(on旁注,如果我启用admin用户并使用--username XXX --password XXX
选项创建argocd repo,则一切都按预期工作)
我错过了什么?有没有可能实现这一点?或者我需要在ACR上启用管理员用户(或者使用令牌?)
1条答案
按热度按时间rsl1atfo1#
当您说AKS身份,并意味着用户管理的身份,那么它在这种情况下是错误的。
要访问ACR,您需要为AKS的kubelet身份分配
AcrPull
角色,因为kubelet负责拉取图像:但这只是Kubernetes提取图像的一部分,我不认为ArgoCD开箱即用就能利用Azure身份来连接到你的repo。
因此,您可能需要指定用户名和密码,以便ArgoCD可以连接到helm repo: