Install fails with ImagePullBackOff due to incorrect global image prefix
- Dominant language
- Go
- Stars
- 515
- Forks
- 88
- PR merge metrics
- No merged PRs in 30d
Description
### Ⅰ. Issue Description
Open-local pods fail to start due to `ErrImagePull` or `ImagePullBackOff` errors caused by an incorrect image URL in the helm chart.
### Ⅱ. Describe what happened
I followed the [user guide](https://github.com/alibaba/open-local/blob/main/docs/user-guide/user-guide.md) to install Open-Local using Helm. However, several pods failed to start due to image pull errors.
```sh
kubectl get pods -n kube-system -l app.kubernetes.io/name=open-local
NAME READY STATUS RESTARTS AGE
open-local-agent-hhm8l 2/3 ImagePullBackOff 0 2m26s
open-local-controller-6f89869dd7-7jq7c 2/6 ImagePullBackOff 0 2m26s
open-local-init-job-lpq6h 0/1 Pending 0 2m26s
open-local-init-job-n5gds 0/1 Pending 0 2m26s
open-local-init-job-pnm4m 0/1 Pending 0 2m26s
open-local-scheduler-extender-76f49b9594-p8f6l 1/1 Running 0 2m26s
```
After inspecting the pods events, I found that the issue was due to an incorrect prefix in the image path:
```sh
Failed to pull image "docker.io/registry.k8s.io/sig-storage/csi-node-driver-registrar:v2.9.0":
pull access denied, repository does not exist or may require authorization
```
### Ⅲ. Describe what you expected to happen
Pods should be able to pull all images successfully and reach a `Running` or `Completed` state after deployment.
### Ⅳ. How to reproduce it (as minimally and precisely as possible)
1. Clone the open-local repo.
2. Run `helm install open-local ./helm`
3. Observe the pod status with `kubectl get pods -n kube-system`
### Ⅴ. Anything else we need to know?
The problem seems to be caused by the global image prefix (`docker.io`) being prepended to all image paths in [values.yaml](https://github.com/alibaba/open-local/blob/main/helm/values.yaml). Images like those from `registry.k8s.io`, already include a registry domain and should not have a prefix added. Only the Open-Local images require the docker.io prefix.
Updating values.yaml and the relevant chart templates (e.g., [agent.yaml](https://github.com/alibaba/open-local/blob/main/helm/templates/agent.yaml)) to handle prefix logic conditionally would resolve this issue.
### Ⅵ. Environment:
- Open-Local version:
- OS (e.g. from /etc/os-release): Ubuntu 22.04.4 LTS
- Kernel (e.g. `uname -a`): `6.8.0-1021-azure #25~22.04.1-Ubuntu SMP Thu Jan 16 21:37:09 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux`
- Install tools: Helm, k3s
- Others: Azure
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with helm/values.yaml and helm/templates/agent.yaml, then inspect the other chart templates that consume the global image prefix. Reproduce with helm install open-local ./helm and kubectl get pods -n kube-system; done means registry.k8s.io images retain their registry path, Open-Local images use the intended prefix, and pods reach Running or Completed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- helm, kubernetes, yaml
- Domain
- devops, infrastructure
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 52/100