diff --git a/.github/workflows/cd.yaml b/.github/workflows/cd.yaml index 7fc1b253..9c4d1d5d 100644 --- a/.github/workflows/cd.yaml +++ b/.github/workflows/cd.yaml @@ -281,7 +281,19 @@ jobs: echo "⏭️ 跳過 Web image 更新 (build skipped)" fi - kubectl apply -k . + # 2026-03-26: 處理 selector immutability 問題 + # 如果 apply 失敗 (通常是 selector 變更),先刪除再重建 + if ! kubectl apply -k . 2>&1 | tee /tmp/apply.log; then + if grep -q "field is immutable" /tmp/apply.log; then + echo "⚠️ 偵測到 selector 不可變錯誤,執行強制重建..." + kubectl delete deployment awoooi-api awoooi-web awoooi-worker -n awoooi-prod --ignore-not-found + sleep 5 + kubectl apply -k . + else + echo "❌ 部署失敗 (非 selector 問題)" + exit 1 + fi + fi # 2026-03-26: CoreDNS GitOps 同步 (ADR-026) - name: Sync CoreDNS Config