Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add document and diagram for artifact movement #31

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

mnm678
Copy link
Contributor

@mnm678 mnm678 commented Feb 14, 2022

cc @SteveLasker @sudo-bmitch

Let me know if there are any specific scenarios you'd like me to describe in more detail.

Signed-off-by: Marina Moore <mnm678@gmail.com>
Copy link
Contributor

@sudo-bmitch sudo-bmitch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I think there are a few scenarios:

  1. Upstream has TUF metadata you want to copy verbatim (mirror). That should be easy, may need to modify the pointer to the TUF metadata to the local mirror, but I can picture a solution to that already (assuming the pointer is just an OCI index that has an annotation acting like a soft link, and the pointer itself doesn't need to be verified so it can be adjusted).
  2. Upstream does not have TUF, or any upstream TUF metadata is ignored. This would be the same as adding a local TUF signature on any new image.
  3. Importing upstream TUF metadata into the local TUF metadata. This is the complicated one that I think you're covering here.

Signed-off-by: Marina Moore <mnm678@gmail.com>
Copy link
Contributor

@sudo-bmitch sudo-bmitch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I'm also remembering that we want a way to avoid "copying the world" when one repository or even a couple tags are mirrored. We may be able to push some of that off to registry settings that could allow "sparse indexes" where not all child manifests exist. But if metadata can be structured to not require that, even better.

docs/movement.md Outdated
* Mirroring the artifact and TUF metadata
* Copying the image without the original signature (or from a registry that doesn't use TUF)
* Copying the image and the original signature
* Copying the image, original signature, and adding an additional verifier's signature

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more to copy a subset of the signatures.
For instance, you might have the original signature and a dev verification signature, with a staging signature. When moved into production the dev and maybe staging signatures are dropped as they aren't needed in production.
Think of the signatures as signed claims, and you don't need, or necessarily want to promote all of them

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I extended the third scenario to include this, and added some more detail to these initial descriptions.

Signed-off-by: Marina Moore <mnm678@gmail.com>
@mnm678
Copy link
Contributor Author

mnm678 commented Feb 15, 2022

LGTM. I'm also remembering that we want a way to avoid "copying the world" when one repository or even a couple tags are mirrored. We may be able to push some of that off to registry settings that could allow "sparse indexes" where not all child manifests exist. But if metadata can be structured to not require that, even better.

This is an interesting one. This doc covers moving a single artifact with any signatures (which could easily be used to copy a couple of artifacts), or mirroring everything, but not mirroring most things. If this is a common scenario, we could create a delegation structure that would let you copy a sub-tree of the delegations or somethings similar.

Signed-off-by: Marina Moore <mnm678@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants