Logan.Li
|
d27a2e6cbe
|
fix(local): sqlite3.db/redka.db 与 aiops 二进制同级存放
- local 模式默认库文件改为 ./sqlite3.db,不再使用 data/ 子目录
- redka 缓存改为 ./redka.db,与可执行文件同目录
|
2026-06-26 16:16:51 +08:00 |
|
Logan.Li
|
e7a479ccf5
|
fix(build): 独立二进制输出到根目录并修复 local 模式 SQLite 路径
- SQLite/redka 数据目录相对可执行文件解析,自动创建 data/ 父目录
- ./run.sh build 产物改为 ./aiops(与 run.sh 同级),数据/日志在 ./data ./logs
- 解决从项目根执行时 data/ 不存在导致的 SQLite CANTOPEN 报错
|
2026-06-26 16:16:02 +08:00 |
|
Logan.Li
|
fd7b04b9d6
|
feat(k8s): 统一 YAML 查看编辑并补齐 Pod/导出能力
- 抽取 YamlCodeMirror/YamlEditorToolbar,修复弹窗滚动与固定高度布局
- 对齐集群导出精简规则(Service/Ingress/Workload/PVC 注解等)
- Deployment/Pod/Service/Ingress 分资源配置:Pod 只读,支持单文件下载
- 修复 Deployment Pod YAML 弹窗未渲染,补全 PodsTab 与详情页 YAML 入口
- 命名空间列表页新增导出 YAML(tar.gz),与集群导出 API 一致
|
2026-06-26 15:25:46 +08:00 |
|
Logan.Li
|
eeba677850
|
refactor(k8s): 统一 YAML 精简视图与工具栏(复制/编辑/保存)
- 精简管道:对象剥离 + cleanYAML 默认值清理,查看/编辑默认精简
- 排除 status/managedFields/uid/ownerReferences 等主流噪音字段
- 移除「清理并编辑」「精简」按钮,改为「编辑」+ 文字链「原始 YAML」
- 保存走 prepareYamlForSave,ResourceVisualEditor YAML 模式同步
|
2026-06-26 15:19:26 +08:00 |
|
Logan.Li
|
d66772481f
|
feat(k8s): 存储挂载 ConfigMap/Secret/PVC 下拉关联命名空间资源
- 从集群拉取同命名空间资源列表,下拉选择而非手填
- 支持刷新列表;无资源时提示并弹窗新建(ResourceVisualEditor)
- 已引用但不在集群中的资源保留为「未在集群中找到」选项
|
2026-06-26 15:16:00 +08:00 |
|
Logan.Li
|
b2939470f4
|
feat(k8s): 事件页补全时间/次数/来源等字段
- 后端解析 source/reportingComponent 与 object_kind/name
- 新增 EventTable 统一展示:最后/首次时间、次数、重复跨度、类型、原因、对象、来源、消息
- Deployment 事件 Tab 与事件中心共用表格组件
|
2026-06-26 15:13:35 +08:00 |
|
Logan.Li
|
ee2588fb52
|
fix(k8s): Deployment 存储挂载类型下拉 + 一卷多容器
- 卷类型改用原生 select,修复 Radix Select 在 overflow 容器内无法展开
- 支持一卷挂载多个容器(如 app-logs 同时挂主容器与 sidecar)
- 类型文案对齐 Kuboard:临时目录(EmptyDir) 等六种
|
2026-06-26 15:08:40 +08:00 |
|
Logan.Li
|
729f25e068
|
fix(k8s): YAML 弹框 Portal 到 body 修复居中偏移
PageTransition 的 transform 会使 fixed 弹框相对页面定位而非视口,
YamlViewer 尺寸较大时容易跑出可视区。统一用 ModalOverlay Portal。
|
2026-06-26 15:04:08 +08:00 |
|
Logan.Li
|
025e74ff4d
|
feat(k8s): Deployment 存储挂载改 Kuboard 一卷一卡布局
每张数据卷同屏展示卷定义与容器挂载(容器/只读读写/路径/subPath)。
|
2026-06-26 15:00:09 +08:00 |
|
Logan.Li
|
a8305de0f5
|
fix(k8s): Deployment 存储挂载六种卷类型 YAML 双向映射
- 抽取 deployment-volume-utils,修正 PVC/NFS/CM/Secret/HostPath/EmptyDir 读写
- 保存时保留系统卷与 serviceAccount 挂载,合并用户卷与挂载点
- 挂载支持 subPath;ConfigMap/Secret items 支持 key:path 简写
|
2026-06-26 14:57:09 +08:00 |
|
Logan.Li
|
5fad2db0c6
|
fix(k8s): 可视化编辑器 YAML 解析失败(managedFields 清理)
- 先解析原始 YAML 再对象级剥离,避免 cleanYAML 破坏结构
- managedFields 从 METADATA_LINE_KEYS 移除,改整块删除含数组项
- YamlViewer 同步使用 parseEditableManifest
|
2026-06-26 14:53:20 +08:00 |
|
Logan.Li
|
21d40b186a
|
fix(k8s): ConfigMap/Secret 列表扁平化字段供前端表格展示
后端原返回 metadata.name 嵌套结构,前端读 name/namespace/key_count 为空。
|
2026-06-26 14:48:46 +08:00 |
|
Logan.Li
|
bdf1f41464
|
fix(frontend): 修复 manualChunks 循环依赖导致生产白屏
仅拆分 codemirror/xterm/icons 独立库,避免 vendor-charts 与 vendor-react 循环引用。
|
2026-06-26 14:03:51 +08:00 |
|
Logan.Li
|
d0cf71b05a
|
feat(k8s): 事件页简化、可视化编辑 P0、Deployment 五 Tab 修复
- 事件中心:去彩虹图表,改专业排名列表 + 主题变量
- 网络/配置/存储:ResourceVisualEditor 双向 YAML 同步、导入 YAML、新建
- vite manualChunks 减小 embed 主包体积
- run.sh:多副本强制 MODE=release + MySQL/Redis
- Deployment 编辑:共享 manifest、统一 saveDeploymentManifest
- 修复存储挂载 initContainers 混入 bug、补 Tolerations UI
- 服务 Tab:applyYAML 创建 + ResourceVisualEditor 编辑
- 基本信息:Pod 模板标签 + Selector 同步
|
2026-06-26 13:52:32 +08:00 |
|
Logan.Li
|
339b24a579
|
优化 K8s 页面布局与 local 模式部署收尾
P0-P1:
- Dockerfile.embed 启用 CGO 支持 SQLite+redka
- K8s scale>1 时警告 local 模式数据不共享
K8s UI:
- 移除侧边栏资源用量/容量分析及资源页横向 Tab 栏
- 修复事件路由(/workloads/events)与 Deployment 事件过滤
- 网络/配置/存储统一 YamlViewer 编辑,加大编辑弹窗
|
2026-06-26 13:36:27 +08:00 |
|
Logan.Li
|
859db427a4
|
fix: redka 启动前自动创建 data/redka 目录
|
2026-06-26 13:32:34 +08:00 |
|
Logan.Li
|
7561b8e25c
|
fix: redka 注册 mattn sqlite3 驱动 (local 模式缓存)
|
2026-06-26 13:30:38 +08:00 |
|
Logan.Li
|
b7166acda4
|
优化 local 模式兼容性与部署可靠性
- SQL 方言层:agent updated_at、dashboard 小时分桶、清理任务跨 SQLite/MySQL
- Cache Capabilities:redka 跳过 ZSet/PubSub,Agent 聚合改 DB 直读
- local 模式 redka 初始化失败 Fatal;/version 返回 features
- SQLite WAL + 连接池限制;K8s data 改 PVC 持久化
- run.sh:旧参数迁移、升级后 /version 校验
|
2026-06-26 13:28:31 +08:00 |
|
Logan.Li
|
1f4f63cf6e
|
feat: mode=local 统一走 SQLite + redka 本地存储
- 二进制 --mode local 或环境变量 MODE=local 自动配置 SQLite + redka
- K8s Deployment 默认 MODE=local,移除外部 MySQL/Redis 依赖
- /version 返回 redis_driver;SQLite 兼容 agent 数据清理 SQL
|
2026-06-26 13:23:30 +08:00 |
|
Logan.Li
|
9649167c83
|
run.sh: 非交互 shell 自动补充 Go PATH
|
2026-06-26 11:09:58 +08:00 |
|
Logan.Li
|
ac69ae75d4
|
优化 run.sh 三种部署方式的升级清理逻辑
- 共用 clean/build 函数,升级前清理 frontend/dist、backend/static 与旧二进制
- binary upgrade/start/stop/status:停服、备份、重编译、后台启动并持久化启动参数
- docker up/upgrade:--force-recreate --remove-orphans,支持 up fresh 无缓存重建
- kubernetes upgrade:--no-cache 构建 + 时间戳镜像 tag,set image 触发滚动更新
|
2026-06-26 11:08:58 +08:00 |
|
Logan.Li
|
921b44d6a4
|
chore: 同步 embed 静态资源(base=/ 修复深链白屏)
二进制 / K8s embed 模式 go:embed 使用 backend/static
|
2026-06-26 11:04:50 +08:00 |
|
Logan.Li
|
992e9b2ecc
|
fix(frontend): 修复 SPA 深链直访白屏(vite base 改为绝对路径)
- base: './' → '/',避免 /audit/terminal 等路径下 assets 404
- 审计页改为独立路由组件,支持 URL 直链
|
2026-06-26 11:02:27 +08:00 |
|
Logan.Li
|
521bfd356f
|
refactor(frontend): P3 — K8s 组件拆分、AlertCenter Query、permission utils
- 拆分 DeploymentView / DeploymentDetail 至子目录(<700 行红线)
- AlertCenter 接入 useAlerts / useAgentAlertRules / useAlertMutations
- 新增 utils/permission.ts,usePermission 复用纯函数
- useAlerts 增强分页统计与 Agent 规则 hooks
|
2026-06-26 10:51:15 +08:00 |
|
Logan.Li
|
480e677042
|
refactor(frontend): P1-P2 续 — API 子模块化、大组件拆分、Query 铺开
- api/server/ 与 api/cloud/ 子目录拆分,保持 @/api 导入不变
- hooks/api 新增 useCredentials、usePromDatasources,增强 useServers
- 拆分 CredentialManager、DeploymentWorkload、PrometheusDatasourceManager
- ServerManager、CredentialManager、PromDs 接入 TanStack Query
|
2026-06-26 00:22:50 +08:00 |
|
Logan.Li
|
f45e203e21
|
refactor(frontend): P1-P2 架构统一 — utils/hooks/api 模块化
P1:
- utils/storage.ts、theme.ts、validate.ts + index 统一出口
- request/store/useTheme 接入 storage;清零 confirm/alert
- PipelineManager、TerminalAuditTab 拆分子模块(<700行红线)
P2:
- api/monitor、api/deploy 子目录化
- hooks/api 扩展:servers/pipelines/alerts/audit/sessionCommands
- PipelineManager、AuditOperationsTab 接入 TanStack Query
|
2026-06-26 00:18:14 +08:00 |
|
Logan.Li
|
d19a03d427
|
refactor(frontend): services/api 迁至 src/api,http 迁至 utils/request
对齐 Vue 后台惯例:
- src/api/ 域 API(原 services/api)
- src/utils/request.ts HTTP 封装(原 services/http.ts)
- src/utils/export.ts 客户端导出工具
- src/utils/index.ts 工具统一出口
全局导入改为 @/api 与 @/utils/request,tsc + build 通过。
|
2026-06-26 00:09:07 +08:00 |
|
Logan.Li
|
9bf35b369c
|
chore: 同步最新前端构建产物到 backend/static
|
2026-06-26 00:02:36 +08:00 |
|
Logan.Li
|
0b404b4611
|
refactor(frontend): API 子模块化、大组件拆分与 TanStack Query hooks
P1: kubernetes/system API 拆为子目录模块,导出工具下沉到 lib/export-utils,
http 统一 buildApiUrl/getWsBase;HostMonitor、DeploymentEdit* 拆至子组件。
P2: 新增 hooks/api(queryKeys、useTerminalSessions、useHostMonitor),
TerminalSessionsTab 与 HostMonitor 接入 TanStack Query。
P3: 保留 services/api 路径,未迁移至 api/ 目录。
|
2026-06-26 00:02:29 +08:00 |
|
Logan.Li
|
7fb2236b4d
|
refactor(frontend): P0 API 层收口与 http 统一
- 统一 http.ts baseURL:get/post/download/upload 均走 resolveApiUrl
- agentUtils 下沉至 lib/agent-utils,API 层移除对 components 的依赖
- 扩展 metricsApi/snmpApi/prometheusProxyApi/zabbixProxyApi
- 扩展 pipelineApi/credentialApi 覆盖流水线与凭证场景
- 14 个组件/页面禁止直连 http,统一走 @/services/api
|
2026-06-25 23:49:46 +08:00 |
|
Logan.Li
|
bfd6431b9d
|
fix(frontend): 终端弹框适配与审计实时监控布局优化
- 修复 LiveMonitorDialog 连接中卡死:WebSocket 先连、延后挂载 xterm
- 审计实时监控弹框对齐 WebSSH 布局:92vw 宽、520px 高、支持全屏
- 修复服务器终端弹框右侧黑边:fit 后同步 PTY resize,延迟二次 fit
- 抽取 xterm-utils 公共适配逻辑,统一 ResizeObserver 处理
|
2026-06-25 23:31:44 +08:00 |
|
Logan
|
4631b02f13
|
feat: 三种部署方式 — embed单容器 + 二进制部署 + K8s
新增三种部署方式(原有 docker-compose 不受影响):
1. Docker embed 单容器 (docker-compose.embed.yml):
- go:embed 前端嵌入后端二进制
- 不需要 nginx 容器,3容器→2容器
- 镜像仅 54.8MB (vs 原来 1.16GB)
- 用法: make docker-embed
2. 二进制部署 (deploy/binary/):
- make build-binary 生成单二进制
- install.sh 自动创建 systemd 服务
- 适合无 Docker 环境
- 用法: scp aiops + install.sh, bash install.sh install
3. Kubernetes 部署 (deploy/k8s/):
- devops 命名空间全套 yaml
- MySQL StatefulSet + Redis StatefulSet + Backend Deployment
- ConfigMap + Secret + Ingress
- 用法: kubectl apply -f deploy/k8s/
核心改动:
- backend/cmd/embed.go: go:embed 前端 + SPA fallback 路由
- backend/Dockerfile.embed: 四阶段构建 (前端→后端embed→agent→runtime)
- Makefile: build-binary + docker-embed 目标
- deploy/README.md: 四种部署方式对比文档
|
2026-06-21 14:20:29 +08:00 |
|
Logan
|
2d02d63806
|
feat: 定时任务关联脚本库 + 脚本库精简为shell/python
定时任务:
- 执行类型改为 Shell脚本/Python脚本/自定义命令 三选一
- Shell/Python 类型下拉关联脚本库, 选择后预览脚本内容
- 卡片显示关联脚本名 (Preload Script 已就绪)
- 去掉 playbook 类型
脚本库:
- 去掉 powershell/yaml, 只保留 shell + python
- 后端 validation 同步 oneof=shell python
涉及文件:
- script-helpers.tsx: scriptTypes 去掉 powershell/yaml
- CronJobFormDialog.tsx: 完整重写, 脚本库下拉+预览
- CronJobManager.tsx: type 标签对齐, 脚本名展示
- automation.go: CronJob type oneof 改 shell/python/command
Script type oneof 改 shell/python
|
2026-06-19 21:46:56 +08:00 |
|
Logan
|
abf2917fad
|
fix: K8s集群编辑保存失败+凭据覆盖+去掉Kubectl死按钮
问题:
1. UpdateCluster 用 CreateK8sClusterRequest (code binding:"required"),
编辑时不传 code → 校验失败 400 → 保存不成功
2. Token/KubeConfig json:"-" 不序列化, 编辑时拿不到原值,
提交空字符串覆盖真实凭据
3. 操作菜单 Kubectl 是死按钮
修复:
- UpdateCluster 改用 map[string]interface{} 接收, 逐字段更新,
空值不覆盖 (防止凭据清空)
- 新增 GET /:id/detail 返回 has_token/has_kube_config 脱敏标记
- 编辑弹框拉取详情 API 回填, Token/KubeConfig 留空显示 '已配置' 提示
- 去掉 Kubectl 死按钮, 保留 详情/配置/删除 三项
|
2026-06-19 15:08:50 +08:00 |
|
Logan
|
2f4c0df0f2
|
fix: resolve merge conflict in ServerTableRow imports
|
2026-06-18 11:47:30 +08:00 |
|
Logan
|
d0b94d39c0
|
fix: agent install.sh 404 + 三阶段构建编译agent二进制
问题: 构建上下文 ./backend 无法访问 ../agent, 导致容器内
/app/agent/deploy/install.sh 不存在, 返回 404
修复:
- Dockerfile 改为三阶段构建 (backend go1.21 + agent go1.24 交叉编译 + alpine runtime)
- docker-compose backend build context 改为项目根
- routes.go /agent/arch 安装命令改为动态获取 URL
- 新增 .dockerignore
- agent_install.go: SSH 远程安装 handler
- AgentWizard.tsx: 复制按钮 fallback + 动态 server URL
- ServerTableRow.tsx: agent 状态判断
验证: curl|bash 安装成功, agent 上报数据到 MySQL ✅
|
2026-06-18 09:44:12 +08:00 |
|
Logan
|
d0344c2f52
|
feat: Docker部署 + 云主机导入 + 终端优化
Docker 部署:
- 新增根目录 docker-compose.yml(MySQL+Redis+前后端四容器)
- 新增 frontend/Dockerfile(多阶段构建)和 nginx.conf(SPA+API反代)
- 修复 backend/Dockerfile:GOPROXY国内加速、编译整个cmd包
云主机导入功能:
- 新增 backend/internal/cloud 包:Provider接口 + 阿里云API客户端
- 新增 cloud_sync.go:区域同步/主机发现/导入 API
- 重写 CloudServerImport.tsx:4步流程(选云→选账号→选区域→发现导入)
- 修复导入外键约束失败(region_id/cloud_id 设为 NULL)
终端优化:
- 修复双X关闭按钮重影(showCloseButton=false)
- 修复最大化→最小化不恢复(ResizeObserver + 禁用CSS过渡)
其他:
- GORM AutoMigrate 逐表迁移,避免索引冲突阻塞启动
- Makefile 更新为 AIOps + 新增 docker 命令组
- .env.example 移至 backend 目录
|
2026-06-18 09:22:13 +08:00 |
|