
Escreva testes contra dados de configuração estruturados usando a linguagem de consulta Rego do Open Policy Agent.
O Conftest ajuda você a escrever testes contra dados de configuração estruturados. Usando o Conftest, você pode escrever testes para sua configuração do Kubernetes, definições de pipeline do Tekton, código Terraform, configurações Serverless ou qualquer outro arquivo de configuração.
O Conftest usa a linguagem Rego do Open Policy Agent para escrever as asserções. Você pode ler mais sobre o Rego na seção Linguagem de Políticas da documentação do Open Policy Agent.
Aqui está um exemplo rápido. Salve o seguinte como policy/deployment.rego:
package main
deny contains msg if {
input.kind == "Deployment"
not input.spec.template.spec.securityContext.runAsNonRoot
msg := "Containers must not run as root"
}
deny contains msg if {
input.kind == "Deployment"
not input.spec.selector.matchLabels.app
msg := "Containers must provide app label for pod selectors"
}
Supondo que você tenha um deployment do Kubernetes em deployment.yaml, você pode executar o Conftest assim:
$ conftest test deployment.yaml
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
O Conftest não é específico para Kubernetes. Ele permite que você escreva testes para qualquer arquivo de configuração em diversos formatos. Consulte a documentação para instruções de instalação e mais detalhes sobre os recursos.
Para discussões e perguntas, junte-se a nós no Open Policy Agent Slack
no canal #opa-conftest.