关于 helm-chart-patterns
为 Kubernetes 开发者提供生产级 Helm Chart 编写指导,涵盖结构、模板、多环境配置、依赖、测试与分发。通过主题参考文档和开发流程支持从搭建到发布。
主要功能
- 01Chart 结构与配置模式
- 02Go 模板与辅助函数
- 03多环境及依赖管理
- 04生命周期钩子
- 05验证、测试与分发
适用场景
- 01创建可复用的应用 Chart
- 02配置开发、预发布和生产环境
- 03测试并打包 Chart 以供发布
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ nickcrew/ claude-cortex --skill helm-chart-patterns安装后在 Claude Code 中输入/helm-chart-patterns确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/best-practices.mdchart-structure.mddependencies.mdhelmfile.mdhooks.mdpackaging.mdtemplate-patterns.mdtesting.mdvalues-patterns.md详细介绍
Helm 图表模式
关于开发生产级 Helm 图表的专家指南,涵盖图表结构、模板模式、多环境配置、依赖项管理、测试策略,以及 Kubernetes 应用打包的分发工作流。
何时使用此技能
- 为应用和服务创建可复用的 Helm 图表
- 构建应用目录和图表仓库
- 管理多环境部署(开发、预发布、生产)
- 使用条件语句和循环实现高级模板
- 管理图表依赖项和子图表
- 实现用于生命周期管理的图表钩子
- 测试和验证图表模板
- 通过仓库打包和分发图表
- 使用 Helmfile 编排多个图表
核心概念
图表类型
- 应用图表:用于部署服务的标准图表
- 库图表:可复用的模板辅助函数(不能直接安装)
关键文件
| 文件 | 用途 |
|---|---|
Chart.yaml | 元数据、版本、依赖项 |
values.yaml | 默认配置 |
values.schema.json | 输入验证 |
templates/_helpers.tpl | 可复用的模板函数 |
templates/*.yaml | Kubernetes 清单 |
模板基础
- 为字符串添加引号:
{{ .Values.name | quote }} - 正确缩进:
{{- toYaml . | nindent 4 }} - 使用辅助函数:
{{ include "my-app.fullname" . }} - 检查 nil 值:
{{- if .Values.optional }}
快速参考
| 任务 | 加载参考文档 |
|---|---|
| 图表结构和 Chart.yaml | skills/helm-chart-patterns/references/chart-structure.md |
| Values 文件模式 | skills/helm-chart-patterns/references/values-patterns.md |
| 模板模式和函数 | skills/helm-chart-patterns/references/template-patterns.md |
| 依赖项和子图表 | skills/helm-chart-patterns/references/dependencies.md |
| 钩子和生命周期 | skills/helm-chart-patterns/references/hooks.md |
| 测试模式 | skills/helm-chart-patterns/references/testing.md |
| 打包和分发 | skills/helm-chart-patterns/references/packaging.md |
| Helmfile 多图表 | skills/helm-chart-patterns/references/helmfile.md |
| 最佳实践检查清单 | skills/helm-chart-patterns/references/best-practices.md |
工作流
- 构建结构 - 创建包含 Chart.yaml 和 values.yaml 的图表目录
- 编写模板 - 使用 Go 模板创建 Kubernetes 清单
- 辅助函数 - 将通用模式提取到 _helpers.tpl 中
- 验证 - 使用 values.schema.json 验证输入
- 测试 - 执行 lint、模板渲染和图表测试
- 打包 - 创建 .tgz 并发布到仓库
必备命令
# Development
helm create my-app # Scaffold new chart
helm lint ./my-app # Validate chart
helm template my-app ./my-app # Render templates
# Dependencies
helm dependency update # Download dependencies
helm dependency list # Show dependencies
# Testing
helm install my-app ./my-app --dry-run --debug
helm test my-app
# Distribution
helm package ./my-app
helm repo index . --url https://charts.example.com
helm push my-app-1.0.0.tgz oci://registry.example.com/charts
常见错误
- 忘记在模板中为字符串添加引号
- 未使用
nindent实现正确的 YAML 格式 - 将机密提交到 values 文件中
- 缺少安全上下文(runAsNonRoot、drop capabilities)
- 未固定依赖项版本
- 跳过 values.schema.json 验证
- 未测试从先前版本升级
资源
评论
支持 Markdown