基本的なWebアプリのvalues.yamlを検証する

イメージ、サービス、Ingress、リソース設定を含むWebアプリケーション用の標準的なHelm values.yamlを検証します。最も一般的なチャートパターンをカバーします。

Basic Configuration

詳細な説明

標準的なWebアプリケーションの値

最も一般的なHelmチャートパターンは、イメージ、Service、オプションのIngress、リソース制限を持つシンプルなWebアプリケーションデプロイメントです。バリデーターは各セクションがHelm規約に従っているかチェックします。

values.yamlの例

replicaCount: 1

image:
  repository: nginx
  pullPolicy: IfNotPresent
  tag: "1.25.0"

service:
  type: ClusterIP
  port: 80

ingress:
  enabled: false
  className: ""
  annotations: {}
  hosts:
    - host: chart-example.local
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls: []

resources:
  limits:
    cpu: 100m
    memory: 128Mi
  requests:
    cpu: 100m
    memory: 128Mi

検証される項目

  1. イメージセクション: image.repositoryは文字列、image.tagは空や"latest"でないこと、image.pullPolicyはAlways、IfNotPresent、Neverのいずれかであること。
  2. サービスセクション: service.typeは有効なKubernetesサービスタイプ(ClusterIP、NodePort、LoadBalancer、ExternalName)かチェック。
  3. Ingressセクション: 有効な場合、ホストパスに有効なpathType値(ImplementationSpecific、Exact、Prefix)が必要。
  4. リソースセクション: limitsrequestsの両方が存在すべき。一方のみの定義はフラグされます。

よくある問題

  • image.tag: latestの使用(警告:本番環境には非推奨)
  • resources.limits定義時にresources.requestsが欠落
  • "Headless"のような無効なservice.type値(clusterIP: NoneのClusterIPを使用すべき)

ユースケース

初回デプロイ前に新しく作成したHelmチャート('helm create'から)をレビュー。デフォルト値がKubernetesとHelmのベストプラクティスに従っていることを確認します。

試してみる — Helm Values Validator

フルツールを開く