From 4b68ad475b875854335dca14137a7b973d972cbd Mon Sep 17 00:00:00 2001 From: nolancon Date: Mon, 16 Dec 2024 08:30:50 -0500 Subject: [PATCH] Use Patch instead of Update --- internal/controller/bucket/helpers.go | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/controller/bucket/helpers.go b/internal/controller/bucket/helpers.go index 7a7dcead..33c2c68c 100644 --- a/internal/controller/bucket/helpers.go +++ b/internal/controller/bucket/helpers.go @@ -15,6 +15,7 @@ import ( "github.com/linode/provider-ceph/internal/consts" "github.com/linode/provider-ceph/internal/utils" "go.opentelemetry.io/otel" + "sigs.k8s.io/controller-runtime/pkg/client" kerrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/types" @@ -273,12 +274,13 @@ func (c *external) updateBucketCR(ctx context.Context, bucket *v1alpha1.Bucket, if err := c.kubeClient.Get(ctx, nn, bucket); err != nil { return err } - - switch cb(bucketDeepCopy, bucket) { + newCopy := bucket.DeepCopy() + updateRequired := cb(bucketDeepCopy, bucket) + switch updateRequired { case NeedsStatusUpdate: - return c.kubeClient.Status().Update(ctx, bucket) + return c.kubeClient.Status().Patch(ctx, bucket, client.MergeFrom(newCopy)) case NeedsObjectUpdate: - return c.kubeClient.Update(ctx, bucket) + return c.kubeClient.Patch(ctx, bucket, client.MergeFrom(newCopy)) default: return nil }