Helmのイメージ設定パターンを検証する
Helm values.yamlのimage.repository、image.tag、image.pullPolicy、imagePullSecrets設定をKubernetes規約に基づいてチェックします。
Basic Configuration
詳細な説明
Helmチャートのイメージ設定
Helmチャートのvalues.yamlのimageセクションは最も重要な設定の1つです。ここの設定が間違っていると、Podの起動に失敗するか、予期しないバージョンをプルする可能性があります。
正しいパターン
image:
repository: my-registry.io/my-app
pullPolicy: IfNotPresent
tag: "2.1.0"
imagePullSecrets:
- name: my-registry-secret
バリデーターがチェックする項目
| フィールド | 期待される型 | 有効な値 |
|---|---|---|
image.repository |
文字列 | 有効なコンテナイメージ参照 |
image.tag |
文字列 | 特定のバージョン("latest"は避ける) |
image.pullPolicy |
文字列 | Always、IfNotPresent、Never |
imagePullSecrets |
配列 | シークレット名オブジェクトのリスト |
よくあるアンチパターン
タグの欠落(latestがデフォルト):
image:
repository: nginx
# tagが指定されていない - :latestがデフォルト
クォートなしの数値タグ:
image:
tag: 1.25 # YAMLはこれを文字列"1.25"ではなく数値1.25として解析
pullPolicyの大文字小文字間違い:
image:
pullPolicy: always # "Always"(大文字A)でなければならない
ベストプラクティス
- YAMLの型変換を防ぐため、
tag値は必ずクォートする(1.0ではなく"1.0") - プルトラフィックを削減するため、本番環境では
IfNotPresentを使用 - 開発中やミュータブルタグ使用時のみ
Alwaysを使用 - プライベートレジストリ使用時は
imagePullSecretsを定義
ユースケース
プライベートクラスターへのデプロイ前にイメージ設定を検証。不正なpullPolicyやimagePullSecretsの欠落はImagePullBackOffエラーを引き起こします。