From 717293d011927eeb5c3f604ff5e61c3c3d331a53 Mon Sep 17 00:00:00 2001 From: suzi1037 Date: Tue, 29 Jul 2025 17:28:43 +0800 Subject: [PATCH 1/2] examples-builtin: Refactor controller setup to use builder pattern Signed-off-by: suzi1037 --- examples/builtins/main.go | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/examples/builtins/main.go b/examples/builtins/main.go index 5a6e313f7b..fa0eb363ec 100644 --- a/examples/builtins/main.go +++ b/examples/builtins/main.go @@ -22,9 +22,10 @@ import ( appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" + + ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/builder" "sigs.k8s.io/controller-runtime/pkg/client/config" - "sigs.k8s.io/controller-runtime/pkg/controller" "sigs.k8s.io/controller-runtime/pkg/handler" "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" @@ -38,7 +39,7 @@ func init() { } func main() { - entryLog := log.Log.WithName("entrypoint") + entryLog := ctrl.Log.WithName("entrypoint") // Setup a Manager entryLog.Info("setting up manager") @@ -50,24 +51,17 @@ func main() { // Setup a new controller to reconcile ReplicaSets entryLog.Info("Setting up controller") - c, err := controller.New("foo-controller", mgr, controller.Options{ - Reconciler: &reconcileReplicaSet{client: mgr.GetClient()}, - }) - if err != nil { - entryLog.Error(err, "unable to set up individual controller") - os.Exit(1) - } - // Watch ReplicaSets and enqueue ReplicaSet object key - if err := c.Watch(source.Kind(mgr.GetCache(), &appsv1.ReplicaSet{}, &handler.TypedEnqueueRequestForObject[*appsv1.ReplicaSet]{})); err != nil { - entryLog.Error(err, "unable to watch ReplicaSets") - os.Exit(1) - } - - // Watch Pods and enqueue owning ReplicaSet key - if err := c.Watch(source.Kind(mgr.GetCache(), &corev1.Pod{}, - handler.TypedEnqueueRequestForOwner[*corev1.Pod](mgr.GetScheme(), mgr.GetRESTMapper(), &appsv1.ReplicaSet{}, handler.OnlyControllerOwner()))); err != nil { - entryLog.Error(err, "unable to watch Pods") + err = ctrl. + NewControllerManagedBy(mgr). + Named("foo-controller"). + WatchesRawSource(source.Kind(mgr.GetCache(), &appsv1.ReplicaSet{}, + &handler.TypedEnqueueRequestForObject[*appsv1.ReplicaSet]{})). + WatchesRawSource(source.Kind(mgr.GetCache(), &corev1.Pod{}, + handler.TypedEnqueueRequestForOwner[*corev1.Pod](mgr.GetScheme(), mgr.GetRESTMapper(), &appsv1.ReplicaSet{}, handler.OnlyControllerOwner()))). + Complete(&reconcileReplicaSet{client: mgr.GetClient()}) + if err != nil { + entryLog.Error(err, "could not create controller") os.Exit(1) } From 10ba4ae2fe4bf5e8a5bc9d8d51f931fad24ae91b Mon Sep 17 00:00:00 2001 From: suzi1037 Date: Tue, 29 Jul 2025 19:42:40 +0800 Subject: [PATCH 2/2] example-builtin: Refactor webhook setup to use ctrl.NewWebhookManagedBy and move logging to ctrl.SetLogger Signed-off-by: suzi1037 --- examples/builtins/main.go | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/examples/builtins/main.go b/examples/builtins/main.go index fa0eb363ec..3a47814d8c 100644 --- a/examples/builtins/main.go +++ b/examples/builtins/main.go @@ -24,21 +24,16 @@ import ( _ "k8s.io/client-go/plugin/pkg/client/auth/gcp" ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/builder" "sigs.k8s.io/controller-runtime/pkg/client/config" "sigs.k8s.io/controller-runtime/pkg/handler" - "sigs.k8s.io/controller-runtime/pkg/log" "sigs.k8s.io/controller-runtime/pkg/log/zap" "sigs.k8s.io/controller-runtime/pkg/manager" "sigs.k8s.io/controller-runtime/pkg/manager/signals" "sigs.k8s.io/controller-runtime/pkg/source" ) -func init() { - log.SetLogger(zap.New()) -} - func main() { + ctrl.SetLogger(zap.New()) entryLog := ctrl.Log.WithName("entrypoint") // Setup a Manager @@ -65,7 +60,7 @@ func main() { os.Exit(1) } - if err := builder.WebhookManagedBy(mgr). + if err := ctrl.NewWebhookManagedBy(mgr). For(&corev1.Pod{}). WithDefaulter(&podAnnotator{}). WithValidator(&podValidator{}).