CheckOps
KUTTL
KUTTL (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.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
KUTTL provides a declarative approach to testing Kubernetes operators. The README notes it was designed for operators but can declaratively test any Kubernetes objects. It was originally built under the KUDO project.
A KUTTL test is a directory of numbered YAML files. Step files apply resources to the cluster; matching assert files describe the state the cluster should reach, and KUTTL waits until the live objects match or a timeout passes. Error files describe states that must not appear. Because assertions are partial object matches, you only write the fields you care about.
KUTTL can start a local kind cluster or a mocked control plane for the run, or test against an existing cluster, and it creates a fresh namespace per test case. In the quality loop it is an integration test for controllers and Helm-deployed systems, run in CI before release.
The source code is at kudobuilder/kuttl on GitHub under the Apache-2.0 licence, with about 826 stars; the most recent commit was on 9 November 2026.
Features
- Declarative steps: Numbered YAML steps applied in order.
- Partial asserts: Assert only the fields that matter.
- Error files: Fail if a forbidden state appears.
- kind integration: Start a throwaway cluster for each run.
- Namespaced isolation: Each test gets its own namespace.
- Commands: Run kubectl or scripts inside steps when needed.
Pros
- No Go code: Tests are YAML, so operators in any language can be tested.
- 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 9 November 2026.
Cons
- Limited logic: Complex checks may need scripts.
- Slower pace: Development is slower than newer alternatives such as Chainsaw.
- Cluster needed: Tests run against a real API server.
Usage and Links (Example)
tests/e2e/basic/
00-install.yaml # apply a custom resource
00-assert.yaml # expect status.ready: true
01-scale.yaml
01-assert.yaml
kubectl kuttl test --start-kind=true ./tests/e2e/
Resources:
Pricing
KUTTL is free and open source under the Apache-2.0 licence.
Recommended for?
- Operator authors who want readable end-to-end tests.
- Platform teams verifying that manifests converge to the expected state.
Conclusion
KUTTL made declarative Kubernetes testing practical, and it still works well for straightforward operator checks.
Compare it with Chainsaw, which follows a similar model with more features and more active development.
On CheckOps, KUTTL is filed under the Integration testing and Release & CI gates stages. Related tools listed here include Chainsaw, kind, helm-unittest, chart-testing, kubeconform and kube-score. When comparing them, weigh the licence, the languages and platforms each supports, whether it is self-hosted or managed, and how cleanly it slots into your existing CI pipeline. Details on this page were checked against the official website, documentation and repository on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with KUTTL side by side.
CChainsawChainsaw 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.Compare with KUTTL
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 KUTTL
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 KUTTL
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 KUTTL
Kkubeconformkubeconform is an Apache-2.0 fast Kubernetes manifest validator that checks YAML against Kubernetes JSON schemas, including custom resources.Compare with KUTTL- 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 KUTTL