一、问题背景
将环境中现运行的harbor版本升级到2.6.2版本,相关同事升级完,发现有部分镜像项目点进去报无权限问题,镜像项目无法使用,但是也有部分项目是可以正常提供使用的。
二、问题处理过程
1、根据报错反馈没权限,当时认为可能用户对这个项目是不是权限上有些问题,在harbor的镜像项目用户一栏,查看项目所在的用户是admin,镜像项目也是公开的,按理说权限应该没啥问题的,然后尝试添加一个用户进去,然后绑定到这个镜像项目,并赋予管理员权限,然后用此用户登录harbor,进入这个镜像项目还是报无权限,但是在harbor上新创建项目是没啥问题。
2、进入harbor的pg数据库中,查看无权限的镜像项目和用户关联也没啥问题,数据都在,只能查看harbor的日志,看看有没有价值的线索,在core.log和proxy.log的日志中发现如下报错:
根据上面两个报错情况,查询了相关资料,在github中查到有个harbor问题跟我们遇到的基本一样,就是将harbor里面的镜像项目进行更改,然后在更改为原来的项目名称就行。
3、开始登录harbor的pg库进行镜像项目的更改,先查看需要更改的项目,如下
然后将镜像项目devops_release改为TMP,如下:
登录habor查看创建的TMP是否存在,会不会报权限问题:
查看没有问题,原来的镜像也能看到了,将TMP项目改回到原来的devops_release,如下:
登录harbor查看改回来的项目是否有问题
如上改为以后无问题,也能有权限进入项目查看镜像了。可以测试下拉取和推送镜像,如下:
如上发现并无问题,到此问题处理完成。
关于github中此问题连接地址如下:
https://github.com/goharbor/harbor/issues/16340