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:
attacker committed 2026-06-24 23:46:52 +08:00
1 parent c7b61968bc
commit 8240a88a84
33 files changed
+2029 -71

No files matched your search

@@ -202,9 +202,14 @@ export default function ClusterOverviewPage() {
{/* Namespace list */}
<div>
<h2 className="text-lg font-semibold text-slate-100 mb-3 flex items-center gap-2">
<Boxes className="h-4 w-4 text-emerald-400" />命名空间
</h2>
<div className="flex items-center justify-between mb-3">
<h2 className="text-lg font-semibold text-slate-100 flex items-center gap-2">
<Boxes className="h-4 w-4 text-emerald-400" />命名空间
</h2>
<Link to={`/kubernetes/${clusterCode}/namespaces`} className="text-sm text-blue-400 hover:text-blue-300 transition-colors flex items-center gap-1">
管理全部 <ChevronRight className="h-3 w-3" />
</Link>
</div>
<div className="grid grid-cols-2 md:grid-cols-4 gap-3">
{namespaces.map((ns) => {
const Icon = NAMESPACE_ICON[ns] || Container;