virt-api v1.9.1-CE-debian12-r1 build trail
How ReadyStack built readystack/virtapi:v1.9.1-CE-debian12-r1 and its build kit, copied record by record: why the release exists, every chain, drive and stage it went through, the model work, the review rounds, the defects, the checks that verified it and when it was published. Each line names the record it comes from in brackets; a record that does not exist for this release says so.
This trail
As JSON- Image
readystack/virtapi:v1.9.1-CE-debian12-r1 - Index digestsha256:cf941d3d6d428302be0965f4c0b1ec32c886b731c8d9e2673f526e9e46ac4de1
- linux/amd64 digestsha256:1b50959eea78ae4db3a6037b90943ada86b9cb5426bb4790525316087d0ff582
- Archive
ReadyStack-virtapi-v1.9.1-CE-debian12-r1.tar.gz - Archive SHA-256 nowafbb8135e65fa328c65afbb639fdee06c74c4a56fceba2e30aaea44ae5905ded
- Generated2026-11-02T23:33:35Z by KitForge release/build_trail.py
- Sections9 sections, 4 fully recorded; 11 items not recorded
Signed with the release key The trail's signature is a Sigstore bundle beside it. Check it is ours before you rely on it:
cosign verify-blob --key https://readystack.dev/keys/cosign.pub \ --bundle ReadyStack-virtapi-v1.9.1-CE-debian12-r1.trail.json.sigstore ReadyStack-virtapi-v1.9.1-CE-debian12-r1.trail.json
IdentityWhy this release existsThe path through the harnessModel work per stageReviewDefectsVerificationPublicationPackages and CPU level
Identity
1 item not recorded- Productvirt-api (virtapi) [MANIFEST.json]
- Release tagv1.9.1-CE-debian12-r1 [MANIFEST.json]
- Imagereadystack/virtapi:v1.9.1-CE-debian12-r1 [MANIFEST.json]
- Image index digestsha256:cf941d3d6d428302be0965f4c0b1ec32c886b731c8d9e2673f526e9e46ac4de1 [docs/provenance/LOCKED_DIGEST.txt]
- linux/amd64 image digestsha256:1b50959eea78ae4db3a6037b90943ada86b9cb5426bb4790525316087d0ff582 [ReadyStack-virtapi-v1.9.1-CE-debian12-r1.rebuild.json, subject.image_manifest_digest]
- ArchiveReadyStack-virtapi-v1.9.1-CE-debian12-r1.tar.gz (bytes 1173239655) [MANIFEST.json]
- Archive sha256 at publish014aad1473b216518fe8a098dc50d0ff15c210190f274c3467f2bb647a8e1733 [MANIFEST.json, repack_history[0].previous_tarball_sha256]
- Archive sha256 nowafbb8135e65fa328c65afbb639fdee06c74c4a56fceba2e30aaea44ae5905ded [MANIFEST.json, tarball_sha256]
- Archive records agreeyes [MANIFEST.json, PUBLISH_MANIFEST.json and .cutover.json name the same sha256]
- Repack history
- at 2026-10-29 · label stackdocs · reason documents brought up to the stack's current runbook record (2026-10-29T02:34:55Z run, re-recorded with the runbook corrections); documents only, not image inputs; image and every build input unchanged · previous sha256 014aad1473b216518fe8a098dc50d0ff15c210190f274c3467f2bb647a8e1733 · sha256 f48e3b80271a1986c158408fc06277d5be879e4bff7ac7e3d979925aef3dcf04 · replaced docs/admin-guide/ADMIN_HANDBOOK.md, docs/db-handbook/DB_HANDBOOK.md, docs/db-handbook/DB_HANDBOOK.md.command-transcripts.json, docs/stack/RUNBOOK.md, docs/stack/RUNBOOK_EVIDENCE.json, rebuild.json
- at 2026-11-01 · label kitfix · reason customer kit files brought up to the current engine: BUILD_OFFLINE.sh (kit root, docs/offline, docs/docker); the header of BUILD_OFFLINE.sh no longer says a --provenance rebuild meets a SLSA build level, comment lines only; not image inputs; image and every build input unchanged · previous sha256 f48e3b80271a1986c158408fc06277d5be879e4bff7ac7e3d979925aef3dcf04 · sha256 afbb8135e65fa328c65afbb639fdee06c74c4a56fceba2e30aaea44ae5905ded · replaced BUILD_OFFLINE.sh, docs/docker/BUILD_OFFLINE.sh, docs/offline/BUILD_OFFLINE.sh, rebuild.json
- Upstream repositoryhttps://github.com/kubevirt/kubevirt [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream refv1.9.1 [docs/provenance/SOURCE_TREE_HASH.json]
- Upstream commitc3d19093f9c7b843b3879b18dc088911c081c39e [docs/provenance/SOURCE_TREE_HASH.json]
- Source tree hashde7abf04e51b6cf004d0365dfe6d8c5251edeeb69bfa0caa3d8b366b85fe6f36 (files 12717) [docs/provenance/SOURCE_TREE_HASH.json, tree_listing_sha256 (sha256 of the sorted file listing)]
- Kit tree hashsha256:fea9d5a5681919304c315448da7ab9e5d5de9ad057e3f0f97d5b136c9a431aec [ReadyStack-virtapi-v1.9.1-CE-debian12-r1.rebuild.json, inputs.tree_hash]
- SOURCE_DATE_EPOCH1791523273 (utc 2026-10-09T05:21:13Z) [ReadyStack-virtapi-v1.9.1-CE-debian12-r1.rebuild.json, inputs.source_date_epoch]
- Base images
- ref quay.io/kubevirt/builder:2606231619-4fe2cd536f@sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8 · platform digest sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8
- BuildKitmoby/buildkit:v0.31.2 (image digest sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0) [ReadyStack-virtapi-v1.9.1-CE-debian12-r1.rebuild.json, engine]
- Not recorded: the engine commit(s) that built it (drive_runs records them for drives from 2026-11-02; this release's drives were rebuilt from line logs, which do not name it)
Why this release exists
Fully recorded- Chain788 (created 2026-10-29T05:26:02Z · trigger customer_request · upstream version v1.9.1) [chains, chains #788]
- Requestbuild request #463 (new_product) (requested at 2026-10-29T03:14:00Z · requested by agent · version v1.9.1) [build_requests, build_requests #463]
- ReasonKubernetes VM Stack Kits (DevOps 2026-10-28); owner 2026-10-28 "pause all other efforts. This build list is your top priority"; owner 2026-10-29: publish every component through the normal pipeline, listed only at A (virthandler/virtlauncher may be unlisted, grade disclosed); both bundles ship as images [build_requests, build_requests #463 request_reason]
The path through the harness
2 items not recorded1 chain · 5 drives · 18 stages · 3 rewinds
Chain 788 release · shipped
Created 2026-10-29T05:26:02Z, upstream v1.9.1, build request 463 [chains, chains #788]
| Drive | Started | Minutes | Build host | How it stopped |
|---|---|---|---|---|
| 1079 | 2026-10-29T05:26:13Z | 23.9 | build host 3 withhold-publish | infra_hub_rate_limit at publish_image [drive_runs, drive_runs #1079] rebuilt from a build line's log |
| 1080 | 2026-10-29T06:06:47Z | 12.9 | build host 3 withhold-publish | ready_to_ship [drive_runs, drive_runs #1080] rebuilt from a build line's log |
| 1083 | 2026-10-29T07:23:51Z | 0.1 | build host 3 publish-held | publish_refused_inputs_changed [drive_runs, drive_runs #1083] rebuilt from a build line's log |
| 1089 | 2026-10-29T08:28:34Z | 6 | build host 3 withhold-publish | ready_to_ship [drive_runs, drive_runs #1089] rebuilt from a build line's log |
| 1092 | 2026-10-29T09:13:15Z | 8.4 | build host 3 publish-held | shipped [drive_runs, drive_runs #1092] rebuilt from a build line's log |
Stages, in order
| Stage | First start | Passed | Attempts | Gate checks passed | Artifacts (SHA-256) |
|---|---|---|---|---|---|
intake |
2026-10-29T05:26:19Z | 2026-10-29T05:26:20Z | 1 | 4
|
— |
acquire |
2026-10-29T05:26:29Z | 2026-10-29T05:26:30Z | 1 | 12
|
— |
plan |
2026-10-29T05:27:06Z | 2026-10-29T05:27:07Z | 1 | 10
|
— |
assemble_kit |
2026-10-29T05:34:59Z | 2026-10-29T05:35:00Z | 1 | 27
|
— |
remediate |
2026-10-29T05:35:44Z | 2026-10-29T05:35:45Z | 1 | 8
|
— |
build_kit |
2026-10-29T05:46:55Z | 2026-10-29T05:46:56Z | 1 | 9
|
— |
verdict |
2026-10-29T05:47:27Z | 2026-10-29T05:47:28Z | 1 | 8
|
— |
publish_image |
2026-10-29T06:07:28Z | 2026-10-29T06:07:29Z | 1 | 7
|
— |
boot_instance |
2026-10-29T06:07:31Z | 2026-10-29T06:07:32Z | 1 | 3
|
— |
sbom |
2026-10-29T06:07:40Z | 2026-10-29T06:07:41Z | 1 | 5
|
— |
schema_discovery |
2026-10-29T06:07:43Z | 2026-10-29T06:07:44Z | 1 | 7
|
— |
admin_handbook |
2026-10-29T06:07:46Z | 2026-10-29T08:28:41Z | 2 | 7
|
— |
db_handbook |
2026-10-29T06:07:48Z | 2026-10-29T08:28:44Z | 2 | 8
|
— |
seed_data |
2026-10-29T06:07:51Z | 2026-10-29T08:28:46Z | 2 | 6
|
— |
seed_validate |
2026-10-29T06:07:53Z | 2026-10-29T08:28:49Z | 2 | 3
|
— |
usecase_validate |
2026-10-29T06:07:56Z | 2026-10-29T08:28:52Z | 2 | 10
|
— |
finalize_docs |
2026-10-29T06:08:00Z | 2026-10-29T08:28:57Z | 2 | 9
|
— |
package_archive |
2026-10-29T06:19:36Z | 2026-10-29T09:21:39Z | 3 | 33 (final gate PASS)
|
— |
[stage_runs]
Rewinds
- 2026-10-29T07:23:20Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py) [stage_events, stage_events #1281] - 2026-10-29T08:28:38Z:
package_archivetoadmin_handbookon runbook_changed (chain 788: stack runbook re-recorded — rewound from 'package_archive' to admin_handbook (its documents were rendered from runbook record 8c73807fc931, the stack manifest now names a6582de5e2a2 (the runbook was re-recorded))) [stage_events, stage_events #2361] - 2026-10-29T09:12:43Z:
package_archivetopackage_archiveon docs_redo (scripts/redo-docs.py) [stage_events, stage_events #1291]
- Not recorded: each drive's ticks and first failed check (drive_runs records them for drives from 2026-11-02; these drives were rebuilt from line logs)
- Not recorded: the sha256 of each stage's artifacts (stage_events records them for stages passed from 2026-11-02; this chain's events were rebuilt from stage_runs and logs) — the archive's CHECKSUMS.sha256 lists the sha256 of every file it ships
Model work per stage
3 items not recordedRole: writer model. Calls up to 2026-10-29T09:21:39Z.
4 calls over 2 stages
| Stage | Calls | Refused | Errors | Max attempt | Forced commits | Real tokens | Lesson rules shown |
|---|---|---|---|---|---|---|---|
plan | 2 | 0 | 0 | 1 | not recorded | not recorded | — |
remediate | 2 | 0 | 0 | 1 | not recorded | not recorded | — |
[micro_step_runs]
- Not recorded: forced commits (micro_step_runs records them for calls from 2026-11-02)
- Not recorded: real token counts (recorded per call from 2026-11-02; earlier rows hold only an estimate, which is not shown)
- Not recorded: the lesson rules shown to the writer model (lesson_recalls holds no rows for this chain: its recorder was silent from 2026-06-06 to 2026-11-02)
Review
3 items not recordedRole: review model.
2 rounds, 2 counted, $1.77 recorded cost
| Round | Started | Critical | Major | Minor | Verdict | Cost | Cap in force | Archive reviewed |
|---|---|---|---|---|---|---|---|---|
| 1 | 2026-10-29T06:20:31Z | 0 | 0 | 5 | clean to publish [held_rounds, held_rounds #193] rebuilt from a held-review state file | $1.01 | not recorded | not recorded |
| 2 | 2026-10-29T08:35:01Z | 0 | 0 | 0 | clean to publish [held_rounds, held_rounds #194] rebuilt from a held-review state file | $0.75 | not recorded | not recorded |
Overrides
max_rounds: — to 6; by not recorded; why: not recorded predates override recording (2026-11-02): found in runstate/held-auto/virtapi.json, last written 2026-10-29T08:44Z; who set it, why, when and the value before are not known [review_overrides, review_overrides #21]
- Not recorded: the sha256 of the archive each round reviewed (held_rounds records it for rounds from 2026-11-02; these rounds were rebuilt from state files)
- Not recorded: the round cap in force at each round (the state files did not keep it)
- Not recorded: who raised max_rounds to 6 and why (review_overrides #21 was backfilled from a state file; overrides are recorded with who and why from 2026-11-02)
Defects
Fully recorded- Ledger entries5 [defects, defects where product_slug=virtapi and this tag or chain]
- Disclosed in the archive5 [docs/defects/defects.json, entries]
5 ledger entries: by severity low 5; by status fixed-before-release 5.
| Defect | Severity | Status | Found by | Fixed in |
|---|---|---|---|---|
RSD-virtapi-6fa19c42d0Admin handbook: The handbook names a `pull-redirect` check that appears nowhere in it; the section above shows a hosts.toml grep, and its checks list has no such id. [defects, defects #134527] | low | fixed-before-release | held review (review model) | — |
RSD-virtapi-40685384daAdmin handbook: The cited section is not in this handbook; it exists only in the full runbook. [defects, defects #134528] | low | fixed-before-release | held review (review model) | — |
RSD-virtapi-d795f1d19eAdmin handbook: The state-dirs check is in DB_HANDBOOK.md, not above, and it lists /etc/kubernetes/pki as drwxr-xr-x, so the directory is not root-only. [defects, defects #134529] | low | fixed-before-release | held review (review model) | — |
RSD-virtapi-41131471afDatabase handbook: The section's own output shows the pki directory as drwxr-xr-x, which is not root-only; the check records only ls -ld and does not show the key files' modes. [defects, defects #134530] | low | fixed-before-release | held review (review model) | — |
RSD-virtapi-06f4172e2cAPI guide: The guide has no sections below, only a list of check ids without commands, routes or outputs. [defects, defects #134531] | low | fixed-before-release | held review (review model) | — |
Verification
2 items not recorded- Reproduced before publishingyes (rebuilt digest sha256:1b50959eea78ae4db3a6037b90943ada86b9cb5426bb4790525316087d0ff582 · published digest sha256:1b50959eea78ae4db3a6037b90943ada86b9cb5426bb4790525316087d0ff582 · digest match yes · builder moby/buildkit:v0.31.2 · build seconds 320) [docs/provenance/REPRO_VERIFICATION.json, verified]
- Final contract gate (G8)PASS (checks cosign, scan_grade, tag_base_os, vex_shipped, scout_grade_a, script_copies, three_way_sha, offline_rebuild, rebuild_manifest, artifact_coverage, assetchain_coverage) [stage_runs, stage_runs chain 788 package_archive gate_result.g8.result]
- Grade at releaseA (percent 94 · tool docker scout policy 1.26.0 · config docker-default · org vex no · at 2026-10-29T09:13:33Z · failing Docker Scout counts 3 packages with copyleft licences (GPL, LGPL), all of them operating-system packages (it counts only packages whose licence it can read; the SBOM lists every component).) [SCOUT_EVIDENCE.json, docker_scout_policy]
- First own scan of the releaseA (at 2026-10-29T09:21:53Z · score 100 · rubric cerodeo-v1 · fixable critical 0 · fixable high 0 · syft 1.54.1 · grype 0.120.1 · grype db v6.1.10@2026-10-29T06:23:34Z) [image_scans, image_scans #1546]
- Image signatureverified on the index and the linux/amd64 manifest (key fingerprint 04daa92344a52dbc · at 2026-10-29T09:13:22Z) [docs/provenance/IMAGE_EVIDENCE.json, signed]
- Image signature transparency-log entries
- log index 3559848246 · transparency-log entry
- log index 3559850796 · transparency-log entry
- rebuild.json signatureSigstore bundle, release key (key fingerprint 04daa92344a52dbc · log index 3631237763 · transparency-log entry · integrated 2026-11-01T13:32:34Z) [ReadyStack-virtapi-v1.9.1-CE-debian12-r1.rebuild.json.sigstore, verificationMaterial.tlogEntries[0]]
- Signed attestations
- kind provenance · digest sha256:cf941d3d6d428302be0965f4c0b1ec32c886b731c8d9e2673f526e9e46ac4de1 · state attached · log index 3563610020 · transparency-log entry
- kind sbom · digest sha256:cf941d3d6d428302be0965f4c0b1ec32c886b731c8d9e2673f526e9e46ac4de1 · state attached · log index 3563611813 · transparency-log entry
- kind vsa · digest sha256:cf941d3d6d428302be0965f4c0b1ec32c886b731c8d9e2673f526e9e46ac4de1 · state attached · log index 3563614260 · transparency-log entry
- kind provenance · digest sha256:1b50959eea78ae4db3a6037b90943ada86b9cb5426bb4790525316087d0ff582 · state attached · log index 3563616541 · transparency-log entry
- kind sbom · digest sha256:1b50959eea78ae4db3a6037b90943ada86b9cb5426bb4790525316087d0ff582 · state attached · log index 3563619016 · transparency-log entry
- kind vsa · digest sha256:1b50959eea78ae4db3a6037b90943ada86b9cb5426bb4790525316087d0ff582 · state attached · log index 3563622221 · transparency-log entry
Offline clean-room rebuilds
- 2026-10-29T06:20:35Z on build host 3 (Docker-in-Docker daemon with --network none): bit for bit yes, digest match yes, customer verify yes
rebuilt sha256:1b50959eea78ae4db3a6037b90943ada86b9cb5426bb4790525316087d0ff582 [clean-room rebuild ledger, runs[539]]
- Not recorded: the policy tool's --result-file itself (its per-policy results are copied into SCOUT_EVIDENCE.json and the archive's IMAGE_EVIDENCE.json; the file is not kept)
- Not recorded: the pins record (docs/PINS.md is not in this archive as generated; a repack that adds it is appended to this trail's history)
Publication
Fully recorded- Image pushed (internal tag), publish_image passed2026-10-29T06:07:29Z [stage_runs, stage_runs chain 788 stage publish_image]
- Release tag promoted2026-10-29T09:21:07Z (method imagetools_create_retag_by_digest_no_rebuild · digest sha256:cf941d3d6d428302be0965f4c0b1ec32c886b731c8d9e2673f526e9e46ac4de1 · tag readystack/virtapi:v1.9.1-CE-debian12-r1) [deliverables/provenance/PROMOTION_RECORD.json, promoted_at]
- Archive manifests written2026-10-29T09:17:13Z [PUBLISH_MANIFEST.json, published_at]
- Archive cut over on prodasset, package_archive passed2026-10-29T09:21:39Z [stage_runs, stage_runs chain 788 stage package_archive]
- Cut-over markerpresent (chain 788) [.cutover.json]
- Release checklist and site event2026-10-29T09:21:37Z (status complete · site event 270 · steps grade a verified done · release tag promoted done · cosign signed done · release evidence recorded done · contract gate passed done · archive published done · hub readme live done · reproducibility recorded done · defects ledger published done · catalog available done · build request fulfilled done · seo regenerated skipped · site catalogue refreshed done · site grade recorded done · site queue synced done · customer requests charged done · owners notified done) [deliverables/provenance/RELEASE_CHECKLIST.json, run_at]
Packages and CPU level
Fully recorded- Packages in the image122 (scanned 2026-11-02T06:30:04Z · source backfill:daily-scan) [release_images, package_count]
- x86-64 level the image needsv2 (used v4 · baseline v2 · elf files 280 · probed 2026-11-02T17:12:47Z · source backfill) [release_images, isa_level_hard]
History
1 event- 2026-11-02T23:33:35Z generated: by KitForge release/build_trail.py · generator commit 916780cc218cf013bd623a8c085aaf73d3b053d0 · note backfill: built after the release from its records
Records
26 records| Record | Where it is | Rows |
|---|---|---|
docs/defects/defects.json | inside the archive (ReadyStack-virtapi-v1.9.1-CE-debian12-r1.tar.gz) | — |
docs/provenance/IMAGE_EVIDENCE.json | inside the archive (ReadyStack-virtapi-v1.9.1-CE-debian12-r1.tar.gz) | — |
docs/provenance/LOCKED_DIGEST.txt | inside the archive (ReadyStack-virtapi-v1.9.1-CE-debian12-r1.tar.gz) | — |
docs/provenance/REPRO_VERIFICATION.json | inside the archive (ReadyStack-virtapi-v1.9.1-CE-debian12-r1.tar.gz) | — |
docs/provenance/SOURCE_TREE_HASH.json | inside the archive (ReadyStack-virtapi-v1.9.1-CE-debian12-r1.tar.gz) | — |
.cutover.json | beside the archive (prodasset /data/production/virtapi/v1.9.1-CE-debian12-r1/) | — |
MANIFEST.json | beside the archive (prodasset /data/production/virtapi/v1.9.1-CE-debian12-r1/) | — |
PUBLISH_MANIFEST.json | beside the archive (prodasset /data/production/virtapi/v1.9.1-CE-debian12-r1/) | — |
ReadyStack-virtapi-v1.9.1-CE-debian12-r1.rebuild.json | beside the archive (prodasset /data/production/virtapi/v1.9.1-CE-debian12-r1/) | — |
ReadyStack-virtapi-v1.9.1-CE-debian12-r1.rebuild.json.sigstore | beside the archive (prodasset /data/production/virtapi/v1.9.1-CE-debian12-r1/) | — |
SCOUT_EVIDENCE.json | beside the archive (prodasset /data/production/virtapi/v1.9.1-CE-debian12-r1/) | — |
clean-room rebuild ledger | the clean-room rebuild ledger (runstate/audit-2026-09/bit4bit.json, not published) | — |
build_requests | sadb, ReadyStack's engine database (not published) | 463 |
chains | sadb, ReadyStack's engine database (not published) | 788 |
defects | sadb, ReadyStack's engine database (not published) | virtapi v1.9.1-CE-debian12-r1 |
drive_runs | sadb, ReadyStack's engine database (not published) | chain 788 |
held_rounds | sadb, ReadyStack's engine database (not published) | chain 788 |
image_scans | sadb, ReadyStack's engine database (not published) | 1546 |
micro_step_runs | sadb, ReadyStack's engine database (not published) | chain 788 |
release_images | sadb, ReadyStack's engine database (not published) | virtapi v1.9.1-CE-debian12-r1 |
review_overrides | sadb, ReadyStack's engine database (not published) | 21 |
stage_events | sadb, ReadyStack's engine database (not published) | chain 788 |
stage_runs | sadb, ReadyStack's engine database (not published) | chain 788 |
attestations.json | the chain's workspace on the controller (not published) | — |
deliverables/provenance/PROMOTION_RECORD.json | the chain's workspace on the controller (not published) | — |
deliverables/provenance/RELEASE_CHECKLIST.json | the chain's workspace on the controller (not published) | — |