TensorZero Helm Chart 发布指南:从 CI 自动发布到 ArtifactHub 与 values 模式校验
TensorZero Helm Chart 发布指南从 CI 自动发布到 ArtifactHub 与 values 模式校验【免费下载链接】tensorzeroTensorZero is an open-source LLMOps platform that unifies an LLM gateway, observability, evaluation, optimization, and experimentation.项目地址: https://gitcode.com/GitHub_Trending/te/tensorzeroTensorZero 在 examples/production-deployment-k8s-helm 目录中维护着一个可发布到 ArtifactHub 的 Helm Chart用于在 Kubernetes 上部署 TensorZero Gateway、TensorZero UI 与 ClickHouse 等组件。本文围绕该目录下的发布文档完整讲解 Chart 的版本管理、手动发布流程、Cloudflare R2 制品托管方式以及values.schema.json的自动生成与校验机制读者可按步骤完成一次从版本号提升到 ArtifactHub 上架的全流程操作。发布机制总览TensorZero 的 Helm Chart 发布分为两条路径CI 自动发布每当仓库创建新的 GitHub Release 时CI 流水线会自动提升 Chart 版本号并将其发布到 ArtifactHub 的tensorzero包页面。制品实际托管在 Cloudflare R2 存储桶tensorzero-helm-charts上通过https://helm.tensorzero.com对外提供 Helm 仓库索引。手动发布由维护者在本机执行helm相关命令完成打包、上传与索引更新的全过程适合在 CI 不可用或需要手工干预的场景下使用。Chart 本身位于 examples/production-deployment-k8s-helm/Chart.yaml其apiVersion: v2Helm 3 标准格式name: tensorzerotype: application。值得注意的是其中的版本字段apiVersion: v2 name: tensorzero description: A Helm chart for Kubernetes with deployment, secret, configmap, service, and ingress type: application version: 0.0.0 # updated by CI appVersion: 2026.5.2version: 0.0.0是占位符由 CI 在发布时替换为真实版本号appVersion则与仓库主版本保持一致。仓库中的 ci/check-version-consistency.sh 会校验crates/Cargo.toml的版本、ui/package.json的版本与 Chart 的appVersion三者一致确保发布出去的 Chart 与 Gateway、UI 的实际版本严格对应。前置条件要参与 Chart 的修改与发布需要准备Helm 3.2.0 及以上版本这是使用 API Version v2 的 Chart 和helm package、helm repo index等命令的最低要求。helm-values-schema-json插件用于从values.yaml自动生成values.schema.jsonhelm plugin install https://github.com/losisin/helm-values-schema-json.git该插件是本文Values Schema 生成环节的核心工具缺少它时本地无法自动再生成模式文件CI 中的模式同步校验也会因此失败。另外手动发布还隐式要求具备对 Cloudflare R2 存储桶tensorzero-helm-charts的上传权限通常通过rclone或aws兼容命令完成需使用你的 R2 凭据以及一个可用的 Helm 仓库客户端用于生成和合并index.yaml。手动发布 Helm Chart 到 ArtifactHub在 CI 不可用或需要手工发版时按以下步骤操作即可完成发布。其核心逻辑是打包 Chart → 上传压缩包 → 重建仓库索引 → 让 ArtifactHub 扫描到新版本。1. 提升 Chart.yaml 中的版本号编辑 examples/production-deployment-k8s-helm/Chart.yaml将version从占位符0.0.0或上一个发布版本提升为本次要发布的新版本例如1.2.3。版本号需要遵循语义化版本规范ArtifactHub 会根据版本号识别新版本并更新列表。2. 打包 Charthelm package .执行后会在当前目录生成tensorzero-x.y.z.tgz其中x.y.z即 Chart.yaml 中填写的版本号。打包会递归包含 templates 下的所有模板、values.yaml 与values.schema.json等文件。3. 上传压缩包到 Cloudflare R2将tensorzero-x.y.z.tgz上传到 R2 存储桶tensorzero-helm-charts。这一步可使用支持 S3 兼容接口的客户端如awsCLI 或rclone完成上传后制品即通过https://helm.tensorzero.com/tensorzero-x.y.z.tgz对外可访问。4. 重建仓库索引 index.yamlhelm repo index . --url https://helm.tensorzero.com --merge index.yaml这条命令会扫描当前目录下已有的.tgz制品为每个版本生成对应的entries条目。注意两点--url https://helm.tensorzero.com指定了制品的基础 URL生成的索引中下载地址才会指向正确的托管位置--merge index.yaml会将本地已有的index.yaml与新生成的索引合并避免覆盖历史版本条目——如果不加--merge旧的版本信息会丢失导致用户无法再安装旧版本。5. 上传 index.yaml将更新后的index.yaml上传到同一个 R2 存储桶tensorzero-helm-charts替换桶中的旧索引文件。6. 等待 ArtifactHub 扫描上传完成后ArtifactHub 通常会在几分钟内扫描该存储桶并更新包列表。届时在 ArtifactHub 的tensorzero包页面即可看到新版本及其元数据Chart 描述、图标、README 等。Values Schema 的生成与同步校验values.schema.json是 Helm Chart 的 values 校验模式文件当用户执行helm install/helm upgrade时Helm 会按 Helm Chart Schema 文件 的约定读取该文件对传入的values.yaml做 JSON Schema 校验在安装前就拦截非法配置。本地自动生成pre-commit 钩子该文件不是手工维护的而是由helm-values-schema-json插件从 values.yaml 自动生成当你修改values.yaml后pre-commit 钩子会自动运行插件重新生成values.schema.json提交代码时必须把更新后的values.schema.json一并提交保持模式与 values 定义同步。生成的模式是标准的 JSON SchemaDraft 2020-12以 values.schema.json 为例gateway.image.tag字段就带有从values.yaml注释继承而来的描述信息tag: { description: The tag of the gateway image. If empty, uses Chart.appVersion, type: string }这得益于values.yaml中内联的# schema description:注释语法例如serviceAccountName与tag字段上的注释都会被插件提取进生成的模式文件。也就是说在values.yaml中书写schema注释就是为 Helm 用户提供字段级文档与校验规则的推荐方式。CI 中的同步校验仓库的 CI 通过 ci/check-helm-schema-sync.sh 验证已提交的values.schema.json与values.yaml是否一致脚本先确认examples/production-deployment-k8s-helm/values.schema.json文件存在然后执行git diff --quiet HEAD -- $SCHEMA_JSON检查该文件是否有未提交的改动若存在差异说明本地重新生成的模式与提交版本不一致CI 会输出 diff 并报错退出若一致则输出 Schema is in sync 通过校验。这意味着如果你改了values.yaml却没有提交重新生成的values.schema.jsonCI 会直接失败。这是保证 Chart 校验能力不失效的自动化防线。版本一致性与发布保障除了模式同步发布链路还有一道版本一致性检查。仓库根目录的 ci/check-version-consistency.sh 会从三个来源提取版本号并断言它们相等CARGO_VERSION$(grep ^version crates/Cargo.toml | sed s/version \(.*\)/\1/) UI_VERSION$(grep version: ui/package.json | sed s/.*version: \(.*\).*/\1/) CHART_VERSION$(grep ^appVersion: examples/production-deployment-k8s-helm/Chart.yaml | sed s/appVersion: \(.*\)/\1/)三者任一不一致都会导致检查失败从而在发布前就发现Gateway 二进制版本、UI 版本与 Chart 声明的 appVersion 脱节的问题。这也解释了为什么 Chart 的appVersion必须手动同步到与仓库主版本一致——它是用户从 ArtifactHub 判断这个 Chart 对应哪个 TensorZero 版本的关键依据。发布后的验证与使用发布完成后用户可以像使用任何公共 Helm 仓库一样使用该 Chart。仓库中的 examples/production-deployment-k8s-helm/README.md 给出了安装示例将examples/production-deployment-k8s-helm目录替换为已发布的 Chart 即可kubectl create namespace tensorzero helm upgrade --install tensorzero . -f values.yaml -n tensorzero部署成功后即可调用 Gateway 的 OpenAI 兼容端点验证发布产物可用先通过kubectl port-forward service/tensorzero-gateway -n tensorzero 3000:3000打通本地端口curl -X POST http://localhost:3000/openai/v1/chat/completions \ -H Content-Type: application/json \ -d { model: tensorzero::model_name::openai::gpt-4o-mini, messages: [ { role: user, content: What is the capital of Japan? } ] }关键注意事项--merge index.yaml不可省略手动重建索引时不加--merge会丢失历史版本条目破坏已有用户的升级路径。values.schema.json必须与values.yaml同步提交这是本地 pre-commit 钩子与 CI 双重约束的硬性要求忘记提交会导致 CI 失败。版本号提升后务必同步appVersionappVersion对应实际的 TensorZero 版本由 ci/check-version-consistency.sh 强制约束三者Cargo 版本、UI 版本、Chart appVersion必须一致。ArtifactHub 扫描存在延迟上传制品与索引后列表更新通常在几分钟内完成无需额外操作可稍后刷新确认。小结TensorZero 的 Helm Chart 发布链路是一条CI 自动为主、手动兜底的完整流程版本号由 CI 提升并与仓库主版本保持严格一致制品托管在 Cloudflare R2仓库索引由helm repo index维护最终由 ArtifactHub 扫描上架同时values.schema.json通过helm-values-schema-json插件自动生成并由 pre-commit 钩子与 ci/check-helm-schema-sync.sh 双重保障其与values.yaml的同步。理解了这套机制你既可以独立完成一次手动发版也能在修改values.yaml时遵循模式再生成的约定确保 Chart 在安装阶段始终能提供可靠的配置校验。【免费下载链接】tensorzeroTensorZero is an open-source LLMOps platform that unifies an LLM gateway, observability, evaluation, optimization, and experimentation.项目地址: https://gitcode.com/GitHub_Trending/te/tensorzero创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Weave Router五大路由策略全解析:cluster、HMM、RL、Bandit如何选

