CheckOps home

Tools directory

K

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.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

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

  1. Declarative steps: Numbered YAML steps applied in order.
  2. Partial asserts: Assert only the fields that matter.
  3. Error files: Fail if a forbidden state appears.
  4. kind integration: Start a throwaway cluster for each run.
  5. Namespaced isolation: Each test gets its own namespace.
  6. Commands: Run kubectl or scripts inside steps when needed.

Pros

  1. No Go code: Tests are YAML, so operators in any language can be tested.
  2. Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
  3. Actively maintained: The repository had commits as recent as 9 November 2026.

Cons

  1. Limited logic: Complex checks may need scripts.
  2. Slower pace: Development is slower than newer alternatives such as Chainsaw.
  3. Cluster needed: Tests run against a real API server.
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.

  1. Operator authors who want readable end-to-end tests.
  2. 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.