
Scrivi test su dati di configurazione strutturati utilizzando il linguaggio di query Rego di Open Policy Agent.
Conftest ti aiuta a scrivere test per dati di configurazione strutturati. Con Conftest puoi scrivere test per la tua configurazione Kubernetes, definizioni di pipeline Tekton, codice Terraform, configurazioni Serverless o qualsiasi altro file di configurazione.
Conftest utilizza il linguaggio Rego di Open Policy Agent per scrivere le asserzioni. Puoi saperne di più su Rego nella sezione Policy Language della documentazione di Open Policy Agent.
Ecco un rapido esempio. Salva il seguente contenuto come 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"
}
Supponendo di avere un deployment Kubernetes in deployment.yaml, puoi eseguire Conftest in questo modo:
$ 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 non è limitato a Kubernetes. Ti permette di scrivere test per qualsiasi file di configurazione in una varietà di formati diversi. Consulta la documentazione per le istruzioni di installazione e maggiori dettagli sulle funzionalità.
Per discussioni e domande, unisciti a noi su Open Policy Agent Slack nel canale #opa-conftest.