ホーム
Kubernetes Helm チャート
DevOps&クラウドネイティブ ユーティリティ

Kubernetes Helm チャート (Chart.yaml & values.yaml) ジェネレーター

標準的なKubernetes Helm v3のChart.yaml、values.yaml、およびService、Ingress、リソース制限を備えたデプロイメントテンプレートを生成します。

100% クライアント側プライバシー
Helm v3 公式仕様準拠
プリセット:
チャート設定 & Values
Chart.yaml メタデータ
ワークロード&コンテナイメージ
ネットワーキング&サービス
リソース制限&HPA 自動スケーリング
セキュリティ堅牢化&ヘルスチェック
環境変数 (3)
1# Default values for web-api-service.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
4
5replicaCount: 3
6
7image:
8 repository: ghcr.io/org/api-service
9 pullPolicy: IfNotPresent
10 # Overrides the image tag whose default is the chart appVersion.
11 tag: "v1.4.2"
12
13imagePullSecrets: []
14nameOverride: ""
15fullnameOverride: ""
16
17serviceAccount:
18 # Specifies whether a service account should be created
19 create: true
20 # Automatically mount a ServiceAccount's API credentials?
21 automount: true
22 # Annotations to add to the service account
23 annotations: {}
24 # The name of the service account to use.
25 # If not set and create is true, a name is generated using the fullname template
26 name: ""
27
28podAnnotations: {}
29podLabels: {}
30
31podSecurityContext:
32 fsGroup: 2000
33
34securityContext:
35 capabilities:
36 drop:
37 - ALL
38 readOnlyRootFilesystem: true
39 runAsNonRoot: true
40 runAsUser: 1000
41
42service:
43 type: ClusterIP
44 port: 80
45 targetPort: 8080
46
47ingress:
48 enabled: true
49 className: "nginx"
50 annotations:
51 cert-manager.io/cluster-issuer: letsencrypt-prod
52 nginx.ingress.kubernetes.io/ssl-redirect: "true"
53 hosts:
54 - host: api.example.com
55 paths:
56 - path: /
57 pathType: ImplementationSpecific
58 tls:
59 - secretName: api-example-tls
60 hosts:
61 - api.example.com
62
63resources:
64 limits:
65 cpu: 500m
66 memory: 512Mi
67 requests:
68 cpu: 100m
69 memory: 128Mi
70
71autoscaling:
72 enabled: true
73 minReplicas: 2
74 maxReplicas: 10
75 targetCPUUtilizationPercentage: 80
76 targetMemoryUtilizationPercentage: 80
77
78livenessProbe:
79 httpGet:
80 path: /healthz
81 port: http
82 initialDelaySeconds: 15
83 periodSeconds: 20
84
85readinessProbe:
86 httpGet:
87 path: /ready
88 port: http
89 initialDelaySeconds: 5
90 periodSeconds: 10
91
92env:
93 - name: NODE_ENV
94 value: "production"
95 - name: PORT
96 value: "8080"
97 - name: LOG_LEVEL
98 value: "info"
99
100envFrom: []
101volumes: []
102volumeMounts: []
103nodeSelector: {}
104tolerations: []
105affinity: {}
チャート構造
web-api-service (0.1.0)
Helm v3 • 8 マニフェスト生成 • App 1.4.2
ワークロード & ネットワーク
3 Pods • ClusterIP
Port 80:8080 • Ingress: 有効
セキュリティ強化
100/100堅牢化完了
非ルート実行 • プローブ有効

100% クライアントサイド Helm 生成

社内インフラの秘密情報やクラスタ構成を外部サーバーに送信することなく、ブラウザ内で完結して Helm v3 マニフェストを生成します。

本番環境準拠のセキュアなデフォルト設定

非 root 実行、Linux 権限の最小化 (Drop ALL)、死活監視プローブ、リソース制限、HPA 自動スケーリング仕様を完全網羅。

Helm v3 テンプレート標準完全互換

