You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2019/01/07 14:25:45 UTC
[camel-k] 08/13: Fix #237: stop reconciliation when reaching the
desired state
This is an automated email from the ASF dual-hosted git repository.
nferraro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 9aa4edc23d5d173d6a927ee2840bbe338eebfe94
Author: nferraro <ni...@gmail.com>
AuthorDate: Fri Jan 4 16:58:05 2019 +0100
Fix #237: stop reconciliation when reaching the desired state
---
pkg/controller/integration/integration_controller.go | 9 +++++++++
.../integrationcontext/integrationcontext_controller.go | 14 +++++++++++---
.../integrationplatform/integrationplatform_controller.go | 9 +++++++++
3 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/pkg/controller/integration/integration_controller.go b/pkg/controller/integration/integration_controller.go
index 34bf34a..ddbe9a7 100644
--- a/pkg/controller/integration/integration_controller.go
+++ b/pkg/controller/integration/integration_controller.go
@@ -119,6 +119,15 @@ func (r *ReconcileIntegration) Reconcile(request reconcile.Request) (reconcile.R
}
}
+ // Fetch the Integration again and check the state
+ if err = r.client.Get(ctx, request.NamespacedName, instance); err != nil {
+ return reconcile.Result{}, err
+ }
+
+ if instance.Status.Phase == camelv1alpha1.IntegrationPhaseRunning {
+ return reconcile.Result{}, nil
+ }
+ // Requeue
return reconcile.Result{
RequeueAfter: 5 * time.Second,
}, nil
diff --git a/pkg/controller/integrationcontext/integrationcontext_controller.go b/pkg/controller/integrationcontext/integrationcontext_controller.go
index 04c54d4..5eb0e46 100644
--- a/pkg/controller/integrationcontext/integrationcontext_controller.go
+++ b/pkg/controller/integrationcontext/integrationcontext_controller.go
@@ -2,13 +2,13 @@ package integrationcontext
import (
"context"
- "github.com/sirupsen/logrus"
"time"
camelv1alpha1 "github.com/apache/camel-k/pkg/apis/camel/v1alpha1"
+ "github.com/apache/camel-k/pkg/client"
+ "github.com/sirupsen/logrus"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime"
- "github.com/apache/camel-k/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller"
"sigs.k8s.io/controller-runtime/pkg/handler"
"sigs.k8s.io/controller-runtime/pkg/manager"
@@ -102,8 +102,16 @@ func (r *ReconcileIntegrationContext) Reconcile(request reconcile.Request) (reco
}
}
+ // Fetch the IntegrationContext again and check the state
+ if err = r.client.Get(ctx, request.NamespacedName, instance); err != nil {
+ return reconcile.Result{}, err
+ }
+
+ if instance.Status.Phase == camelv1alpha1.IntegrationContextPhaseReady {
+ return reconcile.Result{}, nil
+ }
+ // Requeue
return reconcile.Result{
RequeueAfter: 5 * time.Second,
}, nil
-
}
diff --git a/pkg/controller/integrationplatform/integrationplatform_controller.go b/pkg/controller/integrationplatform/integrationplatform_controller.go
index a5e2af2..2a943d4 100644
--- a/pkg/controller/integrationplatform/integrationplatform_controller.go
+++ b/pkg/controller/integrationplatform/integrationplatform_controller.go
@@ -101,6 +101,15 @@ func (r *ReconcileIntegrationPlatform) Reconcile(request reconcile.Request) (rec
}
}
+ // Fetch the IntegrationPlatform again and check the state
+ if err = r.client.Get(ctx, request.NamespacedName, instance); err != nil {
+ return reconcile.Result{}, err
+ }
+
+ if instance.Status.Phase == camelv1alpha1.IntegrationPlatformPhaseReady {
+ return reconcile.Result{}, nil
+ }
+ // Requeue
return reconcile.Result{
RequeueAfter: 5 * time.Second,
}, nil