Skip to content
This repository was archived by the owner on Oct 10, 2020. It is now read-only.
This repository was archived by the owner on Oct 10, 2020. It is now read-only.

(atomic sign) and (skopeo copy) are inconsistent WRT Docker sigstore configuration #594

@mtrmac

Description

@mtrmac

Per #539 (comment) , the sigstore configuration is done differently in atomic sign and skopeo copy, i.e. skopeo copy won't see signatures created by atomic sign.

We need to make these consistent; it is not as important how, but we do need to do that.


Currently, AFAICS:

Within the first match (only), which should be a dictionary, it uses the field sigstore-write if writing and it is defined, or sigstore (for either reading or writing). The value of the field is an URL to the top directory for the sigstore to be used for these images (which still uses the standard layout, i.e. $sigstore_dir/hostname/ns1/ns2/...).

If nothing matches, the default is no sigstore

See https://github.com/mtrmac/skopeo/blob/integrate-all-the-things/integration/fixtures/atomic.conf for an example of such a configuration.


Rationale for the more complex containers/image design:

  • Supports HTTP: we can configure to use remote signatures directly, without fetching them to a local directory first.
  • Allows a separate sigstore-write location for staging new signatures to be published (i.e. the read path can use the public HTTP version which public users see, and the write path is company-private; the company can of course use the same local path for reading and writing instead)
  • Allows different signature stores for different repositories, i.e. docker.io/redhat and docker.io/coreos can publish HTTP sigstores and we can use both of them at the same time (i.e. federation model, not a Notary-like single point of distribution)
  • The default for repositories which have not been specifically configured is to refuse to store signatures (though the user can use "" if they really want to); if nobody has configured a sigstore
    for a repo, they very likely haven’t thought about a publishing workflow for the signatures, so we shouldn’t be storing them somewhere in /var and pretending to suceed signing when the signatures are invisible to consumers of that image and the user pushing the image has no idea they are invisible.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions