【構成管理ファイルのテスト】conftestの使い方

構成管理ファイルのテストができる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が存在します"
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です