Kestra V51 验证记录
- 代码分支:
codex/kestra-v50
- 验证日期:2026-07-19
- 变更范围:Kestra/MCP 本地部署、统一工作流引擎接口、n8n/Kestra
适配器、WorkflowSpec 到 Kestra YAML 的确定性编译
实现结果
- Kestra 固定为
kestra/kestra:v1.3.20,管理端口仅绑定
127.0.0.1:18080,使用独立 kestra PostgreSQL 数据库和独立存储卷。
- 本地 standalone Worker 固定为 16 个线程,不挂载 Docker Socket,不持有平台
业务数据源账号或连接串,并关闭匿名使用报告和教程流程自动初始化。
- Kestra MCP 固定为官方镜像摘要
sha256:1fd62028f60914af31e244ddb0086ed5017420313e2c8547ea9c01b8d24dfc1d。
MCP 只通过 stdio 按需启动,没有发布端口,并关闭 ee、files、kv 和
namespace 工具组。
- 新增统一引擎生命周期:校验、禁用发布、启停、执行、暂停、终止、重放、回填、
执行查询和日志查询。
- n8n 适配器复用现有客户端。n8n 不具备的暂停、终止、重放、回填和独立日志能力
会明确返回“不支持”,不会伪装成功。
- Kestra 适配器映射官方流程、执行、触发器和日志 API。禁用发布会同时要求流程级
disabled: true 和定时触发器 disabled: true。
- 编译器使用 Kestra DAG 表达节点依赖,每个业务节点只调用内部
dataops-runner 契约;编译产物包含 DataFlow UID、数据源 UID、版本和执行
关联信息,但不包含数据库连接串或凭据。
TDD 与定向验证
V51 L1
测试均先确认缺失实现或安全约束导致失败,再实现转绿:
- Kestra/MCP Compose 与隔离契约:4 项。
- 引擎接口与两个适配器:5 项。
- 确定性编译、安全默认值和不等价语义拒绝:6 项。
真实 Kestra 校验首次发现空参数列表被 YAML 渲染为 null,补充空集合渲染后
重新验证通过。
V51 L2/L3
- Docker Compose 展开配置通过,确认镜像版本/摘要、网络、端口、环境变量和
独立数据库符合契约。
- PostgreSQL
kestra 数据库创建成功,Kestra 完成 52 项内部迁移并达到健康状态。
- 日志确认 Kestra 版本为
1.3.20、Worker 为 16 线程、Scheduler 已启动。
- 编译出的真实 YAML 通过 Kestra API 校验。
- 测试流程完成真实禁用发布;API 回读确认流程与 Schedule Trigger 均为禁用,
随后完成测试流程清理。
- 官方 Kestra MCP 容器完成 JSON-RPC initialize 和 tools/list stdio 握手;
Flow、Execution 等调度能力可见,被禁用的文件、KV、命名空间和企业能力未暴露。
- 首次启动时由 Kestra 默认生成的 6 个教程流程已清理;关闭教程初始化后当前
本地实例流程总数为 0。
最终定向回归:
51 passed, 1 skipped, 1 warning
跳过项是需要 TEST_POSTGRES_ADMIN_URL 的通用数据库迁移测试;V51 没有新增
DataOps 数据库迁移,且 V50 已单独完成真实 PostgreSQL 升级、重复升级和降级验证。
警告来自本机 Python/LibreSSL 组合,与 V51 逻辑无关。
未执行的验证
- 未运行全仓库测试、前端构建或全量容器验收;本次只运行 V50/V51 相关定向集合。
- 未执行编译后的业务节点;
dataops-runner 属于 V52,本阶段流程保持禁用。
- 未通过平台 MCP Gateway 做策略、审批和审计验收;该治理层属于 V53。本次只验证
官方 MCP stdio 服务和最小工具面。
已知限制
- V51 编译器支持 Manual 和 Cron。
at、event、条件边以及
cancel_previous 因当前阶段无法保证语义等价而失败关闭,待 V52/V53 按受治理
Runner 和策略模型实现。
- 当前为本地 standalone 拓扑。生产部署需要独立密钥注入、资源限制、高可用
PostgreSQL,以及按容量拆分 Kestra 组件。
- Kestra 启动日志存在 Prometheus meter tag 与 PostgreSQL/jOOQ 支持矩阵警告;
当前健康检查、API、数据库迁移和调度器均正常,后续升级镜像时应复核。
结论
V51 的部署、引擎抽象、编译器、真实 Kestra API 和官方 MCP stdio 验收通过,
当前 允许进入 V52。V52 应实现 DataOps Runner、数据源资源池受控执行、
幂等/超时/取消和任务日志回传,不扩大本阶段 Kestra 对业务数据库的访问权限。