_helpers.tpl による標準的な名前空間定義、DNS 制限 (63 文字) への対応、Ingress ルール、および helm lint / install 自動化スクリプトを出力します。

技術リファレンス&アーキテクチャガイド

Kubernetes Helm Chart (Chart.yaml & values.yaml) 生成ツール — リファレンスガイド

標準的なKubernetes Helm v3のChart.yaml、values.yaml、およびService、Ingress、リソース制限を備えたデプロイメントテンプレートを生成します。

主要パラメータ&設定項目

namestring

Kubernetes RFC 1123 DNSサブドメイン命名規則(英小文字、数字、ハイフン)に準拠したチャートパッケージ名。

初期値: my-app
apiVersionstring

HelmチャートのAPIスキーマバージョン。Helm v3では'v2'が必須であり、非推奨のHelm v2では'v1'が使用されていました。

初期値: v2
versionstring

セマンティックバージョニング(SemVer 2)に準拠したチャート自体のバージョン。テンプレートや値の変更時に更新します。

初期値: 0.1.0
appVersionstring

デプロイ対象のアプリケーションバイナリまたはコンテナイメージタグを表すバージョン文字列。

初期値: 1.0.0
replicaCountinteger

クラスタのワーカーノード全体にスケジューリングされるPodレプリカの目標数。

初期値: 2
image.repositorystring

コンテナレジストリのリポジトリパスおよびイメージ名(例: docker.io/library/nginx や gcr.io/project/service)。

初期値: nginx
service.typestring

Kubernetes Serviceの公開種別(ClusterIP: クラスタ内部限定、NodePort、LoadBalancer: クラウド外部IP付与)。

初期値: ClusterIP
resourcesobject

CPU(ミリコア単位)およびメモリ(Mi/Gi単位)に対する要求量(requests)と上限値(limits)の設定オブジェクト。

初期値: requests: { cpu: 100m, memory: 128Mi }, limits: { cpu: 500m, memory: 512Mi }

プロの活用テクニック&推奨設定

Lint検証とDry-Runによるテンプレート事前レンダリング

クラスタへの適用前に必ず 'helm lint ./my-chart' および 'helm template my-release ./my-chart --debug' を実行し、Kubernetes APIに干渉することなくGoテンプレートの構文エラーや変数展開の不整合を検出してください。

チャートのSemVerとアプリケーションバージョンの分離

Chart.yamlの 'version' と 'appVersion' は厳密に分離して運用してください。コンテナイメージが同じであっても、テンプレート構造やデフォルト値(values.yaml)を変更した場合はチャート側のパッチまたはマイナーバージョンを必ずインクリメントします。

OOMKillを防ぐリソースのRequestsとLimitsの明示的定義

values.yamlでリソース定義を省略してはなりません。適切なCPU/メモリのrequests設定はkube-schedulerによる適切なノード配置を保証し、limitsはメモリリーク発生時に同一ノード上の別コンテナへの影響波及を防ぎます。

Ingressアノテーションを活用したTLS証明書の自動発行

ingress.annotationsに 'cert-manager.io/cluster-issuer: letsencrypt-prod' を指定し、ingress.tlsホストを定義することで、cert-managerと連携したLet's Encrypt SSL/TLS証明書の自動プロビジョニングと自動更新が実現します。

よくあるトラブルと解決策

Helm install実行時に 'cannot re-use a name that is still in use' エラーが発生する

過去の失敗したインストールにより、該当ネームスペース内に孤立したHelmリリースのSecretが残存しています。冪等なデプロイを行うには 'helm upgrade --install <release-name> <chart>' を利用するか、'helm uninstall <release-name>' 後に 'kubectl delete secret -l name=<release-name>' で残存シークレットを削除してください。

アップグレード時にDeploymentのセレクターに関する 'field is immutable' エラーで拒否される

