feat(k8s): 实时日志流 + WebSocket exec 交互终端 + 前端流式日志查看器
后端: - GetPodLogsStream: 新增 K8s follow=true 流式日志读取 - GetPodLogs handler: 支持 stream=true → chunked transfer 实时推流 - ExecTerminal: WebSocket → K8s SPDY exec 双向代理 (交互式 bash) - 路由: GET /ws/k8s-exec/:id/namespaces/:ns/pods/:pod (WebSocket) 前端 DeploymentDetail: - 新增「实时流」按钮: fetch ReadableStream + TextDecoder 逐块渲染 - 日志内容自动滚动追加 CD/CI 镜像更新: - POST /update-image 已可用 (前端表单+后端 API 均完成)
This commit is contained in:
1 parent
1a913549fc
commit
77045622fc
4 files changed
+201
-5
No files matched your search
@@ -64,6 +64,10 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
metricsWSHandler := handlers.NewMetricsWSHandler(metricsHub)
|
||||
r.GET("/ws/metrics", middleware.JWTAuth(&cfg.JWT), metricsWSHandler.ServeWS)
|
||||
|
||||
// WebSocket K8s exec 交互终端 // Logan.Li
|
||||
k8sHandler := handlers.NewK8sHandler(db)
|
||||
r.GET("/ws/k8s-exec/:id/namespaces/:namespace/pods/:podName", middleware.JWTAuth(&cfg.JWT), k8sHandler.ExecTerminal)
|
||||
|
||||
// 公开路由
|
||||
authHandler := handlers.NewUserHandler(db, cfg)
|
||||
api.POST("/auth/login", authHandler.Login)
|
||||
@@ -231,7 +235,6 @@ func Register(r *gin.Engine, db *gorm.DB, log *zap.Logger, cfg *config.Config, c
|
||||
}
|
||||
|
||||
// K8s集群路由
|
||||
k8sHandler := handlers.NewK8sHandler(db)
|
||||
clusters := authorized.Group("/k8s-clusters")
|
||||
{
|
||||
clusters.GET("", k8sHandler.ListClusters)
|
||||
|
||||
Reference in new issue
Block a user