feat(k8s): M14 Namespace 管理看板(资源配额 + 命名空间 CRUD)
- 后端: ListNamespacesDetailed/CreateNamespace/DeleteNamespace/ListResourceQuotas/ListLimitRanges - 后端: GetNamespacesDetail handler (6 API calls aggregate, not N×3) - 后端: CreateNamespaceHandler + DeleteNamespaceHandler (system NS protection) - 前端: NamespaceManagementPage.tsx (~280行) — 表格+概览卡片+创建/删除弹框 - 路由: GET/POST/DELETE /:clusterCode/namespaces + GET /namespace/:ns/detail - 验证: 9/9 通过 (urllib), TS 零错误, Vite 构建成功
This commit is contained in:
1 parent
c7b61968bc
commit
8240a88a84
33 files changed
+2029
-71
No files matched your search
+45
@@ -329,3 +329,48 @@ pending → in_progress → done / blocked
|
||||
1. 更新本文件状态
|
||||
2. 更新 PROJECT_EVALUATION.md 对应行
|
||||
3. git commit message 格式: `feat(k8s): M1 SyncCluster metrics 采集`
|
||||
|
||||
---
|
||||
|
||||
### M14: Namespace 管理看板(资源配额 + 命名空间 CRUD)[done]
|
||||
**目标**: 从仅返回命名空间名列表升级为完整的命名空间管理看板——含资源统计、配额状态、创建/删除操作
|
||||
|
||||
**后端改动**:
|
||||
- `pkg/kubernetesclient/client.go`:
|
||||
- `ListNamespacesDetailed()` — 返回完整 metadata(status/age/labels/annotations)
|
||||
- `GetNamespace(name)` — 单个命名空间详情
|
||||
- `CreateNamespace(name, labels)` — 创建命名空间
|
||||
- `DeleteNamespace(name)` — 删除命名空间
|
||||
- `ListResourceQuotas(namespace)` — 支持空 namespace 全集群模式
|
||||
- `ListLimitRanges(namespace)` — 支持空 namespace 全集群模式
|
||||
- `handlers/kubernetes.go`:
|
||||
- `GetNamespacesDetail` — 全量命名空间 + 资源计数 + 配额状态(6 次 API 调用聚合,非 N×3)
|
||||
- `GetNamespaceDetailHandler` — 单命名空间详情
|
||||
- `CreateNamespaceHandler` — 创建(系统命名空间保护)
|
||||
- `DeleteNamespaceHandler` — 删除(kube-system/default/devops 保护)
|
||||
- `routes.go`:
|
||||
- `GET /:clusterCode/namespaces/detail` — 全量命名空间详情
|
||||
- `GET /:clusterCode/namespace/:namespace/detail` — 单命名空间详情
|
||||
- `POST /:clusterCode/namespaces` — 创建命名空间
|
||||
- `DELETE /:clusterCode/namespaces/:namespace` — 删除命名空间
|
||||
|
||||
**前端改动**:
|
||||
- 新增 `NamespaceManagementPage.tsx` (~280行):
|
||||
- 概览卡片:命名空间总数 / Deployments / Pods / Services / 配额限制数
|
||||
- 命名空间表格:名称(可点击跳转)/ 状态 Badge / 年龄 / Dep/Pod/Svc 计数 / 配额状态 / 标签 / 操作(删除)
|
||||
- 创建命名空间弹框(名称 + DNS-1123 提示)
|
||||
- 删除确认弹框(红色警告 + 二次确认)
|
||||
- 系统命名空间保护(kube-system/default/devops 不可删除)
|
||||
- 搜索过滤
|
||||
- `api.ts`: 新增 4 个方法(getNamespacesDetail/getNamespaceDetail/createNamespace/deleteNamespace)
|
||||
- `App.tsx`: 新增路由 `kubernetes/:clusterCode/namespaces`
|
||||
- `ClusterOverviewPage.tsx`: 命名空间区域新增「管理全部」链接
|
||||
|
||||
**验收标准**:
|
||||
- [x] `GET /:clusterCode/namespaces/detail` 返回 9 个命名空间(含 status/age/labels/resource_counts)
|
||||
- [x] 每个命名空间包含 7 个字段(name/status/age/labels/resource_counts/has_resource_quota/has_limit_range)
|
||||
- [x] 创建命名空间 API 返回 200 + 创建后列表中出现
|
||||
- [x] 删除命名空间 API 返回 200 + 删除后列表中消失
|
||||
- [x] 系统命名空间删除被拦截(403)
|
||||
- [x] SPA 路由 `/kubernetes/:code/namespaces` 返回 200
|
||||
- [x] TypeScript 零编译错误 + Vite 构建成功
|
||||
Reference in new issue
Block a user