fix: promote 실패 시 거짓 성공 방지 + 기본 소스 이름 프로젝트 고유화(공용 클러스터 충돌 예방) (v0.29.0)

- bin/yakcloud: promote 의 리컨실(deploy.py) 실패면 '✓ 승격 완료' 대신 die(운영 승인 대기 403 안내 포함).
  set -e 미사용이라 이전엔 배포 차단돼도 성공으로 표시되던 버그.
- yakcloud.yaml: 기본 소스 이름 appdb→my-app-db(init 이 <project>-db 로 치환). 공용 클러스터에서
  리컨실이 동명 기존 소스를 재사용·바인딩 → 남의 DB 에 테이블 만드는 사고 예방.
- deploy.py: 기존 소스 재사용 시 로그를 ⚠ 로 강화(공유 위험·고유 이름 권고 명시).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jungwoo choi
2026-08-31 15:01:26 +09:00
parent 63021f63b2
commit 6ffc6425bb
3 changed files with 14 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.28.0"
VERSION="0.29.0"
# 로컬 개발 클러스터(kind) — 개발 후 운영까지 '직선 배포'의 dev 구간.
DEV_CTX="${YAK_DEV_CONTEXT:-kind-yak-dev}"
DEV_CLUSTER="${YAK_DEV_CLUSTER:-yak-dev}"
@ -470,7 +470,9 @@ cmd_project_promote() {
[ "$env" = prod ] && _require_dev_confirm "$tag"
info "'$env' 승격: $tag → 관리형 '$env' 클러스터(이미지 build+push 후 리컨실; 이미 있으면 재빌드 없이 그 이미지)"
_build_and_push "$tag"
YAKCLOUD_ENV="$env" TAG="$tag" python3 "$(_engine deploy)" yakcloud.yaml
# 리컨실 실패(운영 승인 대기 403 등)면 절대 '성공'이라 하지 않는다 — set -e 미사용이라 명시적 || die.
YAKCLOUD_ENV="$env" TAG="$tag" python3 "$(_engine deploy)" yakcloud.yaml \
|| die "승격 실패 — 위 오류를 확인하세요. '운영 승격 승인 필요(403)' 면 콘솔 → 배포 탭 → '운영 승격 승인'에서 $tag 을 승인한 뒤 다시 'yakcloud project promote --to $env $tag'."
echo "✓ 승격 완료: $tag → '$env' 클러스터 + 도메인(기본 도메인은 자동)"
}