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 2018/12/21 11:05:55 UTC

[camel-k] 02/04: create knative context #183

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 9b7ce11cb795169a732162f16a58ac4e43522954
Author: lburgazzoli <lb...@gmail.com>
AuthorDate: Thu Dec 20 21:48:50 2018 +0100

    create knative context #183
---
 ...w.yaml => platform-integration-context-knative.yaml} |  5 +++--
 deploy/resources.go                                     | 17 +++++++++--------
 pkg/builder/builder_steps.go                            |  8 ++++++++
 pkg/builder/springboot/generator.go                     |  8 ++++++++
 pkg/metadata/dependencies.go                            |  3 +++
 pkg/stub/action/platform/create.go                      | 16 ++++++++++++++--
 pkg/util/envvar/envvar.go                               |  3 ++-
 pkg/util/maven/maven_project.go                         |  4 +++-
 8 files changed, 50 insertions(+), 14 deletions(-)

diff --git a/deploy/platform-integration-context-flow.yaml b/deploy/platform-integration-context-knative.yaml
similarity index 85%
rename from deploy/platform-integration-context-flow.yaml
rename to deploy/platform-integration-context-knative.yaml
index 054f3c1..895ef39 100644
--- a/deploy/platform-integration-context-flow.yaml
+++ b/deploy/platform-integration-context-knative.yaml
@@ -1,7 +1,7 @@
 apiVersion: camel.apache.org/v1alpha1
 kind: IntegrationContext
 metadata:
-  name: flow
+  name: knative
   labels:
     app: "camel-k"
     camel.apache.org/context.created.by.kind: Operator
@@ -11,4 +11,5 @@ spec:
   dependencies:
     - runtime:jvm
     - runtime:yaml
-    - camel:core
\ No newline at end of file
+    - camel:core
+    - camel-k:knative
\ No newline at end of file
diff --git a/deploy/resources.go b/deploy/resources.go
index 6ceed46..7f6a768 100644
--- a/deploy/resources.go
+++ b/deploy/resources.go
@@ -2723,12 +2723,12 @@ spec:
     camelVersion: "2.23.0"
 
 `
-	Resources["platform-integration-context-flow.yaml"] =
+	Resources["platform-integration-context-groovy.yaml"] =
 		`
 apiVersion: camel.apache.org/v1alpha1
 kind: IntegrationContext
 metadata:
-  name: flow
+  name: groovy
   labels:
     app: "camel-k"
     camel.apache.org/context.created.by.kind: Operator
@@ -2737,15 +2737,15 @@ metadata:
 spec:
   dependencies:
     - runtime:jvm
-    - runtime:yaml
+    - runtime:groovy
     - camel:core
 `
-	Resources["platform-integration-context-groovy.yaml"] =
+	Resources["platform-integration-context-jvm.yaml"] =
 		`
 apiVersion: camel.apache.org/v1alpha1
 kind: IntegrationContext
 metadata:
-  name: groovy
+  name: jvm
   labels:
     app: "camel-k"
     camel.apache.org/context.created.by.kind: Operator
@@ -2754,15 +2754,14 @@ metadata:
 spec:
   dependencies:
     - runtime:jvm
-    - runtime:groovy
     - camel:core
 `
-	Resources["platform-integration-context-jvm.yaml"] =
+	Resources["platform-integration-context-knative.yaml"] =
 		`
 apiVersion: camel.apache.org/v1alpha1
 kind: IntegrationContext
 metadata:
-  name: jvm
+  name: knative
   labels:
     app: "camel-k"
     camel.apache.org/context.created.by.kind: Operator
@@ -2771,7 +2770,9 @@ metadata:
 spec:
   dependencies:
     - runtime:jvm
+    - runtime:yaml
     - camel:core
+    - camel-k:knative
 `
 	Resources["platform-integration-context-kotlin.yaml"] =
 		`
diff --git a/pkg/builder/builder_steps.go b/pkg/builder/builder_steps.go
index b50fb9b..e55f8cc 100644
--- a/pkg/builder/builder_steps.go
+++ b/pkg/builder/builder_steps.go
@@ -81,6 +81,14 @@ func GenerateProject(ctx *Context) error {
 			}
 
 			deps.AddGAV("org.apache.camel", artifactID, "")
+		case strings.HasPrefix(d, "camel-k:"):
+			artifactID := strings.TrimPrefix(d, "camel-k:")
+
+			if !strings.HasPrefix(artifactID, "camel-") {
+				artifactID = "camel-" + artifactID
+			}
+
+			deps.AddGAV("org.apache.camel.k", artifactID, version.Version)
 		case strings.HasPrefix(d, "mvn:"):
 			mid := strings.TrimPrefix(d, "mvn:")
 			gav := strings.Replace(mid, "/", ":", -1)
