From 2b74ffce984ac4da3414f84f2f682204e9316a5a Mon Sep 17 00:00:00 2001 From: Olivier Michallat Date: Mon, 6 Feb 2023 18:43:40 -0800 Subject: [PATCH] Use Patch() to update K8ssandraTask status (fixes #854) --- CHANGELOG/CHANGELOG-1.6.md | 1 + controllers/control/k8ssandratask_controller.go | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG/CHANGELOG-1.6.md b/CHANGELOG/CHANGELOG-1.6.md index eac132ada..a67aaf06b 100644 --- a/CHANGELOG/CHANGELOG-1.6.md +++ b/CHANGELOG/CHANGELOG-1.6.md @@ -15,3 +15,4 @@ When cutting a new release, update the `unreleased` heading to the tag being gen ## unreleased * [FEATURE] [#739815](https://github.com/k8ssandra/k8ssandra-operator/issues/815) Add configuration block to CRDs for new Cassandra metrics agent. +* [BUGFIX] [#854](https://github.com/k8ssandra/k8ssandra-operator/issues/854) Use Patch() to update K8ssandraTask status. diff --git a/controllers/control/k8ssandratask_controller.go b/controllers/control/k8ssandratask_controller.go index e0bd943c0..fae424be5 100644 --- a/controllers/control/k8ssandratask_controller.go +++ b/controllers/control/k8ssandratask_controller.go @@ -181,8 +181,9 @@ func (r *K8ssandraTaskReconciler) Reconcile(ctx context.Context, req ctrl.Reques break } } + patch := client.MergeFrom(kTask.DeepCopy()) kTask.RefreshGlobalStatus(len(dcs)) - if err = r.Status().Update(ctx, kTask); err != nil { + if err = r.Status().Patch(ctx, kTask, patch); err != nil { return ctrl.Result{}, err } // If the status update set a completion time, we want to reconcile again in order to handle the TTL. But