feat(dev): 로컬 클라우드 기본 CP1+워커2 — 0.25.0

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-31 03:25:00 +09:00
parent 7ecea53944
commit 0453520550
2 changed files with 6 additions and 6 deletions

View File

@ -16,7 +16,7 @@ set -uo pipefail # -e 미사용: 'test && action' 관용구가 값 없을 때
REPO="${YAKCLOUD_STARTER_REPO:-https://gitea.yakenator.io/yakenator/yakcloud-starter}"
BRANCH="${YAKCLOUD_STARTER_BRANCH:-main}"
VERSION="0.24.3"
VERSION="0.25.0"
# 로컬 개발 클러스터(kind) — 개발 후 운영까지 '직선 배포'의 dev 구간.
DEV_CTX="${YAK_DEV_CONTEXT:-kind-yak-dev}"
DEV_CLUSTER="${YAK_DEV_CLUSTER:-yak-dev}"
@ -198,7 +198,7 @@ _init_wizard() {
printf "개발 클러스터 = 로컬 kind, 이름 [dev]: "; read -r devc; devc="$(_sanitize_name "${devc:-dev}")"
devp=80
if [ "$devc" != "dev" ]; then printf "로컬 인그레스 포트 [8080]: "; read -r devp; devp="${devp:-8080}"; fi
printf "워커 노드 수 [1]: "; read -r devw; devw="${devw:-1}"; case "$devw" in ''|*[!0-9]*) devw=1 ;; esac
printf "워커 노드 수 [2]: "; read -r devw; devw="${devw:-2}"; case "$devw" in ''|*[!0-9]*) devw=2 ;; esac
printf "검증 클러스터(관리형, 선택, 엔터=생략): "; read -r valc
printf "운영 클러스터(관리형, 선택, 엔터=생략): "; read -r prodc
printf "운영 도메인(선택, 예 app.example.com): "; read -r pdom
@ -468,7 +468,7 @@ _podman_auth_fix() {
# --name dev2 --port N → kind 'yak-dev2', ctx 'kind-yak-dev2', 등록명 <host>-dev2, 인그레스 N (80은 기본 클러스터 몫)
# 나머지 인자(태그 등)는 DEV_ARGS 배열에 남긴다(--name 값이 태그로 오인되지 않게 여기서 소비).
_dev_resolve() {
DEV_NAME="dev"; DEV_HTTP_PORT="80"; DEV_PORT_EXPLICIT=0; DEV_WORKERS=0; DEV_ARGS=()
DEV_NAME="dev"; DEV_HTTP_PORT="80"; DEV_PORT_EXPLICIT=0; DEV_WORKERS=2; DEV_ARGS=() # 기본 로컬 클라우드 = CP1 + 워커2
while [ "$#" -gt 0 ]; do
case "$1" in
--name|--cluster) DEV_NAME="${2:-}"; shift 2 || shift ;;
@ -678,7 +678,7 @@ cmd_dev() {
if [ -n "$_mn" ]; then
local _inj=(--name "$_mn")
{ [ -n "$_mp" ] && [ "$_mp" != "80" ]; } && _inj+=(--port "$_mp")
case " $* " in *" --worker"*) : ;; *) { [ -n "$_mw" ] && [ "$_mw" != "0" ]; } && _inj+=(--workers "$_mw") ;; esac
case " $* " in *" --worker"*) : ;; *) [ -n "$_mw" ] && _inj+=(--workers "$_mw") ;; esac # 매니페스트 workers(0 포함) 존중; 없으면 _dev_resolve 기본 2
set -- "${_inj[@]}" "$@"; name_given=1
fi
fi
@ -767,7 +767,7 @@ yakcloud $VERSION — YakCloud 프로젝트 CLI (개발·검증·운영 모두
cluster create <name> [--template S|M] [--nodes N] [--golden] 클러스터 생성(프로비저닝 완료까지 대기)
cluster ls 내 클러스터 목록(이름·상태·노드·기본 도메인)
── 로컬 개발 클러스터(kind) — 개발 후 운영까지 직선 배포의 dev 구간 ──
dev up [--workers N] 로컬 kind 생성 + 인그레스(80/443) — 최초 1회. --workers N=워커 노드 추가(기본 0=CP만, 매니페스트 environments.dev.workers 도 가능)
dev up [--workers N] 로컬 kind 생성 + 인그레스(80/443) — 최초 1회. 기본 CP1+워커2. --workers N 으로 조정(0=CP만, 매니페스트 environments.dev.workers 도 가능)
dev deploy [tag] 매니페스트대로 로컬 리컨실(이미지 빌드+load, 소스/워크로드/인그레스; 콘솔 API 불필요)
dev ls 로컬 클러스터 목록(kind 이름 / --name / 콘솔 등록명) — 삭제 전 대상 확인
dev status | dev clean 로컬 배포 상태 / 이 프로젝트 리소스 삭제

View File

@ -23,7 +23,7 @@ project: my-app # 프로젝트 이름(이미지 경로/표
# workloads: # 워크로드명(web) 키로 필드 패치(resources·replicas·env 는 병합, 그 외 교체)
# web: { replicas: 3, resources: { cpu: 500m, mem: 512Mi } }
environments:
dev: { cluster: dev, port: 80, workers: 1 } # 로컬 kind (project deploy). cluster=로컬 이름, port=인그레스 포트(이름!=dev면 비80), workers=워커 노드 수(0=CP만)
dev: { cluster: dev, port: 80, workers: 2 } # 로컬 kind (project deploy). cluster=로컬 이름, port=인그레스 포트(이름!=dev면 비80), workers=워커 노드 수(기본 2, 0=CP만)
val: { cluster: my-val-cluster } # 관리형 (promote --to val)
prod: { cluster: my-prod-cluster, domains: [] } # 관리형 (promote --to prod, domains 예: [app.example.com]) — 필요 시 위 예처럼 requires/workloads 오버라이드