#!/usr/bin/env bash # cleanup.sh — DNS/GSLB 재현 랩 철거(멱등). # # dns-lab namespace 의 SE/VS/DR 을 먼저 지우고(=랩이 egress 로 새어나갈 여지 제거), # namespace 를 통째로 삭제한다. --ignore-not-found 라 이미 없어도 안전하게 재실행 가능. # # 주의: dns-lab 은 이 랩 전용 namespace 다. 다른 워크로드가 공유하지 않는다는 전제. # # usage: bash cleanup.sh (또는 CTX=mycluster bash cleanup.sh) set -uo pipefail CTX="${CTX:-$(kubectl config current-context)}" NS="${NS:-dns-lab}" K="kubectl --context=$CTX" echo "== [1] SE/VS/DR 삭제 (dns-lab, ns 삭제 전에 트래픽 라우팅 먼저 회수) ==" $K -n "$NS" delete serviceentry gslb-strict gslb-logical --ignore-not-found $K -n "$NS" delete virtualservice gslb-80-to-443 --ignore-not-found $K -n "$NS" delete destinationrule gslb-tls-origination --ignore-not-found echo "== [2] namespace 삭제 ==" $K delete namespace "$NS" --ignore-not-found --wait=true echo "== [3] 확인 ==" if $K get ns "$NS" >/dev/null 2>&1; then echo " (아직 Terminating 중일 수 있음 — 잠시 후 kubectl get ns $NS 로 재확인)" else echo " ns/$NS NotFound — 정리 완료." fi