bug(local-dev): local development setup fails on all non-Kind Kubernetes clusters (K3s, Minikube, K3d)
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
- #7024 của @parthtiw710 — đã đóng, không merge
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 48/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- docker, helm, kubernetes
- Lĩnh vực
- ci-cd, devops, infrastructure
Hướng nghiên cứu
Bắt đầu với target run/pipecd trong Makefile và các giá trị Helm cục bộ liên quan để lần theo việc phát hành image và thiết lập lưu trữ host-path. Sau đó, kiểm tra các template deployment.yaml của Redis, MySQL và MinIO. Công việc được xem là hoàn tất khi thiết lập cục bộ hoạt động trên Kind, K3s, K3d, Minikube và các bản phân phối được nêu tên khác mà không gặp lỗi khi kéo image hoặc lỗi quyền lưu trữ.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Go
- Star
- 1.4k
- Fork
- 391
- Merge trung bình
- 4 ngày 1 giờ
- Pull request đã merge (30 ngày)
- 58
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của pipe-cd/pipecd
-
Applications at the repository root are not triggered by new commitsCó thể đã có người làm @Daksha1611 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 2 ngày
-
pipedv1 kubernetes plugins ignore trafficRouting.istio.host in K8S_TRAFFIC_ROUTINGCó thể đã có người làm @Dhirenderchoudhary đã nhận hôm nay. Đang mở
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 74/100
pipe-cd/pipecd#7626 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 2 ngày
-
pipectl transfer restore application drops backed-up labelsCó thể đã có người làm @bhavishyajain545 đã nhận 1 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
pipe-cd/pipecd#7622 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của pipe-cd/pipecd
Issue tương tự
-
IsTextFile reads the whole file into memory (OOM on large files in the file watcher)Có thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
gtsteffaniak/filebrowser#3395 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
effort:s impact:low raised-by:worker risk:low
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 70/100
medici-finance/assay#6496 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
kind/bug require/reproduce require/severity
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 60/100