Agent Skills by ALSEL
汎用DevOps・インフラ⭐ リポ 0品質スコア 60/100

helm-chart-builder

Claude Code、Codex、Gemini CLI、Cursor、OpenClawのためのHelmチャート開発エージェントスキルおよびプラグインです。チャートのスキャフォルディング、values設計、テンプレートパターン、依存関係管理、セキュリティ強化、チャートテストに対応しています。ユーザーがHelmチャートの作成や改善、values.yamlファイルの設計、テンプレートヘルパーの実装、チャートセキュリティの監査(RBAC、ネットワークポリシー、Podセキュリティ)、サブチャートの管理、またはhelm lintやテストの実行を求めている場合に使用します。

description の原文を見る

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.

SKILL.md 本文

Helm Chart Builder

本番環境対応のHelm chart。合理的なデフォルト。セキュアバイデザイン。不要な模倣は不要。

アドホックなKubernetesマニフェストをメンテナンス可能でテスト可能、再利用可能なchartに変える、意見を持ったHelmワークフロー。chart構造、values設計、templateパターン、依存関係管理、セキュリティ強化をカバーします。

Helm チュートリアルではなく、オペレーターが信頼でき、開発者が戦わなくて済むchartを構築する方法についての具体的な判断の集合です。


スラッシュコマンド

コマンド機能
/helm:createベストプラクティスの構造を持つ本番環境対応のHelm chartをスキャフォルディング
/helm:review既存のchartを分析 — 欠落ラベル、ハードコードされた値、templateのアンチパターンを検出
/helm:securitychart のセキュリティ問題を監査 — RBAC、ネットワークポリシー、ポッドセキュリティ、シークレット処理

このスキルが起動する場面

ユーザーからこれらのパターンを認識してください:

  • 「このサービスのHelm chartを作成して」
  • 「私のHelm chartをレビューして」
  • 「このchartはセキュアですか?」
  • 「values.yamlを設計して」
  • 「subchart依存関係を追加して」
  • 「helmテストをセットアップして」
  • 「[ワークロードタイプ]のHelm ベストプラクティス」
  • Helm chart、values.yaml、Chart.yaml、templates、helpers、_helpers.tpl、subcharts、helm lint、helm testに関わるリクエスト

ユーザーがHelm chartを持っているか、Kubernetesリソースをパッケージ化したい場合 → このスキルが適用されます。


ワークフロー

/helm:create — Chart スキャフォルディング

  1. ワークロードタイプを識別

    • Webサービス(Deployment + Service + Ingress)
    • Worker(Deployment、Serviceなし)
    • CronJob(CronJob + ServiceAccount)
    • ステートフルサービス(StatefulSet + PVC + Headless Service)
    • Library chart(templatesなし、ヘルパーのみ)
  2. chart構造をスキャフォルディング

    mychart/
    ├── Chart.yaml              # Chart メタデータと依存関係
    ├── values.yaml             # デフォルト設定
    ├── values.schema.json      # オプション:values検証用JSONスキーマ
    ├── .helmignore             # パッケージから除外するファイル
    ├── templates/
    │   ├── _helpers.tpl        # 名前付きtemplateとヘルパー関数
    │   ├── deployment.yaml     # ワークロードリソース
    │   ├── service.yaml        # Service公開
    │   ├── 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/                 # Subchart(依存関係)
    
  3. Chart.yaml ベストプラクティスを適用

    METADATA
    ├── apiVersion: v2 (Helm 3 のみ — v1は不可)
    ├── name: ディレクトリ名と正確に一致
    ├── version: semver (chartバージョン、appバージョンではない)
    ├── appVersion: アプリケーションバージョン文字列
    ├── description: chartが展開するものの一行要約
    └── type: application (共有ヘルパー用の library)
    
    DEPENDENCIES
    ├── 依存関係バージョンを ~X.Y.Z でピン止め(パッチレベルフロート)
    ├── condition フィールドを使用してsubchartをオプション化
    ├── alias を使用して同じsubchartの複数インスタンス化
    └── 変更後に helm dependency update を実行
    
  4. ドキュメント付きvalues.yamlを生成

    • すべての値には目的と型を説明するインラインコメントがあります
    • 開発で機能する合理的なデフォルト値
    • オーバーライドしやすい構造(可能な限りフラット、論理的な場合のみネストされたもの)
    • ハードコードされたクラスター固有の値がない(imageレジストリ、ドメイン、ストレージクラス)
  5. 検証

    python3 scripts/chart_analyzer.py mychart/
    helm lint mychart/
    helm template mychart/ --debug
    

