Skip to content

Commit 4d0c99d

Browse files
committed
fixing a bug
1 parent c27549f commit 4d0c99d

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

pkg/ipamutil/reconciler.go

+15-8
Original file line numberDiff line numberDiff line change
@@ -170,14 +170,10 @@ func (r *ClaimReconciler) Reconcile(ctx context.Context, req ctrl.Request) (_ ct
170170
return ctrl.Result{}, err
171171
}
172172

173-
defer func() {
173+
if controllerutil.AddFinalizer(claim, ReleaseAddressFinalizer) {
174174
if err := patchHelper.Patch(ctx, claim); err != nil {
175-
reterr = kerrors.NewAggregate([]error{reterr, err})
175+
return ctrl.Result{}, err
176176
}
177-
}()
178-
179-
if controllerutil.AddFinalizer(claim, ReleaseAddressFinalizer) {
180-
return ctrl.Result{}, nil
181177
}
182178

183179
var res *reconcile.Result
@@ -187,7 +183,7 @@ func (r *ClaimReconciler) Reconcile(ctx context.Context, req ctrl.Request) (_ ct
187183
handler := r.Adapter.ClaimHandlerFor(r.Client, claim)
188184
if pool, res, err = handler.FetchPool(ctx); err != nil || res != nil {
189185
if apierrors.IsNotFound(err) {
190-
err := errors.New("pool not found")
186+
err := fmt.Errorf("pool not found in in-cluster-provider: %w", err)
191187
log.Error(err, "the referenced pool could not be found")
192188
if !claim.ObjectMeta.DeletionTimestamp.IsZero() {
193189
return r.reconcileDelete(ctx, claim, handler)
@@ -212,6 +208,12 @@ func (r *ClaimReconciler) Reconcile(ctx context.Context, req ctrl.Request) (_ ct
212208
return r.reconcileDelete(ctx, claim, handler)
213209
}
214210

211+
defer func() {
212+
if err := patchHelper.Patch(ctx, claim); err != nil {
213+
reterr = kerrors.NewAggregate([]error{reterr, err})
214+
}
215+
}()
216+
215217
// We always ensure there is a valid address object passed to the handler.
216218
// The handler will complete it with the ip address.
217219
address := NewIPAddress(claim, pool)
@@ -289,7 +291,12 @@ func (r *ClaimReconciler) reconcileDelete(ctx context.Context, claim *ipamv1.IPA
289291
}
290292
}
291293

292-
controllerutil.RemoveFinalizer(claim, ReleaseAddressFinalizer)
294+
p := client.MergeFrom(claim.DeepCopy())
295+
if controllerutil.RemoveFinalizer(claim, ReleaseAddressFinalizer) {
296+
if err := r.Client.Patch(ctx, claim, p); err != nil {
297+
return ctrl.Result{}, errors.Wrap(err, "failed to remove claim finalizer")
298+
}
299+
}
293300
return ctrl.Result{}, nil
294301
}
295302

0 commit comments

Comments
 (0)