Kibotos

Catalog

This page shows how to approve or withdraw Platform revisions and set defaults, and how to control whether Template revisions are available and which one is the default.

For command IDs and expected revisions on write commands, see Command IDs and expected revisions.

kibo platform

Use kibo platform to view the Platform catalog, approve or withdraw a revision, or change the default revision of a 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 and get

  • list returns the catalog contents as is: each revision's PlatformKey (backend, architecture, kernel series, guest protocol, rootfs contract), source information, state, and three timestamps.
  • The kibo tool marks the DEFAULT column using the default revisions fetched in the same query. The result of the --json output also has a platform_defaults array that lists each PlatformKey's default revision and version.
  • The server handles sorting and paging.

Parameters:

ParameterDescription
The five PlatformKey filter parametersGive all of them or none. Giving only some is rejected with exit code 2
--stateregistered, approved, or withdrawn
Page tokenBound to the normalized filter. Continuing to page with a different filter returns invalid_argument (exit code 2). The next-page command in the human-readable output already includes the original filter parameters

approve and withdraw

  • Both act on one exact revision.
  • Approving a withdrawn revision, or withdrawing the current default revision of a PlatformKey, fails with exit code 13 and states which precondition is not met.
  • Withdrawing requires --reason.
  • After a withdrawal, new Workspaces can no longer choose this revision. Workspaces already using it keep running and are not migrated.

set-default

  • The target PlatformKey is derived from the revision, so you do not pass the five parameters again.
  • The expected revision is the version of the default pointer. When you pass --command-id explicitly, also pass --expected-revision and --expected-version.
  • The first time a PlatformKey gets a default revision, there is no pointer to compare against, so pass none of the three parameters.

Relation to the ctrl local command

The approve, withdraw, and set-default commands and kibotos-ctrl catalog apply on the ctrl host are two entry points to the same operation. Replaying the same command ID and input on either side returns the same result. With different input, both sides return already_exists.

Template admission

Use four kibo template subcommands to control whether Workspaces can choose a given revision of a Template, and which revision is the Template's default. These four commands change only the Template catalog. They do not accept Platform revisions and do not change the default revision of any 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"

All four commands require --revision to name one exact revision. There is no default target such as "the current revision". View the current state with kibo template list or kibo template get.

CommandEffect--reasonReversible
approveLets Workspaces choose the revisionNot acceptedYes, undo it with disable
disablePrevents Workspaces from choosing the revisionRequired. Accepts only admin-disabled or admission-rejectedYes, restore it with approve
withdrawWithdraws the revision permanentlyRequiredNo
set-defaultPoints the Template's default revision at the revisionNot acceptedRun it again to change it

Notes:

  • Neither disable nor withdraw affects Workspaces already created from the revision. They keep running and are not migrated.
  • The expected revision of set-default is the current default revision. When you pass --command-id explicitly, also pass --expected-revision. If the Template has no default revision yet, pass --expect-no-default instead.
  • Approving a withdrawn revision, or pointing the default at a revision that cannot be chosen, fails with exit code 13 and states which precondition is not met.

On this page