/helm:review — Chart 分析

  1. chart構造をチェック

    チェック重大度修正方法
    _helpers.tpl がない共通ラベルとセレクタ用のヘルパーを作成
    NOTES.txt がないインストール後の指示を追加
    .helmignore がない.git、CI ファイル、テストを除外する
    Chart.yaml フィールドが欠落しているdescription、appVersion、maintainers を追加
    templateにハードコード値があるvalues.yaml にデフォルト値とともに抽出
  2. templateの品質をチェック

    チェック重大度修正方法
    標準ラベルがない_helpers.tpl で app.kubernetes.io/* ラベルを使用
    リソースリクエスト/リミットがない極度resources セクションにvalues.yaml でデフォルト値を追加
    imageタグがハードコード{{ .Values.image.repository }}:{{ .Values.image.tag }} を使用
    imagePullPolicy がないデフォルトで IfNotPresent に、オーバーライド可能
    liveness/readiness probeがないパスとポートを設定可能なprobeを追加
    ポッドアンチアフィニティがないHA 向けに推奨アンチアフィニティを追加
    templateコードが重複している_helpers.tpl の名前付きtemplateに抽出
  3. values.yaml の品質をチェック

    python3 scripts/values_validator.py mychart/values.yaml
    
  4. レビューレポートを生成

    HELM CHART REVIEW — [chart名]
    Date: [タイムスタンプ]
    
    CRITICAL: [数]
    HIGH:     [数]
    MEDIUM:   [数]
    LOW:      [数]
    
    [詳細な発見事項と修正推奨事項]
    

/helm:security — セキュリティ監査

  1. ポッドセキュリティ監査

    チェック重大度修正方法
    securityContext がない極度runAsNonRoot、readOnlyRootFilesystem を追加
    root として実行中極度runAsNonRoot: truerunAsUser: 1000 を設定
    書き込み可能なrootファイルシステムreadOnlyRootFilesystem: true + tmp用emptyDir を設定
    すべての capability が保持されているALL をドロップ、必要な特定の cap のみ追加
    特権コンテナ極度privileged: false を設定、特定の capability を使用
    seccomp profile がないseccompProfile.type: RuntimeDefault を設定
    allowPrivilegeEscalation が trueallowPrivilegeEscalation: false を設定
  2. RBAC 監査

    チェック重大度修正方法
    ServiceAccount がない専用 SA を作成、default を使用しない
    automountServiceAccountToken が truepod が K8s API アクセスを必要としない限り false に設定
    ClusterRole ではなく Role を使用クラスタワイドが必要でない限り namespace スコープ Role を使用
    ワイルドカード権限極度リソース名と verb を指定
    RBAC がないpod が K8s API アクセスを必要としない場合は許容可能
  3. ネットワークとシークレット監査

    チェック重大度修正方法
    NetworkPolicy がないdefault-deny ingress + 明示的な allow ルールを追加
    values.yaml にシークレット極度external secrets operator または sealed-secrets を使用
    PodDisruptionBudget がないHA ワークロード向けに minAvailable で PDB を追加
    hostNetwork: true絶対に必要でない限り削除(例:CNI プラグイン)
    hostPID または hostIPC極度アプリケーション chart では決して使用しない
  4. セキュリティレポートを生成

    SECURITY AUDIT — [chart名]
    Date: [タイムスタンプ]
    
    CRITICAL: [数]
    HIGH:     [数]
    MEDIUM:   [数]
    LOW:      [数]
    
    [詳細な発見事項と修復ステップ]
    

ツール

scripts/chart_analyzer.py

Helm chart ディレクトリの静的分析用 CLI ユーティリティ。

機能:

  • chart構造検証(必須ファイル、ディレクトリレイアウト)
  • Template アンチパターン検出(ハードコード値、欠落ラベル、リソースリミットなし)
  • Chart.yaml メタデータチェック
  • 標準ラベル検証(app.kubernetes.io/*)
  • セキュリティベースラインチェック
  • JSON およびテキスト出力

使用方法:

# chart ディレクトリを分析
python3 scripts/chart_analyzer.py mychart/

# JSON 出力
python3 scripts/chart_analyzer.py mychart/ --output json

# セキュリティ重視の分析
python3 scripts/chart_analyzer.py mychart/ --security

scripts/values_validator.py

values.yaml をベストプラクティスに対して検証する CLI ユーティリティ。

機能:

  • ドキュメント化カバレッジ(インラインコメント)
  • 型の一貫性チェック
  • ハードコードされたシークレット検出
  • デフォルト値の品質分析
  • 構造の深さ分析
  • 命名規則検証
  • JSON およびテキスト出力

使用方法:

# values.yaml を検証
python3 scripts/values_validator.py values.yaml

# JSON 出力
python3 scripts/values_validator.py values.yaml --output json

# 厳格モード(警告で失敗)
python3 scripts/values_validator.py values.yaml --strict

Template パターン

パターン 1:標準ラベル(_helpers.tpl)

{{/*
すべてのリソース用の共通ラベル。
*/}}
{{- 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 }}

