fix(runner): verify 110 controlled cd lane readiness
Some checks failed
CD Pipeline / workflow-shape (push) Successful in 0s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Failing after 3m10s
CD Pipeline / build-and-deploy (push) Has been skipped
AWOOOI Harbor 110 Local Repair / workflow-shape (push) Successful in 1s
CD Pipeline / post-deploy-checks (push) Has been skipped
AWOOOI Harbor 110 Local Repair / harbor-110-local-repair (push) Has been cancelled

This commit is contained in:
Your Name
2026-06-30 21:37:24 +08:00
parent b932ae2174
commit f1758cdf0c
8 changed files with 754 additions and 1 deletions

View File

@@ -50664,3 +50664,26 @@ production browser smoke:
**下一步**
- commit/push 後等待新的 Gitea CD rundeploy marker 更新後讀回 `delivery-closure-workbench``awoooi-priority-work-order-readback``stockplatform-public-api-controlled-recovery-preflight`
## 2026-06-30 — 21:42 110 controlled `awoooi-host` lane readiness verifier
**完成內容**
- 新增 `ops/runner/check-awoooi-110-controlled-cd-lane-readiness.sh`,把目前 Gitea `harbor-110-local-repair` 顯示 `No matching online runner with label: awoooi-host` 的主線 blocker 收斂成可重跑 verifier。
- verifier 僅讀 metadata不讀 `.runner` 內容、不印 runner token檢查 110 host selector、controlled drain lane `capacity=1``awoooi-host:host` / `awoooi-ubuntu` labels、ELF binary、registration metadata 存在、systemd CPU / memory / tasks / `NoNewPrivileges` guardrails、legacy runner fail-closed、root restore-source left `0`、active action container / heavy process / load 壓力。
- `awoooi-cd-lane-drain.service``awoooi-startup-110.sh` 產生的 controlled drain unit 新增 `ConditionPathExists=/home/wooo/awoooi-cd-lane-drain/data/.runner`,避免 service active 但未註冊時假裝可承接 `awoooi-host` queue。
- `ops/runner/verify-awoooi-non110-cd-closure.py` 的 Harbor 110 no-matching next action 改為先在 110 跑 `check-awoooi-110-controlled-cd-lane-readiness.sh`,通過後再恢復 `awoooi-host` control path 並重讀 queue/closure。
**本地驗證結果**
- `pytest ops/runner/test_check_awoooi_110_controlled_cd_lane_readiness.py ops/runner/test_verify_awoooi_non110_cd_closure.py ops/runner/test_cd_controlled_runtime_profile.py ops/runner/test_guard_gitea_runner_pressure.py scripts/reboot-recovery/tests/test_cold_start_monitor_bounded_probes.py -q``56 passed`
- `python3.11 -m ruff check ...`:通過。
- `bash -n ops/runner/check-awoooi-110-controlled-cd-lane-readiness.sh scripts/reboot-recovery/awoooi-startup-110.sh`:通過。
- `python3.11 ops/runner/guard-gitea-runner-pressure.py --root .`:通過,`auto_branch_events_on_110=0``generic_runner_labels=0`
- `node scripts/ci/check-gitea-step-env-secrets.js`:通過。
**仍維持**
- 沒有讀 secret / token / `.env` / raw sessions / SQLite / auth沒有讀 `.runner` 內容。
- 沒有使用 GitHub / gh / GitHub API / GitHub Actions。
- 沒有重啟主機,沒有 Docker / Nginx / K3s / DB restart沒有 workflow_dispatch沒有 runtime write。
**下一步**
- commit/push 後讀回 Gitea queue / non110 CD closure / registry若仍是 `awoooi-host` no-matching下一個 controlled apply target 是在 110 上跑此 verifier依 safe_next_step 恢復 controlled drain lane 或補 registration metadata再重讀 Harbor repair queue。