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.ferr...@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