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エラーを引き起こします。

試してみる — Helm Values Validator

フルツールを開く