はじめに 今日のソフトウェア開発においてユニットテストの重要性に関しては今更語る必要もないと思います。IaCの隆盛によってコード化されたインフラもテストしたいという需要は当然のように発生します。 そんな状況を助けてくれるツールがconftestです。 conftestはyaml, JSON, xml, dockerfile, ini, etc...etc.. 様々なフォーマットに対応しており、それらにユニットテストを書くことが可能となります。また、k8s固有の技術ではないのでこれらのファイルフォーマットの設定ファイルに広く適用することができます。 conftestは rego言語でpolicyという単位でルールを記述していき、通常のユニットテストツールのようにルールに抵触した場合にエラーを返します。 これによって設定不備をCIの自動テストの段階で検出することができます。 Policyの例