diff --git a/azure/services/aso/aso.go b/azure/services/aso/aso.go index 1089f7a56f3..e8f14ee8912 100644 --- a/azure/services/aso/aso.go +++ b/azure/services/aso/aso.go @@ -122,15 +122,11 @@ func (r *reconciler[T]) CreateOrUpdateResource(ctx context.Context, spec azure.A // update instead of returning early. adopt = true case cond.Reason == conditions.ReasonReconciling.Name: - // Updating the spec of an ASO resource that is already being updated will swallow this update - // and ignore it until the next periodic ASO resync. - // ref: https://github.com/Azure/azure-service-operator/issues/3451 - err := azure.NewOperationNotDoneError(&infrav1.Future{ + readyErr = azure.NewOperationNotDoneError(&infrav1.Future{ Type: createOrUpdateFutureType, ResourceGroup: existing.GetNamespace(), Name: existing.GetName(), }) - return zero, azure.WithTransientError(err, requeueInterval) default: readyErr = fmt.Errorf("resource is not Ready: %s", conds[i].Message) } diff --git a/azure/services/aso/aso_test.go b/azure/services/aso/aso_test.go index 5f06161699d..9481038f6ed 100644 --- a/azure/services/aso/aso_test.go +++ b/azure/services/aso/aso_test.go @@ -230,6 +230,10 @@ func TestCreateOrUpdateResource(t *testing.T) { Namespace: "namespace", }, }) + specMock.EXPECT().Parameters(gomockinternal.AContext(), gomock.Not(gomock.Nil())).DoAndReturn(func(_ context.Context, group *asoresourcesv1.ResourceGroup) (*asoresourcesv1.ResourceGroup, error) { + return group, nil + }) + specMock.EXPECT().WasManaged(gomock.Any()).Return(false) ctx := context.Background() g.Expect(c.Create(ctx, &asoresourcesv1.ResourceGroup{