Gitpedia

Controller runtime

Repo for the controller-runtime subproject of kubebuilder (sig-apimachinery)

From kubernetes-sigs·Updated May 29, 2026·View on GitHub·

The Kubernetes controller-runtime Project is a set of go libraries for building Controllers. It is leveraged by [Kubebuilder](https://book.kubebuilder.io/) and [Operator SDK](https://github.com/operator-framework/operator-sdk). Both are a great place to start for new projects. See [Kubebuilder's Quick Start](https://book.kubebuilder.io/quick-start.html) to see how it can be used. The project is written primarily in Go, distributed under the Apache License 2.0 license, first published in 2018. It has gained significant community traction with 2,911 stars and 1,282 forks on GitHub. Key topics include: k8s-sig-api-machinery.

Latest release: v0.24.1
May 12, 2026View Changelog →

Go Report Card
godoc

Kubernetes controller-runtime Project

The Kubernetes controller-runtime Project is a set of go libraries for building
Controllers. It is leveraged by Kubebuilder and
Operator SDK. Both are
a great place to start for new projects. See
Kubebuilder's Quick Start to
see how it can be used.

Documentation:

Versioning, Maintenance, and Compatibility

The full documentation can be found at VERSIONING.md, but TL;DR:

Users:

  • We stick to a zero major version
  • We publish a minor version for each Kubernetes minor release and allow breaking changes between minor versions
  • We publish patch versions as needed and we don't allow breaking changes in them

Contributors:

Compatibility

Every minor version of controller-runtime has been tested with a specific minor version of client-go. A controller-runtime minor version may be compatible with
other client-go minor versions, but this is by chance and neither supported nor tested. In general, we create one minor version of controller-runtime
for each minor version of client-go and other k8s.io/* dependencies.

The minimum Go version of controller-runtime is the highest minimum Go version of our Go dependencies. Usually, this will
be identical to the minimum Go version of the corresponding k8s.io/* dependencies.

Compatible k8s.io/*, client-go and minimum Go versions can be looked up in our go.mod file.

k8s.io/*, client-gominimum Go version
CR v0.24v0.361.26
CR v0.23v0.351.25
CR v0.22v0.341.24
CR v0.21v0.331.24
CR v0.20v0.321.23
CR v0.19v0.311.22
CR v0.18v0.301.22
CR v0.17v0.291.21
CR v0.16v0.281.20
CR v0.15v0.271.20

FAQ

See FAQ.md

Community, discussion, contribution, and support

Learn how to engage with the Kubernetes community on the community page.

You can reach the maintainers of this project at:

Contributing

Contributions are greatly appreciated. The maintainers actively manage the issues list, and try to highlight issues suitable for newcomers.
The project follows the typical GitHub pull request model. See CONTRIBUTING.md for more details.
Before starting any work, please either comment on an existing issue, or file a new one.

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from kubernetes-sigs/controller-runtime via the GitHub API.Last fetched: 5/30/2026