メモ置き場

kubevalメモ

  • Kubernetesマニフェストのバリデーションをおこなうツール
# マニフェストファイルを引数で指定して検証する
$ kubeval deployment.yaml
PASS - deployment.yaml contains a valid Deployment (nginx-deployment)

# --strictオプションで余分な属性も検証する
# kubectlは余分な属性をエラーにするため、常に--strictオプションは付けた方が良さそう
$ kubeval --strict deployment.yaml
WARN - deployment.yaml contains an invalid Deployment (nginx-deployment) - invalid-key: Additional property invalid-key is not allowed

# -v(--kubernetes-version)で検証に使用するKubernetesのバージョンを指定する。
# 指定できるバージョンは下記のリポジトリにあるもの(最近のバージョンは反映されていない?)
# https://github.com/instrumenta/kubernetes-json-schema
$ kubeval -v 1.17.0 --strict configmap.yaml
WARN - configmap.yaml contains an invalid ConfigMap (config) - immutable: Additional property immutable is not allowed
$ kubeval -v 1.18.0 --strict configmap.yaml
PASS - configmap.yaml contains a valid ConfigMap (config)

# 検証に利用するスキーマはKubernetesAPIから生成したものなので、CustomResourceDefinitionで定義したリソースの検証はできない
# --skip-kindsオプションでkindを指定して検証処理をスキップすることはできる

参考