emqx / emqx-operator

A Kubernetes Operator for EMQX
https://www.emqx.com
Apache License 2.0
209 stars 64 forks source link

Docker images not available on arm64 #1063

Closed RonaldPhilipsen closed 1 month ago

RonaldPhilipsen commented 1 month ago

Is your feature request related to a problem? Please describe. When running on a arm64-based k8s instance the image fails to pull

 Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  43s                default-scheduler  Successfully assigned database/emqx-operator-controller-manager-77879d7747-wlcmj to rpi5
  Normal   Pulling    28s (x2 over 42s)  kubelet            Pulling image "ghcr.io/emqx/emqx-operator:2.2.23"
  Warning  Failed     27s (x2 over 41s)  kubelet            Failed to pull image "ghcr.io/emqx/emqx-operator:2.2.23": rpc error: code = NotFound desc = failed to pull and unpack image "ghcr.io/emqx/emqx-operator:2.2.23": no match for platform in manifest: not found
  Warning  Failed     27s (x2 over 41s)  kubelet            Error: ErrImagePull
  Normal   BackOff    12s (x2 over 41s)  kubelet            Back-off pulling image "ghcr.io/emqx/emqx-operator:2.2.23"
  Warning  Failed     12s (x2 over 41s)  kubelet            Error: ImagePullBackOff

Describe the solution you'd like

Build the docker image for arm64

Describe alternatives you've considered

Migrating my cluster to X86, however this is going to be costly both in power and dollars

Additional context Add any other context or screenshots about the feature request here.

Rory-Z commented 1 month ago

Hi, @RonaldPhilipsen How did you deployment EMQX operator? looks you use the ghcr.io image, you should use docker hub image, it supported arm64: https://hub.docker.com/r/emqx/emqx-operator-controller/tags

samip5 commented 1 month ago

Hi, @RonaldPhilipsen How did you deployment EMQX operator? looks you use the ghcr.io image, you should use docker hub image, it supported arm64: https://hub.docker.com/r/emqx/emqx-operator-controller/tags

Why are they different? Should it not be the same image in both registries?

Docker hub is frowned upon due to the pull limits imposed there, which the org members will not notice but most if not all others will. Please make sure the ghcr.io published images are also multi-arch or don't have them at all if you don't support using them.

RonaldPhilipsen commented 1 month ago

Hi @Rory-Z, I´d have to concur with @samip5. Pull limits are annoying, and it shouldn´t be too much effort to also deploy the same images to both registries

Rory-Z commented 1 month ago

@samip5 @RonaldPhilipsen Thanks for your feedback, let me add multi arch in ghcr.io