-
Notifications
You must be signed in to change notification settings - Fork 885
Description
Hi Skopeo Team, I'm having an issue with skopeo copy I hope you can help me with
For the specific OCI images, when using skopeo copy command, skopeo annotates manifest index with
"annotations": {
"io.github.containers.compression.zstd": "true"
}
which changes digest of a manifest index. If using --preserve-digests flag, skopeo will fail with a
FATA[0005] Manifest list must be converted to type "application/vnd.oci.image.index.v1+json" to be written to destination, but we cannot modify it: "Instructed to preserve digests"
Error message. I'm not sure why the annotation is added, I think because the referenced image manifest contains layers with zstd compression, so the annotations seems as an extra informational piece. We have noticed this on multiple images, Issue can be reproduced with the following command:
skopeo copy --debug --all --preserve-digests --digestfile /tmp/digests.txt \
--src-username $USERNAME --src-password $PASSWORD \
--dest-creds token:$DEST_TOKEN \
docker://registry.gitlab.com/gitlab-org/gitlab-runner/helper-entrypoint:latest \
docker://ourprivateoci.io/gitlab-org/gitlab-runner/helper-entrypoint:latest
I can't find a way of stopping skopeo from annotating manifest, if there is one, please let me know. I have tried disabling compression on dst from skopeo, but the annotation is still added. Is this annotation just extra informational piece?
Would it make sense to add a flag that can disable mutating source manifest?