Currently charmcraft requires an image digest on the local docker registry to upload an OCI image. When it does that, it extracts the OCI image to a tarball (equivalent to docker image save) and then uploads that.
Charmcraft should be able to take a rock file directly. For example:
This would do the equivalent of skopeo copy docker://ghcr.io/canonical/charmed-postgresql:14.11-22.04_edge docker://registry.charmhub.io/my-rock:latest
We have permission from @sergiusens to replace the current Python-based implementation with skopeo, but we must still be able to take:
What needs to get done
Currently charmcraft requires an image digest on the local docker registry to upload an OCI image. When it does that, it extracts the OCI image to a tarball (equivalent to
docker image save
) and then uploads that.Charmcraft should be able to take a rock file directly. For example:
This would do the equivalent of
skopeo copy oci-archive:my-rock_1.0.rock docker://registry.charmhub.io/my-rock:latest
For copying between registries, Charmcraft should take something like:
This would do the equivalent of
skopeo copy docker://ghcr.io/canonical/charmed-postgresql:14.11-22.04_edge docker://registry.charmhub.io/my-rock:latest
We have permission from @sergiusens to replace the current Python-based implementation with
skopeo
, but we must still be able to take:cc @carlcsaposs-canonical
Why it needs to get done
Rockcraft outputs files directly