diff mbox series

[v1,2/6] tests/docker: don't set DOCKER_REGISTRY on non-x86_64

Message ID 20210329110303.15235-3-alex.bennee@linaro.org
State Superseded
Headers show
Series check-tcg for non-x86 hosts | expand

Commit Message

Alex Bennée March 29, 2021, 11:02 a.m. UTC
Currently our gitlab registry is x86_64 only so attempting to pull an
image from it on something else will end in tears.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

---
 tests/docker/Makefile.include | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

-- 
2.20.1

Comments

Thomas Huth March 29, 2021, 11:36 a.m. UTC | #1
On 29/03/2021 13.02, Alex Bennée wrote:
> Currently our gitlab registry is x86_64 only so attempting to pull an

> image from it on something else will end in tears.

> 

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>   tests/docker/Makefile.include | 5 ++++-

>   1 file changed, 4 insertions(+), 1 deletion(-)

> 

> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include

> index 7cab761bf5..9f464cb92c 100644

> --- a/tests/docker/Makefile.include

> +++ b/tests/docker/Makefile.include

> @@ -16,7 +16,10 @@ DOCKER_IMAGES := $(sort $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.doc

>   DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES))

>   # Use a global constant ccache directory to speed up repetitive builds

>   DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache

> -DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),registry.gitlab.com/qemu-project/qemu)

> +ifeq ($(HOST_ARCH),x86_64)

> +DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu

> +endif

> +DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY))


Reviewed-by: Thomas Huth <thuth@redhat.com>
Willian Rampazzo March 29, 2021, 2:37 p.m. UTC | #2
On Mon, Mar 29, 2021 at 8:03 AM Alex Bennée <alex.bennee@linaro.org> wrote:
>

> Currently our gitlab registry is x86_64 only so attempting to pull an

> image from it on something else will end in tears.

>

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  tests/docker/Makefile.include | 5 ++++-

>  1 file changed, 4 insertions(+), 1 deletion(-)

>


Reviewed-by: Willian Rampazzo <willianr@redhat.com>
Richard Henderson March 30, 2021, 3:24 p.m. UTC | #3
On 3/29/21 5:02 AM, Alex Bennée wrote:
> Currently our gitlab registry is x86_64 only so attempting to pull an

> image from it on something else will end in tears.

> 

> Signed-off-by: Alex Bennée<alex.bennee@linaro.org>

> ---

>   tests/docker/Makefile.include | 5 ++++-

>   1 file changed, 4 insertions(+), 1 deletion(-)


Reviewed-by: Richard Henderson <richard.henderson@linaro.org>


r~
Philippe Mathieu-Daudé March 31, 2021, 12:32 p.m. UTC | #4
Hi Alex, Willian,

On 3/29/21 1:02 PM, Alex Bennée wrote:
> Currently our gitlab registry is x86_64 only so attempting to pull an

> image from it on something else will end in tears.

> 

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> ---

>  tests/docker/Makefile.include | 5 ++++-

>  1 file changed, 4 insertions(+), 1 deletion(-)

> 

> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include

> index 7cab761bf5..9f464cb92c 100644

> --- a/tests/docker/Makefile.include

> +++ b/tests/docker/Makefile.include

> @@ -16,7 +16,10 @@ DOCKER_IMAGES := $(sort $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.doc

>  DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES))

>  # Use a global constant ccache directory to speed up repetitive builds

>  DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache

> -DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),registry.gitlab.com/qemu-project/qemu)

> +ifeq ($(HOST_ARCH),x86_64)

> +DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu

> +endif

> +DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY))


I remember we chatted about Docker multiarch on IRC.

It doesn't look going into the right direction. IMO the problem
you are having is because we push an amd64 docker image into the now
multiarch namespace, so it is obviously failing on all non-amd64 hosts.

I think the correct way is to remove the images stored in the multiarch
namespace (they are amd64, not multiarch); and store the amd64 images
under the amd64 namespace.

