Skip to content

Commit e83dc0c

Browse files
authored
[improvement] improve span propagation to ensure Reconcile is always a top level span parent (#387)
* fix: improve span propagation Signed-off-by: Mateusz Urbanek <murbanek@akamai.com> * feat: add extra info to span via default decorators Signed-off-by: Mateusz Urbanek <murbanek@akamai.com> * test: add tests for helpers Signed-off-by: Mateusz Urbanek <murbanek@akamai.com> * chore: add to placementgroups Signed-off-by: Mateusz Urbanek <murbanek@akamai.com> --------- Signed-off-by: Mateusz Urbanek <murbanek@akamai.com>
1 parent 4e620d5 commit e83dc0c

21 files changed

+956
-348
lines changed

api/v1alpha1/webhook_helpers.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ var (
2828
// defaultLinodeClient is an unauthenticated Linode client
2929
defaultLinodeClient = linodeclient.NewLinodeClientWithTracing(
3030
ptr.To(linodego.NewClient(&http.Client{Timeout: defaultClientTimeout})),
31+
linodeclient.DefaultDecorator(),
3132
)
3233
)
3334

api/v1alpha2/webhook_helpers.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ var (
4343
// defaultLinodeClient is an unauthenticated Linode client
4444
defaultLinodeClient = linodeclient.NewLinodeClientWithTracing(
4545
ptr.To(linodego.NewClient(&http.Client{Timeout: defaultClientTimeout})),
46+
linodeclient.DefaultDecorator(),
4647
)
4748
)
4849

cloud/scope/common.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ func CreateLinodeClient(apiKey string, timeout time.Duration, opts ...Option) (L
6767

6868
return linodeclient.NewLinodeClientWithTracing(
6969
&linodeClient,
70+
linodeclient.DefaultDecorator(),
7071
), nil
7172
}
7273

cmd/main.go

Lines changed: 32 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ import (
4343
infrastructurev1alpha2 "github.com/linode/cluster-api-provider-linode/api/v1alpha2"
4444
"github.com/linode/cluster-api-provider-linode/controller"
4545
"github.com/linode/cluster-api-provider-linode/observability/tracing"
46-
"github.com/linode/cluster-api-provider-linode/observability/wrappers/reconciler"
4746
"github.com/linode/cluster-api-provider-linode/version"
4847

4948
_ "go.uber.org/automaxprocs"
@@ -164,64 +163,54 @@ func main() {
164163
os.Exit(1)
165164
}
166165

167-
if err = reconciler.NewReconcilerWithTracing(
168-
&controller.LinodeClusterReconciler{
169-
Client: mgr.GetClient(),
170-
Recorder: mgr.GetEventRecorderFor("LinodeClusterReconciler"),
171-
WatchFilterValue: clusterWatchFilter,
172-
LinodeApiKey: linodeToken,
173-
},
174-
).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodeClusterConcurrency}); err != nil {
166+
if err = (&controller.LinodeClusterReconciler{
167+
Client: mgr.GetClient(),
168+
Recorder: mgr.GetEventRecorderFor("LinodeClusterReconciler"),
169+
WatchFilterValue: clusterWatchFilter,
170+
LinodeApiKey: linodeToken,
171+
}).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodeClusterConcurrency}); err != nil {
175172
setupLog.Error(err, "unable to create controller", "controller", "LinodeCluster")
176173
os.Exit(1)
177174
}
178175

179-
if err = reconciler.NewReconcilerWithTracing(
180-
&controller.LinodeMachineReconciler{
181-
Client: mgr.GetClient(),
182-
Recorder: mgr.GetEventRecorderFor("LinodeMachineReconciler"),
183-
WatchFilterValue: machineWatchFilter,
184-
LinodeApiKey: linodeToken,
185-
LinodeDNSAPIKey: linodeDNSToken,
186-
},
187-
).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodeMachineConcurrency}); err != nil {
176+
if err = (&controller.LinodeMachineReconciler{
177+
Client: mgr.GetClient(),
178+
Recorder: mgr.GetEventRecorderFor("LinodeMachineReconciler"),
179+
WatchFilterValue: machineWatchFilter,
180+
LinodeApiKey: linodeToken,
181+
LinodeDNSAPIKey: linodeDNSToken,
182+
}).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodeMachineConcurrency}); err != nil {
188183
setupLog.Error(err, "unable to create controller", "controller", "LinodeMachine")
189184
os.Exit(1)
190185
}
191186

