Kyverno Chainsaw

Kyverno end to end testing tool!

  • Used internally to continuously test Kyverno
  • Entirely low code and declarative
  • Provides an advanced and flexible assertion model
  • Run it locally or in your CI/CD pipelines
  • ... and much more!
Get started Learn more

Everything you would expect

  • Easy to install

    Install locally using a package manager like brew or nix, or simply download the binary from one of our releases. If you want to run using a Docker image, we have that too.

  • Easy to use

    Write tests in minutes, not hours. All it takes is a YAML file to define the steps of a test. Chainsaw will do the rest, no need to learn a programing language or write a single line of code!

  • Comprehensive reporting

    Understand and diagnose failures easily, thanks to a comprehensive output showing precisely what failed and why. Generate JUnit compatible reports to integrate with other test reporting tools.

  • Resource templating

    Kubernetes is all about resouces and tests need to work with resources. Chainsaw has built-in support for bindings, operation outputs and resource templating to describe complex test scenarios.

  • Positive testing

    Create, update, delete resources and assert your controller reconciles the desired and observed states in the expected way.

  • Negative testing

    Try submitting invalid resources, invalid changes, or other disallowed actions and make sure they are rejected.

  • Stay focused

    Focus on the software you are building, write test scenarios using YAML and let Chainsaw tell you what passes or not. Integrate in your CI pipeline to prevent regressions and release with better confidence.

  • Multi cluster

    Native support for tests involving multiple clusters, either static or dynamically created ones, make Chainsaw an excellent tool for testing highly complex environments and architectures.

Widely adopted


Running all end to end tests for both Kyverno and the policies catalog.


Chainsaw replaced and improved upon our bash test framework for testing the RbacDefinition CRD.


Chainsaw cut down on hacks, improved code-reuse and enhanced test debugging.


Chainsaw enabled easier e2e testing and CI debugging after replacing kuttl.


Chainsaw helped a lot for declarative assertion of Redis Cluster state against various e2e test.


Chainsaw replaced Kuttl, and helped us get rid of many unreadable bash scripts.


Chainsaw replaced Kuttl, helped us improve logging and remove native kubectl calls.


Chainsaw cranked up the tempo, making our e2e tests dance to a rhythm of reliability and efficiency.


Chainsaw replaced Kuttl and made our e2e tests much more readable and easier to debug.

Discover Chainsaw in video

Watch this excellent review to discover the unique power of Chainsaw