Skip to content

Commit c693ff8

Browse files
authored
Merge pull request #6506 from jennryaz/erya-slog
Use structured logging for resource binding controller
2 parents e15e496 + 6347158 commit c693ff8

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

pkg/controllers/binding/binding_controller.go

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ type ResourceBindingController struct {
6969
// The Controller will requeue the Request to be processed again if an error is non-nil or
7070
// Result.Requeue is true, otherwise upon completion it will remove the work from the queue.
7171
func (c *ResourceBindingController) Reconcile(ctx context.Context, req controllerruntime.Request) (controllerruntime.Result, error) {
72-
klog.V(4).Infof("Reconciling ResourceBinding %s.", req.NamespacedName.String())
72+
klog.V(4).InfoS("Reconciling ResourceBinding", "binding", req.NamespacedName.String())
7373

7474
binding := &workv1alpha2.ResourceBinding{}
7575
if err := c.Client.Get(ctx, req.NamespacedName, binding); err != nil {
@@ -82,9 +82,9 @@ func (c *ResourceBindingController) Reconcile(ctx context.Context, req controlle
8282
}
8383

8484
if !binding.DeletionTimestamp.IsZero() {
85-
klog.V(4).Infof("Begin to delete works owned by binding(%s).", req.NamespacedName.String())
85+
klog.V(4).InfoS("Begin deleting works owned by ResourceBinding", "binding", req.NamespacedName.String())
8686
if err := helper.DeleteWorks(ctx, c.Client, req.Namespace, req.Name, binding.Labels[workv1alpha2.ResourceBindingPermanentIDLabel]); err != nil {
87-
klog.Errorf("Failed to delete works related to %s/%s: %v", binding.GetNamespace(), binding.GetName(), err)
87+
klog.ErrorS(err, "Failed deleting works owned by ResourceBinding", "namespace", binding.GetNamespace(), "binding", binding.GetName())
8888
return controllerruntime.Result{}, err
8989
}
9090
return c.removeFinalizer(ctx, binding)
@@ -121,23 +121,21 @@ func (c *ResourceBindingController) syncBinding(ctx context.Context, binding *wo
121121
// So, just return without retry(requeue) would save unnecessary loop.
122122
return controllerruntime.Result{}, nil
123123
}
124-
klog.Errorf("Failed to fetch workload for resourceBinding(%s/%s). Error: %v.",
125-
binding.GetNamespace(), binding.GetName(), err)
124+
klog.ErrorS(err, "Failed to fetch workload for ResourceBinding", "namespace", binding.GetNamespace(), "binding", binding.GetName())
126125
return controllerruntime.Result{}, err
127126
}
128127
start := time.Now()
129128
err = ensureWork(ctx, c.Client, c.ResourceInterpreter, workload, c.OverrideManager, binding, apiextensionsv1.NamespaceScoped)
130129
metrics.ObserveSyncWorkLatency(err, start)
131130
if err != nil {
132-
klog.Errorf("Failed to transform resourceBinding(%s/%s) to works. Error: %v.",
133-
binding.GetNamespace(), binding.GetName(), err)
131+
klog.ErrorS(err, "Failed to transform ResourceBinding to works", "namespace", binding.GetNamespace(), "binding", binding.GetName())
134132
c.EventRecorder.Event(binding, corev1.EventTypeWarning, events.EventReasonSyncWorkFailed, err.Error())
135133
c.EventRecorder.Event(workload, corev1.EventTypeWarning, events.EventReasonSyncWorkFailed, err.Error())
136134
return controllerruntime.Result{}, err
137135
}
138136

139-
msg := fmt.Sprintf("Sync work of resourceBinding(%s/%s) successful.", binding.Namespace, binding.Name)
140-
klog.V(4).Info(msg)
137+
msg := fmt.Sprintf("Sync work of ResourceBinding(%s/%s) successful.", binding.Namespace, binding.Name)
138+
klog.V(4).InfoS(msg, "namespace", binding.GetNamespace(), "binding", binding.GetName())
141139
c.EventRecorder.Event(binding, corev1.EventTypeNormal, events.EventReasonSyncWorkSucceed, msg)
142140
c.EventRecorder.Event(workload, corev1.EventTypeNormal, events.EventReasonSyncWorkSucceed, msg)
143141
return controllerruntime.Result{}, nil
@@ -147,16 +145,14 @@ func (c *ResourceBindingController) removeOrphanWorks(ctx context.Context, bindi
147145
works, err := helper.FindOrphanWorks(ctx, c.Client, binding.Namespace, binding.Name,
148146
binding.Labels[workv1alpha2.ResourceBindingPermanentIDLabel], helper.ObtainBindingSpecExistingClusters(binding.Spec))
149147
if err != nil {
150-
klog.Errorf("Failed to find orphan works by resourceBinding(%s/%s). Error: %v.",
151-
binding.GetNamespace(), binding.GetName(), err)
148+
klog.ErrorS(err, "Failed to find orphaned works by ResourceBinding", "namespace", binding.GetNamespace(), "binding", binding.GetName())
152149
c.EventRecorder.Event(binding, corev1.EventTypeWarning, events.EventReasonCleanupWorkFailed, err.Error())
153150
return err
154151
}
155152

156153
err = helper.RemoveOrphanWorks(ctx, c.Client, works)
157154
if err != nil {
158-
klog.Errorf("Failed to remove orphan works by resourceBinding(%s/%s). Error: %v.",
159-
binding.GetNamespace(), binding.GetName(), err)
155+
klog.ErrorS(err, "Failed to remove orphaned works by ResourceBinding", "namespace", binding.GetNamespace(), "binding", binding.GetName())
160156
c.EventRecorder.Event(binding, corev1.EventTypeWarning, events.EventReasonCleanupWorkFailed, err.Error())
161157
return err
162158
}
@@ -201,15 +197,16 @@ func (c *ResourceBindingController) newOverridePolicyFunc() handler.MapFunc {
201197
}
202198
}
203199
if err := c.Client.List(ctx, readonlyBindingList, listOption); err != nil {
204-
klog.Errorf("Failed to list resourceBindings, error: %v", err)
200+
klog.ErrorS(err, "Failed to list ResourceBindings for policy", "namespace", a.GetNamespace(), "name", a.GetName())
205201
return nil
206202
}
207203

208204
var requests []reconcile.Request
209205
for _, binding := range readonlyBindingList.Items {
210206
// Nil resourceSelectors means matching all resources.
211207
if len(overrideRS) == 0 {
212-
klog.V(2).Infof("Enqueue ResourceBinding(%s/%s) as override policy(%s/%s) changes.", binding.Namespace, binding.Name, a.GetNamespace(), a.GetName())
208+
klog.V(2).InfoS("Enqueue ResourceBinding as override policy changes", "namespace", binding.Namespace,
209+
"binding", binding.Name, "policyNamespace", a.GetNamespace(), "policy", a.GetName())
213210
requests = append(requests, reconcile.Request{NamespacedName: types.NamespacedName{Namespace: binding.Namespace, Name: binding.Name}})
214211
continue
215212
}
@@ -218,13 +215,14 @@ func (c *ResourceBindingController) newOverridePolicyFunc() handler.MapFunc {
218215
if err != nil {
219216
// If we cannot fetch resource template from binding, this may be due to the fact that the resource template has been deleted.
220217
// Just skip it so that it will not affect other bindings.
221-
klog.Errorf("Failed to fetch workload for resourceBinding(%s/%s). Error: %v.", binding.Namespace, binding.Name, err)
218+
klog.ErrorS(err, "Failed to fetch workload for ResourceBinding", "namespace", binding.Namespace, "binding", binding.Name)
222219
continue
223220
}
224221

225222
for _, rs := range overrideRS {
226223
if util.ResourceMatches(workload, rs) {
227-
klog.V(2).Infof("Enqueue ResourceBinding(%s/%s) as override policy(%s/%s) changes.", binding.Namespace, binding.Name, a.GetNamespace(), a.GetName())
224+
klog.V(2).InfoS("Enqueue ResourceBinding as override policy changes", "namespace", binding.Namespace,
225+
"binding", binding.Name, "policyNamespace", a.GetNamespace(), "policy", a.GetName())
228226
requests = append(requests, reconcile.Request{NamespacedName: types.NamespacedName{Namespace: binding.Namespace, Name: binding.Name}})
229227
break
230228
}

0 commit comments

Comments
 (0)