artifact 回收
本页介绍如何回收对象存储中不再引用的 artifact。
写命令的幂等键与期望版本见幂等键与期望版本。
用 kibo artifact 回收对象存储中目录已经不再引用的字节,或者把某个 Launch 排除在回收之外:
kibo artifact reclaim plan # 只记录计划,不删任何东西
kibo artifact reclaim get arec-... # 回看一份计划或一次执行的结果
kibo artifact retain sha256:... --until 2026-12-31T00:00:00Z
kibo artifact reclaim plan # 保留生效后重新计划
kibo artifact reclaim apply arec-... # 整份执行,需要确认
kibo artifact reclaim list哪些对象会被回收
可回收的集合只从目录推导:
- 一个 Launch 在以下任一情况下保留:被未删除的 Workspace 绑定;设置了尚未到期的保留期;它的 Template revision 与 Platform revision 都没有撤回。
- 一个 Template 或 Platform revision 在未撤回、或被保留的 Launch 引用时保留。
- 其余的 manifest,以及只被这些 manifest 引用的 blob,进入回收计划。
计划列出每个条目的原因、撤回时间与独占的字节数,并给出保留集合的规模。
plan 与 apply
reclaim plan写入一条状态为PLANNED的记录并返回记录 ID。它不删除任何东西。reclaim apply只接受这样一条记录,并整份执行,不能只执行其中一部分。执行前每个条目都重新计算一次:已经重新被引用的条目跳过,写进结果的skipped,不会被删除。- 要保留某个对象,先用
retain保留它的 Launch,再重新plan。 apply是破坏性命令。在终端中需要输入记录 ID 确认;非交互终端需要--yes。- 同一个
--command-id对同一条记录重放返回原结果;用在另一条记录上返回already_exists。同一时刻只允许一次执行,第二个apply返回failed_precondition。
retain
retain只能延长保留期。给出早于现有保留期的时间会被拒绝。- 已经回收的 Launch 不能再保留。
自动回收
ctrl 每 24 小时自动回收一次,只删除撤回超过 7 天的对象。自动回收的记录与 apply 的记录一起出现在 reclaim list 中,TRIGGER 列为 AUTOMATIC。启动时间与权限要求见安装 ctrl。
kibo platform list、kibo platform get 和 kibo template 的准入视图带有 Reclaimed 时间:已回收的 revision 仍是撤回状态,只是对象存储里不再有它的字节。