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
auto-update leaves variant empty, fails to pull image #9637
Comments
@vrothberg PTAL |
I can confirm the same issue on Fedora IoT on raspberry pi 3B+ |
Thanks for reaching out! Matching the described symptoms to the code, it makes sense since we're not (yet) taking the variant into account but only the architecture (see https://github.com/containers/podman/blob/master/pkg/autoupdate/autoupdate.go#L265). |
Looking into it but I am not yet sure whether we can actually access the Variant of an image once pulled. AFAICS, that's only part of the index/list but not part of an individual image. |
Also the container doesn't know it, at least I cannot find anything in |
There is a Variant field, but it is not filled. We are not displaying it in podman info, but containers/image does seem to have a field in types/
But this always seems to have "" in the field. @mtrmac WDYT? |
I've tried adding --platform=is/arch/variant to the systemd service files for the containers that are affected by auto-update but it didn't have an effect. The only way to get around this is to find an image that supports only arm (such as linuxserver/jellyfin:latest-armv32) |
As mentioned above, the variant is only part of the manifest list/image index but not part of an individual image. In other words, we lose that information once an individual image is pulled. @mtrmac pointed me to opencontainers/image-spec#809 where the variant along with other platform information is proposed to be added to the config. But even if that gets into the OCI spec, the problem remains for Docker images. To support variants in |
Why would you want a specific ARCH/Variant anyways? If I was running a container on a host, I would figure it is the default? Is this a case where a user is not running the default image on a host? |
I've only ran default images on the host so far. The issue is that the default arch and variant aren't being automatically detected nor are they respecting the flags |
So we are specifying the wrong fields? Or if they are not specified at all, then auto-update pulls the wrong arch? |
No, auto-update simply doesn't find the right images and concludes that they don't exist. The containers don't get updated. |
I concur. Since To make it work, we must give users a means to make the variant explicit (see #9637 (comment)). |
Maybe I'm missing something important, but
Anyone can explain to me why all of above options are actually not an option? |
Yes the guessing code is in containers/image, that is why I am not sure this should not happen automatically for the specific platform you are running on. |
That indeed changes the picture. I was under the impression that the image was pulled with The code should be exactly the same but I will have another look to check why that might be. |
Doesn't look like |
Docker works |
Use the entire compatibility matrix when matching the platform of a specific image to possible candidates. Context: github.com/containers/podman/issues/9637 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
I opened containers/image#1176 which will fix the issue. |
A friendly reminder that this issue had no activity for 30 days. |
I currently cannot test if 3.1 fixes the problem, because I'm waiting for a package I can install in my Raspi. Building from source would require a lot of preparation (and learning) on my side, so I would like to avoid that if possible. |
A friendly reminder that this issue had no activity for 30 days. |
From my end the problem is fixed |
I haven't been able to try, because there seems to be nothing beyond 3.0.1 on any Raspberry Pi OS compatible repository. @Saroufim : How did you try it? Build your own podman? But anyway, as it looks like @Saroufim confirmed that it is fixed, we can probably close the issue. |
I'm running Fedora IoT 34 with podman 3.2. It was fixed back when the 3.1.2 update was pushed |
Thanks for checking! |
Is this a BUG REPORT or FEATURE REQUEST? (leave only one on its own line)
/kind bug
Description
Running
docker.io/syncthing/syncthing
on Raspberry Pi works like a charm, but when I try to dopodman auto-update
, it fails:Looks to me like podman correctly sets variant to
v7
"everywhere" (at least everywhere I tried) except forauto-update
, where it leaves it blank.The official Syncthing image appears to be one of the "official" images that use
arch=arm
andvariant=v7
instead ofarch=arm32v7
like most other images do.Steps to reproduce the issue:
docker.io/syncthing/syncthing:latest
podman generate systemd --new
podman auto-update
Describe the results you received:
auto-update
fails to find and pull the correct image.Container is not updated.
Describe the results you expected:
Correct image identified and pulled.
Container updated, if new image available.
Additional information you deem important (e.g. issue happens only occasionally):
Not sure if that makes any difference, but I'm running rootless.
Output of
podman version
:Output of
podman info --debug
:Package info (e.g. output of
rpm -q podman
orapt list podman
):Have you tested with the latest version of Podman and have you checked the Podman Troubleshooting Guide?
Yes
Additional environment details (AWS, VirtualBox, physical, etc.):
Physical machine, Raspberry Pi 4B 4GB, Raspberry Pi OS / Raspbian 10 Buster
podman installed from the Kubic repositories as described in installation guides.
The text was updated successfully, but these errors were encountered: