YAML/JSONをチェックできるツール
チェックする内容はOpen Policy Agentの規定する言語Regoで記述
- Open Policy Agent
- Open Policy Agent | Policy Language
- datalog inspiredらしい
k8sのマニフェストに使われる事例が多いが機能としては汎用的
ルールの例
package main
deny[msg] {
input.kind = "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot = true
msg = "Containers must not run as root"
}
deny[msg] {
input.kind = "Deployment"
not input.spec.selector.matchLabels.app
msg = "Containers must provide app label for pod selectors"
}
2020/04/27追記
複数ファイルを与えてチェックもできる
conftest test --policy ./policy --input yaml ./manifests/* --combine
データ構造に問い合わせて値をチェック
値の範囲とかの制約はかける?