argocd配合GitOps,可以实现对kubernetes多集群的应用版本管理,目前已用于我负责的业务环境中实现统一发布平台.
在这里记录下使用argocd踩过的坑, 不定期更新
kustomize build out of index
原因: 这个是新版kustomize(v4.0.1)时使用了kyaml的版本的bug, 原因在于kustomizationl.yml中存在非法字符
解决: 回退kustomize为v3.6.1
forbidden: User “system:anonymouns” cantnot get path
解决: 重新使用命令加一下集群解决
1 | rgocd cluster add my-cluster --server 'xxxx' --upsert |
login时提示received the unexpected content-type
执行login 登录命令时提示:
1 | argocd login argocd.local:4433 |
出现以下错误
原因:
参考: https://github.com/argoproj/argo-cd/issues/1415
解决:
1 | argocd login argocd.local:4433 --grpc-web |
如果添加集群的时候提示以下错误,则需要先使用上面的命令进行登录,登录成功后再进行集群的添加操作.
创建token时提示以下错误 not have apikey capability
1 | Unable to generate new token: account 'admin' does not have apiKey capability |
原因: argocd的用户也是通过角色来进行划分的,创建token的用户需要具有 apiKey的权限,这个可以从argocd部署的configmap中查看使用的用户是否具有什么权限.
回滚时提示以下错误revision must be resolved
1 | Unable to load data: revision HEAD must be resolved |
原因: 如果使用argocd命令行的方式同步应用,会导致revision没有commit值,如上图,而回滚时需要revision,因此造成上面的报错.