sigs.k8s.io/controller-runtime
go
pkg:golang/sigs.k8s.io/controller-runtime
3,367 Dependabot PRs
5 days ago
965 repositories
25 repositories
Recent PRs (filtered by: Patch PRs )
Bump the all-go-mod-patch-and-minor group across 2 directories with 43 updates
aws/eks-anywhere #10799
Bump the all-go-mod-patch-and-minor group across 3 directories with 21 updates
kubernetes-sigs/cluster-api-provider-cloudstack #486
Bump the go-version-updates group across 4 directories with 7 updates
secureCodeBox/secureCodeBox #3653
Bump the all-go-mod-patch-and-minor group across 2 directories with 43 updates
aws/eks-anywhere #10771
Bump the misc group across 1 directory with 7 updates
chore(deps): Bump sigs.k8s.io/controller-runtime from 0.24.0 to 0.24.1 in the kubernetes group
devantler-tech/ksail #4789
chore(deps): bump sigs.k8s.io/controller-runtime from 0.24.0 to 0.24.1
Hostzero-GmbH/keycloak-operator #80
build(deps): bump sigs.k8s.io/controller-runtime from 0.24.0 to 0.24.1
thereisnotime/warpgate-operator #54
build(deps): bump sigs.k8s.io/controller-runtime from 0.24.0 to 0.24.1
envoyproxy/gateway #8975
chore(deps): bump sigs.k8s.io/controller-runtime from 0.24.0 to 0.24.1
gardener/garden-shoot-trust-configurator #119
Bump the security group with 5 updates
replicatedhq/replicated-sdk #428
:seedling: Bump sigs.k8s.io/controller-runtime from 0.24.0 to 0.24.1 in /testdata/project-v4
kubernetes-sigs/kubebuilder #5692
feat(deps): bump sigs.k8s.io/controller-runtime from 0.24.0 to 0.24.1
clastix/kamaji #1150
build(deps): bump sigs.k8s.io/controller-runtime from 0.24.0 to 0.24.1
kubernetes-sigs/mcp-lifecycle-operator #170
Bump the all-go-mod-patch-and-minor group across 2 directories with 43 updates
aws/eks-anywhere #10766
Bump the all-go-mod-patch-and-minor group across 2 directories with 42 updates
aws/eks-anywhere #10763
dependabot(deps): bump sigs.k8s.io/controller-runtime from 0.23.1-0.20260311113219-28c991a58709 to 0.23.3 in /cluster-autoscaler
kubernetes/autoscaler #9577
Bump the golang-dependencies group across 1 directory with 86 updates
openshift/configuration-anomaly-detection #786
Bump sigs.k8s.io/controller-runtime from 0.23.1-0.20260418192536-e4a998cc6b09 to 0.23.3
brendandburns/early-watch #100
Bump the golang-dependencies group across 1 directory with 84 updates
openshift/configuration-anomaly-detection #783
Bump the gomod-backward-compatible group across 1 directory with 11 updates
hashicorp/vault-secrets-operator #1252
Bump the golang-dependencies group across 1 directory with 79 updates
openshift/configuration-anomaly-detection #779
Bump the golang-dependencies group across 1 directory with 80 updates
openshift/configuration-anomaly-detection #775
Bump the all-go-mod-patch-and-minor group across 2 directories with 41 updates
aws/eks-anywhere #10744
Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3
ocp-power-automation/rsct-operator #185
build(deps): bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3
zncdatadev/superset-operator #245
deps: bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 in the controller-runtime group across 1 directory
neo4j-partners/neo4j-kubernetes-operator #49
Bump the all-go-mod-patch-and-minor group across 2 directories with 41 updates
aws/eks-anywhere #10730
deps: bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3
Bump the golang-dependencies group across 1 directory with 60 updates
openshift/configuration-anomaly-detection #752
Bump the golang-dependencies group across 1 directory with 59 updates
openshift/configuration-anomaly-detection #750
NO-ISSUE: Bump the go-dependencies group with 12 updates
osac-project/osac-operator #173
chore(deps): Bump the gomod group across 1 directory with 10 updates
chore(deps): bump the gomod group across 1 directory with 6 updates
uselagoon/aergia-controller #82
chore(deps): bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3
bonial-oss/pod-image-swap-webhook #23
chore(deps): bump the go-minor-patch group across 1 directory with 12 updates
kagent-dev/kagent #1598
chore(deps): bump the go-minor-patch group across 1 directory with 13 updates
kagent-dev/kagent #1594
Bump the go-dependencies group across 1 directory with 45 updates
chore(deps): Bump the production-dependencies group with 19 updates
kubevirt/ssp-operator #1725
chore(deps): Bump the k8s group across 1 directory with 6 updates
build(deps): bump the k8s-dependencies group across 1 directory with 12 updates
kubernetes-csi/external-provisioner #1490
:seedling: Bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 in /test
metal3-io/baremetal-operator #3106
build(deps): bump the all-go-mod-patch-and-minor group across 1 directory with 5 updates
dkoshkin/imgldr #16
chore(deps): bump the dependencies group across 1 directory with 10 updates
openfga/openfga #2991
Bump the golang-dependencies group across 1 directory with 52 updates
openshift/configuration-anomaly-detection #708
build(deps): bump sigs.k8s.io/controller-runtime from 0.23.1 to 0.23.3 in the k8s-io group
nais/digdirator #432
Bump the prod-dependencies group with 2 updates
redhat-openshift-ecosystem/openshift-preflight #1385
chore(deps): bump the dependencies group across 1 directory with 11 updates
openfga/openfga #2982
build(deps): bump the k8s-dependencies group across 1 directory with 3 updates
kubernetes-csi/external-provisioner #1487
Bump the golang-dependencies group across 1 directory with 51 updates
openshift/configuration-anomaly-detection #707
Package Details
| Name: | sigs.k8s.io/controller-runtime |
| Ecosystem: | go |
| PURL Type: | golang |
| Package URL: | pkg:golang/sigs.k8s.io/controller-runtime |
| JSON API: | View JSON |
Package Information
Package controllerruntime provides tools to construct Kubernetes-style controllers that manipulate both Kubernetes CRDs and aggregated/built-in Kubernetes APIs. It defines easy helpers for the common use cases when building CRDs, built on top of customizable layers of abstraction. Common cases should be easy, and uncommon cases should be possible. In general, controller-runtime tries to guide users towards Kubernetes controller best-practices. The main entrypoint for controller-runtime is this root package, which contains all of the common types needed to get started building controllers: The examples in this package walk through a basic controller setup. The kubebuilder book (https://book.kubebuilder.io) has some more in-depth walkthroughs. controller-runtime favors structs with sane defaults over constructors, so it's fairly common to see structs being used directly in controller-runtime. A brief-ish walkthrough of the layout of this library can be found below. Each package contains more information about how to use it. Frequently asked questions about using controller-runtime and designing controllers can be found at https://github.com/kubernetes-sigs/controller-runtime/blob/main/FAQ.md. Every controller and webhook is ultimately run by a Manager (pkg/manager). A manager is responsible for running controllers and webhooks, and setting up common dependencies, like shared caches and clients, as well as managing leader election (pkg/leaderelection). Managers are generally configured to gracefully shut down controllers on pod termination by wiring up a signal handler (pkg/manager/signals). Controllers (pkg/controller) use events (pkg/event) to eventually trigger reconcile requests. They may be constructed manually, but are often constructed with a Builder (pkg/builder), which eases the wiring of event sources (pkg/source), like Kubernetes API object changes, to event handlers (pkg/handler), like "enqueue a reconcile request for the object owner". Predicates (pkg/predicate) can be used to filter which events actually trigger reconciles. There are pre-written utilities for the common cases, and interfaces and helpers for advanced cases. Controller logic is implemented in terms of Reconcilers (pkg/reconcile). A Reconciler implements a function which takes a reconcile Request containing the name and namespace of the object to reconcile, reconciles the object, and returns a Response or an error indicating whether to requeue for a second round of processing. Reconcilers use Clients (pkg/client) to access API objects. The default client provided by the manager reads from a local shared cache (pkg/cache) and writes directly to the API server, but clients can be constructed that only talk to the API server, without a cache. The Cache will auto-populate with watched objects, as well as when other structured objects are requested. The default split client does not promise to invalidate the cache during writes (nor does it promise sequential create/get coherence), and code should not assume a get immediately following a create/update will return the updated resource. Caches may also have indexes, which can be created via a FieldIndexer (pkg/client) obtained from the manager. Indexes can be used to quickly and easily look up all objects with certain fields set. Reconcilers may retrieve event recorders (pkg/recorder) to emit events using the manager. Clients, Caches, and many other things in Kubernetes use Schemes (pkg/scheme) to associate Go types to Kubernetes API Kinds (Group-Version-Kinds, to be specific). Similarly, webhooks (pkg/webhook/admission) may be implemented directly, but are often constructed using a builder (pkg/webhook/admission/builder). They are run via a server (pkg/webhook) which is managed by a Manager. Logging (pkg/log) in controller-runtime is done via structured logs, using a log set of interfaces called logr (https://pkg.go.dev/github.com/go-logr/logr). While controller-runtime provides easy setup for using Zap (https://go.uber.org/zap, pkg/log/zap), you can provide any implementation of logr as the base logger for controller-runtime. Metrics (pkg/metrics) provided by controller-runtime are registered into a controller-runtime-specific Prometheus metrics registry. The manager can serve these by an HTTP endpoint, and additional metrics may be registered to this Registry as normal. You can easily build integration and unit tests for your controllers and webhooks using the test Environment (pkg/envtest). This will automatically stand up a copy of etcd and kube-apiserver, and provide the correct options to connect to the API server. It's designed to work well with the Ginkgo testing framework, but should work with any testing setup. This example creates a simple application Controller that is configured for ReplicaSets and Pods. * Create a new application for ReplicaSets that manages Pods owned by the ReplicaSet and calls into ReplicaSetReconciler. * Start the application. This example creates a simple application Controller that is configured for ExampleCRDWithConfigMapRef CRD. Any change in the configMap referenced in this Custom Resource will cause the re-reconcile of the parent ExampleCRDWithConfigMapRef due to the implementation of the .Watches method of "sigs.k8s.io/controller-runtime/pkg/builder".Builder. This example creates a simple application Controller that is configured for ReplicaSets and Pods. This application controller will be running leader election with the provided configuration in the manager options. If leader election configuration is not provided, controller runs leader election with default values. Default values taken from: https://github.com/kubernetes/component-base/blob/master/config/v1alpha1/defaults.go * defaultLeaseDuration = 15 * time.Second * defaultRenewDeadline = 10 * time.Second * defaultRetryPeriod = 2 * time.Second * Create a new application for ReplicaSets that manages Pods owned by the ReplicaSet and calls into ReplicaSetReconciler. * Start the application.
| Repository: | https://github.com/kubernetes-sigs/controller-runtime |
| Homepage: | https://github.com/kubernetes-sigs/controller-runtime |
| Latest Release: |
v0.21.0
about 1 year ago |
| Dependent Repos: | 15,336 |
| Dependent Packages: | 8,965 |
| Ranking: | Top 0.0599% by dependent repos Top 0.0198% by dependent pkgs |