Skip to content

Commit 737b737

Browse files
authored
Merge pull request #1395 from k8s-infra-cherrypick-robot/cherry-pick-1364-to-release-1.8
[release-1.8] fix: wrap error when nodepool update/delete fails
2 parents df3d341 + 6e5d77a commit 737b737

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

cloud/services/container/nodepools/reconcile.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ func (s *Service) Reconcile(ctx context.Context) (ctrl.Result, error) {
149149
log.Info("Node pool config update required", "request", nodePoolUpdateConfigRequest)
150150
err = s.updateNodePoolConfig(ctx, nodePoolUpdateConfigRequest)
151151
if err != nil {
152-
return ctrl.Result{}, fmt.Errorf("node pool config update (either version/labels/taints/locations/image type/network tag/linux node config or all) failed: %s", err)
152+
return ctrl.Result{}, fmt.Errorf("node pool config update (either version/labels/taints/locations/image type/network tag/linux node config or all) failed: %w", err)
153153
}
154154
log.Info("Node pool config updating in progress")
155155
s.scope.GCPManagedMachinePool.Status.Ready = true

exp/controllers/gcpmanagedmachinepool_controller.go

+9-1
Original file line numberDiff line numberDiff line change
@@ -336,11 +336,12 @@ func (r *GCPManagedMachinePoolReconciler) reconcile(ctx context.Context, managed
336336
var e *apierror.APIError
337337
if ok := errors.As(err, &e); ok {
338338
if e.GRPCStatus().Code() == codes.FailedPrecondition {
339-
log.Info("Cannot perform update when there's other operation, retry later", "reconciler", name)
339+
log.Info("Cannot perform update while another operation is running, requeuing", "reconciler", name)
340340
return ctrl.Result{RequeueAfter: reconciler.DefaultRetryTime}, nil
341341
}
342342
}
343343
log.Error(err, "Reconcile error", "reconciler", name)
344+
344345
record.Warnf(managedMachinePoolScope.GCPManagedMachinePool, "GCPManagedMachinePoolReconcile", "Reconcile error - %v", err)
345346
return ctrl.Result{}, err
346347
}
@@ -369,6 +370,13 @@ func (r *GCPManagedMachinePoolReconciler) reconcileDelete(ctx context.Context, m
369370
log.V(4).Info("Calling reconciler delete", "reconciler", name)
370371
res, err := r.Delete(ctx)
371372
if err != nil {
373+
var e *apierror.APIError
374+
if ok := errors.As(err, &e); ok {
375+
if e.GRPCStatus().Code() == codes.FailedPrecondition {
376+
log.Info("Cannot perform delete while another operation is running, requeuing", "reconciler", name)
377+
return ctrl.Result{RequeueAfter: reconciler.DefaultRetryTime}, nil
378+
}
379+
}
372380
log.Error(err, "Reconcile error", "reconciler", name)
373381
record.Warnf(managedMachinePoolScope.GCPManagedMachinePool, "GCPManagedMachinePoolReconcile", "Reconcile error - %v", err)
374382
return ctrl.Result{}, err

0 commit comments

Comments
 (0)