confest@コード規約違反¶
はじめに¶
本サイトにつきまして、以下をご認識のほど宜しくお願いいたします。
01. confestの仕組み¶
検出項目¶
Regoのユーザー定義のポリシーに基づいて、様々なツールの設定ファイルのコード規約違反を検証する。
自由にコード規約を定義できる。
一方でビルトインのコード規約はなく、ユーザーがRegoで規約を実装しないといけない。
セットアップ¶
インストール¶
▼ brewリポジトリから¶
$ brew install conftest
コード規約¶
重要度レベル¶
▼ deny¶
コード規約に違反した場合に、終了コード 1
を出力する。
package main
deny[msg] {
input.kind == "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot
msg := "Containers must not run as root"
}
▼ violation¶
コード規約に違反した場合に、終了コード 0
を出力する。
package main
violation[msg] {
input.kind == "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot
msg := "Containers must not run as root"
}
コマンド¶
test¶
▼ testとは¶
設定ファイルを検査する。
▼ -p¶
Regoファイルのあるディレクトリ名を設定する。
$ conftest test deployment.yaml -p ./policies
FAIL - deployment.yaml - Containers must not run as root
FAIL - deployment.yaml - Containers must provide app label for pod selectors
2 tests, 0 passed, 0 warnings, 2 failures, 0 exceptions