Files
aiops/TDD_PLAN.md
T
attacker 4f1ffd1275 feat(k8s): M2 Pod Metrics 详情页接入 — ListPods 注入 metrics
后端:
- 新增 buildPodMetricsMap() 公共辅助函数,聚合多容器 CPU/Memory
- ListPods / listPodsWithNS / ListPodsAllNS 三个 handler 全部注入
- PodSummary 增加 cpu_usage_m / mem_usage_mi 字段

前端:
- KubernetesWorkloads Pod 表格增加 CPU/内存列
- NamespaceResourcePage Pod 表格增加 CPU/内存列

验证:
- 17 个 Pod 全部返回真实 metrics (argocd/demo-jar)
- curl /kubernetes-clusters/1/pods → cpu_usage_m='2m' mem_usage_mi='61Mi'

文档:
- ROADMAP M1→done, M2→done, 验收标准全部勾选
- TDD_PLAN M2 通过标准补充
- PROJECT_EVALUATION P0 缺失项移除
2026-06-23 00:54:54 +08:00

2.6 KiB
Raw Blame History

TDD 验证计划 — K8s 管理功能

每个模块实现前先写验证用例,实现后必须跑通,不能只编译通过。

通用验证流程

# 1. 重建后端镜像
cd /srv/aiops && docker-compose up -d --build backend

# 2. 等待 healthy
sleep 10 && docker ps --format '{{.Names}} {{.Status}}' | grep aiops-backend

# 3. 获取 JWT Token
TOKEN=$(curl -s http://127.0.0.1:8080/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"CHANGE_ME"}' | jq -r '.data.token')

# 4. 验证 API
curl -s http://127.0.0.1:8080/api/v1/kubernetes-clusters \
  -H "Authorization: Bearer $TOKEN" | jq '.'

M1: SyncCluster metrics 采集

验证用例

# U1: 同步前 — 确认 DB 里 cpu_usage 为 0
docker exec aiops-mysql mysql -uroot -p"$MYSQL_ROOT_PASSWORD" aiops \
  -e "SELECT name, cpu_usage, memory_usage FROM kubernetes_nodes WHERE cluster_id=1"

# U2: 触发同步
curl -X POST http://127.0.0.1:8080/api/v1/kubernetes-clusters/1/sync \
  -H "Authorization: Bearer $TOKEN"

# U3: 同步后 — 确认 cpu_usage/memory_usage 非零
docker exec aiops-mysql mysql -uroot -p"$MYSQL_ROOT_PASSWORD" aiops \
  -e "SELECT name, cpu_usage, memory_usage FROM kubernetes_nodes WHERE cluster_id=1"
# 期望: cpu_usage > 0 AND memory_usage > 0

# U4: 集群详情页 API — 无硬编码
curl -s http://127.0.0.1:8080/api/v1/kubernetes-clusters/1 \
  -H "Authorization: Bearer $TOKEN" | jq '.data.node_count, .data.pod_count'
# 期望: node_count=2, pod_count>0

# U5: 前端构建无报错
cd /srv/aiops/frontend && npm run build 2>&1 | tail -5
# 期望: vite build 成功

通过标准

  • U1: 同步前 cpu_usage=0
  • U2: 同步 API 200
  • U3: 同步后 cpu_usage>0
  • U4: 集群计数正确
  • U5: 前端构建成功

M2: Pod Metrics

验证用例

# 同步后 Pod 列表含 CPU/内存
curl -s "http://127.0.0.1:8080/api/v1/kubernetes-clusters/1/pods" \
  -H "Authorization: Bearer ***" | jq '.data[0]'
# 期望: 含 cpu_usage_m / mem_usage_mi 字段

通过标准

  • Pod 列表 API 返回 cpu_usage_m / mem_usage_mi 字段
  • 前端 Pod 列表表格显示 CPU/内存列(KubernetesWorkloads + NamespaceResourcePage)
  • 17 个 Pod 全部有真实 metrics 数据

M3: Pod 文件上传

验证用例

# 上传文件
echo "test content" > /tmp/test-upload.txt
curl -X POST "http://127.0.0.1:8080/api/v1/kubernetes/1/namespace/devops/pods/aiops-xxx/files/upload?path=/tmp&container=aiops" \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@/tmp/test-upload.txt"
# 期望: 200 + 文件出现在列表中