Helm 图表 PR 合并前校验
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/lint-and-test-helm-charts-in-pull-requests-before-kubernetes-packaging-changes-merge-with-chart-testing
技能介绍
要解决的问题
Helm 图表的改动往往同时落在 values、模板与依赖上。一次看起来无害的 values 调整,可能让模板渲染直接失败;一处缩进错误的 YAML,可能让 chart 在集群里根本无法 install。等到合并之后、发布前夕才暴露,排查成本和回滚压力都会成倍放大。这个技能要解决的就是:在 PR 阶段把问题拦下来。
技能如何工作
它基于上游开源工具 chart-testing(ct),针对发生变更的 chart 运行两类核心检查:
- lint 检查:校验
Chart.yaml与values.yaml的语法和结构,确认模板渲染结果合法,并对照官方 schema 验证 chart 元数据。 - install 检查:在 Kubernetes 测试环境中真实安装 chart,验证渲染出的 manifest 能被集群正常接受。
关键前提与步骤:
- 准备
ct二进制或官方 Docker 镜像,以及 Helm、Git。 - 准备一个用于 install 检查的 Kubernetes 测试环境。
- 可选路径:
brew install chart-testing配合brew install coreutils;或直接使用镜像quay.io/helmpack/chart-testing,其中已内置 Helm 与 Git 2.17.0+。
适用边界与注意点
- install 检查依赖可用的测试集群,CI 环境需要自行提供。
- Git 版本要求 2.17.0 或以上。
- 检查范围限定在本次发生变更的 chart,并非全量回归。
- 它本质上是把上游
ct的能力封装成 PR 门禁流程,多集群矩阵等复杂策略仍需额外配置。
使用场景
- 在提交包含 Helm 图表变更的 PR 时,运行 chart lint 与安装检查,提前拦截语法错误或渲染失败。
- 在 CI 流水线中为每次 PR 自动触发 chart-testing,对变更的 chart 执行 install 检查,确保部署前模板有效。
- 使用 chart-testing 镜像在隔离环境中验证 values 调整是否导致模板渲染异常,避免合并后故障。
- 维护大型 Kubernetes 平台时,通过 PR 门禁强制要求所有 Helm 图表变更必须通过 lint 和 install 检查。
适合人员
- 负责维护 Helm 图表的 DevOps 工程师,需要在合并前自动校验图表变更,避免部署故障。
- Kubernetes 平台的 CI/CD 工程师,希望通过自动化检查确保每次 PR 的图表部署安全。
- 使用 chart-testing 的团队,需要统一 PR 阶段的 lint 和 install 流程,减少人工审查负担。
- 开源项目维护者,需要在 PR 中强制要求 Helm 图表变更通过严格校验,保证社区贡献质量。