🛠️ HelmChartビルダー
Kubernetesでアプリケーションを管理する「Helm
📺 まず動画で見る(YouTube)
▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Helm chart development agent skill and plugin for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw — chart scaffolding, values design, template patterns, dependency management, security hardening, and chart testing. Use when: user wants to create or improve Helm charts, design values.yaml files, implement template helpers, audit chart security (RBAC, network policies, pod security), manage subcharts, or run helm lint/test.
🇯🇵 日本人クリエイター向け解説
Kubernetesでアプリケーションを管理する「Helm
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o helm-chart-builder.zip https://jpskill.com/download/4893.zip && unzip -o helm-chart-builder.zip && rm helm-chart-builder.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/4893.zip -OutFile "$d\helm-chart-builder.zip"; Expand-Archive "$d\helm-chart-builder.zip" -DestinationPath $d -Force; ri "$d\helm-chart-builder.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
helm-chart-builder.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
helm-chart-builderフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-18
- 同梱ファイル
- 5
💬 こう話しかけるだけ — サンプルプロンプト
- › Helm Chart Builder を使って、最小構成のサンプルコードを示して
- › Helm Chart Builder の主な使い方と注意点を教えて
- › Helm Chart Builder を既存プロジェクトに組み込む方法を教えて
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[Skill 名] helm-chart-builder
Helm Chart Builder
本番環境レベルの Helm チャート。適切なデフォルト設定。設計によるセキュリティ。無駄な慣習の排除。
アドホックな Kubernetes マニフェストを、保守可能で、テスト可能で、再利用可能なチャートに変える、独自の Helm ワークフローです。チャート構造、values の設計、テンプレートパターン、依存関係管理、およびセキュリティ強化を網羅しています。
これは Helm のチュートリアルではありません。オペレーターが信頼し、開発者が苦労しないチャートを構築するための具体的な決定事項のセットです。
スラッシュコマンド
| コマンド | 機能 |
|---|---|
/helm:create |
ベストプラクティス構造を持つ、本番環境対応の Helm チャートをスキャフォールドします |
/helm:review |
既存のチャートを分析し、ラベルの欠落、ハードコードされた値、テンプレートのアンチパターンなどの問題を見つけます |
/helm:security |
RBAC、ネットワークポリシー、Pod セキュリティ、シークレット処理など、チャートのセキュリティ問題を監査します |
このスキルがアクティブになる条件
ユーザーからの以下のパターンを認識します。
- 「このサービス用の Helm チャートを作成してください」
- 「私の Helm チャートをレビューしてください」
- 「このチャートは安全ですか?」
- 「values.yaml を設計してください」
- 「サブチャートの依存関係を追加してください」
- 「Helm テストを設定してください」
- 「[ワークロードタイプ] の Helm ベストプラクティス」
- Helm チャート、values.yaml、Chart.yaml、templates、helpers、_helpers.tpl、subcharts、helm lint、helm test を含むあらゆるリクエスト
ユーザーが Helm チャートを持っている、または Kubernetes リソースをパッケージ化したい場合 → このスキルが適用されます。
ワークフロー
/helm:create — チャートのスキャフォールディング
-
ワークロードタイプを特定します
- Web サービス (Deployment + Service + Ingress)
- ワーカー (Deployment、Service なし)
- CronJob (CronJob + ServiceAccount)
- ステートフルサービス (StatefulSet + PVC + Headless Service)
- ライブラリチャート (テンプレートなし、ヘルパーのみ)
-
チャート構造をスキャフォールドします
mychart/ ├── Chart.yaml # チャートのメタデータと依存関係 ├── values.yaml # デフォルト設定 ├── values.schema.json # オプション: values バリデーション用の JSON Schema ├── .helmignore # パッケージングから除外するファイル ├── templates/ │ ├── _helpers.tpl # 名前付きテンプレートとヘルパー関数 │ ├── deployment.yaml # ワークロードリソース │ ├── service.yaml # サービス公開 │ ├── ingress.yaml # Ingress (該当する場合) │ ├── serviceaccount.yaml # ServiceAccount │ ├── hpa.yaml # HorizontalPodAutoscaler │ ├── pdb.yaml # PodDisruptionBudget │ ├── networkpolicy.yaml # NetworkPolicy │ ├── configmap.yaml # ConfigMap (必要な場合) │ ├── secret.yaml # Secret (必要な場合) │ ├── NOTES.txt # インストール後の使用手順 │ └── tests/ │ └── test-connection.yaml └── charts/ # サブチャート (依存関係) -
Chart.yaml のベストプラクティスを適用します
METADATA ├── apiVersion: v2 (Helm 3 のみ — v1 は使用しない) ├── name: ディレクトリ名と完全に一致させる ├── version: semver (チャートバージョン、アプリバージョンではない) ├── appVersion: アプリケーションのバージョン文字列 ├── description: チャートがデプロイする内容の1行要約 └── type: application (または共有ヘルパー用の library) DEPENDENCIES ├── 依存関係のバージョンを ~X.Y.Z (パッチレベルのフロート) で固定する ├── condition フィールドを使用してサブチャートをオプションにする ├── 同じサブチャートの複数インスタンスには alias を使用する └── 変更後に helm dependency update を実行する -
ドキュメント付きの values.yaml を生成します
- すべての値に目的と型を説明するインラインコメントを付けます
- 開発に機能する適切なデフォルト設定
- オーバーライドしやすい構造 (可能な限りフラットに、論理的な場合にのみネスト)
- ハードコードされたクラスター固有の値 (イメージレジストリ、ドメイン、ストレージクラス) は含めません
-
検証します
python3 scripts/chart_analyzer.py mychart/ helm lint mychart/ helm template mychart/ --debug
/helm:review — チャート分析
-
チャート構造をチェックします
チェック 重大度 修正 _helpers.tpl の欠落 高 共通のラベルとセレクター用のヘルパーを作成する NOTES.txt がない 中 インストール後の手順を追加する .helmignore がない 低 .git、CI ファイル、テストを除外するために作成する Chart.yaml フィールドの欠落 中 description、appVersion、maintainers を追加する テンプレート内のハードコードされた値 高 デフォルト値とともに values.yaml に抽出する -
テンプレートの品質をチェックします
チェック 重大度 修正 標準ラベルの欠落 高 _helpers.tpl を介して app.kubernetes.io/*ラベルを使用するリソースリクエスト/リミットがない 致命的 values.yaml にデフォルト値を含むリソースセクションを追加する ハードコードされたイメージタグ 高 {{ .Values.image.repository }}:{{ .Values.image.tag }}を使用するimagePullPolicy がない 中 IfNotPresentをデフォルトとし、オーバーライド可能にするliveness/readiness プローブの欠落 高 設定可能なパスとポートを持つプローブを追加する Pod アンチアフィニティがない 中 HA のために優先的なアンチアフィニティを追加する 重複するテンプレートコード 中 _helpers.tpl の名前付きテンプレートに抽出する -
values.yaml の品質をチェックします
python3 scripts/values_validator.py mychart/values.yaml -
レビューレポートを生成します
HELM CHART REVIEW — [チャート名] 日付: [タイムスタンプ] CRITICAL: [カウント] HIGH: [カウント] MEDIUM: [カウント] LOW: [カウント] [修正推奨事項を含む詳細な所見]
/helm:security — セキュリティ監査
-
Pod セキュリティ監査
チェック 重大度 修正 securityContext がない 致命的 runAsNonRoot、readOnlyRootFilesystem を追加する root で実行されている 致命的 runAsNonRoot: true、runAsUser: 1000を設定する書き込み可能なルートファイルシステム 高 readOnlyRootFilesystem: true+ tmp 用の emptyDir を設定するすべての機能が保持されている 高 ALL をドロップし、必要な特定の機能のみを追加する 特権コンテナ 致命的 privileged: falseを設定し、特定の機能を使用するseccomp プロファイルがない 中 seccompP
(原文がここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Helm Chart Builder
Production-grade Helm charts. Sensible defaults. Secure by design. No cargo-culting.
Opinionated Helm workflow that turns ad-hoc Kubernetes manifests into maintainable, testable, reusable charts. Covers chart structure, values design, template patterns, dependency management, and security hardening.
Not a Helm tutorial — a set of concrete decisions about how to build charts that operators trust and developers don't fight.
Slash Commands
| Command | What it does |
|---|---|
/helm:create |
Scaffold a production-ready Helm chart with best-practice structure |
/helm:review |
Analyze an existing chart for issues — missing labels, hardcoded values, template anti-patterns |
/helm:security |
Audit chart for security issues — RBAC, network policies, pod security, secrets handling |
When This Skill Activates
Recognize these patterns from the user:
- "Create a Helm chart for this service"
- "Review my Helm chart"
- "Is this chart secure?"
- "Design a values.yaml"
- "Add a subchart dependency"
- "Set up helm tests"
- "Helm best practices for [workload type]"
- Any request involving: Helm chart, values.yaml, Chart.yaml, templates, helpers, _helpers.tpl, subcharts, helm lint, helm test
If the user has a Helm chart or wants to package Kubernetes resources → this skill applies.
Workflow
/helm:create — Chart Scaffolding
-
Identify workload type
- Web service (Deployment + Service + Ingress)
- Worker (Deployment, no Service)
- CronJob (CronJob + ServiceAccount)
- Stateful service (StatefulSet + PVC + Headless Service)
- Library chart (no templates, only helpers)
-
Scaffold chart structure
mychart/ ├── Chart.yaml # Chart metadata and dependencies ├── values.yaml # Default configuration ├── values.schema.json # Optional: JSON Schema for values validation ├── .helmignore # Files to exclude from packaging ├── templates/ │ ├── _helpers.tpl # Named templates and helper functions │ ├── deployment.yaml # Workload resource │ ├── service.yaml # Service exposure │ ├── ingress.yaml # Ingress (if applicable) │ ├── serviceaccount.yaml # ServiceAccount │ ├── hpa.yaml # HorizontalPodAutoscaler │ ├── pdb.yaml # PodDisruptionBudget │ ├── networkpolicy.yaml # NetworkPolicy │ ├── configmap.yaml # ConfigMap (if needed) │ ├── secret.yaml # Secret (if needed) │ ├── NOTES.txt # Post-install usage instructions │ └── tests/ │ └── test-connection.yaml └── charts/ # Subcharts (dependencies) -
Apply Chart.yaml best practices
METADATA ├── apiVersion: v2 (Helm 3 only — never v1) ├── name: matches directory name exactly ├── version: semver (chart version, not app version) ├── appVersion: application version string ├── description: one-line summary of what the chart deploys └── type: application (or library for shared helpers) DEPENDENCIES ├── Pin dependency versions with ~X.Y.Z (patch-level float) ├── Use condition field to make subcharts optional ├── Use alias for multiple instances of same subchart └── Run helm dependency update after changes -
Generate values.yaml with documentation
- Every value has an inline comment explaining purpose and type
- Sensible defaults that work for development
- Override-friendly structure (flat where possible, nested only when logical)
- No hardcoded cluster-specific values (image registry, domain, storage class)
-
Validate
python3 scripts/chart_analyzer.py mychart/ helm lint mychart/ helm template mychart/ --debug
/helm:review — Chart Analysis
-
Check chart structure
Check Severity Fix Missing _helpers.tpl High Create helpers for common labels and selectors No NOTES.txt Medium Add post-install instructions No .helmignore Low Create one to exclude .git, CI files, tests Missing Chart.yaml fields Medium Add description, appVersion, maintainers Hardcoded values in templates High Extract to values.yaml with defaults -
Check template quality
Check Severity Fix Missing standard labels High Use app.kubernetes.io/*labels via _helpers.tplNo resource requests/limits Critical Add resources section with defaults in values.yaml Hardcoded image tag High Use {{ .Values.image.repository }}:{{ .Values.image.tag }}No imagePullPolicy Medium Default to IfNotPresent, overridableMissing liveness/readiness probes High Add probes with configurable paths and ports No pod anti-affinity Medium Add preferred anti-affinity for HA Duplicate template code Medium Extract into named templates in _helpers.tpl -
Check values.yaml quality
python3 scripts/values_validator.py mychart/values.yaml -
Generate review report
HELM CHART REVIEW — [chart name] Date: [timestamp] CRITICAL: [count] HIGH: [count] MEDIUM: [count] LOW: [count] [Detailed findings with fix recommendations]
/helm:security — Security Audit
-
Pod security audit
Check Severity Fix No securityContext Critical Add runAsNonRoot, readOnlyRootFilesystem Running as root Critical Set runAsNonRoot: true,runAsUser: 1000Writable root filesystem High Set readOnlyRootFilesystem: true+ emptyDir for tmpAll capabilities retained High Drop ALL, add only specific needed caps Privileged container Critical Set privileged: false, use specific capabilitiesNo seccomp profile Medium Set seccompProfile.type: RuntimeDefaultallowPrivilegeEscalation true High Set allowPrivilegeEscalation: false -
RBAC audit
Check Severity Fix No ServiceAccount Medium Create dedicated SA, don't use default automountServiceAccountToken true Medium Set to false unless pod needs K8s API access ClusterRole instead of Role Medium Use namespace-scoped Role unless cluster-wide needed Wildcard permissions Critical Use specific resource names and verbs No RBAC at all Low Acceptable if pod doesn't need K8s API access -
Network and secrets audit
Check Severity Fix No NetworkPolicy Medium Add default-deny ingress + explicit allow rules Secrets in values.yaml Critical Use external secrets operator or sealed-secrets No PodDisruptionBudget Medium Add PDB with minAvailable for HA workloads hostNetwork: true High Remove unless absolutely required (e.g., CNI plugin) hostPID or hostIPC Critical Never use in application charts -
Generate security report
SECURITY AUDIT — [chart name] Date: [timestamp] CRITICAL: [count] HIGH: [count] MEDIUM: [count] LOW: [count] [Detailed findings with remediation steps]
Tooling
scripts/chart_analyzer.py
CLI utility for static analysis of Helm chart directories.
Features:
- Chart structure validation (required files, directory layout)
- Template anti-pattern detection (hardcoded values, missing labels, no resource limits)
- Chart.yaml metadata checks
- Standard labels verification (app.kubernetes.io/*)
- Security baseline checks
- JSON and text output
Usage:
# Analyze a chart directory
python3 scripts/chart_analyzer.py mychart/
# JSON output
python3 scripts/chart_analyzer.py mychart/ --output json
# Security-focused analysis
python3 scripts/chart_analyzer.py mychart/ --security
scripts/values_validator.py
CLI utility for validating values.yaml against best practices.
Features:
- Documentation coverage (inline comments)
- Type consistency checks
- Hardcoded secrets detection
- Default value quality analysis
- Structure depth analysis
- Naming convention validation
- JSON and text output
Usage:
# Validate values.yaml
python3 scripts/values_validator.py values.yaml
# JSON output
python3 scripts/values_validator.py values.yaml --output json
# Strict mode (fail on warnings)
python3 scripts/values_validator.py values.yaml --strict
Template Patterns
Pattern 1: Standard Labels (_helpers.tpl)
{{/*
Common labels for all resources.
*/}}
{{- define "mychart.labels" -}}
helm.sh/chart: {{ include "mychart.chart" . }}
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels (subset of common labels — must be immutable).
*/}}
{{- define "mychart.selectorLabels" -}}
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
Pattern 2: Conditional Resources
{{- if .Values.ingress.enabled -}}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: {{ include "mychart.fullname" . }}
labels:
{{- include "mychart.labels" . | nindent 4 }}
{{- with .Values.ingress.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
{{- if .Values.ingress.tls }}
tls:
{{- range .Values.ingress.tls }}
- hosts:
{{- range .hosts }}
- {{ . | quote }}
{{- end }}
secretName: {{ .secretName }}
{{- end }}
{{- end }}
rules:
{{- range .Values.ingress.hosts }}
- host: {{ .host | quote }}
http:
paths:
{{- range .paths }}
- path: {{ .path }}
pathType: {{ .pathType }}
backend:
service:
name: {{ include "mychart.fullname" $ }}
port:
number: {{ $.Values.service.port }}
{{- end }}
{{- end }}
{{- end }}
Pattern 3: Security-Hardened Pod Spec
spec:
serviceAccountName: {{ include "mychart.serviceAccountName" . }}
automountServiceAccountToken: false
securityContext:
runAsNonRoot: true
runAsUser: 1000
fsGroup: 1000
seccompProfile:
type: RuntimeDefault
containers:
- name: {{ .Chart.Name }}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
resources:
{{- toYaml .Values.resources | nindent 8 }}
volumeMounts:
- name: tmp
mountPath: /tmp
volumes:
- name: tmp
emptyDir: {}
Values Design Principles
STRUCTURE
├── Flat over nested (image.tag > container.spec.image.tag)
├── Group by resource (service.*, ingress.*, resources.*)
├── Use enabled: true/false for optional resources
├── Document every key with inline YAML comments
└── Provide sensible development defaults
NAMING
├── camelCase for keys (replicaCount, not replica_count)
├── Boolean keys: use adjectives (enabled, required) not verbs
├── Nested keys: max 3 levels deep
└── Match upstream conventions (image.repository, image.tag, image.pullPolicy)
ANTI-PATTERNS
├── Hardcoded cluster URLs or domains
├── Secrets as default values
├── Empty strings where null is correct
├── Deeply nested structures (>3 levels)
├── Undocumented values
└── values.yaml that doesn't work without overrides
Dependency Management
SUBCHARTS
├── Use Chart.yaml dependencies (not requirements.yaml — Helm 3)
├── Pin versions: version: ~15.x.x (patch float)
├── Use condition: to make optional: condition: postgresql.enabled
├── Use alias: for multiple instances of same chart
├── Override subchart values under subchart name key in values.yaml
└── Run helm dependency update before packaging
LIBRARY CHARTS
├── type: library in Chart.yaml — no templates directory
├── Export named templates only — no rendered resources
├── Use for shared labels, annotations, security contexts
└── Version independently from application charts
Proactive Triggers
Flag these without being asked:
- No _helpers.tpl → Create one. Every chart needs standard labels and fullname helpers.
- Hardcoded image tag in template → Extract to values.yaml. Tags must be overridable.
- No resource requests/limits → Add them. Pods without limits can starve the node.
- Running as root → Add securityContext. No exceptions for production charts.
- No NOTES.txt → Create one. Users need post-install instructions.
- Secrets in values.yaml defaults → Remove them. Use placeholders with comments explaining how to provide secrets.
- No liveness/readiness probes → Add them. Kubernetes needs to know if the pod is healthy.
- Missing app.kubernetes.io labels → Add via _helpers.tpl. Required for proper resource tracking.
Installation
One-liner (any tool)
git clone https://github.com/alirezarezvani/claude-skills.git
cp -r claude-skills/engineering/helm-chart-builder ~/.claude/skills/
Multi-tool install
./scripts/convert.sh --skill helm-chart-builder --tool codex|gemini|cursor|windsurf|openclaw
OpenClaw
clawhub install cs-helm-chart-builder
Related Skills
- senior-devops — Broader DevOps scope (CI/CD, IaC, monitoring). Complementary — use helm-chart-builder for chart-specific work, senior-devops for pipeline and infrastructure.
- docker-development — Container building. Complementary — docker-development builds the images, helm-chart-builder deploys them to Kubernetes.
- ci-cd-pipeline-builder — Pipeline construction. Complementary — helm-chart-builder defines the deployment artifact, ci-cd-pipeline-builder automates its delivery.
- senior-security — Application security. Complementary — helm-chart-builder covers Kubernetes-level security (RBAC, pod security), senior-security covers application-level threats.
同梱ファイル
※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。
- 📄 SKILL.md (15,439 bytes)
- 📎 references/chart-patterns.md (11,818 bytes)
- 📎 references/values-design.md (9,736 bytes)
- 📎 scripts/chart_analyzer.py (20,022 bytes)
- 📎 scripts/values_validator.py (14,524 bytes)