CheckOps
Chainsaw
Chainsaw is an Apache-2.0 declarative end-to-end testing tool for Kubernetes operators and controllers from the Kyverno project, with steps, assertions, cleanup and reports in YAML.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Chainsaw provides a declarative approach to test Kubernetes operators and controllers, and the README notes it can declaratively test any Kubernetes objects. It was first built to run Kyverno’s own end-to-end tests and lives under the Kyverno umbrella.
Tests are YAML files containing steps. Each step can apply, create, patch or delete resources, assert that resources reach a given state, check for errors, run scripts and commands, or wait for conditions. Assertions use partial matching with expressions, so you can check computed fields as well as fixed values. Catch and finally blocks collect logs, events and resource descriptions when a step fails, which makes CI failures easier to diagnose.
Chainsaw also handles test namespaces, timeouts, templating with bindings, parallel execution and JUnit or JSON reports. It includes a migration path from KUTTL test suites. In the quality loop it is an integration and release gate for controllers, CRDs and platform add-ons.
The source code is at kyverno/chainsaw on GitHub under the Apache-2.0 licence, with about 630 stars; the most recent commit was on 3 September 2026.
Features
- Rich operations: apply, create, patch, delete, assert, error, script, command and wait.
- Expression assertions: Partial matching with JMESPath-style expressions.
- Failure diagnostics: Collect logs, events and describes in catch blocks.
- Bindings and templating: Reuse values across steps and tests.
- Parallel runs: Speed up large suites.
- KUTTL migration: Convert existing KUTTL tests.
Pros
- Clear failure output: Diagnostics are built into the test definition.
- Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 3 September 2026.
Cons
- Kubernetes only: Not for testing outside clusters.
- Pre-1.0 versioning: Still on 0.x releases, so expect some change.
- YAML-heavy: Large suites need conventions to stay readable.
Usage and Links (Example)
apiVersion: chainsaw.kyverno.io/v1alpha1
kind: Test
metadata: { name: configmap }
spec:
steps:
- try:
- apply: { file: configmap.yaml }
- assert: { file: configmap-assert.yaml }
catch:
- events: {}
chainsaw test --test-dir ./tests
Resources:
Pricing
Chainsaw is free and open source under the Apache-2.0 licence.
Recommended for?
- Kubernetes controller and operator teams.
- Projects migrating from KUTTL that want richer assertions.
Conclusion
Chainsaw is a capable, actively developed choice for declarative Kubernetes end-to-end tests.
Its diagnostics and expression-based assertions make it a strong default for new operator test suites.
On CheckOps, Chainsaw is filed under the Integration testing and Release & CI gates stages. Related tools listed here include KUTTL, kind, helm-unittest, chart-testing, kubeconform and kube-score. Which one fits best depends mostly on your stack, your team’s size and skills, and whether you prefer to run tools yourself or pay for a managed service. This page reflects the official website, documentation and repository as they stood on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Chainsaw side by side.
KKUTTLKUTTL (KUbernetes Test TooL) is an Apache-2.0 declarative testing tool for Kubernetes operators and resources, using YAML test steps and assertions against a real or kind cluster.Compare with Chainsaw
Kkindkind (Kubernetes IN Docker) is an Apache-2.0 tool from Kubernetes SIGs that runs local multi-node Kubernetes clusters in Docker containers, widely used for CI testing.Compare with Chainsaw
Hhelm-unittesthelm-unittest is an MIT Helm plugin for BDD-style unit tests of Kubernetes Helm chart templates, written in YAML with snapshot support.Compare with Chainsaw
Cchart-testingchart-testing (ct) is an Apache-2.0 CLI from the Helm project for linting and install-testing Helm charts changed in a pull request, typically on a kind cluster.Compare with Chainsaw
Kkubeconformkubeconform is an Apache-2.0 fast Kubernetes manifest validator that checks YAML against Kubernetes JSON schemas, including custom resources.Compare with Chainsaw- Kkube-scorekube-score is an MIT static analysis tool for Kubernetes objects that gives recommendations for reliability and security, such as resource limits, probes and pod disruption budgets.Compare with Chainsaw