LoginSignup
1
0

More than 5 years have passed since last update.

copperでラベルとネームスペースvalidation

Posted at

Kubernetesのマニフェストのテストツールを調べてみた - Qiitaで紹介されているCopperを利用してみた。
コメントラインをドキュメント通りやってもシンタックスエラーがでたり、上記ページでも書かれているがすこし実装が怪しい。簡単なvalidationに用いるくらいならとりあえず便利かも。以下のユースケースでのexampleを考えてみた。

  • リソース管理のために、ラベルづけを強制したい
    • ただし以下の例ではyamlのトップレベルのlabel確認しかできていないためDeploymentのpodのlabelが確認できていない、、、。良い方法ないものか。
    • 一旦、ないよりかはましという感じで使ってみるかなあ
  • namespace指定を強制したい
    • 全種類のリソースを確認するので、ネームスペースで分離されないリソースは例外として外す必要がある
    • とりあえず以下の例ではClusterRoleBindingだけ外しておいた

rule.cop

rule existLabel ensure {
   fetch("$.metadata.labels['app']").count == 1
}

rule existNamespace ensure {
   fetch("$.metadata['namespace']").count == 1
   or
   fetch("$[?(@['kind'] == 'ClusterRoleBinding')]").count == 1
}
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0