bug(local-dev): local development setup fails on all non-Kind Kubernetes clusters (K3s, Minikube, K3d)
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
- #7024 di @parthtiw710 — chiusa senza merge
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- docker, helm, kubernetes
- Ambito
- ci-cd, devops, infrastructure
Direzione di ricerca
Inizia con il target run/pipecd del Makefile e con i valori Helm locali associati per tracciare la pubblicazione delle immagini e la configurazione dello storage tramite host-path. Poi esamina i template deployment.yaml di Redis, MySQL e MinIO. Il lavoro è completato quando la configurazione locale funziona su Kind, K3s, K3d, Minikube e sulle altre distribuzioni indicate, senza errori nel recupero delle immagini o problemi di autorizzazioni dello storage.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What happened?
The local development environment (run via make run/pipecd and the associated local Helm values) is tightly coupled with Kind. When attempting to start the local development cluster on any non-Kind distribution (such as K3s, Minikube, K3d, or MicroK8s), the setup fails due to registry image pulling and persistent storage permission blockers.
Steps to Reproduce
- Configure your Kubernetes context to point to a local K3s or Minikube cluster.
- Enable local storage by setting
localStorageVolumes.enabled: truein the Helm values. - Run
make run/pipecd. - Observe:
- The cluster fails to pull the newly built PipeCD image (
ErrImagePull) because it cannot reach/resolvelocalhost:5001. - If the image is manually sideloaded, the database (
mysql), cache (redis), and storage (minio) pods crash in a loop withPermission Deniederrors.
- The cluster fails to pull the newly built PipeCD image (
Root Cause
- Registry Hardcoding: The Makefile currently assumes a Kind registry setup and runs a hardcoded
docker push localhost:5001/...to publish images. Other clusters running on isolated runtimes (like containerd in K3s/K3d) cannot resolve this host registry out-of-the-box. - Storage Permissions: HostPath directories (e.g.
/tmp/pipecd-data/*) created by Kubernetes on the host system are owned byroot. However, the MySQL, Redis, and MinIO containers run as non-root users (UID 999 or 1000) and lack write permissions to these directories.
Expected Behavior
The local development setup should be platform-agnostic, supporting K3s, Minikube, K3d, and other distributions seamlessly alongside Kind.
Proposed Solution
- Dynamic Environment Detection in Makefile: Update
run/pipecdto inspect the active Kubernetes context.- For K3s/K3d, save the image and import it directly using
sudo k3s ctr --namespace k8s.io images import. - For Minikube, load the image using
minikube image load. - Fall back to
docker pushonly for Kind/standard setups.
- For K3s/K3d, save the image and import it directly using
- Permission Initialization: Add
initContainersto the Redis, MySQL, and MinIO template deployments indeployment.yamlthat run as root (runAsUser: 0) tochownthe mounted directories to the correct non-root UIDs before the main containers start.
- Lingua principale
- Go
- Stelle
- 1.4k
- Fork
- 391
- Merge medio
- 4g 1h
- PR unite (30g)
- 58
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pipe-cd/pipecd
-
Applications at the repository root are not triggered by new commitsForse già presa @Daksha1611 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
I maintainer di solito rispondono entro 2 giorni
-
pipedv1 kubernetes plugins ignore trafficRouting.istio.host in K8S_TRAFFIC_ROUTINGForse già presa @Dhirenderchoudhary l’ha presa oggi. Aperta
Difficoltà 2/5 Mezza giornata Idoneità per principianti 74/100
pipe-cd/pipecd#7626 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
-
pipectl transfer restore application drops backed-up labelsForse già presa @bhavishyajain545 l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
pipe-cd/pipecd#7622 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di pipe-cd/pipecd
Issue simili
-
IsTextFile reads the whole file into memory (OOM on large files in the file watcher)Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
gtsteffaniak/filebrowser#3395 ·
I maintainer di solito rispondono entro 1 giorno
-
effort:s impact:low raised-by:worker risk:low
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
medici-finance/assay#6496 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
kind/bug require/reproduce require/severity
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100