[integration-cli] fix p/z HubPullSuite tests#34837
Conversation
dnephin
left a comment
There was a problem hiding this comment.
We should probably be using an image that is specifically designated for this test, instead of hopping that a library image happens to retain the properties we expect.
|
Yeah, a repo with 3 small images would definitely be ideal here. This isn't that far off though. |
|
@dnephin in further investigation into this, alpine only works because the oldest two tags it downloads are v1 images and weren't converted to manifest lists, so we should definitely make a repo with images for this test. Something like docker/hubpulltest or something. Do you know who can make such a thing? |
|
I think Can we create the images by tagging |
|
Those images are just amd64 and not manifest lists, so they will definitely work here just like the old test did, but we won't be testing ml pulls which might be something we want to do. |
|
If you can tag some true images for other platforms on your hub repo I can build a manifest list with docker/cli#138 and tag that instead of the single image manifest. Do those 3 tags work? I haven't really looked at the test so I'm not sure what it needs. I'm hoping we can remove a bunch of these conditions with the better fixtures. |
|
Yep those tags all worked when I tested it. I built / pushed tophj/true:s390x and tophj/true:ppc64le here https://hub.docker.com/r/tophj/true/tags/ |
|
Ok, this is setup: https://hub.docker.com/r/dockercore/engine-pull-all-test-fixture/tags/ Let me know if there are any problems |
8bb7d04 to
c00810e
Compare
|
Looks good from my end. I think we'll have to add an arm image too, let me see what happens with the CI. |
This fix is an enhencement for `TestPullAllTagsFromCentralRegistry`. The test needs to test `--all-tags=true`. However, it uses `busybox` which consists of 75 tags (and increasing). With moby#34837 (comment) this fix changes `busybox` into `dockercore/engine-pull-all-test-fixture` so that the test time could be substentially reduced. Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
c00810e to
20b0822
Compare
This test tries to pull all the tags in the busybox repo and looks to see if there were more than two images pulled. This was failing on p/z due to the recent change to manifest lists, where one of the busybox tags didn't have a p/z manifest in it's manifest list. This error seems fine to me, so I changed the test to see if pull fails, it fails with the "manifest not found" error. Also switched from busybox -> alpine, because it has significantly less tags, and the images are close in size. Signed-off-by: Christopher Jones <tophj@linux.vnet.ibm.com>
20b0822 to
5739ba1
Compare
|
|
||
| // pull a repository large enough to fill the mount point | ||
| pullOut, err := s.d.Cmd("pull", "registry:2") | ||
| pullOut, err := s.d.Cmd("pull", "debian:stretch") |
There was a problem hiding this comment.
registry:2 didn't have a manifest list either, so I switched it to debian:stretch. The entire point of this test though is to run it out of memory so that seems fine to me
|
thanks for the help @dnephin! |
|
@dnephin I pushed tophj/true:armhf, which we should add to the manifest list so the arm CI doesn't have this problem |
|
you'll have to annotate the architecture to arm and the variant to v7 on this one.
|
|
I've pushed the 3 tags again to include that manifest |
These two tests try and pull all the tags in the busybox repo and looks to see
if there were more than two images pulled. This was failing on
p/z due to the recent change to manifest lists, where one of the busybox
tags didn't have a p/z manifest in it's manifest list.
This error seems fine to me, so I changed the test to see if pull fails,That gets into a weird condition where one of the tests would fail depending on which image it downloaded first.it fails with the "manifest not found" error.
Also switched from busybox ->
alpinea test-specific dockercore repo, because it has significantly less tags, and the images are significantly smaller.Signed-off-by: Christopher Jones tophj@linux.vnet.ibm.com