open-policy-agent/conftest

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

Go

3,282

1,256 commits

updated Oct 9, 2026

See the code

README

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 the Policy Language section in the Open Policy Agent documentation.

Here's a quick example. Save the following as 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"
}

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.

kubernetes
open-policy-agent
openpolicyagent
rego
testing

open-policy-agent/conftest

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

Go

3,282

1,256 commits

updated Oct 9, 2026

See the code

README

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 the Policy Language section in the Open Policy Agent documentation.

Here's a quick example. Save the following as 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"
}

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.

kubernetes
open-policy-agent
openpolicyagent
rego
testing

Project health

Overall

7.0/10

Maintained

10/10

Code review

8/10
OpenSSF Scorecard

Latest release

v0.71.1 · Oct 6, 2026

Releases this year

13

Significant stargazers

(top 24 of 58)

John Vandenberg

603 followers · starred Jun 2026

IKEDA Sho

664 followers · starred Mar 2026

Andy Lindeman

306 followers · starred May 2019

Parker Moore

1,585 followers · starred Oct 2020