关于 helm-chart-builder
helm-chart-builder 是用于检查 Helm Chart 结构、模板、依赖和 values 文件的技能,支持质量检查与配置验证,并提供适用于 CI 的严格模式和 JSON 输出。
主要功能
- 01Chart 结构与元数据检查
- 02模板与依赖审查
- 03Values 文件验证
- 04资源与安全设置检查
- 05严格模式与 JSON 输出
适用场景
- 01发布前审查 Chart
- 02验证各环境的 values 配置
- 03查找缺失的资源限制或安全上下文
- 04在 CI 中检查依赖版本
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ borghei/ claude-skills --skill helm-chart-builder安装后在 Claude Code 中输入/helm-chart-builder确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/Chart.yamlvalues.yamlreferences/helm-best-practices.mdscripts/chart_analyzer.pyvalues_validator.py详细介绍
Helm Chart 构建器
类别: 工程 领域: Kubernetes 与 Helm
概述
Helm Chart 构建器技能可自动分析 Helm Chart,包括结构验证、values 检查、模板审查和依赖项审查。它帮助团队维护高质量的 Chart,确保配置正确、安全上下文适当且文档完整。
先澄清
分析 Chart 之前,请确认以下输入。如果有任何信息未知或含糊不清,请先询问——不要自行假设:
- Chart 路径 — 要分析的 Chart 目录(设置
--path/--chart) - Values 文件 — 要验证的环境 values 文件(设置
--values,并确定要检查哪些最佳实践) - 严格程度 — 严格/lint 模式及用于 CI 的 JSON(设置
--strict --format json,并确定发现的问题是否会阻止流水线运行)
停止规则:只询问最可能影响输出的 2-3 个问题。如果用户说“先起草”,则继续,并在产出内容顶部列出假设。
快速开始
# Analyze chart structure and quality
python scripts/chart_analyzer.py --path ./charts/my-app
# Validate values.yaml against chart requirements
python scripts/values_validator.py --chart ./charts/my-app --values values-prod.yaml
# JSON output for CI
python scripts/chart_analyzer.py --path ./charts/my-app --format json
# Validate multiple values files
python scripts/values_validator.py --chart ./charts/my-app --values values-dev.yaml values-prod.yaml
工具概览
chart_analyzer.py
分析 Helm Chart 的结构、元数据、模板和依赖项。
| 功能 | 描述 |
|---|---|
| 结构验证 | 检查必需文件是否存在(Chart.yaml、values.yaml、templates/) |
| 元数据检查 | 验证 Chart.yaml 字段、版本格式和 appVersion |
| 模板审查 | 检查模板中的常见模式和问题 |
| 依赖项分析 | 审查子 Chart 依赖项和版本约束 |
| 文档检查 | 检查 NOTES.txt 和 README 是否存在 |
values_validator.py
根据 Chart 预期和 Kubernetes 最佳实践验证 values 文件。
| 功能 | 描述 |
|---|---|
| 资源限制 | 检查 CPU/内存 requests 和 limits |
| 安全上下文 | 验证 runAsNonRoot、readOnlyRootFilesystem |
| 副本数量 | 检查副本数量是否适合生产环境 |
| 镜像标签 | 标记使用 latest 或缺少镜像标签的情况 |
| Ingress 配置 | 验证 Ingress 注解和 TLS 设置 |
工作流
Chart 审查工作流
- 分析结构 - 运行 chart_analyzer.py 检查 Chart 组织结构
- 验证默认值 - 使用默认 values.yaml 运行 values_validator.py
- 检查环境配置 - 验证每个环境的 values 文件
- 审查发现的问题 - 先处理严重问题,再处理警告
- 再次检查 - 确认修复通过验证
发布前工作流
- 提升版本 - 更新 Chart.yaml 中的 version 和 appVersion
- Lint Chart - 以严格模式运行 chart_analyzer.py
- 验证所有 values - 检查每个环境的 values 文件
- 检查依赖项 - 确保子 Chart 版本已固定
- 打包 - Chart 已准备好通过 helm package 打包
CI 集成
# Structure check
python scripts/chart_analyzer.py --path ./charts/my-app --format json --strict
# Values validation for all environments
for env in dev staging production; do
python scripts/values_validator.py \
--chart ./charts/my-app \
--values "values-${env}.yaml"
done
参考文档
- Helm 最佳实践 - Chart 结构、模板、安全性、依赖项
常见模式速查
必需的 Chart 结构
my-chart/
Chart.yaml # Required: chart metadata
values.yaml # Required: default values
templates/ # Required: template directory
deployment.yaml
service.yaml
_helpers.tpl # Recommended: template helpers
NOTES.txt # Recommended: post-install notes
charts/ # Optional: subchart dependencies
Values 最佳实践
| 设置 | 要求 | 原因 |
|---|---|---|
| resources.limits | 必需 | 防止资源耗尽 |
| resources.requests | 必需 | 支持正确调度 |
| securityContext.runAsNonRoot | 必需 | 安全基线 |
| image.tag | 必需(不能为 latest) | 确保部署可复现 |
| replicaCount >= 2 | 生产环境建议 | 高可用性 |
| ingress.tls | 建议 | 加密流量 |
Chart.yaml 必需字段
| 字段 | 描述 |
|---|---|
| apiVersion | Helm 3 使用 v2 |
| name | Chart 名称(小写) |
| version | SemVer Chart 版本 |
| appVersion | 应用版本 |
| description | Chart 简要描述 |
常见问题
| 问题 | 严重程度 | 修复方法 |
|---|---|---|
| 缺少 Chart.yaml | 严重 | 添加必需的 chart 元数据 |
| 未设置资源限制 | 警告 | 设置 CPU/内存限制 |
| 使用 latest 镜像标签 | 警告 | 固定具体版本 |
| 缺少安全上下文 | 警告 | 添加 runAsNonRoot: true |
| 缺少 NOTES.txt | 信息 | 添加安装后说明 |
| 依赖项未固定版本 | 警告 | 固定子 chart 版本 |
评论
支持 Markdown