Weave Router五大路由策略全解析:cluster、HMM、RL、Bandit如何选

Weave Router五大路由策略全解析&#xff1a;cluster、HMM、RL、Bandit如何选 【免费下载链接】router Model router for agentic systems. Routes every prompt to the right model in <50ms. Cut costs 40-70% with just an endpoint change. 项目地址: https://gitcode…

2026/11/9 21:58:16 阅读更多 →
深入解析 Bytebase Oracle SQL Splitter 尾部分号泄漏问题(BYT-9367):从 ORA-00900 到通道感知修复方案

深入解析 Bytebase Oracle SQL Splitter 尾部分号泄漏问题(BYT-9367):从 ORA-00900 到通道感知修复方案

深入解析 Bytebase Oracle SQL Splitter 尾部分号泄漏问题&#xff08;BYT-9367&#xff09;&#xff1a;从 ORA-00900 到通道感知修复方案 【免费下载链接】bytebase Database governance built for humans and agents — controlling changes and access across every major …

2026/11/9 9:17:03 阅读更多 →
C#三Y轴实时曲线控件:工业多参数同步可视化方案

C#三Y轴实时曲线控件:工业多参数同步可视化方案

简介&#xff1a;这是一款面向C# WinForms开发者的2D多轴数据可视化控件&#xff0c;专为电力监控、实验室数据采集等需同步展示电压、电流等多参数实时曲线的场景设计&#xff0c;解决传统单Y轴图表难以直观对比多维动态信号的痛点。资源包共60个文件&#xff0c;含21个核心C#…