KubernetesのDeploymentにおける spec.selector ラベルは初回作成後に変更することができません。チャートのmatchLabelsテンプレートに 'app.kubernetes.io/name' などの不変識別子を使用しているか確認し、変更が必要な場合は既存のDeploymentマニフェストを削除してから再適用してください。

デプロイ直後にPodが CrashLoopBackOff または OOMKilled 状態になる

コンテナがメモリ制限を超過しているか、ヘルスチェックプローブに失敗しています。values.yamlの 'resources.limits.memory' を増量するとともに、livenessProbeやreadinessProbeの initialDelaySeconds(例: 15〜30秒)を調整してアプリケーションの起動時間を確保してください。

よくある質問 (FAQ)

Chart.yaml と values.yaml の根本的な役割の違いは何ですか?▼

Chart.yamlはチャート名、バージョン、依存関係などのメタデータを定義するパッケージ仕様書です。一方、values.yamlはtemplates/ディレクトリ内のGoテンプレートに注入される構成変数とデフォルト値を保持し、最終的なKubernetesマニフェストを動的生成するために使用されます。

Helm v3で Chart.yaml の apiVersion が v2 に指定される理由は何ですか?▼

Helm v3では、クラスタ側常駐コンポーネントであったTillerの完全廃止、requirements.yamlをChart.yamlのdependenciesフィールドへ統合する仕様変更、およびOCIレジストリ対応などのアーキテクチャ刷新が行われたため、スキーマバージョンとして'v2'が標準化されました。

パスワードやAPIトークンなどの機密情報はどのように管理すべきですか?▼

平文のパスワードをvalues.yamlに直接コミットすることは避けてください。External Secrets Operator(AWS Secrets ManagerやVault等と連携)、Sealed Secretsを導入するか、'existingSecret' パラメータを設けてクラスタ内に事前配備されたKubernetes Secretを参照する構成が推奨されます。

Helmでパラメータを上書きする際の優先順位はどうなっていますか?▼

優先順位は低い方から順に、values.yamlのデフォルト値 < コマンドラインで '-f / --values' に指定したカスタムファイル(複数指定時は後勝ち) < '--set' や '--set-string' で個別に指定したインライン引数(最優先)となります。

関連するおすすめ開発ツール

すべてのツール →
マルチステージ Dockerfile ジェネレーター (Node, Go, Python, Rust)開発ツール

Node.js、Golang、Python、Rust、Java向けの高セキュアで軽量なマルチステージ Dockerfile を生成。非rootユーザー設計とBuildKitキャッシュ最適化を完全網羅。

ツールを開く→
SQL DDL から Kysely TypeScript 型定義生成ツール開発ツール

PostgreSQL、MySQL、SQLiteのSQL DDLスキーマを解析し、完全な型安全性を備えたKysely向けTypeScript型定義とインターフェースを生成するための開発者向けリファレンス。

ツールを開く→
SQL DDL から MikroORM TypeScript エンティティ変換ジェネレーター開発ツール

SQL CREATE TABLE 定義を解析し、@Entity、@PrimaryKey、@Property、@Index、およびリレーション装飾子を備えた MikroORM エンティティクラスに変換します。

ツールを開く→
JSONからMongooseスキーマ&TypeScriptモデル生成ツール開発ツール

JSONペイロードからMongoDB Mongooseスキーマ、TypeScript型定義(Document・DTO)、ネストされたサブドキュメント、タイムスタンプを推論・自動生成します。

ツールを開く→
JSON to Yup バリデーションスキーマ生成ツール開発ツール

JSONサンプルを型安全なYupオブジェクト検証スキーマに変換し、yup.string()、yup.number()、yup.array()、必須ルールを自動生成します。

ツールを開く→
JSON から Joi オブジェクト検証スキーマ自動生成ガイド開発ツール

サンプル JSON データ構造から Joi.object()、Joi.string()、Joi.number()、Joi.array() などの制約を備えた Joi バリデーションスキーマを瞬時に自動生成します。

ツールを開く→