This is an automated email from the ASF dual-hosted git repository. lburgazzoli pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/master by this push: new 4fb84e5 Add a phase to wake up integration reconcile loop on context build completion 4fb84e5 is described below commit 4fb84e5e406781471f37d23676e52d419d3381e4 Author: Antonin Stefanutti <anto...@stefanutti.fr> AuthorDate: Wed Feb 20 11:17:31 2019 +0100 Add a phase to wake up integration reconcile loop on context build completion Fixes #460 --- pkg/apis/camel/v1alpha1/integration_types.go | 2 ++ pkg/controller/integration/build_context.go | 3 ++- pkg/controller/integrationcontext/build.go | 19 ++++++----------- pkg/trait/deployment.go | 31 ++++++++++++++-------------- 4 files changed, 25 insertions(+), 30 deletions(-) diff --git a/pkg/apis/camel/v1alpha1/integration_types.go b/pkg/apis/camel/v1alpha1/integration_types.go index 75f9726..e3dee63 100644 --- a/pkg/apis/camel/v1alpha1/integration_types.go +++ b/pkg/apis/camel/v1alpha1/integration_types.go @@ -132,6 +132,8 @@ const ( IntegrationPhaseWaitingForPlatform IntegrationPhase = "Waiting For Platform" // IntegrationPhaseBuildingContext -- IntegrationPhaseBuildingContext IntegrationPhase = "Building Context" + // IntegrationPhaseResolvingContext -- + IntegrationPhaseResolvingContext IntegrationPhase = "Resolving Context" // IntegrationPhaseBuildImageSubmitted -- IntegrationPhaseBuildImageSubmitted IntegrationPhase = "Build Image Submitted" // IntegrationPhaseBuildImageRunning -- diff --git a/pkg/controller/integration/build_context.go b/pkg/controller/integration/build_context.go index e4d3061..2c03f24 100644 --- a/pkg/controller/integration/build_context.go +++ b/pkg/controller/integration/build_context.go @@ -42,7 +42,8 @@ func (action *buildContextAction) Name() string { } func (action *buildContextAction) CanHandle(integration *v1alpha1.Integration) bool { - return integration.Status.Phase == v1alpha1.IntegrationPhaseBuildingContext + return integration.Status.Phase == v1alpha1.IntegrationPhaseBuildingContext || + integration.Status.Phase == v1alpha1.IntegrationPhaseResolvingContext } func (action *buildContextAction) Handle(ctx context.Context, integration *v1alpha1.Integration) error { diff --git a/pkg/controller/integrationcontext/build.go b/pkg/controller/integrationcontext/build.go index fd90163..8dad883 100644 --- a/pkg/controller/integrationcontext/build.go +++ b/pkg/controller/integrationcontext/build.go @@ -22,19 +22,16 @@ import ( "errors" "fmt" - "github.com/apache/camel-k/pkg/util/cancellable" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "github.com/apache/camel-k/pkg/util/kubernetes" - - "github.com/apache/camel-k/pkg/trait" + k8sclient "sigs.k8s.io/controller-runtime/pkg/client" "github.com/apache/camel-k/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/pkg/builder" "github.com/apache/camel-k/pkg/platform" - - k8sclient "sigs.k8s.io/controller-runtime/pkg/client" + "github.com/apache/camel-k/pkg/trait" + "github.com/apache/camel-k/pkg/util/cancellable" + "github.com/apache/camel-k/pkg/util/kubernetes" ) // NewBuildAction creates a new build request handling action for the context @@ -245,12 +242,8 @@ func (action *buildAction) informIntegrations(ctx context.Context, ictx *v1alpha if integration.Status.Context != ictx.Name { continue } - - if integration.Annotations == nil { - integration.Annotations = make(map[string]string) - } - integration.Annotations["camel.apache.org/context.digest"] = ictx.Status.Digest - err = action.client.Update(ctx, &integration) + integration.Status.Phase = v1alpha1.IntegrationPhaseResolvingContext + err = action.client.Status().Update(ctx, &integration) if err != nil { return err } diff --git a/pkg/trait/deployment.go b/pkg/trait/deployment.go index 6551e33..f91d002 100644 --- a/pkg/trait/deployment.go +++ b/pkg/trait/deployment.go @@ -23,11 +23,10 @@ import ( "strconv" "strings" - "github.com/apache/camel-k/pkg/util/kubernetes" - + "github.com/apache/camel-k/pkg/apis/camel/v1alpha1" "github.com/apache/camel-k/pkg/util/envvar" + "github.com/apache/camel-k/pkg/util/kubernetes" - "github.com/apache/camel-k/pkg/apis/camel/v1alpha1" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -62,11 +61,9 @@ func (t *deploymentTrait) Configure(e *Environment) (bool, error) { return strategy == ControllerStrategyDeployment, nil } - if t.ContainerImage && e.InPhase(v1alpha1.IntegrationContextPhaseReady, v1alpha1.IntegrationPhaseBuildingContext) { - return true, nil - } - - if !t.ContainerImage && e.InPhase(v1alpha1.IntegrationContextPhaseReady, v1alpha1.IntegrationPhaseBuildingContext) { + if e.IntegrationContextInPhase(v1alpha1.IntegrationContextPhaseReady) && + (e.IntegrationInPhase(v1alpha1.IntegrationPhaseBuildingContext) || + e.IntegrationInPhase(v1alpha1.IntegrationPhaseResolvingContext)) { return true, nil } @@ -74,14 +71,16 @@ func (t *deploymentTrait) Configure(e *Environment) (bool, error) { } func (t *deploymentTrait) Apply(e *Environment) error { - if t.ContainerImage && e.InPhase(v1alpha1.IntegrationContextPhaseReady, v1alpha1.IntegrationPhaseBuildingContext) { - // trigger container image build - e.Integration.Status.Phase = v1alpha1.IntegrationPhaseBuildImageSubmitted - } - - if !t.ContainerImage && e.InPhase(v1alpha1.IntegrationContextPhaseReady, v1alpha1.IntegrationPhaseBuildingContext) { - // trigger integration deploy - e.Integration.Status.Phase = v1alpha1.IntegrationPhaseDeploying + if e.IntegrationContextInPhase(v1alpha1.IntegrationContextPhaseReady) && + (e.IntegrationInPhase(v1alpha1.IntegrationPhaseBuildingContext) || + e.IntegrationInPhase(v1alpha1.IntegrationPhaseResolvingContext)) { + if t.ContainerImage { + // trigger container image build + e.Integration.Status.Phase = v1alpha1.IntegrationPhaseBuildImageSubmitted + } else { + // trigger integration deploy + e.Integration.Status.Phase = v1alpha1.IntegrationPhaseDeploying + } } if e.Integration != nil && e.Integration.Status.Phase == v1alpha1.IntegrationPhaseDeploying {