Helmチャートでは、values.yaml ファイルを使って、テンプレートに渡す設定値を一元管理できます。
このファイルをカスタマイズすることで、「開発用」「本番用」といった環境ごとの差分管理がとても簡単になります。
ここでは values.yaml の基本構造と、カスタマイズ方法について見ていきましょう。
🔧 values.yamlの役割
values.yaml は Helmチャートの「設定ファイル」です。
Deployment や Service などのテンプレートファイル内で .Values.xxx として参照されます。
# values.yaml の例
replicaCount: 2
image:
repository: nginx
tag: "1.25"
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80これをテンプレートで使うと、たとえば以下のようになります:
spec:
replicas: {{ .Values.replicaCount }}
containers:
- image: {{ .Values.image.repository }}:{{ .Values.image.tag }}🖍️ カスタマイズ方法1:values.yaml を直接編集する
チャートを使う前に、values.yaml を直接書き換える方法です。
helm install myapp ./mychartこのとき mychart/values.yaml の内容が自動で適用されます。
📂 カスタマイズ方法2:別ファイルを用意して環境ごとに切り替え
環境ごとに設定を分けたい場合は、複数の values ファイルを用意しましょう。
例:
values/
├── dev.yaml
├── staging.yaml
└── production.yaml使うときは -f オプションで指定します。
helm install myapp ./mychart -f values/dev.yaml
helm upgrade myapp ./mychart -f values/production.yamlこれにより、「環境ごとの設定ファイル切り替え」が簡単にできます。
✍️ カスタマイズ方法3:コマンドラインで一部だけ上書き
少しだけ設定を変えたいときは --set オプションが便利です。
helm install myapp ./mychart \
--set replicaCount=3 \
--set image.tag="1.26"ただし複雑になると可読性が下がるので、長い設定は YAMLファイルで管理するのがオススメです。
✅ よく使うカスタマイズ例
| 用途 | values.yaml の項目例 |
|---|---|
| コンテナイメージの指定 | image.repository, image.tag |
| Pod数の変更 | replicaCount |
| Serviceの公開設定 | service.type, service.port |
| 環境変数の指定 | env: セクションで定義 |
| リソース制限 | resources.requests, resources.limits |
| 永続ボリューム設定 | persistence.enabled, persistence.storageClass など |
📘 補足:値のデフォルトとオーバーライド
Helmは以下のように設定値を探して適用します(優先順位の高い順):
--setオプションの値-fで指定した values ファイルの値- チャートに含まれる
values.yamlのデフォルト値
これにより、必要な部分だけ柔軟に上書きできます。
🔚 まとめ
values.yamlは Helmチャートの設定集- 環境ごとに YAMLファイルを分けると管理しやすい
--setや-fを使って柔軟にオーバーライドできる- 本番運用では Git で管理することも多い
