feat: cosign-compatible signatures for OCI-SIF #3510
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of the Pull Request (PR):
Add a new
--cosign
mode tosingularity sign
, which will apply a cosign-compatible signature to a container image in an OCI-SIF, and store the signature image in the OCI-SIF, using the name.ref association defined by sylabs/oci-tools.Unlike the upstream sylabs/oci-tools code, Singularity currently only creates / considers OCI-SIF images that contain a single OCI image. Consequently there is no signature handling for image indices in Singularity at this point.
From this commit onwards, Singularity ignores cosign images in the OCI-SIF when looking for an OCI image to execute, push etc. Older versions of Singularity will error when attempting to execute a signed image, as they expect only one image in an OCI-SIF, with no filtering of non-executable cosign related images.
This fixes or addresses the following GitHub issues:
Before submitting a PR, make sure you have done the following:
make check
and tested this PR locally with amake test
, andmake testall
if possible (see CONTRIBUTING.md).