192-
if err = reconciler.NewReconcilerWithTracing(
193-
&controller.LinodeVPCReconciler{
194-
Client: mgr.GetClient(),
195-
Recorder: mgr.GetEventRecorderFor("LinodeVPCReconciler"),
196-
WatchFilterValue: clusterWatchFilter,
197-
LinodeApiKey: linodeToken,
198-
},
199-
).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodeVPCConcurrency}); err != nil {
187+
if err = (&controller.LinodeVPCReconciler{
188+
Client: mgr.GetClient(),
189+
Recorder: mgr.GetEventRecorderFor("LinodeVPCReconciler"),
190+
WatchFilterValue: clusterWatchFilter,
191+
LinodeApiKey: linodeToken,
192+
}).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodeVPCConcurrency}); err != nil {
200193
setupLog.Error(err, "unable to create controller", "controller", "LinodeVPC")
201194
os.Exit(1)
202195
}
203196

204-
if err = reconciler.NewReconcilerWithTracing(
205-
&controller.LinodeObjectStorageBucketReconciler{
206-
Client: mgr.GetClient(),
207-
Logger: ctrl.Log.WithName("LinodeObjectStorageBucketReconciler"),
208-
Recorder: mgr.GetEventRecorderFor("LinodeObjectStorageBucketReconciler"),
209-
WatchFilterValue: objectStorageBucketWatchFilter,
210-
LinodeApiKey: linodeToken,
211-
},
212-
).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodeObjectStorageBucketConcurrency}); err != nil {
197+
if err = (&controller.LinodeObjectStorageBucketReconciler{
198+
Client: mgr.GetClient(),
199+
Logger: ctrl.Log.WithName("LinodeObjectStorageBucketReconciler"),
200+
Recorder: mgr.GetEventRecorderFor("LinodeObjectStorageBucketReconciler"),
201+
WatchFilterValue: objectStorageBucketWatchFilter,
202+
LinodeApiKey: linodeToken,
203+
}).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodeObjectStorageBucketConcurrency}); err != nil {
213204
setupLog.Error(err, "unable to create controller", "controller", "LinodeObjectStorageBucket")
214205
os.Exit(1)
215206
}
216207