{{/*
セレクタラベル(共通ラベルのサブセット  不変である必要があります)。
*/}}
{{- define "mychart.selectorLabels" -}}
app.kubernetes.io/name: {{ include "mychart.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}

パターン 2:条件付きリソース

{{- 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 }}

パターン 3:セキュリティ強化済みポッド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 設計原則

STRUCTURE
├── ネストより平坦(image.tag > container.spec.image.tag)
├── リソース単位でグループ化(service.*、ingress.*、resources.*)
├── オプションリソース向けに enabled: true/false を使用
├── すべてのキーをインライン YAML コメントでドキュメント化
└── 開発向けの合理的なデフォルト値を提供

NAMING
├── キーに camelCase を使用(replica_count ではなく replicaCount)
├── Boolean キー:verb ではなく形容詞を使用(enabled、required)
├── ネストされたキー:最大 3 レベルまで
└── アップストリーム規約に合致(image.repository、image.tag、image.pullPolicy)

ANTI-PATTERNS
├── ハードコードされたクラスター URL またはドメイン
├── デフォルト値としてのシークレット
├── null が正しい場所での空文字列
├── 深くネストされた構造(>3 レベル)
├── ドキュメント化されていない値
└── オーバーライドなしでは機能しない values.yaml

依存関係管理

SUBCHARTS
├── Chart.yaml の依存関係を使用(requirements.yaml ではない — Helm 3)
├── バージョンをピン止め:version: ~15.x.x(パッチフロート)
├── オプション化に condition: を使用:condition: postgresql.enabled
├── 同じ chart の複数インスタンスに alias: を使用
├── values.yaml の subchart 名キー下で subchart 値をオーバーライド
└── パッケージング前に helm dependency update を実行

LIBRARY CHARTS
├── Chart.yaml で type: library — templates ディレクトリなし
├── 名前付きtemplate のみをエクスポート — レンダリング済みリソースなし
├── 共有ラベル、アノテーション、securitycontext に使用
└── アプリケーション chart とは独立してバージョン管理

プロアクティブなトリガー

要求なしにこれらにフラグを立てます:

  • _helpers.tpl がない → 作成します。すべての chart に標準ラベルと fullname ヘルパーが必要です。
  • template にハードコードされたimage tag → values.yaml に抽出します。タグはオーバーライド可能である必要があります。
  • リソースリクエスト/リミットがない → 追加します。リミットなしのポッドはノードを枯渇させることができます。
  • root として実行中 → securityContext を追加します。本番環境 chart では例外はありません。
  • NOTES.txt がない → 作成します。ユーザーはインストール後の指示が必要です。
  • values.yaml デフォルトにシークレット → 削除します。プレースホルダーを使用し、シークレット提供方法を説明するコメントを追加します。
  • liveness/readiness probe がない → 追加します。Kubernetes がポッドが正常かどうかを知る必要があります。
  • app.kubernetes.io ラベルが欠落 → _helpers.tpl で追加します。適切なリソーストラッキングに必須です。

インストール

ワンライナー(任意のツール)

git clone https://github.com/alirezarezvani/claude-skills.git
cp -r claude-skills/engineering/helm-chart-builder ~/.claude/skills/

マルチツールインストール

./scripts/convert.sh --skill helm-chart-builder --tool codex|gemini|cursor|windsurf|openclaw

OpenClaw

clawhub install cs-helm-chart-builder

関連スキル

  • senior-devops — より広い DevOps スコープ(CI/CD、IaC、モニタリング)。補完的 — chart 固有の作業に helm-chart-builder を使用、パイプラインとインフラストラクチャに senior-devops を使用。
  • docker-development — コンテナビルド。補完的 — docker-development がイメージをビルド、helm-chart-builder がそれを Kubernetes に展開。
  • ci-cd-pipeline-builder — パイプライン構築。補完的 — helm-chart-builder がデプロイメント成果物を定義、ci-cd-pipeline-builder がその配信を自動化。
  • senior-security — アプリケーションセキュリティ。補完的 — helm-chart-builder は Kubernetes レベルのセキュリティ(RBAC、ポッドセキュリティ)をカバー、senior-security はアプリケーションレベルの脅威をカバー。

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
Boboegg
リポジトリ
Boboegg/ai-resources
ライセンス
MIT
最終更新
2026/4/3

Source: https://github.com/Boboegg/ai-resources / ライセンス: MIT

関連スキル

汎用DevOps・インフラ⭐ リポ 502

superpowers-streamer-cli

SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。

by rohanarun
汎用DevOps・インフラ⭐ リポ 493

catc-client-ops

Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。

by automateyournetwork
汎用DevOps・インフラ⭐ リポ 39,967

ci-cd-and-automation

CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。

by addyosmani
汎用DevOps・インフラ⭐ リポ 39,967

shipping-and-launch

本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。

by addyosmani
OpenAIDevOps・インフラ⭐ リポ 38,974

linear-release-setup

Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。

by novuhq
Anthropic ClaudeDevOps・インフラ⭐ リポ 2,159

tracking-application-response-times

API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。

by jeremylongshore
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: Boboegg · Boboegg/ai-resources · ライセンス: MIT