From fcc3dc3cb97f8fa7841e5dde2382f9fd8c93feeb Mon Sep 17 00:00:00 2001 From: wangbo Date: Sat, 1 Aug 2026 11:45:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(acceptance):=20=E6=8E=92=E7=A9=BA=E5=90=8E?= =?UTF-8?q?=E5=88=87=E6=8D=A2=E9=AA=8C=E6=94=B6=20Worker=20=E6=8B=93?= =?UTF-8?q?=E6=89=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 首次 CAS 只校验 release 与镜像,进入 validation 并排空既有任务后再快照并应用 P24 基线,随后执行副本放置与资源门禁。避免在 live 流量下从 1+1 竞态切换到 0+2,也解除验收前置副本与安全排空之间的循环依赖。\n\n验证:bash -n、ShellCheck、git diff --check。 --- scripts/cluster/run-production-acceptance.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/scripts/cluster/run-production-acceptance.sh b/scripts/cluster/run-production-acceptance.sh index b46acd5..edef071 100755 --- a/scripts/cluster/run-production-acceptance.sh +++ b/scripts/cluster/run-production-acceptance.sh @@ -635,6 +635,7 @@ fi } verify_release_cas() { + local verify_capacity=${1:-true} cluster_ssh "$CLUSTER_NINGBO_HOST" "$remote_release_helper status" >"$current_manifest" node "$cluster_root/scripts/release-manifest.mjs" validate "$current_manifest" >/dev/null local current_sha current_api @@ -648,6 +649,7 @@ verify_release_cas() { [[ $(remote_kubectl get deployment "$deployment" -n "$namespace" \ -o 'jsonpath={.spec.template.spec.containers[0].image}') == "$api_image" ]] done + [[ $verify_capacity == true ]] || return 0 [[ $(remote_kubectl get deployment easyai-worker-ningbo -n "$namespace" \ -o 'jsonpath={.spec.replicas}') == "$AI_GATEWAY_ACCEPTANCE_BASE_REPLICAS_NINGBO" ]] [[ $(remote_kubectl get deployment easyai-worker-hongkong -n "$namespace" \ @@ -3384,7 +3386,7 @@ WHERE task.acceptance_run_id='$run_id'::uuid [[ $(jq -r '.promotion.ready' "$report_root/acceptance-report.json") == true ]] } -verify_release_cas +verify_release_cas false bootstrap_acceptance_primary_identity ensure_acceptance_user_group ensure_acceptance_identity_shards @@ -3394,6 +3396,19 @@ ensure_acceptance_model_access create_and_activate_run wait_for_existing_tasks_to_drain snapshot_pre_acceptance_capacity +if ! apply_capacity_profile P24; then + failure_gate_id=baseline_capacity_apply + failure_reason='failed to apply the drained P24 baseline topology' + mark_run_failed "$failure_reason" + exit 1 +fi +if ! wait_for_post_rollout_stability P24; then + failure_gate_id=baseline_control_plane_stability + failure_reason='P24 baseline topology did not stabilize after rollout' + mark_run_failed "$failure_reason" + exit 1 +fi +verify_release_cas if ! verify_resource_preconditions; then failure_gate_id=resource_preconditions failure_reason='production resource preconditions failed'