Harbor 升级(数据迁移版)V1.8-->V2.8

升级说明

旧镜像版本:V1.8
升级版本:V2.8
由于无法直接升级,只能选择迁移数据。

新版本安装

请参考官网
修改harbor.yml文件中的volume路径及域名地址
启动命令如下
sudo ./install.sh --with-notary --with-notary --with-trivy

一、项目迁移

1.1 旧数据导出
header = {“authorization”: “Basic $token”} # token根据实际情况来处理
source_registry_baseurl = “https://a.com/api/“
target_registry_baseurl = “https://b.com/api/v2.0/
def import_project_to_new_harbor():
    #获取旧库中的项目名称,主要包括两个字段,name及是否metadata中的public字段
    response_projects = requests.get(source_registry_baseurl + "projects?public=false",headers=header)
    projectlist = response_projects.content.decode('utf-8')
    projectlist = json.loads(projectlist)
    for project in projectlist:
        status_code = create_new_project(project["name"],project['metadata']['public'])
        if status_code == 201:
            print(projects['name'] + '已导入成功')
        else:
            break
    return
1.2 创建project
def create_new_project(name,is_public):
    projectname = name
    metapublic = is_public
    if is_public == "true":
        metapublic = "true"
    else:
        metapublic = "false"
    data = {
        "project_name": projectname,
        "metadata": {
            "public": metapublic
        }
    }
    res = requests.post(target_registry_baseurl + "projects", json=data, headers=header)
    return res.status_code

二、导出镜像至文本文件

def get_image_name_list():
    response_projects = requests.get(source_registry_baseurl + "projects",headers=header)
    projectlist = response_projects.content.decode('utf-8')
    projectlist = json.loads(projectlist)
    filename = 'allimage.txt'
    file = open(filename,'w')
    for project in projectlist:
        #获取旧Harbor仓库项目的ID和名称及项目名称列表
        project_id = project["project_id"]
        project_name = project["name"]
        url = source_registry_baseurl + 'repositories?project_id=' + str(project_id)
        response_image = requests.get(url,headers=header)
        images_list = response_image.content.decode('utf-8')
        imagelist = json.loads(images_list)
        for image in imagelist:
            tagurl = source_registry_baseurl + 'repositories/' + image['name'] + '/tags'
            response_tags = requests.get(tagurl,headers=header)
            tagslist = response_tags.content.decode('utf-8')
            taglist = json.loads(tagslist)
            for tag in taglist:
                pullimagelist = image['name'] + ':' + tag['name']
                file.write(pullimagelist + '\n')
    file.close()
    return

三、创建用户

3.1 普通用户创建

核心——基于LDAP模式配置AD登录信息
另外由于public的仓库,用户都是可以访问的
所以只需要创建private的私有仓库用户即可

3.2 robot账户创建
def get_robot_name():
    response_projects = requests.get(source_registry_baseurl + "projects",headers=header)
    projectlist = response_projects.content.decode('utf-8')
    projectlist = json.loads(projectlist)
    for project in projectlist:
        project_id = project["project_id"]
        url = source_registry_baseurl + 'projects/' + str(project_id) + '/robots'
        response_robot = requests.get(url,headers=header)
        robotlist = response_robot.content.decode('utf-8')
        robotlist = json.loads(robotlist)
        for robot in robotlist:
            print(robot)

如果有更好的方案,请在评论区回复,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Harbor-offline-installer-v2.3.4-arm64是一个针对ARM64架构的Harbor离线安装程序。它是一个开源的企业级Docker Registry和容器化应用管理平台,旨在帮助企业实现更加安全、高效和可靠的容器化应用管理。 该离线安装程序支持ARM64架构的设备以及基于ARM64架构的云计算平台,如AWS等。它提供了一种简单、快速和可靠的方式来在ARM64设备上安装和配置Harbor,以便企业可以利用Harbor的功能来管理自己的容器镜像和应用程序。 通过Harbor-offline-installer-v2.3.4-arm64,企业可以在不需要互联网连接的情况下,快速地在自己的ARM64设备上安装Harbor,并使用Harbor提供的一系列功能来管理自己的容器镜像和应用程序。这将帮助企业更好地掌控他们的IT环境,并提高应用程序的安全性、可靠性和可扩展性。 ### 回答2: harbor-offline-installer-v2.3.4-arm64是一个用于安装Harbor的离线安装器本,适用于ARM64架构的计算机系统使用。Harbor是一个用于管理Docker容器镜像的开源项目,它具有可靠性高、易于扩展、安全性强等特点,被广泛应用于企业级应用程序的容器化部署中。 离线安装器是指可以在没有网络连接的情况下进行安装的设计,通常需要下载全部必要的组件和依赖关系,并将其打包到一个简单易用的安装程序中。这种方式对于在具有安全限制的网络环境中使用的企业用户来说尤其有用,因为它消除了对于外部依赖性的依赖。 因此,如您所见,harbor-offline-installer-v2.3.4-arm64是一个用于安装Harbor的完整离线安装程序本,适用于ARM64架构的计算机设备。它提供了一种快速、可靠、安全的部署方式,适用于企业级应用程序的容器化部署。 ### 回答3: harbor-offline-installer-v2.3.4-arm64是一个软件安装器,主要是用来安装Harbor这个开源的镜像仓库管理工具的。Harbor可以管理Docker镜像的存储,发布和访问,提供镜像扫描、权限管理等功能。使用Harbor可以搭建一个专属的Docker镜像仓库,方便自己的团队或公司进行Docker镜像管理和共享。 而harbor-offline-installer-v2.3.4-arm64本则是适用于64位ARM架构的服务器和设备。这个本的离线安装器可以让用户在没有网络情况下,也能够轻松安装Harbor,大大方便了用户的使用。 总的来说,harbor-offline-installer-v2.3.4-arm64是一个方便用户离线安装Harbor的工具,提供了方便的安装方式,适用于64位ARM架构的服务器和设备。对于需要使用Harbor进行Docker镜像管理的用户来说,这个工具是一个必备的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值