Kibotos

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 仍是撤回状态,只是对象存储里不再有它的字节。

本页内容