alibaba / alibaba/open-local

Install fails with ImagePullBackOff due to incorrect global image prefix

Open
#271 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.