tuneplane-server preflight。
它检查已安装的服务端及其启动环境,不启动应用、不执行迁移、不创建应用数据或探测文件、不拉取镜像,
也不修改数据库记录或 Redis 键。
该命令随 tuneplane-server 提供。使用已安装的服务端环境或控制台镜像即可,
不需要源码检出、Node.js 或额外的诊断工具。
在服务端环境中运行
使用与服务端进程相同的环境变量、.env、工作目录、存储挂载、用户和用户组。
在宿主机上以 root 运行,可能得到与容器内控制台服务用户不同的结果。
对于已安装的服务端环境:
app 容器内调用已安装的可执行文件:
--connect 时,PostgreSQL 和已配置的 Redis 服务必须已经可达。
随产品提供的镜像使用 uvicorn 作为默认命令,没有会先于预检启动应用的 entrypoint。
在其他容器平台上调整命令时,请保留部署的环境、挂载和服务用户。
选择检查范围
超时分别作用于各项网络探测,不是整个命令的运行期限,
也无法限制因 NFS 挂载无响应而阻塞的文件系统调用。
PostgreSQL 和 Redis 分别探测,两者的累计等待时间可能接近所配置超时的两倍。
预检只检查环境变量和 dotenv 启动配置,不加载保存在数据库中的设置,也不检查已登记的
Fleet 配置。将报告与控制台运行时的实际设置对照时,请参考配置。
报告检查哪些内容
禁用认证或未配置持久化 JWT 密钥会导致预检失败。缺少凭据加密配置会产生警告;
如果启用了 Hugging Face 集成,则会检查失败。确认运行器存在不等于验证其完整性,
也不能证明它可以成功执行。
本地存储检查不能证明应用能够成功写入。它不测试远程存储、保存在数据库中的凭据、
远程文件系统执行的配额限制,也不验证恢复操作。
对于 PostgreSQL,未检测到 TunePlane 核心表(
users 或 jobs)及数据库结构版本时,
会产生警告;预检不会初始化数据库。这不代表数据库中没有其他表。
能识别的旧数据库结构版本会产生待迁移警告。
未知版本、已有 TunePlane 核心表但没有结构版本,或已有结构版本但缺少这些核心表,
都会检查失败。预检不会对这些情况执行迁移。
迁移版本检查不验证列、索引或数据完整性;报告会将数据库结构标记为 not_checked。
迁移版本检查成功也不能证明升级或回滚安全;请遵循变更流程,并验证备份与恢复。
理解结果
JSON 报告包含schema_version: 1、scope: "bootstrap"、顶层 status 和 checks 数组。
每项检查包含 id、status、message 和 remediation。
检查状态为 pass、fail、warning 或 not_checked。
自动化应读取状态字段,不要匹配英文消息文本。
总体状态按表中顺序决定:有失败项时为
blocked;否则,只要有 not_checked 项,
就为 incomplete,即使同时存在警告。本版本始终包含运行时设置、存储验收和工作负载这些
未检查项,因此没有失败项的报告会显示 incomplete,并以退出码 0 结束。
退出码 0 不代表可以上线。 请逐项检查结果,并将报告保存在部署记录中。
报告不包含原始异常、URL、主机名、文件系统路径或密钥值;修复提示会指出需要检查的设置或运维操作。
单独完成部署验收
报告会将这些范围标记为not_checked:已登记 Fleet 的健康状况、Worker 到 ingest 的连通性、
对象存储、实际存储写入与恢复、GPU 执行,以及离线环境准备情况。
这些检查需要在目标基础设施上运行工作负载或进行运维演练。
解决启动配置问题后,使用有代表性的作业验证目标 Fleet 和数据路径。
冒烟测试介绍基于源码的 CPU 执行测试工具,它是独立的端到端检查。
请在目标硬件上验证 GPU 执行,演练从备份恢复;无法访问外网时,遵循离线部署流程。