DeepSeek Harness (DSH) 采用插件化架构。在开发需要频繁与 CI/CD 流水线或 Kubernetes 集群交互的 AI 智能体时,手动查看日志或操作仪表盘往往效率低下。DSH DevOps 插件为此提供了一个可视化的 Web 控制台和一组自动注册的 AI 工具,将 GitLab 和 Kubernetes 的管理能力直接集成到 DSH 的工作流中。
这是 Jackson-chen97 维护的联网工具类插件,旨在解决开发者在 DSH 环境下进行 DevOps 操作的痛点。
核心功能¶
插件提供了一套完整的 DevOps 管理能力,覆盖 GitLab 和 Kubernetes 两个主要场景:
- GitLab 集成:通过 API 创建、审查和关闭 Merge Request (MR),管理标签,并监控 CI/CD 流水线及作业详情和构建日志。
- Kubernetes 集成:查看部署状态、Pod 列表与重启次数、K8s 事件,获取 Pod 日志,以及执行镜像变更和回滚重启操作。
- Web 控制台:提供双卡片切换器(GitLab 项目 / K8s 上下文),支持多级标签页(MRs/Tags/Pipelines/Deployments/Events)和全局搜索下拉框,操作通过模态框驱动。
- 多配置支持:支持配置多个 GitLab 服务器和多个 kubeconfig 文件,可在仪表板和设置界面中直接切换。
- Webhook 与告警:支持接收 GitLab webhook 并触发通知;后台轮询机制用于检测流水线失败和 Pod 异常。
- 国际化与自签名:内置中英文字典,随 DSH 系统语言切换;支持通过 kubeconfig 对自签名集群进行请求级 CA 绑定。
安装与启用¶
推荐使用本地检出方式。由于 dsh-type-meta 在 npm 上可能存在依赖缺失问题,本地检出是最可靠的安装路径。
- 克隆仓库
在本地创建工具目录并克隆代码:
mkdir -p ~/dev/tools
cd ~/dev/tools
git clone https://github.com/Jackson-chen97/dsh-devops
cd dsh-devops
- 注册插件
使用 DSH 插件命令将本地路径注册到 web 配置文件中:
dsh plugin --profile web add "~/dev/tools/dsh-devops"
-
重启 DSH
插件包含自身的cordis.patch.yml,安装后会自动应用。重启 DSH 后,Web UI 通常会自动在http://127.0.0.1:3080/打开。 -
配置
打开 DSH 设置中的 “DevOps” 选项卡,点击 “Add server” 添加 GitLab 信息(URL + Token),点击 “Add config file” 添加 kubeconfig 路径。配置默认保存在~/.dsh-devops/config。
典型用法¶
配置完成后,可以通过 Web 控制台进行操作,也可以直接通过对话调用 AI 工具。
1. 查看 Pipeline 状态
在对话中直接询问:”查看最新流水线状态” 或 “列出指定流水线 #42 的作业详情”。
2. 监控流水线
输入:”监控 main 分支流水线并在完成时告知结果”。插件会启动后台轮询,并在状态变更后反馈给 AI。
3. 创建与审查 MR
输入:”创建 MR fix/login 到 main 分支,标题为 ‘Fix login’,审查者为 zhangsan”。AI 会自动调用 gitlab_mr_create 工具并触发流水线监控。
审查操作则可直接使用:”批准 !128” 或 “对 !128 提出变更请求”。
4. K8s 操作
查看部署:”列出当前命名空间的 Pod”。
查看日志:”获取 Pod my-pod 的最近 100 行日志”。
插件中的 AI 工具(如 devops_config, k8s_deployment_status, gitlab_mr_review 等)在插件加载时会自动注册,无需额外的 YAML 配置文件即可使用。
注意事项¶
- 本地检出依赖:务必使用本地检出方式安装,以避免
dsh-type-meta依赖缺失导致的运行时错误。 - 配置位置:Settings UI 保存的配置位于
~/.dsh-devops/config,AI 调用工具时会读取该配置。 - 权限范围:插件以当前 DSH 进程的权限运行,请确保 DSH 进程拥有足够的权限访问目标 GitLab 服务器和 Kubernetes 集群。
- 许可证:本项目使用 MIT 许可证。