You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Harbor配置不可变规则时如何排除untagged artifact?

Harbor标签不可变规则配置对话框截图

问题说明

当前配置的Harbor标签不可变规则会将无标签(untagged)artifact一并设为不可变状态,导致预设的留存策略无法正常执行无标签artifact清理操作。

可行解决方案

方案1:调整不可变规则匹配逻辑(推荐,长期生效)

问题根因是Harbor的通配符**会匹配空值,也就是无标签artifact对应的空标签字段,因此会误给这类资源加不可变锁。

  • 若使用Harbor v2.3及以上版本:编辑现有不可变规则,新增排除条件,选择「标签为空」的场景不应用规则,保存即可。
  • 若使用较早版本、无显式空值判断选项:将原有匹配所有标签的**规则替换为?*,该通配符仅匹配长度至少为1位的标签,天然排除空标签的untagged artifact,不会对这类资源加锁。
  • 规则修改后务必使用内置的「预览匹配结果」功能校验,确认匹配列表中不存在无标签artifact后再保存。

方案2:开启原生自动清理孤儿镜像配置

在Harbor系统管理-配置-部署设置中,开启自动清理无标签artifact开关。该后台清理逻辑优先级高于标签不可变规则,会在同标签镜像被覆盖推送、产生无标签孤儿镜像时自动完成清理,无需等待留存策略调度执行。

方案3:存量被锁无标签artifact应急清理

如果已经存在大量被不可变规则锁定的无标签artifact占用存储,无需临时关闭全局不可变规则,可通过Harbor API带管理员权限批量清理:

  1. 生成具有项目管理员/系统管理员权限的访问token
  2. 调用接口拉取项目下所有无标签artifact列表:
curl -H "Authorization: Bearer <你的管理员token>" "https://<你的Harbor地址>/api/v2.0/projects/<目标项目名>/artifacts?page_size=100&with_tag=false"
  1. 遍历返回结果中的artifact digest,逐个调用删除接口强制清理:
curl -X DELETE -H "Authorization: Bearer <你的管理员token>" "https://<你的Harbor地址>/api/v2.0/projects/<目标项目名>/artifacts/<artifact的digest值>"

注意:不建议通过临时关闭不可变规则跑留存策略的方式操作,很容易在规则关闭窗口期误删需要保留的带标签不可变镜像。

内容的提问来源于stack exchange,提问作者hsbrysk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 22:24:11