MCPcopy
hub / github.com/kubernetes-sigs/controller-runtime

github.com/kubernetes-sigs/controller-runtime @v0.24.1 sqlite

repository ↗ · DeepWiki ↗ · release v0.24.1 ↗
2,476 symbols 9,275 edges 359 files 1,404 documented · 57%
README

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-go minimum Go version
CR v0.22 v0.34 1.24
CR v0.21 v0.33 1.24
CR v0.20 v0.32 1.23
CR v0.19 v0.31 1.22
CR v0.18 v0.30 1.22
CR v0.17 v0.29 1.21
CR v0.16 v0.28 1.20
CR v0.15 v0.27 1.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.

Extension points exported contracts — how you extend this code

Selector (Interface)
Selector selects some concrete version or range of versions. [6 implementers]
tools/setup-envtest/versions/version.go
Reader (Interface)
TODO(directxman12): is there a sane way to deal with get/delete options? Reader knows how to read and list Kubernetes ob [18 …
pkg/client/interfaces.go
InformerOption (Interface)
InformerOption is some configuration that modifies options for NewFakeInformer. [19 implementers]
pkg/controller/controllertest/util.go
TypedSource (Interface)
TypedSource is a generic source of events (e.g. Create, Update, Delete operations on Kubernetes Objects, Webhook callbac [26 …
pkg/source/source.go
TypedReconciler (Interface)
TypedReconciler implements an API for a specific Resource by Creating, Updating or Deleting Kubernetes objects, or by ma [8 …
pkg/reconcile/reconcile.go
Handler (Interface)
Handler can handle an TokenReview. [7 implementers]
pkg/webhook/authentication/webhook.go
Runnable (Interface)
Runnable allows a component to be started. It's very important that Start blocks until it's done running. [26 implementers]
pkg/manager/manager.go
Informers (Interface)
Informers knows how to create or fetch informers for different group-version-kinds, and add indices to those informers. [3 …
pkg/cache/cache.go

Core symbols most depended-on inside this repo

Get
called by 390
pkg/client/interfaces.go
Create
called by 295
pkg/client/interfaces.go
Add
called by 211
pkg/manager/manager.go
String
called by 181
tools/setup-envtest/versions/version.go
List
called by 178
pkg/client/interfaces.go
New
called by 163
pkg/client/client.go
New
called by 156
pkg/manager/manager.go
GetName
called by 135
pkg/client/client_rest_resources.go

Shape

Method 1,377
Function 571
Struct 380
Interface 83
TypeAlias 38
FuncType 27

Languages

Go100%

Modules by API surface

pkg/client/options.go124 symbols
pkg/client/fake/client.go65 symbols
pkg/builder/webhook_test.go50 symbols
pkg/client/client.go49 symbols
pkg/predicate/predicate.go40 symbols
pkg/controller/priorityqueue/priorityqueue.go40 symbols
pkg/client/interfaces.go38 symbols
pkg/controller/controllertest/util.go36 symbols
tools/setup-envtest/versions/version.go33 symbols
pkg/cache/cache.go33 symbols
pkg/internal/testing/process/arguments.go32 symbols
pkg/manager/internal.go29 symbols

Dependencies from manifests, versioned

cel.dev/exprv0.25.1 · 1×
github.com/Masterminds/semver/v3v3.4.0 · 1×
github.com/antlr4-go/antlr/v4v4.13.0 · 1×
github.com/beorn7/perksv1.0.1 · 1×
github.com/blang/semver/v4v4.0.0 · 1×
github.com/cespare/xxhash/v2v2.3.0 · 1×
github.com/davecgh/go-spewv1.1.2-0.20180830191 · 1×
github.com/evanphx/json-patch/v5v5.9.11 · 1×
github.com/felixge/httpsnoopv1.0.4 · 1×
github.com/fsnotify/fsnotifyv1.9.0 · 1×

For agents

$ claude mcp add controller-runtime \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact