finds.dev← search

// the find

nolar/kopf

★ 2,641 · Python · MIT · updated Sep 2026

A Python framework to write Kubernetes operators in just a few lines of code

Kopf is a decorator-based framework for writing Kubernetes operators in Python — you write a function, tag it with `@kopf.on.create(...)` or similar, and it handles the watch/diff/retry machinery underneath. It's aimed at teams who want an operator but don't want to learn Go or hand-roll the informer/reconcile loop, and who are fine with Python's runtime overhead in exchange for velocity.

The handler surface is genuinely broad: creation/update/deletion causes with diffs, daemons and timers that run for the resource's lifetime, in-memory indexing, and both validating/mutating admission webhooks with a dev-mode tunnel — most competing Python operator libraries only cover the basic CRUD handlers. It also handles the annoying infra details for you: persisted progress across operator restarts, configurable retry/backoff per handler, and peering so multiple operator pods don't double-process the same resource. Test coverage and CI are solid (codecov + coveralls badges, a `thorough.yaml` workflow), which matters for something sitting in your reconcile path.

The maintainer states outright there's no active development of new major functionality — the framework is declared 'finished,' which is refreshingly honest but also means you're adopting something in maintenance mode with an implicit single-maintainer bus factor. Sync handlers run threaded under the hood, so an operator with many concurrent resources and slow sync handlers can hit thread-pool pressure that's easy to miss until it's a production incident. Probing/metrics are described as 'rudimentary' — don't expect real Prometheus-grade observability without extra work. And unlike Go frameworks like kubebuilder/operator-sdk, Kopf doesn't generate your CRD manifests, RBAC, or client code — you're still hand-writing and maintaining those yourself.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →