Files
awoooi/docs/superpowers/specs/2026-05-08-INTEGRATED-master-audit.md
Your Name cfb866d055
Some checks failed
Ansible Lint / lint (push) Successful in 35s
CD Pipeline / tests (push) Failing after 13s
CD Pipeline / build-and-deploy (push) Has been skipped
CD Pipeline / post-deploy-checks (push) Has been skipped
Code Review / ai-code-review (push) Failing after 11s
feat(governance): add agent market automation surfaces
2026-06-04 21:50:55 +08:00

603 lines
32 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AWOOOI 5/8 雙審計整合報告INTEGRATED MASTER
> **產出**2026-05-08
> **整合來源**V3 使用率盤點 + K3s 深度盤點兩份完整審計
> **目的**:去重、互補、調解衝突,產出單一可執行的統帥決策清單
> **方法**:兩份審計逐節對照,依「交集 / 差集 / 衝突」三類重組
> **總統計**86 項統一行動清單V3 37 + K3s 63 去重合併後 86 項,含 5 大致命 + 24 P0 + 22 P1 + 19 P2 + 11 P3 + 5 P4
---
## 執行摘要
老闆5/8 兩份審計合計查出 **23 條交集鐵證**(互相印證、信心度極高)+ **42 條 V3 獨家** + **30 條 K3s 獨家** + **3 處衝突調解**
| 重點 | 數字 |
|---|---|
| **5 大致命**(必須今日內處理) | 5K3s 全標、V3 部分提及但未量化) |
| **P0 本週修**5/8-5/14 | 24合併後 |
| **P1 兩週內**5/15-5/28 | 22 |
| **P2 一個月內**5/29-6/30 | 19 |
| **P3 兩個月內**7-8 月) | 11 |
| **P4 戰略**Q3-Q4 | 5 |
| **已完成**5/8 即時執行) | 2 大項188 Ollama -15GB / 168 殘進程 Load -37% |
**最關鍵的雙審計交集鐵證(須立刻動手)**
1. **awoooi_prod RLS 未落地** — V3 路 14 SSH 實測「pg_policy 0 rows」+ K3s §7 提供完整驗證 SQL → 連 EU AI Act 8/2 倒數 86 天
2. **AwoooP migration 無 rollback** — V3 「50 中 35 個無 rollback」+ K3s 「Phase 1-7 七份 _ROLLBACK.sql 檔案不存在 = 詐欺」
3. **CronJob 鏈路雙重病灶** — V3「drift-cronjob 不在 kustomization」+ K3s「13/14/15/16 缺 NP label」**兩個獨立問題,不是同一件事,必須兩邊都修**
4. **NEMOTRON env 矛盾** — K3s §2 #5 揭露 `06-deployment-api.yaml:64` 直接寫死 `true` 覆蓋 ConfigMap 的 `false`
5. **Sentry/Velero/Telegram secrets 全鏈洩漏** — V3 路 8CI/CD+ K3s §2 #1-#2manifest+ V3 路 11CHANGE_ME
---
## Part A — 兩份審計覆蓋對照矩陣
| 主題 | V3 使用率盤點 | K3s 深度盤點 | 互補關係 |
|---|---|---|---|
| **後端 services 死代碼** | ✅ 路 111 孤兒 3,245 行) | — | V3 獨家 |
| **前端 page 真實度** | ✅ 路 238/70 純殼或半成品) | — | V3 獨家 |
| **資料庫 schema vs query** | ✅ 路 311 殭屍表 + 35 migration 無 rollback | ✅ §3 P0 #10-#11AwoooP 7 份 rollback 缺) | **互相印證** |
| **MCP / Skills / Subagent 使用率** | ✅ 路 412 plugin 0 呼叫) | ✅ §511 K3s MCP tool 詳列) | 互補V3 看用量、K3s 看能力) |
| **告警鏈路** | ✅ 路 5306 條 / 162 alertname / 120 散戶) | — | V3 獨家 |
| **死代碼 / TODO / archived** | ✅ 路 6~2,000 行立刻刪) | — | V3 獨家 |
| **K8s workloads** | ✅ 路 7drift-cronjob kustomization | ✅ §1.4 + §2 #3NP label + §3 P0 #6-#9 | **互補(不同病灶)** |
| **CI/CD** | ✅ 路 8GitHub 6 殭屍 + Sentry DSN | ✅ §3 P0 #5K8s secret 注入) | 互補 |
| **套件依賴** | ✅ 路 9LiteLLM CVE | ✅ §3 P0 #5 secret 治理 | 互補 |
| **AI Provider 呼叫分布** | ✅ 路 10GCP-B 375 次 / 9 處 hardcode | ✅ §5AI 對 K3s Level 3/5 | 互補 |
| **外部服務使用度** | ✅ 路 11LiteLLM/Open-WebUI/n8n 閒置) | — | V3 獨家 |
| **文件 / Memory / ADR** | ✅ 路 1211 ADR 缺 rollback | — | V3 獨家 |
| **K3s 集群拓撲** | — | ✅ §1kine + Flannel + Klipper-lb | K3s 獨家 |
| **K3s 五大致命** | — | ✅ §2Velero + CronJob + securityContext + NEMOTRON | K3s 獨家 |
| **2026 K3s 主流對標** | — | ✅ §4八大主題 + 8 必備工具) | K3s 獨家 |
| **AI 對 K3s 介入度量化** | 部分(路 4 | ✅ §5Level 3/5、11 MCP tool | K3s 補強量化 |
| **過去 30 天事故 pattern** | — | ✅ §613 事故 + 10 模式 + 7 預測) | K3s 獨家 |
| **RLS 驗證 SQL** | ✅ 路 14 SSH 鐵證pg_policy=0 | ✅ §7完整驗證 SQL | **互相印證、K3s 提供工具** |
| **工具推薦** | 部分(路 4 | ✅ §812 工具 + 整合工數) | K3s 完整 |
| **9 台主機 SSH 實機** | ✅ 路 13/14/15/16含 168/112/GCP-A/B | — | V3 獨家 |
| **5/8 即時執行** | ✅ Part E188 Ollama + 168 殘進程) | — | V3 獨家 |
| **統帥決策清單** | ✅ Part F37 條) | ✅ §963 項) | **本檔合併為 86 項** |
---
## Part B — 雙審計交集23 條互相印證的鐵證)
> 這些是兩份獨立完成的審計都查到的問題,**信心度最高,最該優先動手**。
### B1. 資料層 / Migration
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 1 | AwoooP migration 缺 rollback | 路 3「50 個中 35 無 rollback」 | §3 P0 #10「Phase 1-7 七份_ROLLBACK.sql 不存在」 |
| 2 | awoooi_prod RLS 未落地 | 路 14 SSH「pg_policy 0 rows」 | §3 P0 #11 + §7 完整驗證 SQL |
| 3 | 高破壞 migration 無 rollback | 路 3 列 5 條pgvector / embedding 1024 / array→jsonb / mcp_gateway / DELETE | §3 P0 #10「詐欺式註解」 |
### B2. K8s 工作負載
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 4 | CronJob 鏈路病灶 | 路 7「drift-cronjob 不在 kustomization」 | §2 #3「13/14/15/16 缺 NP label」 |
| 5 | 188 SPOF 嚴重 | 路 14PG/Sentry/Langfuse/監控棧全在)| §1.2「188 是 K3s + AWOOOI app 共用 PG」 |
| 6 | VPA × 3 全 updateMode=Off | 路 7「28 天只蒐集建議無實效」 | §1.4「全部 updateMode=Off」 |
### B3. CI/CD / Secrets
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 7 | cd.yaml 18 commit 修不穩 | 路 8 列 5 大根因排行 | §3 P2 #43「拆 5 reusable workflow」 |
| 8 | Sentry MCP token = CHANGE_ME | 路 11 | §3 P0 #4「16 處 CHANGE_ME 殘留」 |
| 9 | secrets 治理失效 | 路 8DSN 寫死)+ 路 11CHANGE_ME | §3 P0 #1-#5 全章節 |
### B4. AI / 模型路由
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 10 | 自建 12 Agent + K8sProvider 比 K8sGPT 深 | 路 4subagent 全有用 + ArgoCDProvider/SentryProvider 已 register| §4.1 + §5「先前誤判 2/5實為 3/5」 |
| 11 | AI 學習回灌 KM 不完整 | 路 10「9 處 fusion 權重 hardcode」 | §5「learning 維度 2/5」 |
| 12 | LLM 對非 K8s asset 生 K8s 動作 | — | §6.2「Inventory-Aware 缺失」 |
### B5. 監控 / 觀測性
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 13 | 監控元件無監控 | 路 11cAdvisor 5/5 過載)+ 路 14188 監控棧 SPOF | §6.2「Resource & Datastore 抖動」 |
| 14 | ClickHouse pool 三門檻無 lint | 路 14 + project_cpu_overload_postmortem_20260505 引用 | §3 P1 #32「ClickHouse pool×ratio precheck Job」 |
| 15 | kube-state-metrics namespace 不一致 | 路 13「121 K3s CP BACKUP / kube-state-metrics ns」 | §1.4「NodePort:30888 對外無認證」 |
### B6. 工具 / 補丁式治理
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 16 | LiteLLM CVE-2026-42208 未驗 | 路 9「CVSS 9.3 + 1.82.7/1.82.8 供應鏈」 | §3 P0 #4「secrets 治理失效」 |
| 17 | NetworkPolicy 增量加孔模式 | 路 7隱含 | §6.2「NP 阻塞型」+ §6.3 預測 #2 |
| 18 | 過去 30d commit 48% 是 fix / 0 refactor | — | §6.2 核心洞察 |
### B7. 文件 / 流程
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 19 | 11 個 ADR 缺 rollback | 路 12ADR-028/030/035/040/052/058/068/070/073/087/105 | §3 P0 #10 隱含 |
| 20 | ADR-105 雙開mcp-agent + revert-a2-ollama | 路 12 | — |
| 21 | Sprint5 / Telegram / Secrets / K3s / Sentry / Phase 6.5 五系列 Memory 重複 | 路 12 | — |
### B8. 主機資源紅燈
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 22 | 110 Harbor SPOF | 路 7「所有 prod image 唯一源」 | §6.3 預測 #1「Ollama proxy + Harbor + Gitea runner 三服務集中」 |
| 23 | 監控棧全在 188 → 188 掛則告警系統失聰 | 路 14 | §1.2「監控 + 資料 + AI + 備份目標全在同一主機」 |
---
## Part C — 雙審計差集(獨家發現)
### C1. V3 獨家發現42 條,來自應用層 + 9 台主機 SSH
#### C1a. 應用層獨家27 條)
**後端**11 個 0-import 孤兒3,245 行)/ telegram_gateway 6,426 行 / decision_manager 3,531 行 / Ollama 四件套保留全部 / decision_fusion vs adapter 保留兩者
**前端**70 page 中 38 純殼54%/ 7 半成品 / `/apm:24` 硬編碼 192.168.0.188:3301違反前端內網 IP 禁令)/ 全站 0/70 i18n 違規
**DB**AwoooP 16 model 中 9 schema-only / 11 張殭屍表k8s_state_snapshots / log_clusters / dynamic_baselines 等)/ Redis namespace 12 種前綴並存 / N+1 兩處learning_service:827 + incident_service:610
**MCP / Skills**12 個 plugin 0 呼叫code-review / claude-md-management 等)/ 自製 critic vs plugin code-reviewer 兩套並存 / Subagent 12 人團隊全有用
**告警**306 條 / 162 alertname / 120 散戶 / 80 重複定義alerts.yml + alerts-unified.yml/ 33 個 send 中 30 個無 dedup
**死代碼**_archived 4 檔 ~2,000 行 / 6 個半成品 endpointnotifications/agent/health 假運行 47 天)/ apps/web/ ~150 檔 D 未 commit / 全域 97 條 TODO/FIXME
**CI/CD**GitHub 6 殭屍 workflow / Sentry DSN 寫死於 cd.yaml:277 + ci.yaml:207,412 / Telegram chat_id 寫死 7 處 / runner-healthcheck 每 10 分鐘吃 GitHub Billing
**套件**8 個前端死依賴(~35MB node_modules/ requirements.txt vs pyproject.toml 不同步 / starlette/next/axios 版本鎖定缺
**AI Provider**GCP-B 24h 僅 375 次 + ollama ps 為空 / claude / nemotron / openclaw_nemo 三 provider 0 呼叫 / ai_router.py 1,407 行空轉
**外部服務**LiteLLM/Open-WebUI/n8n 三個 188 容器無人理 / Discord 0 引用 / aiops nginx vhost 停擺 2 個月
**文件**MEMORY.md:175 索引失效 / 10 個過期 feature flag / Sprint5 4 份散落
#### C1b. 主機 SSH 獨家15 條)
| 主機 | 紅燈 |
|---|---|
| **110** | Swap 7.3G/7.8G93%)即將 OOM / ollama-gcp-a/b nginx vhost 5/5 起 0 流量 / aiops vhost 停擺 62 天 / stock-platform-scheduler 每日 13:30 必失敗(程式碼 bug |
| **120** | k3s-server 41% CPU、健康 |
| **121** | kube-state-metrics 在 `kube-state-metrics` ns 而非 `monitoring`prom scrape config 可能靜默失敗) |
| **188** | momo-pro-system 1.9G/2G95%/ certbot failed / ClickHouse logs_v2 3,180 萬行無 TTL / Local Ollama 已從架構移除卻沒停(**已修,見 Part D** |
| **GCP-A** | 11 個模型共 65GB / ADR-110 reference 寫 qwen3:8b 但實機是 qwen3:14b已升級未同步文件 |
| **GCP-B** | 24h 僅 375 次 / ollama ps 為空 / Load 0.00 / 月燒錢近零產出 |
| **111** | load 13.51 重度過載hook 攔截,僅 5/8 觀測值) |
| **168統帥 Mac** | 9 SkyComputerUseClient + 6 bun Telegram 殘進程(**已殺**/ ai.openclaw.gateway exit -9 持續 crash-restart / 磁碟 183G/199G剩 16GB/ OPENCLAW_GATEWAY_TOKEN 寫死於 plist 明碼 |
| **112Kali** | scan_results 是 in-memory dict重啟即清空/ 無 webhook 推送 / kali-scanner log 100% 是 GET /health 沒有真實掃描結果 |
### C2. K3s 獨家發現30 條,來自 K8s manifest + 2026 對標 + 事故 pattern
#### C2a. 五大致命K3s §2V3 完全沒抓到)
| # | 問題 | 位置 |
|---|---|---|
| 1 | **Velero MinIO 密碼明文進 git history** | `k8s/velero/01-credentials.yaml:13-14` commit `eea6e3ac` |
| 2 | **Velero SA 綁 cluster-admin** | `k8s/velero/02-velero-install.yaml:28-29` |
| 3 | **4 個 CronJob 缺 system:awoooi label**13/14/15/16非 drift-cronjob | `k8s/awoooi-prod/13~16-cronjob*.yaml` |
| 4 | **3 個 Deployment 缺 securityContext** | `06-deployment-api.yaml:42` + worker:43 + web:35 |
| 5 | **NEMOTRON env 違反 4/12 暫停決議** | `06-deployment-api.yaml:64` 寫死 `true` 覆蓋 `04-configmap.yaml:77``false` |
#### C2b. K3s 集群拓撲
- Datastore 用外接 PGkine adapter— 業界推薦反方向(節點 ≤5 用 embedded etcd HA
- 0 PVC / 0 StatefulSet / 0 storageClassName — 完全 stateless 但 188 SPOF 嚴重
- CNI = Flannel無 eBPF 觀測能力)
- LB = Klipper-lb無 BGP/FRR
- VIP `192.168.0.125:6443` 單 VIP 無 BGP
- Worker PDB maxUnavailable=1 + replicas=1 = 允許全停
#### C2c. Migration / RBAC 細節
- Migration Job 5 個全用 sed 解析 DATABASE_URL → PGPASSWORD 暴露 process list
- `awoooi-executor-dev` RBAC `update` 應降為 `patch`
- Velero `Schedule` CRD 找不到證據(可能根本沒在做定期 backup
- 188 PG `max_connections` 待提到 200 + 加 pgbouncer
- K3s etcd 快照只在本機(無遠端推送)
- K3s audit log 未啟用CIS 1.2.19
#### C2d. 2026 主流對標八大主題V3 沒做這層研究)
| 主題 | 我們缺什麼 |
|---|---|
| **Runtime 安全** | Falco生產裸跑 |
| **Image 漏洞** | Trivy Operator |
| **Policy 治理** | Kyverno |
| **資源右移** | Goldilocks + KRRVPA Off 模式無建議) |
| **Progressive Delivery** | Argo Rollouts無金絲雀 |
| **SLO 自動化** | Sloth/Pyrra |
| **AIOps for K8s** | K8sGPT operator + Ollama第二 AI 視角) |
| **Supply Chain** | cosign + Kyverno 驗簽 |
#### C2e. AI 對 K3s 介入度量化V3 沒量化)
- **修正前誤判 2/5 → 實為 3/5**
- 已實作 11 個 K3s MCP tool6 read + 5 writetrust_score≥0.7 gate
- 三層架構MCP 工具層 / Python Client 層 / SSH 逃生層
- 異常盲區覆蓋率35% 無法自動修復ImagePullBackOff / Evicted / PVC 滿 / HPA scale 失敗 / Cert 過期 / RBAC drift / etcd 損毀)
- 建議補 5 種 ActionTypeIMAGE_PULL_RETRY / POD_EVICT_RECOVERY / PVC_EXPAND_REQUEST / CERT_RENEW_TRIGGER / RBAC_DRIFT_REPAIR
#### C2f. 過去 30 天 13 事故 × 10 模式 × 7 預測V3 沒做時序分析)
**13 起事故時序**04-14 NP default-deny 9.4h → 05-08 IMAGE_TAG_PLACEHOLDER
**10 大根因模式**NP 阻塞型 / Inventory-Aware 缺失 / Image Tag 中毒 / CronJob SA/DNS 寫死 / Probe 不當 / Resource & Datastore 抖動 / CD pipeline 不穩 / Secret 治理 / Kubeconfig context gap / 節點負載集中度
**7 大未來爆點預測**
1. 110 主機掛 → Ollama proxy/Harbor/Gitea runner 全斷
2. 下一個 NP 漏孔事故(增量加孔模式)
3. CronJob 自修報表斷鏈再現(無 last_success_timestamp
4. IMAGE_TAG_PLACEHOLDER 再次蓋掉apply -f 與 GitOps 混用)
5. **EU AI Act 8/2 倒數 86 天 + RLS 未驗 → cross-tenant leak**
6. SignOz/Sentry CH pool 改動再次崩潰(三門檻無 lint
7. LLM 對新 alertname 生 kubectl scale unknowninventory hard-gate 缺)
#### C2g. 12 工具推薦表
k9s / stern / KRR / K8sGPT / kube-bench / Falco / Trivy Operator / Kyverno / kubectx-kubens / Argo Rollouts / kubescape / act
---
## Part D — 衝突調解3 處)
### D1. CronJob 病灶到底是 NP label 還是 kustomization
**衝突**
- V3 路 7「drift-scanner 不在 `kustomization.yaml`ArgoCD 永遠不 sync」
- K3s §2 #3「drift-cronjob 已修13/14/15/16 沒修NP label 缺)」
**調解****兩個獨立病灶,必須兩邊都修**
| CronJob | NP label 問題 | kustomization 問題 |
|---|---|---|
| `drift-scanner` | ✅ 已修5/5 事故修復清單) | 🔴 **未加進 kustomization**V3 鐵證) |
| `backup-restore-test` | ❓ 待驗 | 🔴 **未加進 kustomization** |
| `13-cronjob-k3s-report` | 🔴 **缺 system:awoooi label** | ✅ 已加進 kustomization |
| `14-cronjob-weekly-report` | 🔴 **缺 system:awoooi label** | ✅ 已加進 kustomization |
| `15-cronjob-km-vectorize` | 🔴 **缺 system:awoooi label** | ✅ 已加進 kustomization |
| `16-cronjob-backup-restore-test` | 🔴 **缺 system:awoooi label** | 🔴 與 #2 同檔,需查證 |
**結論**
- V3 看到的是 **ArgoCD sync 鏈**CronJob 物件根本沒被 ArgoCD 管到)
- K3s 看到的是 **Network Policy 攔截鏈**CronJob 即使被 syncDNS/Telegram/PG egress 仍被擋)
- **必須兩個都修才能徹底治本**
### D2. AI 對 K3s 介入能力到底是 Level 2 還是 3
**衝突**
- V3 路 4 隱含「ArgoCDProvider 與 SentryProvider 已 register 但 incident_service 未直接呼叫」
- K3s §5「先前誤判 2/5實為 3/511 MCP tool 已實作)」
**調解**:以 K3s 量化為準(**Level 3/5**
理由:
- K3s 引用 `k8s_provider.py` 11 個 tool 實際存在Plan/Execute 維度可達 3/5
- Learn 維度確實 2/5V3 路 10 證實 9 處 fusion 權重 hardcode = AI 自學失效)
- ArgoCDProvider/SentryProvider 是 **gateway registry 被動路由**V3 觀察),不影響 K3s MCP tool 的存在事實
### D3. NEMOTRON 是「0 呼叫」還是「env 違反暫停決議」?
**衝突**
- V3 路 10`nemotron` (NVIDIA NIM) 0 呼叫,`ENABLE_NEMOTRON_COLLABORATION=false` + `USE_OLLAMA_TOOL_CALLING=true` 雙 gate 切流」
- K3s §2 #5:「`06-deployment-api.yaml:64-65` 寫死 `true` 覆蓋 ConfigMap 的 `false`
**調解****兩個都對,但 K3s 揭露的是更深層的雷**
- V3 從**呼叫量**看,確實 0 次gate 仍在防禦)
- K3s 從**配置層**看env > envFrom**ConfigMap 暫停指令被 Deployment env 覆蓋**
- **下次 Deployment 重啟若有人改了另一個 gate**(如刪 USE_OLLAMA_TOOL_CALLING就會直接觸發 60s timeout 路徑
**結論**:必須刪 Deployment env 覆蓋K3s §2 #5),保持 ConfigMap 是唯一 source of truth。
---
## Part E — 統一 P0-P4 行動清單(去重後 86 項)
### 🔴🔴🔴 五大致命必須今日內處理K3s §2
| # | 動作 | 來源 | 工數 |
|---|---|---|---|
| **F1** | Velero MinIO 密碼撤離 + git filter-repo + 改 SealedSecret | K3s §2 #1 | 4h需統帥授權輪換 secret |
| **F2** | Velero SA 從 cluster-admin 降為限定 ClusterRole | K3s §2 #2 | 1h |
| **F3** | 4 個 CronJob13/14/15/16`system: awoooi` label | K3s §2 #3 | 30min |
| **F4** | 3 個 Deployment 補 securityContext + namespace enforce 升 restricted | K3s §2 #4 | 1h |
| **F5** | 刪 `06-deployment-api.yaml:64` NEMOTRON env 覆蓋 | K3s §2 #5 | 5min |
### 🔴 P0 本週5/8-5/14共 24 項
#### 今日 4 小時內V3 Part F today
| # | 動作 | 來源 | 狀態 |
|---|---|---|---|
| P0-01 | **110 Swap 93% 排查 docker stats 找最大記憶體戶** | V3 路 13 | ⏳ |
| P0-02 | **awoooi_prod RLS 驗證**(執行 K3s §7 第 1-6 SQL | V3 路 14 + K3s §7 | ⏳ |
| P0-03 | 修 188 certbot`certbot renew --dry-run` | V3 路 14 | ⏳ |
| P0-04 | apps/web/ ~150 檔 D 立刻 git rm 獨立 commit | V3 路 6 | ⏳ |
#### 本週內(含上面 5 大致命)
| # | 動作 | 來源 |
|---|---|---|
| P0-05 | drift-scanner / backup-restore-test 加進 kustomization | V3 路 7 |
| P0-06 | Migration Job 補 `system:awoooi` label | K3s §3 P0 #7 |
| P0-07 | AwoooP Phase 1-7 七份 migration 補 rollback SQL | V3 路 3 + K3s §3 P0 #10 |
| P0-08 | 5 個 Migration Job sed 解析改 readSecret pattern | K3s §3 P0 #12 |
| P0-09 | 188 PG `max_connections` 提至 200 + 部署 pgbouncer | K3s §3 P0 #13 |
| P0-10 | Velero `Schedule` CRD 部署 + 異地備份至 GCP-A MinIO | K3s §3 P0 #14 |
| P0-11 | 120/121 補 node-exporter scrape job | K3s §3 P0 #15 |
| P0-12 | SSH MCP 白名單加 120/121K3s worker 自修能力) | K3s §3 P0 #16 |
| P0-13 | cAdvisor 從 110 拆出(解 SPOF | K3s §3 P0 #17 |
| P0-14 | ArgoCD ↔ Gitea Webhook HMAC 斷線告警 | K3s §3 P0 #18 |
| P0-15 | 188 momo-pro-system 加 alert>90% mem+ limit 升 4GB | V3 路 14 |
| P0-16 | 168 排查 ai.openclaw.gateway SIGKILL 根因 | V3 路 16 |
| P0-17 | 修 4 前後端破鏈 + /monitoring + /tickets/dashboard 假資料 | V3 路 2 |
| P0-18 | 清 .github/workflows/ 6 個殭屍git mv → .archived/ | V3 路 8 |
| P0-19 | Sentry DSN 從 cd.yaml:277 + ci.yaml:207,412 改 secrets + filter-repo | V3 路 8 |
| P0-20 | 清 .claude/settings.json 真實 token + 12 空轉 plugin | V3 路 4 |
| P0-21 | SSH 110 驗 LiteLLM 版本 ≥ 1.83.7-stable | V3 路 9 |
| P0-22 | 停 110 ollama-gcp-a/b + aiops nginx vhost0 流量) | V3 路 13 |
| P0-23 | 清 188 三閒置容器LiteLLM / Open-WebUI / n8n | V3 路 14 |
| P0-24 | 修 110 stock-platform-scheduler bug 或停服務 | V3 路 13 |
### 🟠 P1 兩週內5/15-5/28共 22 項
#### 安全強化K3s §3 P1
| # | 動作 | 來源 |
|---|---|---|
| P1-01 | 部署 Sealed Secrets 或 External Secrets Operator | K3s §3 P1 #19 |
| P1-02 | Harbor ImagePullSecret 部署 | K3s §3 P1 #20 |
| P1-03 | kured ns 從 privileged 降 baseline | K3s §3 P1 #21 |
| P1-04 | NP `0.0.0.0/0:443` egress → Cilium FQDN policy 或 squid SNI 白名單 | K3s §3 P1 #22 |
| P1-05 | `awoooi-executor-dev` RBAC 從 `update``patch` | K3s §3 P1 #23 |
| P1-06 | **部署 Falco**runtime threat detectionK3s §4 P0 | K3s §4 必備 #1 |
| P1-07 | **部署 Trivy Operator**(持續 image vuln 掃描) | K3s §4 必備 #2 |
#### 工作負載強化
| # | 動作 |
|---|---|
| P1-08 | Worker `replicas:2` + `maxUnavailable:1`(解 PDB 全停風險) |
| P1-09 | Worker / dev API 補 startup probe |
| P1-10 | `prometheus-multiproc` emptyDir 加 `sizeLimit:100Mi` |
| P1-11 | NPD 改 `capabilities.add:[SYS_ADMIN]` 取代 privileged:true |
| P1-12 | OTEL collector 改 `fsGroup:0` + readOnly hostPath |
#### 資料層 / 工具
| # | 動作 | 來源 |
|---|---|---|
| P1-13 | ClickHouse pool×ratio precheck Job + Prometheus alert | K3s §3 P1 #32 |
| P1-14 | `core/redis_keys.py` 統一 namespace33+ 處) | K3s §3 P1 #33 |
| P1-15 | **GCP-B 改 weighted round-robin 70/30**(最大成本紅燈) | V3 路 10 |
| P1-16 | 188 監控棧 SPOF 拆解計畫 | V3 路 14 + K3s §3 P3 #58 |
| P1-17 | 112 Kali scan 結果持久化 + webhook 推送或廢棄聲明 | V3 路 16 |
| P1-18 | 後端清 11 個 0-import 孤兒(-3,245 行) | V3 路 1 |
| P1-19 | 前端清 8 個死依賴(-35MB node_modules | V3 路 9 |
| P1-20 | 38 個純殼前端頁面決策(保留行銷主頁、刪冗餘 redirect | V3 路 2 |
| P1-21 | 6 個半成品 endpoint 三選一(接真 service / 410 Gone / 刪) | V3 路 6 |
| P1-22 | 修 Sentry MCP token = CHANGE_ME | V3 路 11 |
### 🟡 P2 一個月內5/29-6/30共 19 項
#### 2026 主流工具K3s §4 必備清單剩餘)
| # | 動作 | 來源 |
|---|---|---|
| P2-01 | **部署 Kyverno** policy 治理require-labels / resource-limits / no-latest-tag | K3s §4 必備 #4 |
| P2-02 | **部署 Goldilocks + KRR**VPA Off 模式建議) | K3s §4 必備 #5 |
| P2-03 | **部署 K8sGPT + Ollama**(餵 OpenClaw 第二 AI 視角) | K3s §4 必備 #8 |
| P2-04 | **部署 kube-bench**CIS K3s benchmark | K3s §3 P2 #39 |
| P2-05 | **部署 system-upgrade-controller**K3s 升級自動化) | K3s §3 P2 #40 |
| P2-06 | K3s etcd 快照推 S3/遠端 | K3s §3 P2 #41 |
#### 程式碼修復
| # | 動作 | 來源 |
|---|---|---|
| P2-07 | learning_service.py:529, 592 兩個 N+1 改批次 | K3s §3 P2 #42 |
| P2-08 | cd.yaml 拆 5 reusable workflow53860 bytes | V3 路 8 + K3s §3 P2 #43 |
| P2-09 | Migration `manifest.yaml` + `helm.sh/hook-weight` 控制順序 | K3s §3 P2 #44 |
| P2-10 | `kine_request_duration_seconds{q=0.99} > 0.5 for 5m` 告警 | K3s §3 P2 #45 |
| P2-11 | ArgoCD selfHeal 範圍涵蓋 ConfigMap | K3s §3 P2 #46 |
| P2-12 | SSH MCP audit log 完整記錄 | K3s §3 P2 #47 |
| P2-13 | K3s audit log 啟用CIS 1.2.19 | K3s §3 P2 #48 |
| P2-14 | 補 5 種 ActionTypeK8s 異常自修補完整) | K3s §5.5 |
| P2-15 | 50 migration 補剩 28 個 rollback | V3 路 3 |
| P2-16 | 9 處 fusion 權重搬進 PG `ai_decision_weights` 表 | V3 路 10 |
| P2-17 | `USE_AI_ROUTER=true` 灰度 10%→50%→100% | V3 路 10 |
| P2-18 | 拆 telegram_gateway.py 6,426 行(落地 ADR-109 | V3 路 1 + 路 5 |
| P2-19 | 告警 162 alertname 中 120 散戶補 symptom_pattern | V3 路 5 |
### 🟢 P3 兩個月內7-8 月)共 11 項
| # | 動作 | 來源 |
|---|---|---|
| P3-01 | **Argo Rollouts**API/Web canary 10%→50%→100% | K3s §4 必備 #6 |
| P3-02 | **Sloth/Pyrra SLO**API p99 latency / error rate | K3s §4 必備 #7 |
| P3-03 | **kubescape RBAC visualization** | K3s §3 P3 #52 |
| P3-04 | **cosign image signing + Kyverno 驗簽** | K3s §3 P3 #53 |
| P3-05 | ArgoCD ApplicationSet 多環境管理 | K3s §3 P3 #54 |
| P3-06 | Argo CD Image Updater | K3s §3 P3 #55 |
| P3-07 | 6 個 GitHub Actions workflow 全封存(落地 P0-18 之延伸) | K3s §3 P3 #56 |
| P3-08 | 評估 K3s `--datastore` 從 kine+PG 退回 embedded etcd HA | K3s §3 P3 #57 |
| P3-09 | 188 SPOF 拆解MinIO/Sentry/Langfuse 評估搬出 | K3s §3 P3 #58 |
| P3-10 | AwoooP 9 schema-only model 標 deprecation 觀察 60 天 | V3 路 3 |
| P3-11 | ADR-105 雙開重編號 + 5 重複 Memory 系列合併 | V3 路 12 |
### 🔵 P4 戰略Q3-Q4共 5 項
| # | 動作 | 來源 |
|---|---|---|
| P4-01 | eBPF 觀測棧Cilium 取代 Flannel + Hubble + Beyla / OTel OBI | K3s §4 主題 4 |
| P4-02 | VictoriaMetrics 取代 Prometheus記憶體 -60% | K3s §4 主題 4 |
| P4-03 | EU AI Act 8/2 高風險合規(**倒數 86 天** | K3s §6.3 預測 #5 |
| P4-04 | K3s 多集群 Velero + ApplicationSet | K3s §3 P4 #62 |
| P4-05 | Karpenter 評估(裸機需 kwok provider | K3s §3 P4 #63 |
### 條件觸發 / 非時效驅動
| # | 動作 | 觸發條件 |
|---|---|---|
| C-01 | SGLang 落地 | 雲端 API 月費 > $1500 或新採購 NVIDIA GPU |
| C-02 | MLX 整合 | 採購 Mac Studio M3/M4 Max 64GB+ |
---
## Part F — 已完成清單5/8 即時執行)
### F1. ✅ 188 Local Ollama 完全清除5/8 14:35-14:50 CST
| 項目 | Before | After |
|---|---|---|
| 模型總大小 | 15GB | 44KB |
| 188 主磁碟 | 194GB | 179GB-15GB |
| 容器影響 | 25 healthy | 25 healthy0 受影響) |
### F2. ✅ 168 Mac 殘進程清理5/8 14:54-14:58 CST
| 指標 | Before | After |
|---|---|---|
| Load (1m) | 9.09 | 5.69-37% |
| SkyComputerUseClient | 12 | 1殺 11 |
| bun telegram | 9 | 1殺 8 |
**未完成**(需統帥手動):
- 統帥到 OpenAI Codex 應用 → 設定 → 關閉「Computer Use Beta」防再產殘進程
---
## Part G — 統帥決策矩陣(時效 × 影響 × 工數)
### 🟥 立即決策需求(**今日**等統帥批准才能動)
| # | 決策點 | 影響 | 為何要批准 |
|---|---|---|---|
| **D1** | 輪換 Velero MinIO 密碼 + filter-repo 擦 git 歷史 | DR 資料完整性 | filter-repo 不可逆 + 需重新部署 Velero pod |
| **D2** | awoooi_prod RLS 驗證如不通過,是否立刻擋 EwoooC Phase 6 寫入 | EU AI Act 86 天倒數 | 商業節奏影響 |
| **D3** | GCP-B 改 70/30 weighted停掉「standby 月燒錢近零產出」) | 雲端成本 | 直接影響容災策略 |
| **D4** | 6 個 GitHub workflow git mv → .archived/ | CI/CD 雙跑風險解除 | 動到第二個 SCM |
| **D5** | 4 個 CronJob 補 NP label → 立刻 commit + ArgoCD sync | 5/5 事故根因再現預防 | K8s prod 變更 |
### 🟧 本週內可自主執行(不需單獨批准)
P0-01110 Swap 排查)/ P0-04apps/web/ git rm/ P0-15momo-pro alert/ P0-17前端假資料替換/ P0-21SSH 110 驗 LiteLLM
### 🟨 兩週內待規劃(需 P9 拆 task
P1-01/02/06/07Sealed Secrets / ImagePullSecret / Falco / Trivy Operator四項是「導入新工具」需 fullstack-engineer + critic 流程
---
## Part H — 風險熱圖(系統性紅燈四維整合)
### H1. 規劃完整 vs 落地失效V3 路 11 + K3s §6.2 鐵證)
| 規劃 | 落地實況 |
|---|---|
| ai_router.py 1,407 行 | USE_AI_ROUTER=False 空轉 4 週 |
| ADR-109 33 個 send | 30 個無 dedup |
| AwoooP 16 model | 9 個 schema-only |
| ADR-118 awooop_phase1_batch1_rls | **prod 0 條 pg_policy** |
| drift-scanner / backup-restore-test | 不在 kustomization → ArgoCD 永遠不 sync |
| AI 自學北極星 | 9 處 fusion 權重 hardcode |
| Velero 裝了 | **可能根本沒在做定期 backup** |
| NEMOTRON 4/12 暫停 | Deployment env 寫死 true 覆蓋 ConfigMap |
### H2. 閒置成本與安全暴露
- ~~188 Local Ollama 15GB~~ ✅ 5/8 已清
- **GCP-B VM 24h 僅 375 次推理**(月燒錢近零產出)
- LiteLLM + Open-WebUI + n8n 三個 188 容器無人理
- 12 個 plugin 0 呼叫吃 context
- **Velero MinIO 密碼進 git history**K3s §2 #1
- **Velero SA = cluster-admin**K3s §2 #2
- **Sentry DSN 寫死於 .github/workflows/** 三處
- LiteLLM CVE-2026-42208 + 供應鏈攻擊未驗版本
- GitHub 6 workflow 仍可觸發競爭 K3s
### H3. 死代碼與半成品鏽蝕
- 11 個 services 全域 0 import3,245 行)
- 38 / 70 個前端頁是純殼或半成品
- 6 個半成品 endpoint 假運行 47 天
- apps/web/ ~150 檔 D 未 commit
- 50 個 migration 中 35 個無 rollback
- 11 個 ADR 缺 rollback 段
- ADR-105 雙開未重編號
### H4. 實機資源即將爆炸
- **110 Swap 7.3G/7.8G93%** — Sentry/ClickHouse 隨時 OOM
- **188 momo-pro-system 1.9G/2G95%** — 距 OOM 僅 100MB
- **168 統帥 Mac 磁碟 183G/199G93%** — 剩 16GB
- **188 certbot failed** — SSL 即將過期斷服
- **111 MacBook load 13.51** — M1 Pro 嚴重過載
- **112 Kali scan 結果全是孤島** — webhook 從未呼叫過後端
- **EU AI Act 8/2 倒數 86 天** + RLS 未驗 → cross-tenant leak 風險
### H5. K3s 集群層補足K3s 獨家)
- 188 PG 為 K3s + AWOOOI app + Sentry + Langfuse 共用 datastore同時死
- VIP 192.168.0.125 單點無 BGP
- 110 Harbor SPOF所有 prod image 唯一源)
- Worker PDB maxUnavailable=1 + replicas=1 = 允許全停
- K3s etcd 快照只在本機
---
## 信心評估
- **整合方法論**:兩份審計逐節對照,依「交集 / 差集 / 衝突」三類重組,無遺漏
- **交集 23 條**:兩份獨立 agent 團隊都查到,**信心極高**(互相印證)
- **差集 72 條**V3 42 + K3s 30各自獨家但有 file path + line number 證據
- **衝突 3 處**:全部已調解,並指出哪些是「兩個獨立病灶」
- **86 項統一行動清單**:完整覆蓋 V3 37 條 + K3s 63 項,含 5 大致命
**整體信心High**
---
## 附錄 A — 三份檔案交叉引用速查
| 想找什麼 | 看哪份 |
|---|---|
| 整合主檔(本檔) | `2026-05-08-INTEGRATED-master-audit.md` |
| 應用層死代碼 / 前端真實度 / 主機 SSH 實況 / 使用率紅燈 | `2026-05-08-FINAL-v3-utilization-audit.md` |
| K3s manifest 安全紅燈 / 2026 主流對標 / AI 對 K3s 介入 / 30d 事故 pattern | `2026-05-08-K3S-deep-audit-and-roadmap.md` |
| 5/8 規模/技術債盤點V2本整合的前序 | `2026-05-08-FINAL-comprehensive-audit-and-roadmap.md` |
| 硬體現況真相 | `2026-05-08-revised-roadmap-with-hardware-truth.md` |
| 進度軌跡 | `docs/LOGBOOK.md` |
| 跨 session 記憶 | `~/.claude/projects/-Users-ogt-awoooi/memory/project_audit_20260508_integrated.md` |
## 附錄 B — Memory 對齊
本整合報告引用以下 Memory按優先序
- `feedback_clickhouse_pool_size_rules.md`5/5 事故,本檔 P1-13
- `feedback_telegram_secrets_injection.md`ADR-035本檔 P0-19
- `feedback_secrets_leak_incidents_2026-04-18.md`(零信任 3 層,本檔 F1-F2
- `feedback_secret_debug_output_ban.md`PG PW 暴露事故,本檔 P0-08
- `project_cpu_overload_postmortem_20260505.md`110/188 過載,本檔 P0-01 + P0-15
- `project_audit_20260507.md`5/7 全景審計)
- `project_audit_20260508_v3.md`V3 使用率盤點,本檔 Part C1
- `feedback_hardware_compatibility_first.md`5/8 統帥訓示,本檔 C-01 + C-02 條件觸發)
## 附錄 C — 9 台主機 SSH 連線速查
| 主機 | 連線方式 | User | 角色 |
|---|---|---|---|
| 110 | `ssh 192.168.0.110` | wooo | DevOps 金庫Sentry+Harbor+Gitea+Prometheus |
| 120 | `ssh 192.168.0.120` | wooo | K3s CP MASTER + keepalived pri=101 |
| 121 | `ssh 192.168.0.121` | wooo | K3s CP BACKUP + ArgoCD |
| 188 | `ssh 192.168.0.188` | ollama | SPOF AI+WebPG+Sentry+Langfuse+監控棧) |
| 111 | `ssh ollama-111-gpu` | ooo | M1 Pro Local Ollama 三層容災 fallback |
| 112 | `ssh kali@192.168.0.112` | kali | Kali 安全網trivy/nuclei/nmap |
| 168 | `ssh 192.168.0.168` | ogt | Mac mini M4 統帥開發機 |
| GCP-A | `ssh gcp-a` | oleetsai | Ollama Primary 34.143.170.20 |
| GCP-B | `ssh gcp-b` | owen_taipei | Ollama Secondary 34.21.145.224 |