必須フィールドが欠落したマニフェスト
Kubernetesマニフェストに3つの必須トップレベルフィールド(apiVersion、kind、metadata.name)が欠落していることを検出します。これらのフィールドはすべてのリソースに必須です。
Structure
詳細な説明
3つの必須フィールド
すべてのKubernetesリソースにはapiVersion、kind、metadata.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/v1、v1、batch/v1 |
kind |
リソースタイプの指定 | Deployment、Service、ConfigMap |
metadata.name |
ネームスペース内の一意識別子 | my-app、redis-primary |
必須フィールドが欠落する一般的な原因
- コピー&ペーストエラー: マニフェストの先頭を誤って切り取る
- テンプレートレンダリングの問題: HelmやKustomizeが値を注入しない
- YAMLマージの問題: 不正なYAMLアンカーやオーバーライド
- ドキュメントのスニペット: チュートリアルからの不完全な例
命名規則
metadata.nameフィールドはDNSサブドメイン命名規則に従う必要があります:
- 小文字英数字、ハイフン、ドット
- 最大253文字
- 英数字で開始・終了
ユースケース
CI/CDパイプラインに到達する前に不完全なマニフェストをキャッチする。テンプレートからマニフェストを構築したり、マルチリソース設定を組み立てる際に有用。