A re-work of my previous port of estesp's manifest tool,
which used a yaml file to annotate and push a new manifest
list. This approach uses a series of commands:
- inspect: will pull down and print out a manifest or manifest list
- fetch: same as inspect but will overwrite any locally-made
annotations, but won't print the list
- annotate: will modify the locally-stored manifest list by adding
variants, os features, cpu features, an os kind, and/or an archicture
- create: will assemble and push a new manifest list. This also creates
cross-repo blob mounts for any layers not existing on the new manifest
lists's target repo.
The inspect, fetch, and annotate commands are optional if all a user
wants to do is create a multi-arch manifest list based on existing
Things left to do:
- Add support for plain http registries.
- Lots of cleanup.
- Lost more tests (and make existing ones much more thorough).
- Add some indicator that a manifest inspect shows a not-yet-commited
Signed-off-by: Christy Perez <email@example.com>