{"id":35155128,"url":"https://github.com/kdm0324/cloud-native-devkit","last_synced_at":"2026-01-13T22:57:29.547Z","repository":{"id":330852229,"uuid":"1119263495","full_name":"kdm0324/cloud-native-devkit","owner":"kdm0324","description":"Cloud-native local devkit for Kubernetes. Config-driven addons via Helm + friendly CLI (k3d/Rancher Desktop) with port-forward helpers.","archived":false,"fork":false,"pushed_at":"2025-12-28T14:58:46.000Z","size":71,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-31T02:40:19.213Z","etag":null,"topics":["cloud-native","devkit","infra","k3d","kubernetes","local","rancher-desktop"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kdm0324.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-19T02:23:24.000Z","updated_at":"2025-12-28T14:58:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kdm0324/cloud-native-devkit","commit_stats":null,"previous_names":["kdm0324/cloud-native-devkit"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/kdm0324/cloud-native-devkit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdm0324%2Fcloud-native-devkit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdm0324%2Fcloud-native-devkit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdm0324%2Fcloud-native-devkit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdm0324%2Fcloud-native-devkit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kdm0324","download_url":"https://codeload.github.com/kdm0324/cloud-native-devkit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kdm0324%2Fcloud-native-devkit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28400736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-native","devkit","infra","k3d","kubernetes","local","rancher-desktop"],"created_at":"2025-12-28T16:49:06.002Z","updated_at":"2026-01-13T22:57:29.542Z","avatar_url":"https://github.com/kdm0324.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# cloud-native-devkit (local-dev)\n\nKubernetes 로컬 개발환경에서 Redis/Kafka/MySQL/PostgreSQL/MongoDB 같은 인프라를 **선택 설치(Helm)** 하고, **port-forward**까지 지원하는 CLI입니다.\n\n- repo/차트 버전은 코드에 하드코딩하지 않고 `localdev.config.yaml`로 관리\n- CLI는 `kubectl + helm`만 사용 (특정 로컬 클러스터 툴에 종속되지 않음)\n- 로컬 클러스터는 사용자가 선택\n  - **k3d (CLI-only, 가벼움)**: Docker 기반\n  - **Rancher Desktop (GUI, 쉬움)**: k3s 기반, containerd/nerdctl 선택 가능\n- port-forward는\n  - 기본: **포그라운드(Ctrl+C 종료)**\n  - 옵션: **백그라운드(--bg) + status/stop 지원**\n\n---\n\n## 설치 (권장: GitHub Release에서 실행파일 다운로드)\n\n1) 이 저장소의 **최신 릴리즈 페이지**로 이동합니다.  \n- Latest: https://github.com/kdm0324/cloud-native-devkit/releases/latest\n- All Releases: https://github.com/kdm0324/cloud-native-devkit/releases\n\n2) 운영체제에 맞는 실행파일을 다운로드해서 PATH에 두거나, 원하는 폴더에서 실행합니다.\n\nmacOS/Linux:\n\n```bash\n./local-dev --help\n./local-dev doctor\n````\n\nWindows (PowerShell):\n\n```powershell\n.\\local-dev.exe --help\n.\\local-dev.exe doctor\n```\n\n\u003e 개발 중이면 `local-dev` 대신 `npm run dev:cli --`를 사용하세요.\n\n---\n\n## Quick Start\n\n### 1) 진단\n\n```bash\nlocal-dev doctor\n```\n\n클러스터 방식에 맞춰 추가 진단(선택):\n\n```bash\nlocal-dev doctor --env k3d\nlocal-dev doctor --env rancher\n```\n\n클러스터 연결까지 필수로 체크(없으면 실패):\n\n```bash\nlocal-dev doctor --require-cluster\n```\n\n### 2) 생성(init) → 설치(up)\n\n```bash\nlocal-dev init\nlocal-dev up\n```\n\n### 3) 로컬 접속(port-forward)\n\n기본(포그라운드, Ctrl+C 종료):\n\n```bash\nlocal-dev forward\n```\n\n백그라운드 실행:\n\n```bash\nlocal-dev forward --bg\n```\n\n상태/종료:\n\n```bash\nlocal-dev forward status\nlocal-dev forward stop\n```\n\n포트 충돌 시:\n\n```bash\nlocal-dev forward --map \"redis=16379,kafka=19092,postgresql=15432\"\n```\n\n일부만:\n\n```bash\nlocal-dev forward --bg --only \"redis,postgresql\"\n```\n\n---\n\n## 로컬 클러스터 옵션 A: k3d (CLI-only, 가벼움)\n\nk3d는 **Docker daemon**이 필요합니다.\n\n### macOS (Docker Desktop 없이: Colima 추천)\n\n```bash\nbrew install colima docker k3d kubectl helm\ncolima start\n\nk3d cluster create localdev\nkubectl config use-context k3d-localdev\nkubectl get nodes\n```\n\n진단:\n\n```bash\nlocal-dev doctor --env k3d\n```\n\n---\n\n## 로컬 클러스터 옵션 B: Rancher Desktop (GUI, 쉬움)\n\n1. Rancher Desktop 설치/실행\n2. Settings에서 **Kubernetes Enable(k3s)**\n3. 확인:\n\n```bash\nkubectl config get-contexts\nkubectl get nodes\n```\n\n진단:\n\n```bash\nlocal-dev doctor --env rancher\n```\n\n---\n\n## 설정 파일: localdev.config.yaml\n\n* Helm repo 목록(`helm.repos`)\n* 인프라 컴포넌트별 차트/버전/기본 enabled\n* 컴포넌트별 기본 서비스 포트(`ports`)\n\n즉, **repo/차트 버전 변경은 코드 수정 없이 config만 수정**하면 됩니다.\n\n---\n\n## 명령어\n\n* `doctor`\n\n  * 필수 도구(helm/kubectl/config) + (선택) 클러스터 연결 상태 안내\n  * `doctor --env k3d` : k3d 환경 체크(선택)\n  * `doctor --env rancher` : Rancher Desktop 환경 체크(선택)\n  * `doctor --require-cluster` : 클러스터 연결까지 필수로 체크(없으면 실패)\n\n* `init` : 인프라 선택 → 파일 생성\n\n* `generate` : 저장된 spec(`.infra/spec.json`) 기반으로 파일 재생성\n\n* `up` : helm upgrade/install\n\n* `down` : helm uninstall\n\n* `info` : 선택된 인프라/서비스/다음 명령 안내\n\n* `forward` : enabled 인프라 서비스 port-forward\n\n  * `forward` : 포그라운드 실행(Ctrl+C 종료)\n  * `forward --bg` : 백그라운드 실행 + PID 저장\n  * `forward status` : 백그라운드 상태 출력\n  * `forward stop` : 백그라운드 종료\n\n---\n\n## 생성되는 파일\n\n* `.infra/spec.json` : init에서 선택한 설정 저장\n* `charts/infra/Chart.yaml` : 의존성(차트) 정의(설정 기반 생성)\n* `charts/infra/values.yaml` : 기본값(모두 OFF)\n* `infra-values.yaml` : 실제 설치용 values (init 결과 반영)\n* `.infra/forwards.json` : (옵션) `forward --bg` 실행 시 PID/포트포워딩 상태 저장\n\n---\n\n## 개발 실행(Workspace)\n\n```bash\nnpm i\nnpm --workspace packages/core run build\n\nnpm run dev:cli -- doctor\nnpm run dev:cli -- init\nnpm run dev:cli -- up\nnpm run dev:cli -- forward\n```\n\n\u003e 참고: npm workspace로 실행해도 생성 파일이 프로젝트 루트에 떨어지도록 `INIT_CWD` 기준으로 동작하도록 구성되어 있습니다.\n\n---\n\n## Troubleshooting\n\n### Q. `kubectl config current-context`가 비어있어요\n\nA. kubeconfig에 컨텍스트가 없는 상태입니다. 아래 중 하나를 선택하세요.\n\n* k3d(가벼운 CLI): `local-dev doctor --env k3d` 안내대로 Docker/Colima 준비\n* Rancher Desktop: Kubernetes Enable 후 `kubectl get nodes` 확인\n\n### Q. `up` 실행 시 `Kubernetes API 연결 실패`가 떠요\n\nA. kubectl이 바라보는 클러스터가 없습니다(컨텍스트 없음) 또는 클러스터가 실행 중이 아닙니다.\n\n```bash\nkubectl config get-contexts\nkubectl get nodes\n```\n\n### Q. `forward`에서 service 매칭이 안돼요\n\nA. namespace 서비스 목록과 선택된 spec를 확인해 주세요.\n\n```bash\nkubectl -n local-infra get svc -o wide\ncat .infra/spec.json\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdm0324%2Fcloud-native-devkit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkdm0324%2Fcloud-native-devkit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkdm0324%2Fcloud-native-devkit/lists"}