jackson-chen97/dsh-devops: GitLab 与 Kubernetes DevOps 控制台

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 上可能存在依赖缺失问题,本地检出是最可靠的安装路径。

  1. 克隆仓库
    在本地创建工具目录并克隆代码:
    mkdir -p ~/dev/tools
    cd ~/dev/tools
    git clone https://github.com/Jackson-chen97/dsh-devops
    cd dsh-devops
  1. 注册插件
    使用 DSH 插件命令将本地路径注册到 web 配置文件中:
    dsh plugin --profile web add "~/dev/tools/dsh-devops"
  1. 重启 DSH
    插件包含自身的 cordis.patch.yml,安装后会自动应用。重启 DSH 后,Web UI 通常会自动在 http://127.0.0.1:3080/ 打开。

  2. 配置
    打开 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 许可证。

GitHub 仓库

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