diff --git a/pkg/builder/springboot/generator.go b/pkg/builder/springboot/generator.go
index a50e04f..e107a51 100644
--- a/pkg/builder/springboot/generator.go
+++ b/pkg/builder/springboot/generator.go
@@ -125,6 +125,14 @@ func GenerateProject(ctx *builder.Context) error {
 					},
 				},
 			})
+		case strings.HasPrefix(d, "camel-k:"):
+			artifactID := strings.TrimPrefix(d, "camel-k:")
+
+			if !strings.HasPrefix(artifactID, "camel-") {
+				artifactID = "camel-" + artifactID
+			}
+
+			deps.AddGAV("org.apache.camel.k", artifactID, version.Version)
 		case strings.HasPrefix(d, "mvn:"):
 			mid := strings.TrimPrefix(d, "mvn:")
 			gav := strings.Replace(mid, "/", ":", -1)
diff --git a/pkg/metadata/dependencies.go b/pkg/metadata/dependencies.go
index c2bcc83..f70efdd 100644
--- a/pkg/metadata/dependencies.go
+++ b/pkg/metadata/dependencies.go
@@ -68,6 +68,9 @@ func decodeComponent(uri string) string {
 		if component.GroupID == "org.apache.camel" && strings.HasPrefix(artifactID, "camel-") {
 			return "camel:" + artifactID[6:]
 		}
+		if component.GroupID == "org.apache.camel.k" && strings.HasPrefix(artifactID, "camel-") {
+			return "camel-k:" + artifactID[6:]
+		}
 		return "mvn:" + component.GroupID + ":" + artifactID + ":" + component.Version
 	}
 	return ""
diff --git a/pkg/stub/action/platform/create.go b/pkg/stub/action/platform/create.go
index 5ab81ae..c5b70fd 100644
--- a/pkg/stub/action/platform/create.go
+++ b/pkg/stub/action/platform/create.go
@@ -28,10 +28,13 @@ var resources = []string{
 	"platform-integration-context-jvm.yaml",
 	"platform-integration-context-groovy.yaml",
 	"platform-integration-context-kotlin.yaml",
-	"platform-integration-context-yaml.yaml",
 	"platform-integration-context-spring-boot.yaml",
 }
 
+var knativeResources = []string{
+	"platform-integration-context-knative.yaml",
+}
+
 // NewCreateAction returns a action that creates resources needed by the platform
 func NewCreateAction() Action {
 	return &createAction{}
@@ -49,14 +52,23 @@ func (action *createAction) CanHandle(platform *v1alpha1.IntegrationPlatform) bo
 }
 
 func (action *createAction) Handle(platform *v1alpha1.IntegrationPlatform) error {
+	logrus.Info("Installing platform resources")
 	err := install.Resources(platform.Namespace, resources...)
 	if err != nil {
 		return err
 	}
 
+	if platform.Spec.Profile == v1alpha1.TraitProfileKnative {
+		logrus.Info("Installing knative resources")
+		err := install.Resources(platform.Namespace, knativeResources...)
+		if err != nil {
+			return err
+		}
+	}
+
 	target := platform.DeepCopy()
-	logrus.Info("Platform ", target.Name, " transitioning to state ", v1alpha1.IntegrationPlatformPhaseStarting)
 	target.Status.Phase = v1alpha1.IntegrationPlatformPhaseStarting
+	logrus.Info("Platform ", target.Name, " transitioning to state ", target.Status.Phase)
 
 	return sdk.Update(target)
 }
diff --git a/pkg/util/envvar/envvar.go b/pkg/util/envvar/envvar.go
index d8739cf..ae0b998 100644
--- a/pkg/util/envvar/envvar.go
+++ b/pkg/util/envvar/envvar.go
@@ -35,7 +35,8 @@ func Remove(vars *[]v1.EnvVar, name string) {
 	v := *vars
 	for i := 0; i < len(v); i++ {
 		if v[i].Name == name {
-			*vars = append(v[:i], v[i+1:]...)
+			v = append(v[:i], v[i+1:]...)
+			*vars = v
 			return
 		}
 	}
diff --git a/pkg/util/maven/maven_project.go b/pkg/util/maven/maven_project.go
index cba227b..925d6e5 100644
--- a/pkg/util/maven/maven_project.go
+++ b/pkg/util/maven/maven_project.go
@@ -225,7 +225,9 @@ func (m Properties) MarshalXML(e *xml.Encoder, start xml.StartElement) error {
 	}
 
 	for k, v := range m {
-		e.Encode(propertiesEntry{XMLName: xml.Name{Local: k}, Value: v})
+		if err := e.Encode(propertiesEntry{XMLName: xml.Name{Local: k}, Value: v}); err != nil {
+			return err
+		}
 	}
 
 	return e.EncodeToken(start.End())