You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2018/09/18 16:01:23 UTC

[camel-k] 03/03: Speedup deploy when building a new context

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

commit 1a4099305346fc74f920cf5a865401b58e0618c3
Author: nferraro <ni...@gmail.com>
AuthorDate: Tue Sep 18 17:38:19 2018 +0200

    Speedup deploy when building a new context
---
 pkg/apis/camel/v1alpha1/types.go         |  2 --
 pkg/apis/camel/v1alpha1/types_support.go | 10 ++++++++++
 pkg/stub/action/context/build.go         | 33 +++++++++++++++++++++++++++++++-
 pkg/stub/action/integration/deploy.go    |  3 +++
 4 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/pkg/apis/camel/v1alpha1/types.go b/pkg/apis/camel/v1alpha1/types.go
index fd21328..90effe8 100644
--- a/pkg/apis/camel/v1alpha1/types.go
+++ b/pkg/apis/camel/v1alpha1/types.go
@@ -127,8 +127,6 @@ const (
 
 	// IntegrationContextPhaseBuilding --
 	IntegrationContextPhaseBuilding IntegrationContextPhase = "Building"
-	// IntegrationContextPhaseDeploying --
-	IntegrationContextPhaseDeploying IntegrationContextPhase = "Deploying"
 	// IntegrationContextPhaseReady --
 	IntegrationContextPhaseReady IntegrationContextPhase = "Ready"
 	// IntegrationContextPhaseError --
diff --git a/pkg/apis/camel/v1alpha1/types_support.go b/pkg/apis/camel/v1alpha1/types_support.go
index b202aa3..39eb11d 100644
--- a/pkg/apis/camel/v1alpha1/types_support.go
+++ b/pkg/apis/camel/v1alpha1/types_support.go
@@ -39,6 +39,16 @@ func (spec ConfigurationSpec) String() string {
 //
 // **********************************
 
+// NewIntegrationList --
+func NewIntegrationList() IntegrationList {
+	return IntegrationList{
+		TypeMeta: metav1.TypeMeta{
+			APIVersion: SchemeGroupVersion.String(),
+			Kind:       IntegrationKind,
+		},
+	}
+}
+
 // NewIntegrationContext --
 func NewIntegrationContext(namespace string, name string) IntegrationContext {
 	return IntegrationContext{
diff --git a/pkg/stub/action/context/build.go b/pkg/stub/action/context/build.go
index ca9b44b..249cf71 100644
--- a/pkg/stub/action/context/build.go
+++ b/pkg/stub/action/context/build.go
@@ -19,6 +19,7 @@ package action
 
 import (
 	"context"
+	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 
 	"github.com/operator-framework/operator-sdk/pkg/sdk"
 	"github.com/sirupsen/logrus"
@@ -29,6 +30,7 @@ import (
 	"github.com/apache/camel-k/pkg/build"
 )
 
+// NewIntegrationContextBuildAction creates a new build handling action for the context
 func NewIntegrationContextBuildAction(ctx context.Context, namespace string) IntegrationContextAction {
 	return &integrationContextBuildAction{
 		buildManager: build.NewManager(ctx, namespace),
@@ -68,8 +70,37 @@ func (action *integrationContextBuildAction) Handle(context *v1alpha1.Integratio
 		target := context.DeepCopy()
 		target.Status.Image = buildResult.Image
 		target.Status.Phase = v1alpha1.IntegrationContextPhaseReady
-		return sdk.Update(target)
+		if err := sdk.Update(target); err != nil {
+			return err
+		}
+		if err := action.informIntegrations(target); err != nil {
+			return err
+		}
 	}
 
 	return nil
 }
+
+// informIntegrations triggers the processing of all integrations waiting for this context to be built
+func (action *integrationContextBuildAction) informIntegrations(context *v1alpha1.IntegrationContext) error {
+	list := v1alpha1.NewIntegrationList()
+	err := sdk.List(context.Namespace, &list, sdk.WithListOptions(&metav1.ListOptions{}))
+	if err != nil {
+		return err
+	}
+	for _, integration := range list.Items {
+		if integration.Spec.Context != context.Name {
+			continue
+		}
+
+		if integration.Annotations == nil {
+			integration.Annotations = make(map[string]string)
+		}
+		integration.Annotations["camel.apache.org/context.digest"] = context.Status.Digest
+		err = sdk.Update(&integration)
+		if err != nil {
+			return err
+		}
+	}
+	return nil
+}
diff --git a/pkg/stub/action/integration/deploy.go b/pkg/stub/action/integration/deploy.go
index b8adb43..99545f6 100644
--- a/pkg/stub/action/integration/deploy.go
+++ b/pkg/stub/action/integration/deploy.go
@@ -151,6 +151,9 @@ func getDeploymentFor(ctx *v1alpha1.IntegrationContext, integration *v1alpha1.In
 	// has been changed
 	environment["CAMEL_K_DIGEST"] = integration.Status.Digest
 
+	// optimizations
+	environment["AB_JOLOKIA_OFF"] = "true"
+
 	labels := map[string]string{
 		"camel.apache.org/integration": integration.Name,
 	}