Skip to content
Latchkey

Conftest vs OPA: Policy as Code Comparados

Eles são relacionados, não rivais: ambos usam a linguagem Rego. OPA (Open Policy Agent) é um mecanismo de políticas de propósito geral, muitas vezes executado como serviço; Conftest é uma CLI construída sobre OPA para testar arquivos de configuração estruturados contra políticas Rego.

Uma dúvida frequente é usar Conftest ou OPA. Conftest envolve o mecanismo OPA para tornar um trabalho fácil: checar arquivos de configuração (YAML, JSON, Dockerfile, HCL e mais) contra Rego no CI. OPA é o mecanismo mais amplo que também lida com autorização em runtime. Veja como eles se relacionam.

ConftestOPA
O que éCLI para testar arquivos de configuraçãoMecanismo de políticas geral + biblioteca
LinguagemRegoRego
Uso principalChecagens de config em CI/CDAutorização em runtime + política
EntradasYAML/JSON/HCL/Dockerfile/etc.Qualquer dado JSON / queries de API
DeploymentExecutado como um passo de CLIServer, sidecar ou embutido
RelaçãoConstruído sobre OPABase do Conftest

Mecanismo vs wrapper de CLI

OPA é um mecanismo de políticas completo que você pode embutir em aplicações, executar como server para admission control (via Gatekeeper) ou autorização de API, e consultar em runtime. Conftest reduz isso a uma CLI amigável ao desenvolvedor: aponte-a para arquivos de configuração e políticas Rego, e ela passa ou falha. Se sua necessidade é checagem estática de arquivos no CI, Conftest é a escolha ergonômica.

Escolhendo por caso de uso

Use Conftest para bloquear pull requests: barre um manifesto do Kubernetes sem resource limits, um Dockerfile rodando como root ou Terraform com um bucket público. Use OPA quando você precisa de decisões de política em runtime, admission control de cluster ou um serviço de políticas reutilizável entre sistemas. O Rego que você escreve é portável entre eles.

No CI

Conftest se encaixa naturalmente como um gate fail-fast sobre arquivos de configuração; execute-o nos manifestos alterados em pull requests. Se você já executa OPA em outro lugar, compartilhar Rego entre a política de runtime e as checagens do Conftest no CI evita duplicar regras.

O veredito

Escolha Conftest para testar arquivos de configuração contra Rego no CI; escolha OPA (diretamente ou via Gatekeeper) quando você precisa de um mecanismo de políticas geral para autorização em runtime ou admission control. Eles compartilham Rego, então os investimentos são reaproveitados.

Guias relacionados