helm-chart-builder について
helm-chart-builder は Helm チャートの構造、テンプレート、依存関係、values ファイルを確認するスキルです。品質チェックと設定検証を行い、CI 向けの厳格モードや JSON 出力にも対応します。
主な機能
- 01チャート構造とメタデータの確認
- 02テンプレートと依存関係のレビュー
- 03values ファイルの検証
- 04リソースとセキュリティ設定の確認
- 05厳格モードと JSON 出力
活用シーン
- 01リリース前のチャートレビュー
- 02環境別 values 設定の検証
- 03リソース制限やセキュリティコンテキストの不足検出
- 04CI での依存バージョン確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ borghei/ claude-skills --skill helm-chart-builderインストール後、Claude Code で/helm-chart-builderを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
examples/Chart.yamlvalues.yamlreferences/helm-best-practices.mdscripts/chart_analyzer.pyvalues_validator.py詳細
Helm Chart ビルダー
カテゴリ: エンジニアリング ドメイン: Kubernetes と Helm
概要
Helm Chart ビルダースキルでは、構造の検証、values の確認、テンプレートの調査、依存関係のレビューなど、Helm チャートを自動で分析できます。チームが適切な構成、適切なセキュリティコンテキスト、完全なドキュメントを備えた高品質のチャートを維持できるよう支援します。
最初に確認すること
チャートを分析する前に、次の入力を確認してください。不明または曖昧な項目があれば、推測せずに質問してください。
- チャートのパス — 分析するチャートのディレクトリ(
--path/--chartを設定) - Values ファイル — 検証する環境別の values ファイル(
--valuesを設定し、ベストプラクティスに照らして確認する対象を決定) - 厳密度 — 厳密/lint モードと CI 用の JSON 出力(
--strict --format jsonを設定し、検出結果をパイプラインのゲートにするかどうかを決定)
停止ルール:出力への影響が最も大きい2〜3項目だけを質問してください。ユーザーが「とりあえず下書きして」と言った場合は、作業を進め、成果物の冒頭に前提を記載してください。
クイックスタート
# Analyze chart structure and quality
python scripts/chart_analyzer.py --path ./charts/my-app
# Validate values.yaml against chart requirements
python scripts/values_validator.py --chart ./charts/my-app --values values-prod.yaml
# JSON output for CI
python scripts/chart_analyzer.py --path ./charts/my-app --format json
# Validate multiple values files
python scripts/values_validator.py --chart ./charts/my-app --values values-dev.yaml values-prod.yaml
ツールの概要
chart_analyzer.py
Helm チャートの構造、メタデータ、テンプレート、依存関係を分析します。
| 機能 | 説明 |
|---|---|
| 構造の検証 | 必須ファイル(Chart.yaml、values.yaml、templates/)が存在することを確認します |
| メタデータの確認 | Chart.yaml のフィールド、バージョン形式、appVersion を検証します |
| テンプレートのレビュー | 一般的なパターンや問題がないかテンプレートを調査します |
| 依存関係の分析 | サブチャートの依存関係とバージョン制約をレビューします |
| ドキュメントの確認 | NOTES.txt と README があることを確認します |
values_validator.py
チャートの想定と Kubernetes のベストプラクティスに照らして、values ファイルを検証します。
| 機能 | 説明 |
|---|---|
| リソース制限 | CPU/メモリのリクエストと制限を確認します |
| セキュリティコンテキスト | runAsNonRoot、readOnlyRootFilesystem を検証します |
| レプリカ数 | 本番環境に適したレプリカ数か確認します |
| イメージタグ | latest の使用やイメージタグの未指定を警告します |
| Ingress の設定 | Ingress のアノテーションと TLS 設定を検証します |
ワークフロー
チャートレビューのワークフロー
- 構造を分析 - chart_analyzer.py を実行して、チャートの構成を確認します
- デフォルト値を検証 - values_validator.py をデフォルトの values.yaml に対して実行します
- 環境を確認 - 各環境の values ファイルを検証します
- 検出結果をレビュー - まず重大な問題に対処し、その後で警告に対応します
- 再確認 - 修正が検証に合格することを確認します
リリース前のワークフロー
- バージョンを更新 - Chart.yaml の version と appVersion を更新します
- チャートを lint - chart_analyzer.py を厳密モードで実行します
- すべての values を検証 - 各環境の values ファイルを確認します
- 依存関係を確認 - サブチャートのバージョンが固定されていることを確認します
- パッケージ化 - チャートを helm package でパッケージ化できる状態にします
CI 連携
# Structure check
python scripts/chart_analyzer.py --path ./charts/my-app --format json --strict
# Values validation for all environments
for env in dev staging production; do
python scripts/values_validator.py \
--chart ./charts/my-app \
--values "values-${env}.yaml"
done
リファレンスドキュメント
- Helm のベストプラクティス - チャート構造、テンプレート、セキュリティ、依存関係
よく使うパターンのクイックリファレンス
必須のチャート構造
my-chart/
Chart.yaml # Required: chart metadata
values.yaml # Required: default values
templates/ # Required: template directory
deployment.yaml
service.yaml
_helpers.tpl # Recommended: template helpers
NOTES.txt # Recommended: post-install notes
charts/ # Optional: subchart dependencies
Values のベストプラクティス
| 設定 | 要件 | 理由 |
|---|---|---|
| resources.limits | 必須 | リソースの枯渇を防ぎます |
| resources.requests | 必須 | 適切なスケジューリングを可能にします |
| securityContext.runAsNonRoot | 必須 | セキュリティの基本要件です |
| image.tag | 必須(latest は不可) | 再現可能なデプロイを実現します |
| replicaCount >= 2 | 本番環境では推奨 | 高可用性を実現します |
| ingress.tls | 推奨 | トラフィックを暗号化します |
Chart.yaml の必須フィールド
| フィールド | 説明 |
|---|---|
| apiVersion | Helm 3 では v2 |
| name | チャート名(小文字) |
| version | SemVer 形式のチャートバージョン |
| appVersion | アプリケーションのバージョン |
| description | チャートの簡単な説明 |
よくある問題
| 問題 | 重大度 | 修正方法 |
|---|---|---|
| Chart.yaml がない | 重大 | 必須のチャートメタデータを追加します |
| リソース制限がない | 警告 | CPU/メモリの制限を設定します |
| イメージタグが latest | 警告 | 特定のバージョンを指定します |
| セキュリティコンテキストがない | 警告 | runAsNonRoot: true を追加します |
| NOTES.txt がない | 情報 | インストール後の説明を追加します |
| 依存関係のバージョンが固定されていない | 警告 | サブチャートのバージョンを固定します |
コメント
Markdown 対応