← Katalog
E I A C

Conftest

SDLC / Policy-as-Code

Testy konfiguracji (YAML/JSON/HCL) regułami Rego — policy-as-code w CI.

★ 3200 Apache-2.0 #sdlc#policy-as-code#rego#testing

Conftest pozwala pisać testy względem ustrukturyzowanych plików konfiguracyjnych — manifestów Kubernetes, planów Terraform, Dockerfile, YAML/JSON/HCL — przy użyciu języka Rego z Open Policy Agent. Reguły trzymasz w repo i uruchamiasz jako krok CI, dzięki czemu zgodność konfiguracji jest deterministyczną bramką, a nie audytem po wdrożeniu.

Kiedy używać

  • Chcesz egzekwować własne reguły na manifestach/IaC w pipeline (np. zakaz :latest, wymagane labelki, limity).
  • Wolisz Rego i ekosystem OPA, ale potrzebujesz prostego CLI do plików, nie serwera polityk.
  • Standaryzujesz bramki konfiguracji w wielu repozytoriach.

Przykład użycia

# policy/deployment.rego
package main

deny contains msg if {
  input.kind == "Deployment"
  not input.spec.template.spec.securityContext.runAsNonRoot
  msg := "kontener musi działać jako non-root"
}
conftest test k8s/ --policy policy/      # bramka w CI

Warto wiedzieć

  • Ten sam język (Rego) co OPA i egzekwowanie w klastrze przez OPA Gatekeeper — statycznie w CI, dynamicznie w klastrze.
  • Uzupełnia skanery jak Checkov/Trivy o Twoje własne, dziedzinowe reguły.