必須フィールドが欠落したマニフェスト

Kubernetesマニフェストに3つの必須トップレベルフィールド(apiVersion、kind、metadata.name)が欠落していることを検出します。これらのフィールドはすべてのリソースに必須です。

Structure

詳細な説明

3つの必須フィールド

すべてのKubernetesリソースにはapiVersionkindmetadata.nameの3つのトップレベルフィールドが必要です。これらがないと、Kubernetes APIサーバーはマニフェストを完全に拒否します。

必須フィールドが欠落した例

metadata:
  labels:
    app: broken
spec:
  replicas: 1
  template:
    spec:
      containers:
        - name: app
          image: myapp:1.0

バリデーターが検出する問題

  • エラー: 必須フィールド 'apiVersion' が欠落
  • エラー: 必須フィールド 'kind' が欠落

必須フィールドリファレンス

フィールド 目的
apiVersion APIグループとバージョンの識別 apps/v1v1batch/v1
kind リソースタイプの指定 DeploymentServiceConfigMap
metadata.name ネームスペース内の一意識別子 my-appredis-primary

必須フィールドが欠落する一般的な原因

  1. コピー&ペーストエラー: マニフェストの先頭を誤って切り取る
  2. テンプレートレンダリングの問題: HelmやKustomizeが値を注入しない
  3. YAMLマージの問題: 不正なYAMLアンカーやオーバーライド
  4. ドキュメントのスニペット: チュートリアルからの不完全な例

命名規則

metadata.nameフィールドはDNSサブドメイン命名規則に従う必要があります:

  • 小文字英数字、ハイフン、ドット
  • 最大253文字
  • 英数字で開始・終了

ユースケース

CI/CDパイプラインに到達する前に不完全なマニフェストをキャッチする。テンプレートからマニフェストを構築したり、マルチリソース設定を組み立てる際に有用。

試してみる — K8s Manifest Validator

フルツールを開く