Files
aiops/ROADMAP.md
T
attacker 8637036995 feat(k8s): M4 ConfigMap/Secret 在线编辑
- YamlViewer 增加 autoEdit prop,打开即进入编辑模式
- NamespaceResourcePage ConfigMap/Secret 行增加编辑按钮(铅笔图标)
- 统一 cleanBeforeEdit=true,编辑前自动清理 status/managedFields/uid
- 端到端验证: GET YAML → PUT 更新 → curl 确认 K8s label 生效
- 更新 ROADMAP/PROJECT_EVALUATION
2026-06-23 02:33:31 +08:00

3.7 KiB
Raw Blame History

K8s 管理功能演进路线图

每个模块 = 1 个 cron 周期(6h)可完成的中等粒度功能。完成后更新状态。

当前冲刺:P0 — Metrics 数据贯通

M1: SyncCluster 增加 metrics 采集 [done]

目标: 同步时采集 node/pod metrics,写入 DB 的 cpu_usage/memory_usage 字段

后端改动:

  • SyncCluster handler 中,client.ListNodes() 之后调 client.GetNodeMetrics()
  • 将 CPU(nanocores→m) / Memory(Ki→Mi) 换算后写入 kubernetes_nodes.cpu_usage / memory_usage(百分比)
  • 同理调 client.GetPodMetrics() 写入 Pod 的资源使用

前端改动:

  • KubernetesClusterDetail.tsx: 删除 resourceData 硬编码,改为从 API 获取真实数据(或展示当前 metrics 快照)
  • 资源分布卡片读取 cluster 实际计数(node_count/pod_count 已有)

验收标准:

  • SyncCluster 后 DB kubernetes_nodes 表 cpu_usage/memory_usage 非零
  • 节点列表页 CPU/内存百分比非零
  • 集群详情页无硬编码 mock 数据
  • curl /kubernetes-clusters/:id 返回的 node_count/pod_count 正确

M2: Pod Metrics 详情页接入 [done]

目标: Deployment 详情页和 Pod 列表展示真实 CPU/内存使用

改动:

  • 后端 ListPods handler 注入 GetPodMetrics()(类似 ListNodes 已有逻辑)
  • 前端 Pod 列表表格增加 CPU/内存列
  • DeploymentView 容器详情区域读取 metrics

验收标准:

  • Pod 列表有 CPU/内存使用量列
  • Deployment 详情页容器 CPU/内存非 mock

M3: Pod 文件上传 [done]

目标: PodFileBrowser 增加上传能力

改动:

  • 后端新增 POST .../pods/:pod/files/upload — multipart 表单接收,base64 分块 exec 写入
  • 前端 PodFileBrowser 增加上传按钮 + FormData 上传
  • 重大修复: ExecInPod 从 raw HTTP SPDY(不工作)改为 WebSocket channel.k8s.io 协议(和 ExecTerminal 一致)
  • 修复: BusyBox ls 不支持 --time-style,解析器改为兼容 BusyBox 默认日期格式

验收标准:

  • 可上传文件到 Pod 容器内
  • 上传后文件列表刷新可见
  • verify 字段返回正确文件大小

M4: ConfigMap/Secret 编辑 [done]

目标: 目前只读,增加在线编辑能力

改动:

  • 后端 UpdateResourceYAMLNS 端点已支持 configmaps/secrets(无需改动)
  • 前端 YamlViewer 增加 autoEdit prop — 打开即进入编辑模式
  • NamespaceResourcePage ConfigMap/Secret 行增加显式编辑按钮(铅笔图标)
  • 统一 cleanBeforeEdit=true — 编辑前自动清理 status/managedFields/uid 等只读字段
  • k8s-yaml-utils.ts 的 cleanYAML() 提供行级清理

验收标准:

  • 可在线编辑 ConfigMap 并保存
  • 保存后 K8s 中实际生效(curl 验证 label 增删 → GET 确认)

M5: Deployment 暂停更新 + CI/CD 集成 [pending]

目标: 接通顶部菜单的暂停更新和 CI/CD 按钮

改动:

  • 后端 POST .../deployments/:name/pause 和 /resume
  • CI/CD 按钮跳转到已有 Pipeline 页面(传递 namespace+deployment 上下文)

验收标准:

  • 可暂停/恢复 Deployment 滚动更新
  • CI/CD 按钮可跳转到流水线页面

后续规划(P2+)

模块 描述
M6 Node 详情页(PID/容器运行时/分配率)
M7 Service/Ingress 在线编辑
M8 StatefulSet/DaemonSet 详情页(对标 Deployment)
M9 事件聚合 + 告警联动
M10 多集群资源对比看板

状态标记规则

pending → in_progress → done / blocked

每个模块完成后:

  1. 更新本文件状态
  2. 更新 PROJECT_EVALUATION.md 对应行
  3. git commit message 格式: feat(k8s): M1 SyncCluster metrics 采集