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 チャートのパターン
Kubernetes アプリケーションのパッケージ化におけるチャート構造、テンプレートパターン、マルチ環境の設定、依存関係管理、テスト戦略、配布ワークフローを網羅した、本番環境向けの Helm チャート開発に関する専門的なガイダンスです。
このスキルを使用する場面
- アプリケーションやサービス向けの再利用可能な Helm チャートの作成
- アプリケーションカタログやチャートリポジトリの構築
- マルチ環境デプロイ(dev、staging、production)の管理
- 条件分岐やループを使った高度なテンプレートの実装
- チャートの依存関係やサブチャートの管理
- ライフサイクル管理のためのチャートフックの実装
- チャートテンプレートのテストと検証
- リポジトリを介したチャートのパッケージ化と配布
- マルチチャートのオーケストレーションにおける 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
よくある間違い
- テンプレート内の文字列をクォートし忘れる
- 適切な YAML 形式にするために
nindentを使用しない - シークレットを values ファイルにコミットする
- セキュリティコンテキスト(runAsNonRoot、drop capabilities)が不足している
- 依存関係のバージョンを固定しない
- values.schema.json による検証を省略する
- 以前のバージョンからのアップグレードをテストしない
リソース
- Helm ドキュメント:https://helm.sh/docs/
- チャートテンプレートガイド:https://helm.sh/docs/chart_template_guide/
- ベストプラクティス:https://helm.sh/docs/chart_best_practices/
- Helmfile:https://github.com/helmfile/helmfile
- チャートテスト:https://github.com/helm/chart-testing
コメント
Markdown 対応