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

Support copying nested image indices #2076

Open
thomascate opened this issue Aug 4, 2023 · 1 comment
Open

Support copying nested image indices #2076

thomascate opened this issue Aug 4, 2023 · 1 comment
Labels
kind/feature A request for, or a PR adding, new functionality

Comments

@thomascate
Copy link

I have a repo in ECR that contains images that were pushed up using porter. These contain a CNAB manifest list as described here.
https://github.com/cnabio/cnab-spec/blob/main/201-representing-CNAB-in-OCI.md
https://getporter.org/bundle/manifest/

However when I attempt to copy or sync that manifest list, skopeo exits when it hits the first multi-arch image, as it looks to be expecting the list to only contain images.

skopio sync --src-creds AWS:$(aws ecr get-login-password --region us-west-2) --preserve-digests --all --src docker --dest dir --scoped [REDACTED].dkr.ecr.us-west-2.amazonaws.com/[REDACTED]@sha256:703533993a679fee907002ba7e46c00f753187592417887dcc1a58c83704c715 /tmp/test
time="2023-08-04T18:55:00Z" level=info msg="Tag presence check" imagename="[REDACTED].dkr.ecr.us-west-2.amazonaws.com/[REDACTED]@sha256:703533993a679fee907002ba7e46c00f753187592417887dcc1a58c83704c715" tagged=true
time="2023-08-04T18:55:00Z" level=info msg="Copying image ref 1/1" from="docker://[REDACTED].dkr.ecr.us-west-2.amazonaws.com/[REDACTED]@sha256:703533993a679fee907002ba7e46c00f753187592417887dcc1a58c83704c715" to="dir:/tmp/test/[REDACTED].dkr.ecr.us-west-2.amazonaws.com/[REDACTED]@sha256:703533993a679fee907002ba7e46c00f753187592417887dcc1a58c83704c715"
Getting image list signatures
Copying 28 of 28 images in list
Copying image sha256:81386e0f23240f8e4207d362cbdf33638e73cd965da3e8d1b1c5b0114f6e558e (1/28)
Getting image source signatures
Copying blob sha256:488e03c54ce07f4455fe6950286fb2dd659c0e15b12618e89cfbed334951bf84
Copying config sha256:488e03c54ce07f4455fe6950286fb2dd659c0e15b12618e89cfbed334951bf84
Writing manifest to image destination
Copying image sha256:76405604329fa8a046124482afc667c0c19c1363f4efe2adcd139280aaf8814e (2/28)
Getting image source signatures
Copying blob sha256:14e13ad838514a9699790034eb09ed65e0068e660190f64002af3d4ed0ea4200
Copying blob sha256:284092e1284f10964a53f3f584930c79a4f33ff58415c4d76c9cacd82124be1c
Copying blob sha256:7007490126efaae58924972668256aaeb4858e6c4537eb4257e1978719b958c7
Copying blob sha256:c2d4bbc831b6f54183c1157036b1c92c3eb7f24c51c7bd225b5933fce9cbcfae
Copying blob sha256:b360ac7112729d5228e8b61d5f7efa288d23248705eba439ba76f0f1f01ed4c8
Copying blob sha256:81e02450c7f58d478712fdeadcca5dc192d7544e126987bb8d3d20580d143ca2
Copying blob sha256:cab41fae24569ad6d58a7b3ba25fabec0b14769bad7788287a1a23553c2424c0
Copying blob sha256:b3cb319895359f023906bbe093f1b94fdbdaddeea9a1388b25ee554dfa2ab519
Copying blob sha256:b9526eb944e8c4d075c2d9c4a5e0b663cfce7d4b8e674db6431e30c65d4b2cb7
Copying config sha256:d354477c66106866e7c3792b38e6c521375e5078fd3ac8a1b854550446f8be84
Writing manifest to image destination
Copying image sha256:7e4e9f7a0954b45736d149c40e9620a6664036bb05f0dce447bef5042b139f5d (3/28)
time="2023-08-04T18:55:03Z" level=fatal msg="Error copying ref \"docker://[REDACTED].dkr.ecr.us-west-2.amazonaws.com/[REDACTED]@sha256:703533993a679fee907002ba7e46c00f753187592417887dcc1a58c83704c715\": copying image 3/28 from manifest list: Unexpectedly received a manifest list instead of a manifest for a single image"
@mtrmac mtrmac added the kind/feature A request for, or a PR adding, new functionality label Aug 4, 2023
@mtrmac
Copy link
Collaborator

mtrmac commented Aug 4, 2023

Thanks for your report.

Yes, this is not currently supported. Doing that for registry-to-registry copies would not be too hard to implement; dealing with other transports might be harder and needs a transport-by-transport look.

In the worst case, it should be possible (or the only option) to only support this for transports that specifically opt into supporting nested indices.

Transferring this report to the containers/image repo, where the functionality would be implemented.

@mtrmac mtrmac transferred this issue from containers/skopeo Aug 4, 2023
@mtrmac mtrmac changed the title Error when attempting to copy an image list, which itself contains an image list Support copying nested image indices Jun 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature A request for, or a PR adding, new functionality
Projects
None yet
Development

No branches or pull requests

2 participants