feat: PTY kubectl终端 + 侧边栏对齐修复 + 构建缓存清理

**kubectl WebShell 修复:**
- 引入 github.com/creack/pty 库实现真正的伪终端
- 替换 bash --noediting + TERM=dumb 方案为 PTY-backed bash
- 支持 xterm-256color、窗口自适应、readline 交互
- 修复键盘输入无响应问题

**侧边栏优化:**
- 独立菜单项高度从 py-1.5 改为 h-8,与父菜单对齐
- 独立菜单图标从 h-3 w-3 改为 h-3.5 w-3.5,统一 14px

**构建优化:**
- run.sh docker up 增加 docker image prune -f 清理悬空镜像
- 每次部署自动清理 builder cache + dangling images

**认证修复(历史):**
- Token 存储:Zustand + localStorage 双写,http.ts 双源 fallback
- YamlViewer/DeploymentDetail token 来源统一为 Zustand store
This commit is contained in:
attacker committed 2026-06-19 11:22:45 +00:00
1 parent cac1414917
commit a3cd0d3910
29 files changed
+2954 -180

No files matched your search

+67 -3
View File
@@ -13,9 +13,16 @@ import { RegionManager } from '@/components/cloud/RegionManager';
import { PlatformManager } from '@/components/cloud/PlatformManager';
import { CloudBilling } from '@/components/cloud/CloudBilling';
import { KubernetesClusters } from '@/components/kubernetes/KubernetesClusters';
import ClusterOverviewPage from '@/components/kubernetes/ClusterOverviewPage';
import NamespaceOverviewPage from '@/components/kubernetes/NamespaceOverviewPage';
import NamespaceResourcePage from '@/components/kubernetes/NamespaceResourcePage';
import DeploymentDetailPage from '@/components/kubernetes/DeploymentDetailPage';
import { TopologyView } from '@/components/kubernetes/TopologyView';
import { KubernetesNodes } from '@/components/kubernetes/KubernetesNodes';
import { KubernetesWorkloads } from '@/components/kubernetes/KubernetesWorkloads';
import { TopologyView } from '@/components/kubernetes/TopologyView';
import PodMetricsPage from '@/components/kubernetes/PodMetricsPage';
import EventsPage from '@/components/kubernetes/EventsPage';
import CapacityPage from '@/components/kubernetes/CapacityPage';
import { AlertManager } from '@/components/monitor/AlertManager';
import { AppReleaseManager } from '@/components/deploy/AppRelease';
import { ApprovalFlowManager } from '@/components/approval/ApprovalFlow';
@@ -63,11 +70,68 @@ function App() {
<Route path="regions" element={<RegionManager />} />
<Route path="platforms" element={<PlatformManager />} />
<Route path="cloud-billing" element={<CloudBilling />} />
{/* ================================================================ */}
{/* Kubernetes — Kuboard-style routes */}
{/* ================================================================ */}
{/* 集群列表 */}
<Route path="kubernetes">
<Route index element={<KubernetesClusters />} />
{/* 集群概览 (节点 + 命名空间列表) */}
<Route path=":clusterCode">
<Route index element={<ClusterOverviewPage />} />
{/* 🆕 资源用量 / 事件 / 容量分析 */}
<Route path="metrics/pods" element={<PodMetricsPage />} />
<Route path="events" element={<EventsPage />} />
<Route path="capacity" element={<CapacityPage />} />
{/* 架构拓扑 */}
<Route path="topology" element={<TopologyView />} />
{/* 命名空间作用域 */}
<Route path="namespace/:namespace">
{/* 命名空间概览 */}
<Route index element={<NamespaceOverviewPage />} />
{/* 各类资源列表 */}
<Route path="deployments">
<Route index element={<NamespaceResourcePage />} />
<Route path=":name" element={<DeploymentDetailPage />} />
</Route>
<Route path="pods" element={<NamespaceResourcePage />} />
<Route path="services" element={<NamespaceResourcePage />} />
<Route path="ingresses" element={<NamespaceResourcePage />} />
<Route path="configmaps" element={<NamespaceResourcePage />} />
<Route path="secrets" element={<NamespaceResourcePage />} />
<Route path="hpas" element={<NamespaceResourcePage />} />
<Route path="cronjobs" element={<NamespaceResourcePage />} />
<Route path="pvcs" element={<NamespaceResourcePage />} />
<Route path="statefulsets" element={<NamespaceResourcePage />} />
<Route path="daemonsets" element={<NamespaceResourcePage />} />
</Route>
</Route>
</Route>
{/* Kubernetes 资源快捷入口 (自动跳转至首个集群) */}
<Route path="workloads">
<Route path="deployments" element={<NamespaceResourcePage />} />
<Route path="statefulsets" element={<NamespaceResourcePage />} />
<Route path="daemonsets" element={<NamespaceResourcePage />} />
<Route path="pods" element={<NamespaceResourcePage />} />
<Route path="cronjobs" element={<NamespaceResourcePage />} />
<Route path="services" element={<NamespaceResourcePage />} />
<Route path="ingresses" element={<NamespaceResourcePage />} />
<Route path="configmaps" element={<NamespaceResourcePage />} />
<Route path="secrets" element={<NamespaceResourcePage />} />
<Route path="pvcs" element={<NamespaceResourcePage />} />
<Route path="hpas" element={<NamespaceResourcePage />} />
<Route path="metrics" element={<PodMetricsPage />} />
<Route path="events" element={<EventsPage />} />
<Route path="capacity" element={<CapacityPage />} />
<Route index element={<NamespaceResourcePage />} />
</Route>
{/* 资源监控(Agent 指标 + 中间件 + SNMP + 拨测) */}
<Route path="monitor-center" element={<MonitorCenter />} />
<Route path="clusters" element={<KubernetesClusters />} />
{/* 旧路由兼容:节点管理、拓扑 */}
<Route path="nodes" element={<KubernetesNodes />} />
<Route path="workloads" element={<KubernetesWorkloads />} />
<Route path="topology" element={<TopologyView />} />
{/* 应用发布 */}
<Route path="pipelines" element={<PipelineManager />} />