Skip to content

Add ability to download/upload one or more resources to/from disk #730

@TerryHowe

Description

@TerryHowe

What is the version of your ORAS CLI

0.16.0

What would you like to be added?

Ability to download and upload one or more resources to and from disk.

  • In air gapped environments, this may be the only way replicate a registry. The data would be saved to say a thumb drive which is physically moved into the air gapped environment and uploaded to a private registry.
  • Sometimes it may be more convenient to dump all the data onto a local file and upload later rather than use the copy command.

Why is this needed for ORAS?

In order to mirror registries, we need the ability to download one or more resources from a registry to disk. We also need the ability to upload the data saved on disk to a registry.

  • Manual backup and restore of registries
  • Mirroring registries to for air gapped environments
  • Mirroring registries for performance reasons
  • Convenient way to promote artifacts from dev to staging to prod
  • The destination of the data could be a directory (containing directories and files), a tgz file or a stream of tgz data. I think the gzip compressed tar file (tgz) would be the most convenient.
  • The ability to to specify multiple resources to copy to a single disk output is needed.
  • Need to be able to specify credentials for source or destination registry similar to ~/.docker/config.json
  • Need to be able to specify TLS cert for source or destination registry.
  • Obviously needs to be optimized not to contain the same blob more than once.
  • Given a list of image:tags, the new uploaded registry images should have the same shasums

Are you willing to submit PRs to contribute to this feature?

  • Yes, I am willing to implement it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already existsenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions