Helm Chart Builder 是一个 Helm chart 开发智能体技能与插件,适用于 Claude Code、Codex、Gemini CLI、Cursor、OpenClaw 等工具。它不是 Helm 教程,而是一组关于如何构建运维人员可信、开发者不易对抗的 chart 的具体决策,用于把临时的 Kubernetes 清单转化为可维护、可测试、可复用的 chart。
【用途】 当用户提出“为这个服务创建 Helm chart”“审查我的 Helm chart”“这个 chart 安全吗”“设计 values.yaml”“新增子 chart 依赖”“设置 helm 测试”“某工作负载类型的 Helm 最佳实践”等需求,或涉及 Helm chart、values.yaml、Chart.yaml、templates、helpers、_helpers.tpl、subcharts、helm lint、helm test 时,该技能适用。若用户已有 Helm chart 或希望打包 Kubernetes 资源,也会触发。
【主要能力】
- /helm:create — 生成生产级 Helm chart:先识别工作负载类型(Web 服务为 Deployment + Service + Ingress;worker 为 Deployment 无 Service;CronJob 为 CronJob + ServiceAccount;有状态服务为 StatefulSet + PVC + Headless Service;库 chart 无 templates 仅有 helpers),再脚手架化标准目录结构(Chart.yaml、values.yaml、可选 values.schema.json、.helmignore、templates 下的 _helpers.tpl、deployment.yaml、service.yaml、ingress.yaml、serviceaccount.yaml、hpa.yaml、pdb.yaml、networkpolicy.yaml、configmap.yaml、secret.yaml、NOTES.txt、tests/test-connection.yaml,以及 charts/ 子 chart)。Chart.yaml 采用 apiVersion v2(仅 Helm 3)、name 与目录名一致、version 为 semver、appVersion、description、type 为 application 或 library;依赖用 ~X.Y.Z 固定版本、condition 使子 chart 可选、alias 支持多实例,变更后运行 helm dependency update。生成的 values.yaml 每项带内联注释,提供开发可用的合理默认值,避免硬编码集群特定值(镜像仓库、域名、存储类)。最后通过 python3 scripts/chart_analyzer.py、helm lint、helm template --debug 校验。
- /helm:review — 审查已有 chart:检查结构(缺少 _helpers.tpl 为高危、无 NOTES.txt 为中、无 .helmignore 为低、Chart.yaml 字段缺失为中、模板硬编码值为高危);检查模板质量(缺少标准标签为高危、无资源 requests/limits 为严重、硬编码镜像 tag 为高危、无 imagePullPolicy 为中、缺少存活/就绪探针为高危、无 Pod 反亲和为中、模板重复代码为中);检查 values.yaml 质量(可运行 python3 scripts/values_validator.py)。随后生成含 CRITICAL/HIGH/MEDIUM/LOW 计数与详细修复建议的审查报告。
- /helm:security — 安全审计:Pod 安全(无 securityContext 为严重、以 root 运行为严重、根文件系统可写为高危、保留全部 capabilities 为高危、特权容器为严重、无 seccomp 为中、allowPrivilegeEscalation 为真为高危);RBAC(无 ServiceAccount 为中、automountServiceAccountToken 为真为中、用 ClusterRole 替代 Role 为中、通配符权限为严重);网络与密钥(无 NetworkPolicy 为中、values.yaml 内存放密钥为严重、无 PDB 为中、hostNetwork/hostPID/hostIPC 为高危或严重)。最后生成含修复步骤的安全审计报告。
- 工具脚本:scripts/chart_analyzer.py 用于 Helm chart 目录静态分析,功能包括 chart 结构校验、模板反模式检测(硬编码值、缺少标签、无资源限制)、Chart.yaml 元数据检查、标准标签(app.kubernetes.io/*)验证、安全基线检查,支持 JSON 与文本输出;用法示例:python3 scripts/chart_analyzer.py mychart/,加 --output json 输出 JSON,加 --security 做安全导向分析。scripts/values_validator.py 用于按最佳实践校验 values.yaml,功能包括文档覆盖(内联注释)、类型一致性、硬编码密钥检测、默认值质量、结构深度、命名规范校验,支持 JSON 与文本输出;用法示例:python3 scripts/values_validator.py values.yaml,加 --output json 输出 JSON,加 --strict 在警告时失败。
【模板模式】 提供三类模板示例:一是标准标签(_helpers.tpl)中的 mychart.labels 与 mychart.selectorLabels;二是条件资源(如按 .Values.ingress.enabled 渲染 Ingress);三是安全加固的 Pod spec(runAsNonRoot、只读根文件系统、丢弃全部 capabilities、emptyDir 挂载 /tmp 等)。
【values 设计原则】 结构上偏好扁平而非嵌套(如 image.tag 优于 container.spec.image.tag),按资源分组,用 enabled: true/false 控制可选资源,每个键带内联注释,提供开发可用的合理默认值。命名上键用 camelCase(replicaCount),布尔键用形容词(enabled),嵌套最多三层,并与上游约定一致(image.repository、image.tag、image.pullPolicy)。反模式包括硬编码集群 URL/域名、把密钥作为默认值、该用 null 处使用空字符串、超过三层的深层嵌套、无文档的 values、以及不经覆盖就无法使用的 values.yaml。
【依赖管理】 子 chart 使用 Chart.yaml 的 dependencies(Helm 3 而非 requirements.yaml),版本用 ~15.x.x(补丁级浮动),用 condition 使可选,用 alias 支持同一 chart 多实例,在 values.yaml 中以子 chart 名为键覆盖其值,打包前运行 helm dependency update。库 chart 在 Chart.yaml 中设 type: library,无 templates 目录,只导出命名模板不渲染资源,用于共享标签、注解、安全上下文,独立于应用 chart 版本化。
【主动提醒】 即使未被询问也会提示:缺 _helpers.tpl 需创建;模板中硬编码镜像 tag 需提取到 values.yaml;无资源 requests/limits 需补充;以 root 运行需加 securityContext;无 NOTES.txt 需创建;values.yaml 默认值中含密钥需移除并改用占位符加说明;无存活/就绪探针需补充;缺少 app.kubernetes.io 标签需通过 _helpers.tpl 添加。
【安装方式】 通用一行命令:git clone https://github.com/alirezarezvani/claude-skills.git 后 cp -r claude-skills/engineering/helm-chart-builder ~/.claude/skills/。多工具安装:./scripts/convert.sh --skill helm-chart-builder --tool codex|gemini|cursor|windsurf|openclaw。OpenClaw:clawhub install cs-helm-chart-builder。
【相关技能】 senior-devops 覆盖更广的 DevOps 范围(CI/CD、IaC、监控),与 helm-chart-builder 互补,chart 相关工作用后者、流水线与基础设施用前者;docker-development 负责构建镜像,helm-chart-builder 负责将镜像部署到 Kubernetes;ci-cd-pipeline-builder 负责构建流水线,helm-chart-builder 定义部署产物;senior-security 覆盖应用安全,helm-chart-builder 覆盖 Kubernetes 层面的安全(RBAC、Pod 安全)。
【限制】 资料未提供收费、价格、平台兼容矩阵、实际运行效果或性能数据,这些方面暂未提供。