217-
if err = reconciler.NewReconcilerWithTracing(
218-
&controller.LinodePlacementGroupReconciler{
219-
Client: mgr.GetClient(),
220-
Recorder: mgr.GetEventRecorderFor("LinodePlacementGroupReconciler"),
221-
WatchFilterValue: clusterWatchFilter,
222-
LinodeApiKey: linodeToken,
223-
},
224-
).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodePlacementGroupConcurrency}); err != nil {
208+
if err = (&controller.LinodePlacementGroupReconciler{
209+
Client: mgr.GetClient(),
210+
Recorder: mgr.GetEventRecorderFor("LinodePlacementGroupReconciler"),
211+
WatchFilterValue: clusterWatchFilter,
212+
LinodeApiKey: linodeToken,
213+
}).SetupWithManager(mgr, crcontroller.Options{MaxConcurrentReconciles: linodePlacementGroupConcurrency}); err != nil {
225214
setupLog.Error(err, "unable to create controller", "controller", "LinodePlacementGroup")
226215
os.Exit(1)
227216
}

controller/linodecluster_controller.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ import (
4343
infrav1alpha2 "github.com/linode/cluster-api-provider-linode/api/v1alpha2"
4444
"github.com/linode/cluster-api-provider-linode/cloud/scope"
4545
"github.com/linode/cluster-api-provider-linode/cloud/services"
46+
wrappedruntimeclient "github.com/linode/cluster-api-provider-linode/observability/wrappers/runtimeclient"
47+
wrappedruntimereconciler "github.com/linode/cluster-api-provider-linode/observability/wrappers/runtimereconciler"
4648
"github.com/linode/cluster-api-provider-linode/util"
4749
"github.com/linode/cluster-api-provider-linode/util/reconciler"
4850
)
@@ -69,13 +71,13 @@ func (r *LinodeClusterReconciler) Reconcile(ctx context.Context, req ctrl.Reques
6971

7072
logger := ctrl.LoggerFrom(ctx).WithName("LinodeClusterReconciler").WithValues("name", req.NamespacedName.String())
7173
linodeCluster := &infrav1alpha2.LinodeCluster{}
72-
if err := r.Client.Get(ctx, req.NamespacedName, linodeCluster); err != nil {
74+
if err := r.TracedClient().Get(ctx, req.NamespacedName, linodeCluster); err != nil {
7375
logger.Info("Failed to fetch Linode cluster", "error", err.Error())
7476

7577
return ctrl.Result{}, client.IgnoreNotFound(err)
7678
}
7779

78-
cluster, err := kutil.GetOwnerCluster(ctx, r.Client, linodeCluster.ObjectMeta)
80+
cluster, err := kutil.GetOwnerCluster(ctx, r.TracedClient(), linodeCluster.ObjectMeta)
7981
if err != nil {
8082
logger.Info("Failed to get owner cluster", "error", err.Error())
8183

@@ -91,7 +93,7 @@ func (r *LinodeClusterReconciler) Reconcile(ctx context.Context, req ctrl.Reques
9193
ctx,
9294
r.LinodeApiKey,
9395
scope.ClusterScopeParams{
94-
Client: r.Client,
96+
Client: r.TracedClient(),
9597
Cluster: cluster,
9698
LinodeCluster: linodeCluster,
9799
},
@@ -300,10 +302,14 @@ func (r *LinodeClusterReconciler) SetupWithManager(mgr ctrl.Manager, options crc
300302
kutil.ClusterToInfrastructureMapFunc(context.TODO(), infrav1alpha2.GroupVersion.WithKind("LinodeCluster"), mgr.GetClient(), &infrav1alpha2.LinodeCluster{}),
301303
),
302304
builder.WithPredicates(predicates.ClusterUnpausedAndInfrastructureReady(mgr.GetLogger())),
303-
).Complete(r)
305+
).Complete(wrappedruntimereconciler.NewRuntimeReconcilerWithTracing(r, wrappedruntimereconciler.DefaultDecorator()))
304306
if err != nil {
305307
return fmt.Errorf("failed to build controller: %w", err)
306308
}
307309

308310
return nil
309311
}
312+
313+
func (r *LinodeClusterReconciler) TracedClient() client.Client {
314+
return wrappedruntimeclient.NewRuntimeClientWithTracing(r.Client, wrappedruntimereconciler.DefaultDecorator())
315+
}

controller/linodemachine_controller.go

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ import (
4848
infrav1alpha2 "github.com/linode/cluster-api-provider-linode/api/v1alpha2"
4949
"github.com/linode/cluster-api-provider-linode/cloud/scope"
5050
"github.com/linode/cluster-api-provider-linode/cloud/services"
51+
wrappedruntimeclient "github.com/linode/cluster-api-provider-linode/observability/wrappers/runtimeclient"
52+
wrappedruntimereconciler "github.com/linode/cluster-api-provider-linode/observability/wrappers/runtimereconciler"
5153
"github.com/linode/cluster-api-provider-linode/util"
5254
"github.com/linode/cluster-api-provider-linode/util/reconciler"
5355
)
@@ -118,7 +120,7 @@ func (r *LinodeMachineReconciler) Reconcile(ctx context.Context, req ctrl.Reques
118120
log := ctrl.LoggerFrom(ctx).WithName("LinodeMachineReconciler").WithValues("name", req.NamespacedName.String())
119121

120122
linodeMachine := &infrav1alpha2.LinodeMachine{}
121-
if err := r.Client.Get(ctx, req.NamespacedName, linodeMachine); err != nil {
123+
if err := r.TracedClient().Get(ctx, req.NamespacedName, linodeMachine); err != nil {
122124
if err = client.IgnoreNotFound(err); err != nil {
123125
log.Error(err, "Failed to fetch LinodeMachine")
124126
}
@@ -142,7 +144,7 @@ func (r *LinodeMachineReconciler) Reconcile(ctx context.Context, req ctrl.Reques
142144
r.LinodeApiKey,
143145
r.LinodeDNSAPIKey,
144146
scope.MachineScopeParams{
145-
Client: r.Client,
147+
Client: r.TracedClient(),
146148
Cluster: cluster,
147149
Machine: machine,
148150
LinodeCluster: &infrav1alpha2.LinodeCluster{},
@@ -221,7 +223,7 @@ func (r *LinodeMachineReconciler) reconcile(
221223
Name: machineScope.Cluster.Spec.InfrastructureRef.Name,
222224
}
223225

224-
if err := r.Client.Get(ctx, linodeClusterKey, machineScope.LinodeCluster); err != nil {
226+
if err := r.Get(ctx, linodeClusterKey, machineScope.LinodeCluster); err != nil {
225227
if err = client.IgnoreNotFound(err); err != nil {
226228
return ctrl.Result{}, fmt.Errorf("get linodecluster %q: %w", linodeClusterKey, err)
227229
}
@@ -740,7 +742,11 @@ func (r *LinodeMachineReconciler) reconcileDelete(
740742

741743
// SetupWithManager sets up the controller with the Manager.
742744
func (r *LinodeMachineReconciler) SetupWithManager(mgr ctrl.Manager, options crcontroller.Options) error {
743-
linodeMachineMapper, err := kutil.ClusterToTypedObjectsMapper(r.Client, &infrav1alpha2.LinodeMachineList{}, mgr.GetScheme())
745+
linodeMachineMapper, err := kutil.ClusterToTypedObjectsMapper(
746+
r.TracedClient(),
747+
&infrav1alpha2.LinodeMachineList{},
748+
mgr.GetScheme(),
749+
)
744750
if err != nil {
745751
return fmt.Errorf("failed to create mapper for LinodeMachines: %w", err)
746752
}
@@ -762,10 +768,14 @@ func (r *LinodeMachineReconciler) SetupWithManager(mgr ctrl.Manager, options crc
762768
builder.WithPredicates(predicates.ClusterUnpausedAndInfrastructureReady(mgr.GetLogger())),
763769
).
764770
WithEventFilter(predicates.ResourceNotPausedAndHasFilterLabel(mgr.GetLogger(), r.WatchFilterValue)).
765-
Complete(r)
771+
Complete(wrappedruntimereconciler.NewRuntimeReconcilerWithTracing(r, wrappedruntimereconciler.DefaultDecorator()))
766772
if err != nil {
767773
return fmt.Errorf("failed to build controller: %w", err)
768774
}
769775

770776
return nil
771777
}
778+
779+
func (r *LinodeMachineReconciler) TracedClient() client.Client {
780+
return wrappedruntimeclient.NewRuntimeClientWithTracing(r.Client, wrappedruntimeclient.DefaultDecorator())
781+
}

controller/linodemachine_controller_helpers.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ func (r *LinodeMachineReconciler) buildInstanceAddrs(ctx context.Context, machin
180180
}
181181

182182
func (r *LinodeMachineReconciler) getOwnerMachine(ctx context.Context, linodeMachine infrav1alpha2.LinodeMachine, log logr.Logger) (*clusterv1.Machine, error) {
183-
machine, err := kutil.GetOwnerMachine(ctx, r.Client, linodeMachine.ObjectMeta)
183+
machine, err := kutil.GetOwnerMachine(ctx, r.TracedClient(), linodeMachine.ObjectMeta)
184184
if err != nil {
185185
if err = client.IgnoreNotFound(err); err != nil {
186186
log.Error(err, "Failed to fetch owner machine")
@@ -212,7 +212,7 @@ func (r *LinodeMachineReconciler) getOwnerMachine(ctx context.Context, linodeMac
212212
}
213213

214214
func (r *LinodeMachineReconciler) getClusterFromMetadata(ctx context.Context, machine clusterv1.Machine, log logr.Logger) (*clusterv1.Cluster, error) {
215-
cluster, err := kutil.GetClusterFromMetadata(ctx, r.Client, machine.ObjectMeta)
215+
cluster, err := kutil.GetClusterFromMetadata(ctx, r.TracedClient(), machine.ObjectMeta)
216216
if err != nil {
217217
if err = client.IgnoreNotFound(err); err != nil {
218218
log.Error(err, "Failed to fetch cluster by label")
@@ -254,7 +254,7 @@ func (r *LinodeMachineReconciler) linodeClusterToLinodeMachines(logger logr.Logg
254254
return nil
255255
}
256256

257-
cluster, err := kutil.GetOwnerCluster(ctx, r.Client, linodeCluster.ObjectMeta)
257+
cluster, err := kutil.GetOwnerCluster(ctx, r.TracedClient(), linodeCluster.ObjectMeta)
258258
switch {
259259
case apierrors.IsNotFound(err) || cluster == nil:
260260
logger.Info("Cluster for LinodeCluster not found, skipping mapping")
@@ -281,7 +281,7 @@ func (r *LinodeMachineReconciler) requestsForCluster(ctx context.Context, namesp
281281
labels := map[string]string{clusterv1.ClusterNameLabel: name}
282282

283283
machineList := clusterv1.MachineList{}
284-
if err := r.Client.List(ctx, &machineList, client.InNamespace(namespace), client.MatchingLabels(labels)); err != nil {
284+
if err := r.TracedClient().List(ctx, &machineList, client.InNamespace(namespace), client.MatchingLabels(labels)); err != nil {
285285
return nil, err
286286
}
287287

controller/linodeobjectstoragebucket_controller.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ import (
4444
infrav1alpha1 "github.com/linode/cluster-api-provider-linode/api/v1alpha1"
4545
"github.com/linode/cluster-api-provider-linode/cloud/scope"
4646
"github.com/linode/cluster-api-provider-linode/cloud/services"
47+
wrappedruntimeclient "github.com/linode/cluster-api-provider-linode/observability/wrappers/runtimeclient"
48+
wrappedruntimereconciler "github.com/linode/cluster-api-provider-linode/observability/wrappers/runtimereconciler"
4749
"github.com/linode/cluster-api-provider-linode/util"
4850
"github.com/linode/cluster-api-provider-linode/util/reconciler"
4951
)
@@ -81,7 +83,7 @@ func (r *LinodeObjectStorageBucketReconciler) Reconcile(ctx context.Context, req
8183
logger := r.Logger.WithValues("name", req.NamespacedName.String())
8284

8385
objectStorageBucket := &infrav1alpha1.LinodeObjectStorageBucket{}
84-
if err := r.Client.Get(ctx, req.NamespacedName, objectStorageBucket); err != nil {
86+
if err := r.TracedClient().Get(ctx, req.NamespacedName, objectStorageBucket); err != nil {
8587
if err = client.IgnoreNotFound(err); err != nil {
8688
logger.Error(err, "Failed to fetch LinodeObjectStorageBucket", "name", req.NamespacedName.String())
8789
}
@@ -93,7 +95,7 @@ func (r *LinodeObjectStorageBucketReconciler) Reconcile(ctx context.Context, req
9395
ctx,
9496
r.LinodeApiKey,
9597
scope.ObjectStorageBucketScopeParams{
96-
Client: r.Client,
98+
Client: r.TracedClient(),
9799
Bucket: objectStorageBucket,
98100
Logger: &logger,
99101
},
@@ -259,7 +261,11 @@ func (r *LinodeObjectStorageBucketReconciler) reconcileDelete(ctx context.Contex
259261

260262
// SetupWithManager sets up the controller with the Manager.
261263
func (r *LinodeObjectStorageBucketReconciler) SetupWithManager(mgr ctrl.Manager, options crcontroller.Options) error {
262-
linodeObjectStorageBucketMapper, err := kutil.ClusterToTypedObjectsMapper(r.Client, &infrav1alpha1.LinodeObjectStorageBucketList{}, mgr.GetScheme())
264+
linodeObjectStorageBucketMapper, err := kutil.ClusterToTypedObjectsMapper(
265+
r.TracedClient(),
266+
&infrav1alpha1.LinodeObjectStorageBucketList{},
267+
mgr.GetScheme(),
268+
)
263269
if err != nil {
264270
return fmt.Errorf("failed to create mapper for LinodeObjectStorageBuckets: %w", err)
265271
}
@@ -276,10 +282,14 @@ func (r *LinodeObjectStorageBucketReconciler) SetupWithManager(mgr ctrl.Manager,
276282
&clusterv1.Cluster{},
277283
handler.EnqueueRequestsFromMapFunc(linodeObjectStorageBucketMapper),
278284
builder.WithPredicates(predicates.ClusterUnpausedAndInfrastructureReady(mgr.GetLogger())),
279-
).Complete(r)
285+
).Complete(wrappedruntimereconciler.NewRuntimeReconcilerWithTracing(r, wrappedruntimereconciler.DefaultDecorator()))
280286
if err != nil {
281287
return fmt.Errorf("failed to build controller: %w", err)
282288
}
283289

284290
return nil
285291
}
292+
293+
func (r *LinodeObjectStorageBucketReconciler) TracedClient() client.Client {
294+
return wrappedruntimeclient.NewRuntimeClientWithTracing(r.Client, wrappedruntimeclient.DefaultDecorator())
295+
}

controller/linodeplacementgroup_controller.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ import (
4545

4646
infrav1alpha2 "github.com/linode/cluster-api-provider-linode/api/v1alpha2"
4747
"github.com/linode/cluster-api-provider-linode/cloud/scope"
48+
wrappedruntimeclient "github.com/linode/cluster-api-provider-linode/observability/wrappers/runtimeclient"
49+
wrappedruntimereconciler "github.com/linode/cluster-api-provider-linode/observability/wrappers/runtimereconciler"
4850
"github.com/linode/cluster-api-provider-linode/util"
4951
"github.com/linode/cluster-api-provider-linode/util/reconciler"
5052
)
@@ -76,7 +78,7 @@ func (r *LinodePlacementGroupReconciler) Reconcile(ctx context.Context, req ctrl
7678
log := ctrl.LoggerFrom(ctx).WithName("LinodePlacementGroupReconciler").WithValues("name", req.NamespacedName.String())
7779

7880
linodeplacementgroup := &infrav1alpha2.LinodePlacementGroup{}
79-
if err := r.Client.Get(ctx, req.NamespacedName, linodeplacementgroup); err != nil {
81+
if err := r.TracedClient().Get(ctx, req.NamespacedName, linodeplacementgroup); err != nil {
8082
if err = client.IgnoreNotFound(err); err != nil {
8183
log.Error(err, "Failed to fetch LinodePlacementGroup")
8284
}
@@ -88,7 +90,7 @@ func (r *LinodePlacementGroupReconciler) Reconcile(ctx context.Context, req ctrl
8890
ctx,
8991
r.LinodeApiKey,
9092
scope.PlacementGroupScopeParams{
91-
Client: r.Client,
93+
Client: r.TracedClient(),
9294
LinodePlacementGroup: linodeplacementgroup,
9395
},
9496
)
@@ -291,7 +293,11 @@ func (r *LinodePlacementGroupReconciler) reconcileDelete(ctx context.Context, lo
291293
//
292294
//nolint:dupl // this is same as Placement Group, worth making generic later.
293295
func (r *LinodePlacementGroupReconciler) SetupWithManager(mgr ctrl.Manager, options crcontroller.Options) error {
294-
linodePlacementGroupMapper, err := kutil.ClusterToTypedObjectsMapper(r.Client, &infrav1alpha2.LinodePlacementGroupList{}, mgr.GetScheme())
296+
linodePlacementGroupMapper, err := kutil.ClusterToTypedObjectsMapper(
297+
r.TracedClient(),
298+
&infrav1alpha2.LinodePlacementGroupList{},
299+
mgr.GetScheme(),
300+
)
295301
if err != nil {
296302
return fmt.Errorf("failed to create mapper for LinodePlacementGroups: %w", err)
297303
}
@@ -312,10 +318,14 @@ func (r *LinodePlacementGroupReconciler) SetupWithManager(mgr ctrl.Manager, opti
312318
&clusterv1.Cluster{},
313319
handler.EnqueueRequestsFromMapFunc(linodePlacementGroupMapper),
314320
builder.WithPredicates(predicates.ClusterUnpausedAndInfrastructureReady(mgr.GetLogger())),
315-
).Complete(r)
321+
).Complete(wrappedruntimereconciler.NewRuntimeReconcilerWithTracing(r, wrappedruntimereconciler.DefaultDecorator()))
316322
if err != nil {
317323
return fmt.Errorf("failed to build controller: %w", err)
318324
}
319325

320326
return nil
321327
}
328+
329+
func (r *LinodePlacementGroupReconciler) TracedClient() client.Client {
330+
return wrappedruntimeclient.NewRuntimeClientWithTracing(r.Client, wrappedruntimeclient.DefaultDecorator())
331+
}

0 commit comments

Comments
 (0)