Kibotos

目录

本页介绍如何批准或撤回 Platform 版本并设置默认值,以及控制 Template 版本是否可用与默认值。

写命令的幂等键与期望版本见幂等键与期望版本。

platform

用 kibo platform 查看 Platform 目录,批准或撤回某个版本,或者修改某个 PlatformKey 的默认版本:

revision=sha256:0000000000000000000000000000000000000000000000000000000000000000
kibo platform list --state registered
kibo platform get "$revision"
kibo platform approve "$revision"
kibo platform set-default "$revision"
kibo platform withdraw "$revision" --reason "replaced by the 6.18 rebuild"

list 与 get

  • list 原样返回目录内容:每个 revision 的 PlatformKey(后端、架构、内核系列、guest 协议、rootfs 契约)、来源信息、状态与三个时间戳。
  • DEFAULT 列由 kibo 根据同一次查询取回的默认版本标注。--json 输出的 result 中另有 platform_defaults 数组,列出每个 PlatformKey 的默认 revision 与 version。
  • 排序与分页由服务端完成。

参数:

参数说明
PlatformKey 的五个过滤参数要么全部给出,要么全部不给。只给一部分时以退出码 2 拒绝
--stateregistered、approved 或 withdrawn
分页 token与规范化后的过滤条件绑定。换了过滤条件继续翻页会返回 invalid_argument(退出码 2)。人读输出给出的下一页命令已带上原过滤参数

approve 与 withdraw

  • 两者都作用于一个精确的 revision。
  • 批准已撤回的 revision,或撤回某个 PlatformKey 当前的默认版本,都以退出码 13 失败,并说明是哪个前提不满足。
  • 撤回必须带 --reason。
  • 撤回后新的 Workspace 不能再选到这个 revision。已经在用它的 Workspace 继续运行,不会被迁移。

set-default

  • 目标 PlatformKey 由 revision 推导,不需要再传五个参数。
  • 期望版本是默认指针的 version。显式传 --command-id 时要同时传 --expected-revision 与 --expected-version。
  • 某个 PlatformKey 第一次设置默认版本时没有可比较的指针,三个参数都不传。

与 ctrl 本机命令的关系

approve、withdraw、set-default 与 ctrl 宿主机上的 kibotos-ctrl catalog apply 是同一操作的两个入口。相同的幂等键与输入在两边重放都返回同一结果;输入不同时两边都返回 already_exists。

template 准入

用 kibo template 的四个子命令控制某个 Template 的某个 revision 能否被 Workspace 选用,以及该 Template 的默认 revision。这四个命令只修改 Template 目录,不接受 Platform 的 revision,也不会改动任何 PlatformKey 的默认版本。

template_id=kibotos-coding
revision=sha256:0000000000000000000000000000000000000000000000000000000000000000
kibo template approve "$template_id" --revision "$revision"
kibo template set-default "$template_id" --revision "$revision"
kibo template disable "$template_id" --revision "$revision" --reason admin-disabled
kibo template withdraw "$template_id" --revision "$revision" --reason "replaced by the next build"

四个命令都必须用 --revision 指定一个精确的 revision,没有「当前版本」这样的默认目标。当前状态用 kibo template list 或 kibo template get 查看。

命令作用--reason能否恢复
approve让该 revision 可以被选用不接受可以用 disable 再取消
disable让该 revision 不能被选用必填,只接受 admin-disabled 或 admission-rejected可以用 approve 恢复
withdraw永久撤回该 revision必填不能恢复
set-default把该 Template 的默认版本指向该 revision不接受再次执行即可改变

注意:

  • disable 与 withdraw 都不影响已经用该 revision 创建的 Workspace。它们继续运行,不会被迁移。
  • set-default 的期望版本是当前的默认 revision。显式传 --command-id 时要同时传 --expected-revision;该 Template 还没有默认版本时改传 --expect-no-default。
  • 批准已撤回的 revision,或把默认版本指向不可选用的 revision,都以退出码 13 失败,并说明是哪个前提不满足。

本页内容