Helm Chart Linter — Helm Chart 语法检查器
v1.0.1检查和验证Helm charts的结构、安全性、依赖项和最佳实践。当被要求检查、验证、lint或审计Helm charts,验证Chart.yaml、values.yaml、模板,或者确保Helm chart的质量时使用。触发器包括"lint helm"、"validate chart"、"check helm chart"、"helm best practices"。
运行时依赖
安装命令
点击复制技能文档
Helm Chart Linter 一个使用 Python 3(仅使用标准库)开发的 Helm Chart 目录检查和验证工具。它检查结构、安全性、依赖项和最佳实践,共有 22 条规则。
命令
python3 scripts/helm_chart_linter.py <命令> [选项]
命令描述
lint:检查 Chart 结构和最佳实践(所有规则)
security:仅运行安全性检查
dependencies:验证 Chart.yaml/Chart.lock 依赖项
validate:完整验证:结构 + 安全性 + 依赖项选项 --format text|json|markdown:输出格式(默认:text) --strict:在 CI 模式下,对警告和错误都退出 1
示例
基本检查:python3 scripts/helm_chart_linter.py lint ./my-chart
完整验证,JSON 输出:python3 scripts/helm_chart_linter.py validate ./my-chart --format json
安全审计,CI 模式:python3 scripts/helm_chart_linter.py security ./my-chart --strict
依赖项检查,Markdown 报告:python3 scripts/helm_chart_linter.py dependencies ./my-chart --format markdown
规则 结构(6 条规则) + CHART001:Chart.yaml 存在且有所需字段(apiVersion、name、version、description) + CHART002:版本是有效的 semver + CHART003:values.yaml 存在 + CHART004:templates/ 目录存在 + CHART005:NOTES.txt 存在于 templates/(警告) + CHART006:.helmignore 存在(警告) 安全性(6 条规则) + SEC001:values.yaml 中没有硬编码的密钥(密码、令牌、密钥) + SEC002:没有特权容器(securityContext.privileged: true) + SEC003:没有启用 hostNetwork、hostPID 或 hostIPC + SEC004:资源限制在模板中定义 + SEC005:没有以 root 身份运行,而没有显式的 runAsNonRoot + SEC006:图像标签不是 "latest" 依赖项(4 条规则) + DEP001:Chart.lock 存在且与 Chart.yaml 依赖项匹配 + DEP002:没有通配符版本约束 + DEP003:存储库 URL 使用 HTTPS + DEP004:没有重复的依赖项名称 最佳实践(6 条规则) + BP001:标签包括 app.kubernetes.io/name、version、managed-by + BP002:定义了活跃度和就绪度探测 + BP003:服务账户名称配置 + BP004:命名空间在模板中没有硬编码 + BP005:没有弃用的 API 版本(extensions/v1beta1、apps/v1beta1 等) + BP006:值使用注释进行文档记录
退出代码 0:没有问题(或正常模式下只有警告) 1:找到错误(或在 --strict 模式下找到警告) * 2:脚本/使用错误