Harbor cleaner

按照projecttag名称中是否包含定义的关键字或匹配的正则表达式进行删除。此操作只删除数据库索引,不删除镜像所占存储,删除镜像所占存储请参考官方文档

注意 project中若有镜像是不会进行删除的。

⚠️ 警告 ⚠️ 如果tag Atag B都指向同一个image,那么当你在删除tag A时,tag B也将被删除。

安装

go get -u github.com/TimeBye/harbor-cleaner

使用

  • 编写配置文件delete_policy.yml
# 仓库相关信息
registry_url: https://registry.example.com/
username: admin
password: password

# 仅模拟运行,不真实删除,默认启用
dry_run: true
# 删除以现在时间为基础以前的镜像,单位为小时,默认72
interval_hour: 72
# 至少保留镜像个数,默认10
mix_count: 10
# 忽略这个项目下所有镜像
ignore_projects:
# 项目删除策略
projects:
  # 是否删除空项目
  delete_empty: false
  # 需删除的关键字
  include:
    # 按关键字进行删除
    keys:
    # 按正则表达式删除
    regex:
  # 排除策略,删除策略与排除策略都匹配,以排除策略为准
  exclude:
    # 按关键字进行排除
    keys:
    # 按正则表达式排除
    regex:

# 镜像tag删除策略
tags:
  # 删除策略
  include:
    # 按关键字进行删除
    keys: dev,test
    # 按正则表达式删除
    regex:
  # 排除策略,删除策略与排除策略都匹配,以排除策略为准
  exclude:
    # 按关键字进行排除
    keys:
    # 按正则表达式排除
    regex: latest|master|^[Vv]?(\d+(\.\d+){1,2})$
  • 运行并指定配置文件位置
harbor-cleaner -f delete_policy.yml