CLI 재구성: yakcloud project init/deploy/info/check + 설정동사(domain/scale/set/env/source/bind) + 자동 버전업 + yakcloud_ctl 엔진 + deploy CLI env 지원

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-27 17:22:44 +09:00
parent 8067507e6b
commit c161da3b65
9 changed files with 933 additions and 123 deletions

View File

@ -17,12 +17,23 @@ YakCloud 콘솔 API로 **데이터소스 리컨실 + 워크로드 배포 + 바
- "데이터소스(Postgres/Mongo/…) 연결/바인딩" / "커스텀 도메인으로 노출"
## CLI 가 있으면 우선 사용
`yakcloud` CLI 가 설치돼 있으면(명령 `command -v yakcloud`) 스캐폴딩/배포 이걸로 처리한다:
- **"프로젝트 초기화"** → 빈 폴더에서 `yakcloud init [name]` (스타터+CI+매니페스트+이 스킬을 내려받음)
- **"yakcloud 에 배포"** → `yakcloud deploy vX.Y.Z` (커밋+태그 push → Gitea Actions)
- 사전 점검 → `yakcloud check` (dry-run)
`yakcloud` CLI 가 설치돼 있으면(`command -v yakcloud`) 스캐폴딩/배포/환경설정을 이걸로 처리한다.
설치: `curl -fsSL https://gitea.yakenator.io/yakenator/yakcloud-starter/raw/branch/main/install.sh | sh`
**프로젝트 라이프사이클**
- **"프로젝트 초기화"** → 빈 폴더에서 `yakcloud project init [name]` (스타터+CI+매니페스트+이 스킬)
- **"yakcloud 에 배포"** → `yakcloud project deploy` (버전 미지정 시 **자동 버전업**: 최신 태그 patch+1 → 태그 push)
- **"프로젝트 개괄"** → `yakcloud project info` (매니페스트 + 라이브 상태)
- 사전 점검 → `yakcloud project check` (dry-run)
**배포환경 설정(앱별) — 매니페스트 수정 + 배포중이면 재빌드 없이 라이브 반영**
- `yakcloud domain <fqdn> [wl]` 도메인 등록 + 워크로드 할당
- `yakcloud scale <wl> <n>` replicas
- `yakcloud set <wl> --image/--port/--health/--cpu/--mem/--path/--rewrite`
- `yakcloud env <wl> KEY=VAL … [--secret KEY] [--unset KEY]`
- `yakcloud source add <name> <type> [plan]` · `yakcloud source rm <name>`
- `yakcloud bind <wl> <source> <alias>` · `yakcloud unbind <wl> <alias>`
CLI 가 없거나 세밀 조정이 필요하면 아래 수동 절차를 따른다.
## 에이전트 실행 절차