構成管理ファイルのテストができるconftestについて使い方を紹介します!
また、ほぼ自分の備忘録のために各構成ファイルで見ておくと良いであろうルールも載せておきます。
導入
$ brew install conftest
Macであればこれだけ!
実行方法
ひとまず動かし方のサンプルとしてごく簡単な例で解説します。
まずはテスト対象のファイルです。
key: value
次にテストの内容を記載するpolicyファイルです。
package main
deny[msg] {
not input.key == "value"
msg := "keyにvalueが設定されていません"
}
テストを実行します
$ conftest test sample.yaml -p sample.rego
1 test, 1 passed, 0 warnings, 0 failures, 0 exceptions
Kubernetes向けポリシー
preStopを強制する
package main
deny[msg] {
input.kind == "Deployment"
container := input.spec.template.spec.containers[_]
not container.lifecycle.preStop
msg := "preStopが定義されていないcontainerが存在します"
}