Skip to content

Write tests against structured configuration data using the Open Policy Agent Rego query language

License

Notifications You must be signed in to change notification settings

amtayaji002/conftest

This branch is 255 commits behind open-policy-agent/conftest:master.

Folders and files

NameName
Last commit message
Last commit date
Aug 12, 2022
Jul 26, 2022
Sep 23, 2020
Jul 29, 2022
Apr 28, 2022
Jul 26, 2022
Jul 26, 2022
Apr 11, 2022
Apr 20, 2022
May 11, 2021
Apr 27, 2022
Apr 27, 2022
Apr 16, 2021
Apr 15, 2021
Apr 16, 2021
Jul 5, 2020
Nov 25, 2021
Feb 13, 2022
Apr 15, 2021
Sep 22, 2020
Dec 29, 2021
Aug 23, 2022
Apr 1, 2019
Feb 13, 2022
Nov 13, 2021
Jan 29, 2022
Jul 26, 2022
Sep 9, 2022
Sep 9, 2022
May 15, 2020
Jul 16, 2020
Apr 6, 2022
Nov 25, 2021

Repository files navigation

Conftest

Go Report Card Netlify

Conftest helps you write tests against structured configuration data. Using Conftest you can write tests for your Kubernetes configuration, Tekton pipeline definitions, Terraform code, Serverless configs or any other config files.

Conftest uses the Rego language from Open Policy Agent for writing the assertions. You can read more about Rego in How do I write policies in the Open Policy Agent documentation.

Here's a quick example. Save the following as policy/deployment.rego:

package main

deny[msg] {
  input.kind == "Deployment"
  not input.spec.template.spec.securityContext.runAsNonRoot

  msg := "Containers must not run as root"
}

deny[msg] {
  input.kind == "Deployment"
  not input.spec.selector.matchLabels.app

  msg := "Containers must provide app label for pod selectors"
}

Assuming you have a Kubernetes deployment in deployment.yaml you can run Conftest like so:

$ 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 isn't specific to Kubernetes. It will happily let you write tests for any configuration files in a variety of different formats. See the documentation for installation instructions and more details about the features.

Want to contribute to Conftest?

For discussions and questions join us on the Open Policy Agent Slack in the #opa-conftest channel.

About

Write tests against structured configuration data using the Open Policy Agent Rego query language

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 87.9%
  • Shell 9.8%
  • Makefile 1.1%
  • Other 1.2%