python 清理 Harbor 镜像

本文介绍如何利用Python编写脚本,高效地清理Harbor容器注册表中的无用镜像,实现自动化资源管理,提高镜像存储效率。
摘要由CSDN通过智能技术生成
#!/usr/bin/env python

from datetime import datetime, timedelta
import json
import requests
import re
import logging
import sys

logger = logging.getLogger(__name__)

class RequestClient(object):
    response_status = {
   
        200: "successfully.",    
        400: "Invalid.",
        401: "Unauthorized.",
        403: "Forbidden.",
        404: "Not found."
    }
 
    def __init__(self, schema, harbor_domain, username, password):
        self.schema = schema
        self.harbor_domain = harbor_domain
        self.harbor_url = self.schema + "://" + self.harbor_domain
        self.login_url = self.harbor_url + "/login"
        self.session = requests.Session()
        self.session.headers = {
   
            "Accept": "application/json"
        }
        self.session.auth = (username, password)

def get_repos_tags_by_created_range(repos_tags, date_to=None, date_from=None):
    created_date_to = datetime.max
    created_date_from = datetime.min

    if date_to 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用Python来操作Harbor。下面是一个使用Python脚本来删除Harbor仓库中不再需要的镜像的示例: ```python import requests # 设置Harbor的地址和登录信息 harbor_url = 'http://127.0.0.1' username = 'admin' password = 'Harbor12345' # 登录Harbor session = requests.Session() login_url = harbor_url + '/login' session.post(login_url, json={'username': username, 'password': password}) # 获取所有镜像仓库 repositories_url = harbor_url + '/api/v2.0/projects' response = session.get(repositories_url) repositories = response.json() # 遍历每个镜像仓库 for repository in repositories: repository_name = repository['name'] repository_id = repository['project_id'] # 获取仓库中的所有镜像 images_url = harbor_url + f'/api/v2.0/projects/{repository_id}/repositories' response = session.get(images_url) images = response.json() # 遍历每个镜像 for image in images: image_name = image['name'] image_id = image['id'] # 判断镜像是否需要删除,这里假设镜像名包含"old"的都需要删除 if 'old' in image_name: # 删除镜像 delete_url = harbor_url + f'/api/v2.0/projects/{repository_id}/repositories/{image_id}' session.delete(delete_url) print(f'Deleted image: {image_name} in repository: {repository_name}') # 退出登录 logout_url = harbor_url + '/logout' session.post(logout_url) ``` 这个脚本使用了Python的requests库来发送HTTP请求,实现了登录Harbor、获取镜像仓库、获取镜像删除镜像的功能。你可以根据自己的需求修改判断镜像是否需要删除的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值