IOW prepend amd64/ in our amd64 specific images.

Then you could push a aarch64 image using the arm64v8/ prefix namespace
and the buildsys machinery will work with the registry.

FWIW I tested it with mips64le/ prefix on the mips64le runner.

Willian, can you have a try with ppc64le/ (eventually s390x/) prefix
for similar hosts?

Related info:
https://github.com/docker-library/official-images#architectures-other-than-amd64
https://github.com/docker-library/official-images#multiple-architectures

Regards,

Phil.
Alex Bennée March 31, 2021, 2:57 p.m. UTC | #5
Philippe Mathieu-Daudé <f4bug@amsat.org> writes:

> Hi Alex, Willian,

>

> On 3/29/21 1:02 PM, Alex Bennée wrote:

>> Currently our gitlab registry is x86_64 only so attempting to pull an

>> image from it on something else will end in tears.

>> 

>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

>> ---

>>  tests/docker/Makefile.include | 5 ++++-

>>  1 file changed, 4 insertions(+), 1 deletion(-)

>> 

>> diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include

>> index 7cab761bf5..9f464cb92c 100644

>> --- a/tests/docker/Makefile.include

>> +++ b/tests/docker/Makefile.include

>> @@ -16,7 +16,10 @@ DOCKER_IMAGES := $(sort $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.doc

>>  DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES))

>>  # Use a global constant ccache directory to speed up repetitive builds

>>  DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache

>> -DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),registry.gitlab.com/qemu-project/qemu)

>> +ifeq ($(HOST_ARCH),x86_64)

>> +DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu

>> +endif

>> +DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY))

>

> I remember we chatted about Docker multiarch on IRC.

>

> It doesn't look going into the right direction. IMO the problem

> you are having is because we push an amd64 docker image into the now

> multiarch namespace, so it is obviously failing on all non-amd64 hosts.

>

> I think the correct way is to remove the images stored in the multiarch

> namespace (they are amd64, not multiarch); and store the amd64 images

> under the amd64 namespace.

>

> IOW prepend amd64/ in our amd64 specific images.


I agree we should fix this properly but I don't think it's worth the
churn on the run up to release. ATM we don't really test building on
other architectures (qemu or tests) except manually. This step makes it
a little less painful. Once we actually have the non-x86 runners going
we can then start working out how to get them to push properly to the
registry and revert this change.

>

> Then you could push a aarch64 image using the arm64v8/ prefix namespace

> and the buildsys machinery will work with the registry.

>

> FWIW I tested it with mips64le/ prefix on the mips64le runner.

>

> Willian, can you have a try with ppc64le/ (eventually s390x/) prefix

> for similar hosts?

>

> Related info:

> https://github.com/docker-library/official-images#architectures-other-than-amd64

> https://github.com/docker-library/official-images#multiple-architectures

>

> Regards,

>

> Phil.



-- 
Alex Bennée
diff mbox series

Patch

diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 7cab761bf5..9f464cb92c 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -16,7 +16,10 @@  DOCKER_IMAGES := $(sort $(notdir $(basename $(wildcard $(DOCKER_FILES_DIR)/*.doc
 DOCKER_TARGETS := $(patsubst %,docker-image-%,$(DOCKER_IMAGES))
 # Use a global constant ccache directory to speed up repetitive builds
 DOCKER_CCACHE_DIR := $$HOME/.cache/qemu-docker-ccache
-DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),registry.gitlab.com/qemu-project/qemu)
+ifeq ($(HOST_ARCH),x86_64)
+DOCKER_DEFAULT_REGISTRY := registry.gitlab.com/qemu-project/qemu
+endif
+DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),$(DOCKER_DEFAULT_REGISTRY))
 
 DOCKER_TESTS := $(notdir $(shell \
 	find $(SRC_PATH)/tests/docker/ -name 'test-*' -type f))