{"slug":"virtexportproxy","tag":"v1.9.1-CE-debian12-r1","current":true,"account":false,"tarball":"ReadyStack-virtexportproxy-v1.9.1-CE-debian12-r1.tar.gz","tarball_sha256":"eebbd8f2e90925160358e317e17f49f879b6d25fba7368ba1c05a7d5050658ad","generated_at":"2026-10-29T19:27:22Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/kubevirt/kubevirt","ref":"v1.9.1","commit":"c3d19093f9c7b843b3879b18dc088911c081c39e","url":"https://github.com/kubevirt/kubevirt/tree/c3d19093f9c7b843b3879b18dc088911c081c39e"},"fetches":[{"kind":"git","url":"https://github.com/kubevirt/kubevirt.git"}],"bases":[{"image":"quay.io/kubevirt/builder:2606231619-4fe2cd536f","digest":"sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8"}],"toolchain":{"buildkit":"moby/buildkit:v0.31.2","buildkit_image_digest":"sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0","builder_images":["quay.io/kubevirt/builder:2606231619-4fe2cd536f@sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8@sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8"]},"build_method":"source-rebuild-go","source_date_epoch":1791523273,"source_date_epoch_utc":"2026-10-09T05:21:13Z","target":{"image":"readystack/virtexportproxy:v1.9.1-CE-debian12-r1","image_manifest_digest":"sha256:3bb06b5880899bf2955da20fb6c47810f0a863a9057c0c9ec13f61a3a624322b","config_digest":"sha256:b6a1db19648dbff187c3054214ee37d41097437374ed78dc8d0be0c07de4732c"},"checksummed_files":25689},"files":[{"path":"BASES.tsv","size":189,"sha256":"5a810af4e9abf4e10d821842707a424825d58eff1e69e2c84d4f7aa40b772f7a","public":"full","lines":1,"url":"/api/recipe/virtexportproxy/v1.9.1-CE-debian12-r1/files/BASES.tsv","text":"quay.io/kubevirt/builder:2606231619-4fe2cd536f@sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8\tbases/quay.io_kubevirt_builder_2606231619-4fe2cd536f_a48a7dd5a1b8.oci\n"},{"path":"BUILD_OFFLINE.sh","size":6738,"sha256":"83299978ccd02a0b69e163d760da1211b401bbfa35a3184ca674dc37ff876732","public":"preview","lines":125,"preview":{"text":"#!/usr/bin/env bash\n# =============================================================================\n# ReadyStack — offline reproducible rebuild.\n#\n# Rebuilds this product's image from THIS ARCHIVE ALONE, with no network access\n# of any kind, and prints the resulting linux/amd64 image-manifest digest.\n# Run ./VERIFY_OFFLINE.sh afterwards to assert it equals the published digest.\n#\n# Requirements: linux/amd64 Docker host, docker buildx >= 0.30, jq, tar.\n# No git, no registry access, no additional tooling.\n#\n#   ./BUILD_OFFLINE.sh                the rebuild (OCI image + a docker-loadable copy)\n#   ./BUILD_OFFLINE.sh --provenance   the same rebuild with SLSA v1 build provenance (mode=max) attached to the OCI\n#                                     image, generated by BuildKit, not by any build step. Run on your own hardened,\n#                                     isolated build platform and sign that provenance with a key the build cannot\n#                                     reach, and the result meets SLSA Build Level 3 (see REBUILD.md). The image\n#                                     digest is the same either way.\n# =============================================================================\nset -euo pipefail\nPROVENANCE=0\nfor arg in \"$@\"; do\n  case \"$arg\" in\n    --provenance) PROVENANCE=1 ;;\n    -h|--help) sed -n '2,20p' \"$0\"; exit 0 ;;","lines_shown":24,"lines_total":125}},{"path":"CHECKSUMS.sha256","size":3978035,"sha256":"5646124f4af3ed04ee19e768195d840bec127d0889ae733b3b34a585207c6983","public":"account","lines":25689},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/virtexportproxy/v1.9.1-CE-debian12-r1/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":3380,"sha256":"1816cc143ca45f145e4be7a0610d3d12846ebca4c74f2c4ca438e4223608eb6b","public":"account","lines":42},{"path":"Dockerfile.offline","size":3380,"sha256":"1816cc143ca45f145e4be7a0610d3d12846ebca4c74f2c4ca438e4223608eb6b","public":"account","lines":42},{"path":"Dockerfile.offline.pinned","size":3380,"sha256":"1816cc143ca45f145e4be7a0610d3d12846ebca4c74f2c4ca438e4223608eb6b","public":"preview","lines":42,"preview":{"text":"# =====================================================================================================================\n# KubeVirt v1.9.1 virt-exportproxy: KubeVirt's OWN Bazel build, offline (docker buildx build --network=none).\n# Stage kubevirt-build is KubeVirt's pinned builder (quay.io/kubevirt/builder, CentOS Stream 9, Bazel 6.5.0). It runs\n# kubevirt-build.sh: the ReadyStack patch series (patches/, each patch says what it changes and why), KubeVirt's\n# bootstrap and `bazel build //cmd/virt-exportproxy:virt-exportproxy-image` on vendored/virtexportproxy-src (git archive of c3d19093f9c7), with the\n# vendored Bazel repository cache (RPMs, Go SDK, rules, distroless base, libssl3 .deb: every download by sha256, none\n# made here). The image Bazel builds is unpacked into /out/rootfs\n# (oci-rootfs.py: config parity with the final stage below, no build path in any file); the final stage is that\n# filesystem with that config, as one layer.\n# Dockerfile and Dockerfile.offline are byte copies of this file. Written by\n# product-kits/kubevirt-stack/kubevirt/mk-kits.py from strategies/virtexportproxy.json; never edit by hand.\n# =====================================================================================================================\nFROM quay.io/kubevirt/builder:2606231619-4fe2cd536f@sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8 AS kubevirt-build\n# the commit's date as the default (as every kit declares it): assemble_kit's scratch build passes no build arguments,\n# and kubevirt-build.sh refuses to build without it; the canonical build and BUILD_OFFLINE.sh pass the same value\nARG SOURCE_DATE_EPOCH=1791523273\nARG KUBEVIRT_VERSION=v1.9.1\nCOPY vendored/virtexportproxy-src/ /root/go/src/kubevirt.io/kubevirt/\nCOPY vendored/bazel-repository-cache/ /kvs/cache/repo/\nCOPY patches/ /kvs/kit/patches/\nCOPY vendor/ /kvs/kit/vendor/\nCOPY kubevirt-build.sh oci-rootfs.py gen_rpmdb.py gomod-sbom.py gomod-virt-exportproxy.txt kubevirt-pins.env Dockerfile.offline.pinned /kvs/kit/\n# Bazel runs no ldconfig, so there is no /var/cache/ldconfig/aux-cache to strip; the rm keeps that true.\nRUN bash /kvs/kit/kubevirt-build.sh build virt-exportproxy && rm -f /out/rootfs/var/cache/ldconfig/aux-cache","lines_shown":24,"lines_total":42}},{"path":"Dockerfile.vendor","size":2259,"sha256":"6f50eddf86a70a770c46bb8deddaf520656b8c8c678b6bf08d5ad285df9adbeb","public":"account","lines":28},{"path":"MANIFEST.txt","size":2231213,"sha256":"5a9f64620467aa613bee322fb0bccf43190d33cd6b6d449741f894e0385777a5","public":"account","lines":25691},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"db702391979e0aeef560b35228390eff6b06039d97d03e916f6b9883bdd32df7","public":"full","lines":1,"url":"/api/recipe/virtexportproxy/v1.9.1-CE-debian12-r1/files/SOURCE_DATE_EPOCH.txt","text":"1791523273\n"},{"path":"TARGET_DIGEST.txt","size":355,"sha256":"b989a623eebdff6a7b00d8798c99473d0cc5c98c5d8c8fd8a37718e334e03e8a","public":"full","lines":9,"url":"/api/recipe/virtexportproxy/v1.9.1-CE-debian12-r1/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:3bb06b5880899bf2955da20fb6c47810f0a863a9057c0c9ec13f61a3a624322b\nconfig_digest=sha256:b6a1db19648dbff187c3054214ee37d41097437374ed78dc8d0be0c07de4732c\ntag=readystack/virtexportproxy:v1.9.1-CE-debian12-r1\nprobe_port=80\nprobe_path=/\nprobe_timeout=180\nverify_boot=oneshot\nverify_oneshot_arg=--help\nverify_oneshot_expect=--listen\n"},{"path":"VERIFY_OFFLINE.sh","size":10153,"sha256":"3e8184ea230cfd8f41f977e26be6bf7bd03112c396c517837ce0c7de4f7399dd","public":"account","lines":165},{"path":"docs/PROVENANCE.md","size":1806,"sha256":"b7c70c9bcabf3b63ed6018874b5677174e5fe88b85762a88dcbd59d992c0cc4a","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5364,"sha256":"17a1df0c70b84bebb498f93e4796f0b2572682d0d652234e9d24bf507b7b43ed","public":"account","lines":59},{"path":"docs/VERIFY.md","size":1981,"sha256":"f982389b585639d7089beb2ec34e8263f36092b922d47434a343e4173f2bc88c","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":176,"sha256":"c8f8203e3064f0419e9581d68258753f15a6f6674b626b382627d74a2195dbbb","public":"full","lines":2,"url":"/api/recipe/virtexportproxy/v1.9.1-CE-debian12-r1/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for virtexportproxy (resolve at build_kit)\nquay.io/kubevirt/builder:2606231619-4fe2cd536f@sha256:a48a7dd5a1b80602269b8c714fdaa54f729a9a4a4d096f7ee0d15c94cef343e8\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":2481,"sha256":"0fc5d6b4c607893a44f5b878aa22a6b122694dc07c7dff4ee9350fd39fea22fa","public":"account","lines":42},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":657,"sha256":"6af9d77d43210a7d3cd23fd50cfb48d7c5518ce0e7b0a349aa34b9d1473125ca","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":276323,"sha256":"a6c0f88b0f71eadf7e9f58688aefeac537f240e88fc5727afda87aec1d2692f9","public":"account","lines":5007},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":316,"sha256":"28bbb2f05f01d8e9f5c74a08bb2d148ede542dd35c50ee905e8c38fd062e5f90","public":"full","lines":9,"url":"/api/recipe/virtexportproxy/v1.9.1-CE-debian12-r1/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"virtexportproxy\",\n  \"repo\": \"https://github.com/kubevirt/kubevirt\",\n  \"ref\": \"v1.9.1\",\n  \"commit\": \"c3d19093f9c7b843b3879b18dc088911c081c39e\",\n  \"tree_listing_sha256\": \"de7abf04e51b6cf004d0365dfe6d8c5251edeeb69bfa0caa3d8b366b85fe6f36\",\n  \"file_count\": 12717\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":1,"sha256":"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b","public":"account","lines":1},{"path":"docs/provenance/TOOLCHAIN.lock","size":4286,"sha256":"cb337902171154986e948078fa9a2724b06187aaa2019fa122c0f49c9b986f1b","public":"account","lines":79},{"path":"gen_rpmdb.py","size":1955,"sha256":"4ccfc567d8604ba578a9001bdfb6ffce9e4f759018a487e83b82a291141b150d","public":"account","lines":34},{"path":"gomod-sbom.py","size":6827,"sha256":"36dda6e3fecfe3b36290c2d590cfe0b017ed8bdc6261f7c74c14754c098cb868","public":"account","lines":122},{"path":"gomod-virt-exportproxy.txt","size":5165,"sha256":"f629a431032d849e06ba52d43fcbf18a75dfcc2d7ea069994f431121e161d5c0","public":"account","lines":89},{"path":"kubevirt-build.sh","size":8200,"sha256":"0a8b822cd8dabb2009f98e06a3a40db8f35ec1fdcda7eed1e19110c0cb0225f2","public":"account","lines":156},{"path":"kubevirt-pins.env","size":485,"sha256":"17f3ad30a730a21ef24f6a92de7d96bc48330ee7386fa9c7c7ba6b58150552a7","public":"account","lines":9},{"path":"oci-rootfs.py","size":9179,"sha256":"4f065252354c788d72290f873f6ef96c5a45a712883fa027aeb5a047367b99e1","public":"account","lines":199},{"path":"patches/0001-go-sdk-1.26.10.patch","size":1331,"sha256":"ebbc8de594974d46e283c9c2259436825eb44692624c1d3db3f36f23686dca56","public":"account","lines":37},{"path":"patches/0002-rpm-bumps-cs9-x86_64.patch","size":30141,"sha256":"6cb034453b7b829eb834c5e86d0ca129e0414c05021af640b4216f2f885420d8","public":"account","lines":633},{"path":"patches/0003-rpmdb-layer.patch","size":20458,"sha256":"fbfb796cd80f0be6975414591c1228227780fd3fa107a6fce14de5581c0e1b81","public":"account","lines":416},{"path":"patches/0004-virt-handler-nonroot-default-user.patch","size":734,"sha256":"860de2d46557b3a57c18e95ce4163bd616bd421bb5e9ff88b6375b41e4bc6697","public":"account","lines":16},{"path":"patches/0005-distroless-libssl3-3.0.22-1-deb12u2.patch","size":6313,"sha256":"3a160db2ff4d0e3d2e744370bcee04619523b13b2cbcf7471731635538a29f09","public":"account","lines":137},{"path":"patches/0006-go-modules-x-net-0.60.0-grpc-1.83.2.patch","size":6546865,"sha256":"b315eef09f6fe792a9671bcbc7aa6590cb23d20b8bf9ead8eb93f825e951c863","public":"account","lines":128561,"redactions":[{"line":126576,"kind":"internal host"},{"line":126615,"kind":"internal host"},{"line":126650,"kind":"internal host"},{"line":126654,"kind":"internal host"},{"line":126764,"kind":"internal host"},{"line":128124,"kind":"internal host"},{"line":128138,"kind":"internal host"},{"line":128152,"kind":"internal host"},{"line":128336,"kind":"internal host"}],"kit_sha256":"3af4e8b008f588b32181378111c1bafb09a47ab40eb008e20c8f609caef5b018"},{"path":"rebuild.json","size":1253,"sha256":"a01c313ca1377249fd76bffaea08442f4dfa34ace24c249b05ae0321caac3fad","public":"account","lines":36},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/virtexportproxy/v1.9.1-CE-debian12-r1/files/toolchain/BUILDKIT_TAG.txt","text":"moby/buildkit:v0.31.2\n"}],"skipped":[],"kit_adds":{"bases":{"files":22,"bytes":816718381},"docs":{"files":12771,"bytes":115904377},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":12861,"bytes":346991873}},"links":{"page":"https://readystack.dev/products/virtexportproxy/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fvirtexportproxy%2Frecipe","kit":"https://readystack.dev/buy.html?product=virtexportproxy"}}