feat: 운영 승격 게이트 Phase2 — 콘솔 휴먼 승인 연동 (v0.28.0)

- project confirm: 게이트 켜진 prod 클러스터에 승인 요청 best-effort 등록(YAKCLOUD_ACTION=register-approval)
- deploy.py: register-approval 액션(워크로드별 PENDING 생성) + 403 힌트를 운영 승인 안내로
- SKILL.md: 운영 승격 게이트에 콘솔 휴먼 승인(Phase2) 명시 — 에이전트 승인 불가

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jungwoo choi
2026-08-31 12:31:41 +09:00
parent 9b66d32695
commit 63021f63b2
3 changed files with 26 additions and 5 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.27.0"
VERSION="0.28.0"
# 로컬 개발 클러스터(kind) — 개발 후 운영까지 '직선 배포'의 dev 구간.
DEV_CTX="${YAK_DEV_CONTEXT:-kind-yak-dev}"
DEV_CLUSTER="${YAK_DEV_CLUSTER:-yak-dev}"
@ -438,7 +438,13 @@ rec={"project":m.get("project",""),"version":os.environ["YC_TAG"],"cluster":os.e
"host":os.uname().nodename,"note":os.environ.get("YC_NOTE","")}
print(json.dumps(rec,ensure_ascii=False,indent=2))
PY
echo "✓ 개발계 검증 확정: $tag. 이제 'yakcloud project promote --to prod $tag' 가능(그 버전 한정)."
# 백엔드에 운영 승격 승인 '요청'을 등록(best-effort) — 게이트 켜진 prod 클러스터면 콘솔 승인 대기함에 뜬다.
# 승인 자체는 콘솔(사람)만 가능. 로그인 안 됐거나 prod 미지정이면 조용히 스킵(promote 첫 시도에 자동 생성).
if [ -n "${YAKCLOUD_TOKEN:-}" ] && [ -n "${YAKCLOUD_URL:-}" ]; then
YAKCLOUD_ENV=prod YAKCLOUD_ACTION=register-approval TAG="$tag" python3 "$(_engine deploy)" yakcloud.yaml 2>/dev/null \
|| echo " (콘솔 승인 요청 등록은 건너뜀 — 운영 게이트가 켜져 있으면 promote 시 콘솔 승인이 필요합니다.)"
fi
echo "✓ 개발계 검증 확정: $tag. 다음: 운영 게이트가 켜져 있으면 콘솔에서 승인 → 'yakcloud project promote --to prod $tag'."
}
cmd_project_promote() {