Skip to content

Commit ada8079

Browse files
authored
🌱examples-builtin: Refactor controller setup to use builder pattern (#3265)
* examples-builtin: Refactor controller setup to use builder pattern Signed-off-by: suzi1037 <[email protected]> * example-builtin: Refactor webhook setup to use ctrl.NewWebhookManagedBy and move logging to ctrl.SetLogger Signed-off-by: suzi1037 <[email protected]> --------- Signed-off-by: suzi1037 <[email protected]>
1 parent ea7a2e2 commit ada8079

File tree

1 file changed

+15
-26
lines changed

1 file changed

+15
-26
lines changed

‎examples/builtins/main.go

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -22,23 +22,19 @@ import (
2222
appsv1 "k8s.io/api/apps/v1"
2323
corev1 "k8s.io/api/core/v1"
2424
_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
25-
"sigs.k8s.io/controller-runtime/pkg/builder"
25+
26+
ctrl "sigs.k8s.io/controller-runtime"
2627
"sigs.k8s.io/controller-runtime/pkg/client/config"
27-
"sigs.k8s.io/controller-runtime/pkg/controller"
2828
"sigs.k8s.io/controller-runtime/pkg/handler"
29-
"sigs.k8s.io/controller-runtime/pkg/log"
3029
"sigs.k8s.io/controller-runtime/pkg/log/zap"
3130
"sigs.k8s.io/controller-runtime/pkg/manager"
3231
"sigs.k8s.io/controller-runtime/pkg/manager/signals"
3332
"sigs.k8s.io/controller-runtime/pkg/source"
3433
)
3534

36-
func init() {
37-
log.SetLogger(zap.New())
38-
}
39-
4035
func main() {
41-
entryLog := log.Log.WithName("entrypoint")
36+
ctrl.SetLogger(zap.New())
37+
entryLog := ctrl.Log.WithName("entrypoint")
4238

4339
// Setup a Manager
4440
entryLog.Info("setting up manager")
@@ -50,28 +46,21 @@ func main() {
5046

5147
// Setup a new controller to reconcile ReplicaSets
5248
entryLog.Info("Setting up controller")
53-
c, err := controller.New("foo-controller", mgr, controller.Options{
54-
Reconciler: &reconcileReplicaSet{client: mgr.GetClient()},
55-
})
56-
if err != nil {
57-
entryLog.Error(err, "unable to set up individual controller")
58-
os.Exit(1)
59-
}
6049

61-
// Watch ReplicaSets and enqueue ReplicaSet object key
62-
if err := c.Watch(source.Kind(mgr.GetCache(), &appsv1.ReplicaSet{}, &handler.TypedEnqueueRequestForObject[*appsv1.ReplicaSet]{})); err != nil {
63-
entryLog.Error(err, "unable to watch ReplicaSets")
64-
os.Exit(1)
65-
}
66-
67-
// Watch Pods and enqueue owning ReplicaSet key
68-
if err := c.Watch(source.Kind(mgr.GetCache(), &corev1.Pod{},
69-
handler.TypedEnqueueRequestForOwner[*corev1.Pod](mgr.GetScheme(), mgr.GetRESTMapper(), &appsv1.ReplicaSet{}, handler.OnlyControllerOwner()))); err != nil {
70-
entryLog.Error(err, "unable to watch Pods")
50+
err = ctrl.
51+
NewControllerManagedBy(mgr).
52+
Named("foo-controller").
53+
WatchesRawSource(source.Kind(mgr.GetCache(), &appsv1.ReplicaSet{},
54+
&handler.TypedEnqueueRequestForObject[*appsv1.ReplicaSet]{})).
55+
WatchesRawSource(source.Kind(mgr.GetCache(), &corev1.Pod{},
56+
handler.TypedEnqueueRequestForOwner[*corev1.Pod](mgr.GetScheme(), mgr.GetRESTMapper(), &appsv1.ReplicaSet{}, handler.OnlyControllerOwner()))).
57+
Complete(&reconcileReplicaSet{client: mgr.GetClient()})
58+
if err != nil {
59+
entryLog.Error(err, "could not create controller")
7160
os.Exit(1)
7261
}
7362

74-
if err := builder.WebhookManagedBy(mgr).
63+
if err := ctrl.NewWebhookManagedBy(mgr).
7564
For(&corev1.Pod{}).
7665
WithDefaulter(&podAnnotator{}).
7766
WithValidator(&podValidator{}).

0 commit comments

Comments
 (0)