コンテンツにスキップ

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