문법 다음의 조직 기준
설정 파일의 문법이 맞더라도 조직에서 요구하는 조건을 충족하지 않을 수 있다. Conftest는 구조화된 입력을 정책으로 평가한다. 특정 필드가 있는지와 값이 허용 범위에 있는지 같은 조건을 코드로 표현해 설정 검사의 기준으로 삼는 방식이다.
여러 형식에 같은 접근
Kubernetes에만 한정하지 않고 Terraform과 파이프라인 정의 등 여러 종류의 설정을 다룬다. YAML과 JSON, TOML과 HCL 같은 형식을 입력으로 처리할 수 있다. 정책에서는 거부와 경고 등의 결과를 정의하며 평가할 정책 디렉터리와 네임스페이스를 선택할 수 있다.
정책 자체도 검증하기
검사 정책을 잘못 작성하면 올바른 설정을 거부하거나 잘못된 설정을 통과시킬 수 있다. Conftest는 정책의 단위 테스트를 실행하는 검증 명령을 제공한다. 설정이 정책을 통과했는지와 정책이 의도대로 작성됐는지를 따로 확인하는 흐름이며 실제 시스템 실행 검증을 대신하지는 않는다.
관련 문서
Kube-linter / Yamllint / Ratify / Kyverno / Actionlint