2026/10/23 12:49:52 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年&#xff0c;我大部分时间都在跟浏览器标签页打交道&#xff0c;直到第一次把桌面应用跑起来&#xff0c;才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词&#xff0c;最开始是在某段时间频繁出现在同事的讨论里&#xff0c;一个用HTML…

2026/11/9 14:01:10 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档&#xff0c;主要面向智能锁安装人员、终端用户及售后维护者&#xff0c;帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件&#xff0c;大小4.37MB&#xff0c;内容结构清晰&#xff…

2026/11/9 14:56:39 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统&#xff0c;整车要求空载跑到8m/s&#xff0c;电机转速已经拉到额定点&#xff0c;驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令&#xff0c;转速纹丝不动&#xff0c;三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/9 1:59:56 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年&#xff0c;用它写过嵌入式驱动、做过游戏服务端&#xff0c;也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词&#xff0c;我其实挺感慨的——这门语言的难点从来不是语法多&#xff0c;而是知识点之间的耦合太深…

2026/11/9 14:01:10 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介&#xff1a;亚太天能T109滑盖智能锁产品说明书以PDF格式发布&#xff0c;适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开&#xff0c;先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能&#xff0c;再给出完整安装步骤&…

2026/11/9 7:45:06 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历&#xff1a;翻开源码注释、论文摘要或者一份专业报告&#xff0c;每个字都认识&#xff0c;连在一起却像天书。想找人聊聊&#xff0c;身边要么没人懂&#xff0c;要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型&#xff0c;几秒钟之后&a…

2026/11/9 14:01:11 阅读更多 →

日新闻

周新闻

月新闻