prod-repo-service服务无法创建harbor机器人

  • Choerodon平台版本:0.25

  • 运行环境:自主搭建
    harbor版本:v2.2.1-b0d63082

  • 问题描述:
    创建devops项目时,事务实例卡在 rdupm-docker-repo-create的rdupm-docker-robot-create。
    创建机器人的接口返回了409 conflict
    经检查,harbor中已经创建该机器人

  • 问题分析
    删除harbor机器人后事务重试,发现无法取得机器人生成的sercert。


    检查源码后发现取的是token字段,看起来是字段取错了。
    看环境变量使用的是v2版本的harbor api。这个解析方式是否兼容harbor@2.2.1?

ps:论坛限制,我只能放一张图,保留token检索不到那张

409的错误主要检查harbor上用户名或者邮箱是否冲突了

harbor用户只有admin,没配邮箱,这估计不会冲突吧

我这边harbor的api格式

POST ​/projects​/{project_name_or_id}​/robots
返回格式:

{
  "secret": "string",
  "creation_time": "2021-07-01T02:32:45.017Z",
  "id": 0,
  "expires_at": 0,
  "name": "string"
}

GET /projects​/{project_name_or_id}​/robots

[
  {
    "update_time": "2021-07-01T02:33:51.973Z",
    "description": "string",
    "level": "string",
    "editable": true,
    "creation_time": "2021-07-01T02:33:51.973Z",
    "expires_at": 0,
    "name": "string",
    "secret": "string",
    "disable": true,
    "duration": 0,
    "id": 0,
    "permissions": [
      {
        "access": [
          {
            "action": "string",
            "resource": "string",
            "effect": "string"
          }
        ],
        "kind": "string",
        "namespace": "string"
      }
    ]
  }
]

我们用的harbor是2.1.3 没有2.2.x的环境 你可以试试降到2.1.3看看还有没有这个问题 然后再创建项目,出错后先不要删数据,先把错误截图给我看

2.1.3可以,是因为harbor的api小版本差异。
有计划什么时候支持2.2.x吗?