
Écrivez des tests contre des données de configuration structurées à l'aide du langage de requête Open Policy Agent Rego.
Conftest vous aide à écrire des tests sur des données de configuration structurées. Grâce à Conftest, vous pouvez écrire des tests pour votre configuration Kubernetes, vos définitions de pipelines Tekton, votre code Terraform, vos configurations Serverless ou tout autre fichier de configuration.
Conftest utilise le langage Rego d'Open Policy Agent pour écrire les assertions. Vous pouvez en apprendre davantage sur Rego dans la section Langage de politiques de la documentation d'Open Policy Agent.
Voici un exemple rapide. Enregistrez ce qui suit sous 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"
}
En supposant que vous ayez un déploiement Kubernetes dans deployment.yaml, vous pouvez exécuter Conftest comme ceci :
$ 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 n'est pas spécifique à Kubernetes. Il vous permet d'écrire des tests pour n'importe quel fichier de configuration dans une variété de formats différents. Consultez la documentation pour les instructions d'installation et plus de détails sur les fonctionnalités.
Pour les discussions et les questions, rejoignez-nous sur le Slack d'Open Policy Agent dans le canal #opa-conftest.