feat(dev): 릴레이 에이전트를 클러스터 단위로 — dev up 에서 기동(배포 전 노드 모니터링·연결)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-29 20:41:59 +09:00
parent da1911a036
commit a0352d02c0
3 changed files with 66 additions and 38 deletions

View File

@ -483,6 +483,10 @@ EOF
|| warn_line "metrics-server 설치 건너뜀(무시 가능 — 실측 대신 예약값만 표시)."
echo "✓ 로컬 dev 클러스터 준비 ($DEV_CTX). 다음: yakcloud dev deploy"
_dev_register
# 클러스터 단위 릴레이 에이전트 기동 → 배포 전에도 콘솔에서 노드 모니터링·연결(로그인 시). best-effort.
YAK_DEV_CONTEXT="$DEV_CTX" YAK_DEV_CLUSTER="$DEV_CLUSTER" YAK_DEV_NAME="$DEV_NAME" \
YAK_DEV_RUNTIME="$rt" YAK_REG_NAME="$(_local_reg_name)" \
python3 "$(_engine dev)" up 2>/dev/null || true
}
warn_line() { echo " ⚠ $*" >&2; }
@ -534,15 +538,13 @@ cmd_dev() {
local rt kenv=""; rt="$(_dev_runtime)"; [ "$rt" = podman ] && kenv="KIND_EXPERIMENTAL_PROVIDER=podman"
info "kind 클러스터 '$DEV_CLUSTER' 삭제…"
env $kenv kind delete cluster --name "$DEV_CLUSTER" && echo "✓ 삭제 완료"
# 이 클러스터의 릴레이 에이전트만 정리(pidfile <name>-<ns>.pid). 다른 dev 클러스터 것은 건드리지 않음.
# 이 클러스터의 릴레이 에이전트만 정리(pidfile <name>.pid, 클러스터 단위). 다른 dev 클러스터 건드리지 않음.
local agd="${YAK_CONFIG_DIR:-$HOME/.config/yakcloud}/agent"
if [ -d "$agd" ]; then
for pf in "$agd"/"$DEV_NAME"-*.pid; do
[ -f "$pf" ] || continue
local apid; apid="$(cat "$pf" 2>/dev/null)"
[ -n "$apid" ] && kill "$apid" 2>/dev/null
rm -f "$pf"
done
local apf="$agd/$DEV_NAME.pid"
if [ -f "$apf" ]; then
local apid; apid="$(cat "$apf" 2>/dev/null)"
[ -n "$apid" ] && kill "$apid" 2>/dev/null
rm -f "$apf"
info "릴레이 에이전트 정리($DEV_NAME)"
fi
# 공유 소스 컨테이너(yak-dev-*)는 여러 클러스터가 공유 → '마지막' dev 클러스터 삭제 시에만 정리.