iso: use signed ostree transport for bootc switch at install time - #357
kylerankin wants to merge 1 commit into
Conversation
The ISO kickstart used 'bootc switch --mutate-in-place --transport registry ghcr.io/projectbluefin/finpilot:stable'. Plain registry (docker://) transport performs no sigstore/cosign verification and resolves the mutable :stable tag at install time, leaving the ISO install path as the only place that skips signature checks — inconsistent with build-image.yml (keyless Fulcio signing) and build/00-image-info.sh (IMAGE_REF uses ostree-image-signed). Switch to ostree-image-signed:docker://, which wraps the registry transport with sigstore verification against Fulcio/Rekor, matching the repo's trust model. Signed-off-by: kylerankin <kylerankin@users.noreply.github.com>
There was a problem hiding this comment.
This appears to duplicate #366, which makes the same change to iso/iso.toml.
Verified by reading both diffs in full: both replace bootc switch --mutate-in-place --transport registry ghcr.io/projectbluefin/finpilot:stable with bootc switch --mutate-in-place ostree-image-signed:docker://ghcr.io/projectbluefin/finpilot:stable, both for issue #330, and the claim is grounded — build/00-image-info.sh:41 already sets IMAGE_REF="ostree-image-signed:docker://...", so this aligns the ISO path with the existing trust model.
This PR is earlier, but #366 is a strict superset and I'd suggest it as the survivor:
- #366 adds
%post --erroronfail. Without it, a failedbootc switchin kickstart%postis swallowed and the install completes on the unswitched base image — with the signed transport now able to reject an image, a verification failure should fail the install rather than pass silently. - #366 also updates the FORK NOTE comment to the
ostree-image-signed:docker://form; this PR leaves that comment telling forks to use the old unsigned ref, and instead appends a long inline#annotation on the command line itself.
Flagging for a maintainer: if you agree, this one could be closed in favour of #366. I have not closed anything.
— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.78
Finding
[sec-check] #330: the ISO kickstart used
Plain
registry(docker://) transport performs no sigstore/cosign verification and resolves the mutable:stabletag at install time. This is the only install path that skips signature checks, inconsistent with the repo's trust model (build-image.ymlsigns keyless via Fulcio;promote-main-to-stable.ymlcosign-verifies before promotion;build/00-image-info.shsetsIMAGE_REF="ostree-image-signed:docker://...").Fix
Switch to the signed OSTree transport, matching
00-image-info.sh:Dropping
--transport registry,ostree-image-signed:docker://wraps the registry transport with sigstore verification against Fulcio/Rekor, so the ISO install path verifies the same signed image as in-place upgrades.— hive: backend=pi model=lemonade/Ornith-1.5-35B-A3B-GGUF-Q6_K