This is an automated email from the ASF dual-hosted git repository.

astefanutti pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 755d06108cc50154a6c8559e4d37e00f2deec84c
Author: Antonin Stefanutti <anto...@stefanutti.fr>
AuthorDate: Tue Nov 26 15:53:51 2019 +0100

    feat: Use JSON merge patch to update integration status
---
 pkg/controller/integration/integration_controller.go | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/pkg/controller/integration/integration_controller.go 
b/pkg/controller/integration/integration_controller.go
index 16849e8..730368b 100644
--- a/pkg/controller/integration/integration_controller.go
+++ b/pkg/controller/integration/integration_controller.go
@@ -255,7 +255,7 @@ func (r *ReconcileIntegration) Reconcile(request 
reconcile.Request) (reconcile.R
                                target.SetIntegrationPlatform(pl)
                        }
 
-                       return r.update(ctx, targetLog, target)
+                       return r.update(ctx, &instance, target)
                }
 
                return reconcile.Result{}, err
@@ -282,7 +282,7 @@ func (r *ReconcileIntegration) Reconcile(request 
reconcile.Request) (reconcile.R
                        }
 
                        if newTarget != nil {
-                               if r, err := r.update(ctx, targetLog, 
newTarget); err != nil {
+                               if r, err := r.update(ctx, &instance, 
newTarget); err != nil {
                                        return r, err
                                }
 
@@ -304,8 +304,7 @@ func (r *ReconcileIntegration) Reconcile(request 
reconcile.Request) (reconcile.R
        return reconcile.Result{}, nil
 }
 
-// Update --
-func (r *ReconcileIntegration) update(ctx context.Context, log log.Logger, 
target *v1alpha1.Integration) (reconcile.Result, error) {
+func (r *ReconcileIntegration) update(ctx context.Context, base 
*v1alpha1.Integration, target *v1alpha1.Integration) (reconcile.Result, error) {
        dgst, err := digest.ComputeForIntegration(target)
        if err != nil {
                return reconcile.Result{}, err
@@ -313,16 +312,7 @@ func (r *ReconcileIntegration) update(ctx context.Context, 
log log.Logger, targe
 
        target.Status.Digest = dgst
 
-       err = r.client.Status().Update(ctx, target)
-       if err != nil {
-               if k8serrors.IsConflict(err) {
-                       log.Error(err, "conflict")
-
-                       return reconcile.Result{
-                               Requeue: true,
-                       }, nil
-               }
-       }
+       err = r.client.Status().Patch(ctx, target, k8sclient.MergeFrom(base))
 
        return reconcile.Result{}, err
 }

Reply via email to