On Tue, Feb 11, 2020 at 4:35 AM Brian Fallik <bfallik(a)gmail.com> wrote:
Hi,
On Mon, Feb 10, 2020 at 2:33 AM Valentin Rothberg <rothberg(a)redhat.com>
wrote:
> Hi Brian,
>
> thanks for reaching out!
>
> On Mon, Feb 10, 2020 at 12:27 AM Brian Fallik <bfallik(a)gmail.com> wrote:
>
>> Hi,
>>
>> I've been actively following the work to package Podman for Debian for
>> eventual installation on my raspberry pi nodes. I noticed the installation
>> docs recommended using the Kubic project packaging and so I used that to
>> successfully (and easily!) install podman on my raspi. Hooray!
>>
>
> Once Podman is in the main repositories of Debian, we will recommend
> using the packages from there.
>
>
>> However now I'm having trouble pulling arm images. All my attempts
>> result in amd64:
>> # podman pull coredns/coredns:latest
>> Trying to pull docker.io/coredns/coredns:latest...
>> Getting image source signatures
>> Copying blob c6568d217a00 done
>> Copying blob 89d2da39cc12 done
>> Copying config b52ee75a77 done
>> Writing manifest to image destination
>> Storing signatures
>> b52ee75a7749dc470ec4dacf990c26733c1477371f190e2748d653b8834c3f48
>> # podman image inspect b52ee75a7749d | jq '.[0].Architecture'
>> "amd64"
>> and then again with override-arch:
>> # podman image rm b52ee75a7749d
>> Untagged: docker.io/coredns/coredns:latest
>> Deleted:
>> b52ee75a7749dc470ec4dacf990c26733c1477371f190e2748d653b8834c3f48
>> # podman pull --override-arch=arm coredns/coredns:latest
>> Trying to pull docker.io/coredns/coredns:latest...
>> Getting image source signatures
>> Copying blob c6568d217a00 done
>> Copying blob 89d2da39cc12 done
>> Copying config b52ee75a77 done
>> Writing manifest to image destination
>> Storing signatures
>> b52ee75a7749dc470ec4dacf990c26733c1477371f190e2748d653b8834c3f48
>> # podman image inspect b52ee75a7749d | jq '.[0].Architecture'
>> "amd64"
>>
>> podman info:
>> # podman version
>> Version: 1.8.0
>> RemoteAPI Version: 1
>> Go Version: go1.11.6
>> OS/Arch: linux/arm
>>
>> Any tips on how to convince podman to pull arm images within rasbian?
>>
>
> You have done everything correctly and you actually pulled the coredns
> image for ARM but the config of the image claims to be for AMD64. In other
> words, the coredns images have a bug as the image configs claim to be of a
> different architecture. But that shouldn't be a problem as you can still
> run them with Podman.
>
I poked around but wasn't able to uncover *how* to run the mis-configured
image. Is there some special flag to `podman run` or environment variable
that instructs podman to ignore the existing image architecture? Or am I
supposed to fix the image configuration so that it correctly reports 'arm'?
I assume you're hitting an "incompatible image architecture ..." error? You
can workaround that by passing *--override-arch=arm* to podman-run. By
default, Podman compares the image's OS and arch to what the image claims
and errors out in case of a mismatch. Using *--override-{arch,os}* lets
Podman eat whatever we specify.
But I think we need to revert the checks in Podman given so many images
have the wrong architecture in their config.
Kind regards,
Valentin
Thanks,
brian
> This seems to be a fairly common issue (see the Kubernetes pause image
> [1]).
>
> For a detailed look you can use skopeo and inspect the images on the
> registry:
>
> *$ skopeo inspect --raw docker://docker.io/coredns/coredns:latest
> <
http://docker.io/coredns/coredns:latest> | jq .*
>
> *... *we can see that the manifest list includes images for a couple of
> architectures. Let's pick the ARM one and inspect it by referencing it via
> its digest.
>
>
> *$ skopeo inspect
>
docker://docker.io/coredns/coredns@sha256:a8be13d1f9fbd24d75dbc2013bb37f810cd1aa217d135173dab6cdbef652485e|jq
>
<
http://docker.io/coredns/coredns@sha256:a8be13d1f9fbd24d75dbc2013bb37f810...
> .| grep Architecture"Architecture": "amd64",*
>
> *...* just as you described. The ARM image claims to be for AMD64.
>
> Kind regards,
> Valentin
>
> [1]
https://github.com/kubernetes/kubernetes/issues/87325
>