
Escribe pruebas contra datos de configuración estructurados usando el lenguaje de consulta Rego de Open Policy Agent.
Conftest te ayuda a escribir pruebas contra datos de configuración estructurados. Con Conftest puedes escribir pruebas para tu configuración de Kubernetes, definiciones de pipelines de Tekton, código de Terraform, configuraciones de Serverless o cualquier otro archivo de configuración.
Conftest utiliza el lenguaje Rego de Open Policy Agent para escribir las aserciones. Puedes obtener más información sobre Rego en la sección Lenguaje de políticas de la documentación de Open Policy Agent.
Aquí tienes un ejemplo rápido. Guarda lo siguiente 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"
}
Suponiendo que tienes un despliegue de Kubernetes en deployment.yaml, puedes ejecutar Conftest de la siguiente manera:
$ 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
Conftest no es específico de Kubernetes. Te permite escribir pruebas para cualquier archivo de configuración en una variedad de formatos diferentes. Consulta la documentación para obtener instrucciones de instalación y más detalles sobre las funciones.
Para debates y preguntas, únete a nosotros en el Open Policy Agent Slack en el canal #opa-conftest.