Skip to content

Commit b2e2f29

Browse files
authored
Merge pull request #2828 from 0xff-dev/main
🐛 fix(controllerutil): avoid panic when the MutateFn is nil
2 parents d3b0880 + d67d279 commit b2e2f29

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

pkg/controller/controllerutil/controllerutil.go

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -310,18 +310,23 @@ func CreateOrUpdate(ctx context.Context, c client.Client, obj client.Object, f M
310310
if !apierrors.IsNotFound(err) {
311311
return OperationResultNone, err
312312
}
313-
if err := mutate(f, key, obj); err != nil {
314-
return OperationResultNone, err
313+
if f != nil {
314+
if err := mutate(f, key, obj); err != nil {
315+
return OperationResultNone, err
316+
}
315317
}
318+
316319
if err := c.Create(ctx, obj); err != nil {
317320
return OperationResultNone, err
318321
}
319322
return OperationResultCreated, nil
320323
}
321324

322325
existing := obj.DeepCopyObject()
323-
if err := mutate(f, key, obj); err != nil {
324-
return OperationResultNone, err
326+
if f != nil {
327+
if err := mutate(f, key, obj); err != nil {
328+
return OperationResultNone, err
329+
}
325330
}
326331

327332
if equality.Semantic.DeepEqual(existing, obj) {

0 commit comments

Comments
 (0)