Skip to content

gdzamg/odh-mock-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Data Hub (ODH) Mock Server

这是一个轻量级、独立的 Kubernetes API Mock 服务器,专为 ODH Dashboard (Red Hat OpenShift AI) 的本地前端开发而设计。

它使前端和后端开发人员能够在本地构建、测试和调试交互式仪表板功能,完全不需要连接真实的 OpenShift 集群,也不需要安装繁重的 ODH Operator 组件


✨ 核心特性

  • 完整的 Kubernetes API 模拟:原生地模拟 K8s 的 REST API,正确响应 GETPOSTPUTPATCHDELETE 请求。
  • 内存状态保持:在你的开发会话期间,所有通过前端 UI 创建或修改的资源都会保留在内存中!例如你在界面上新建了一个 Project,它就会在列表中真正显示出来,刷新也不丢失同会话状态。
  • 配置数据热重载 (Hot-Reloading):只需在 data/ 目录中修改 .json 模拟数据文件并保存,系统就能瞬间捕获更新并自动将数据注入缓存,完全无需重启服务器
  • WebSocket Watcher 支持:能够完美模拟 Kubernetes 的 ?watch=true 接口。当你创建或修改资源,前端的列表会实时自动刷新,就像与真实集群通信一样!

🚀 快速上手指南

1. 拉取 ODH Dashboard 项目

首先,确保你已将 ODH Dashboard 也就是前端的主代码库克隆到本地,并安装好依赖包:

git clone https://github.com/opendatahub-io/odh-dashboard.git
cd odh-dashboard
npm install

2. 拉取此 Mock Server 项目

打开一个新的终端标签页,克隆并进入本仓库(Mock Server),安装它仅有的少量依赖:

git clone <this-repo-url> odh-mockserver
cd odh-mockserver
npm install

3. 启动 Mock Server

odh-mockserver 目录下运行:

node server.js

服务器将会启动在 http://127.0.0.1:8888,请不要关闭这个终端窗口。

4. 配置环境变量并启动前端 (关键步骤!)

打开一个崭新的终端标签页

Important

在执行任何 Dashboard 启动命令前,这是极其重要的一步! 你必须告诉 ODH Dashboard,让它不去找你本机的真实的 ~/.kube/config 配置文件,而是指向我们 Mock Server 提供的那个伪造凭证。

KUBECONFIG 环境变量设定为这个仓库里 kubeconfig.yaml 文件的绝对路径

cd /path/to/odh-dashboard

# 注意!一定要改成你电脑上 kubeconfig.yaml 的真实【绝对路径】!
export KUBECONFIG=/${ABSOLUTE_PATH}/odh-mockserver/kubeconfig.yaml

# 启动 dashboard 的本地 Node.js 后端与 React 前端
npm run dev

片刻之后,程序将自动拉起。你可以在 http://localhost:4010 尽情探索和测试已被注入各种打底展示数据的仪表板啦。


🛠 如何修改或添加 Mock 数据?

本项目初始所有的假数据全部保存在 data/ 目录中的各个 JSON 文件里。

  • Mock Server 启动时,会自动递归读取 data/ 下所有 .json 结尾的文件。
  • 你可以直接在 JSON 文件里编写单个 K8s 资源对象,也可以写成数组 [...] 的形式。
  • 热更新魔法:由于我们实现了 fs watch,你每保存一次 .json,那些修改就会立刻以推送形式通知到前端,你能在浏览器里立刻看到效果。

🛑 常见报错与救火指南

日常开发时由于打断点或者异常退出进程,你可能会发现下一次前端根本无法启动,并且终端不断报诸如 ECONNREFUSEDEADDRINUSE 之类的崩溃错误。这通常是因为先前的节点进程成了挂载在端口上的“僵尸进程”。

请使用以下命令干净利落地杀掉任何冗余进程:

1. 杀死 Dashboard 残留的进程(默认后端驻留在 4000 端口,前端占着 4010):

lsof -i :4000 -t | xargs kill -9
lsof -i :4010 -t | xargs kill -9

2. 杀死被后台挂起或卡死的 Mock Server:

pkill -f "node server.js"
# 或者如果你想更针对性一点:
lsof -i :8888 -t | xargs kill -9

清理完毕后,只需回到各自终端,分别重新开启 node server.js 以及 npm run dev (切记:必须确保你所处的那个终端中 KUBECONFIG 已经被正确 export 了!)就可以焕发新生了。

About

rhoai mock server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors