Helm Chart Builder — Helm Chart 构建器
v2Helm 图表开发代理技能和 Claude Code、Codex、Gemini CLI、Cursor、OpenClaw 的插件 —— 图表脚手架、值设计、模板模式、依赖管理、安全加固和图表测试。当用户想要创建或改进 Helm 图表、设计 values.yaml 文件、实现模板助手、审计图表安全(RBAC、网络策略、Pod 安全)、管理子图表或运行 helm lint/test 时使用。
运行时依赖
版本
生成带有文档的 values.yaml 文件
安装命令
点击复制技能文档
Helm Chart Builder 生产级的Helm charts。合理的默认值。安全设计。无cargo-culting。有意见的Helm工作流程,将临时的Kubernetes manifests转换为可维护、可测试、可重用的charts。涵盖chart结构、values设计、模板模式、依赖管理和安全加固。不仅仅是一个Helm教程——一套关于如何构建charts的具体决定,这些charts是操作员信任和开发人员不反对的。
Slash Commands 命令 所做的事情 /helm:create 创建一个生产就绪的Helm chart,具有最佳实践结构 /helm:review 分析现有的chart以查找问题——缺少标签、硬编码值、模板反模式 /helm:security 审计chart的安全问题——RBAC、网络策略、pod安全、秘密处理
何时激活此技能 识别用户的以下模式: “为此服务创建一个Helm chart” “查看我的Helm chart” “这个chart是否安全?” “设计一个values.yaml” “添加一个子chart依赖” “设置helm测试” “对于[工作负载类型]的helm最佳实践” 任何涉及:Helm chart、values.yaml、Chart.yaml、模板、helpers、_helpers.tpl、子charts、helm lint、helm test的请求 如果用户有一个Helm chart或想要包装Kubernetes资源→此技能适用。
工作流程 /helm:create — Chart 创建 识别工作负载类型 Web服务(Deployment + Service + Ingress) Worker(Deployment,无Service) CronJob(CronJob + ServiceAccount) 有状态服务(StatefulSet + PVC + Headless Service) 库chart(无模板,只有helpers) 创建chart结构 mychart/ ├── Chart.yaml # Chart元数据和依赖 ├── values.yaml # 默认配置 ├── values.schema.json # 可选:values验证的JSON Schema ├── .helmignore # 要从包中排除的文件 ├── templates/ │ ├── _helpers.tpl # 命名模板和helper函数 │ ├── deployment.yaml # 工作负载资源 │ ├── service.yaml # 服务暴露 │ ├── ingress.yaml # Ingress(如果适用) │ ├── serviceaccount.yaml # ServiceAccount │ ├── hpa.yaml # HorizontalPodAutoscaler │ ├── pdb.yaml # PodDisruptionBudget │ ├── networkpolicy.yaml # NetworkPolicy │ ├── configmap.yaml # ConfigMap(如果需要) │ ├── secret.yaml # 秘密(如果需要) │ ├── NOTES.txt # 安装后使用说明 │ └── tests/ │ └── test-connection.yaml └── charts/ # 子charts(依赖) 应用Chart.yaml最佳实践 METADATA ├── apiVersion: v2(仅Helm 3 — 永远不v1) ├── name: 与目录名完全匹配 ├── version: semver(chart版本,不是应用版本) ├── appVersion: 应用版本字符串 ├── description: 部署的chart的一行摘要 └── type: application(或library用于共享helpers) DEPENDENCIES ├── 使用~X.Y.Z(补丁级浮动)固定依赖版本 ├── 使用condition字段使子charts可选 ├── 使用别名为同一子charts的多个实例 └── 更改后运行helm dependency update 生成values.yaml文档 每个值都有一个内联注释,解释其用途和类型 合理的默认值,适用于开发 覆盖友好结构(尽可能平坦,只在逻辑上嵌套) 无硬编码集群特定值(镜像注册表、域、存储类) 验证 python3 scripts/chart_analyzer.py mychart/ helm lint mychart/ helm template mychart/ --debug
/helm:review — Chart 分析 检查chart结构 检查严重性 修复 缺少_helpers.tpl 高 创建helpers用于公共标签和选择器 无NOTES.txt 中等 添加安装后说明 无.helmignore 低 创建一个以排除.git、CI文件、测试 缺少Chart.yaml字段 中等 添加描述、appVersion、维护者 模板中的硬编码值 高 提取到values.yaml中,具有默认值 检查模板质量 检查严重性 修复 缺少标准标签 高 使用app.kubernetes.io/*标签通过_helpers.tpl 无资源请求/限制 致命 添加资源部分,具有默认值 模板中的硬编码镜像标签 高 使用{{ .Values.image.repository }}:{{ .Values.image.tag }} 无imagePullPolicy 中等 默认为IfNotPresent,可覆盖 缺少活性/就绪探针 高 添加具有可配置路径和端口的探针 无pod反关联 中等 添加首选的反关联,用于HA 重复的模板代码 中等 提取到_helpers.tpl中的命名模板 检查values.yaml质量 python3 scripts/values_validator.py mychart/values.yaml 生成审查报告 HELM CHART 审查 — [chart 名称] 日期:[时间戳] CRITICAL:[数量] HIGH:[数量] MEDIUM:[数量] LOW:[数量] [详细的发现和修复建议]
/helm:security — 安全审计 Pod安全审计 检查严重性 修复 无securityContext 致命 添加runAsNonRoot,readOnlyRootFilesystem 以root身份运行 致命 设置runAsNonRoot:true,runAsUser:1000 可写的根文件系统 高 设置readOnlyRootFilesystem:true