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 で管理することも多い