camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nferr...@apache.org
Subject [camel-k] 01/02: Fix tests and add release scripts up to cross-compilation
Date Thu, 13 Sep 2018 13:26:50 GMT
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 5c03a35cb688062f92775a1ebba46ee2cc3f82d0
Author: nferraro <ni.ferraro@gmail.com>
AuthorDate: Thu Sep 13 12:55:55 2018 +0200

    Fix tests and add release scripts up to cross-compilation
---
 .gitignore                                         |  6 ++
 README.md                                          |  2 +
 build/Makefile                                     | 31 ++++------
 build/cross_compile.sh                             | 30 ++++++++++
 build/embed_resources.sh                           |  2 +-
 build/prepare_release.sh                           | 18 ++++++
 deploy/operator.yaml                               | 30 ----------
 deploy/resources.go                                | 34 -----------
 pkg/client/cmd/install.go                          |  2 +-
 pkg/install/cluster.go                             | 10 ++--
 pkg/install/operator.go                            |  2 +-
 pkg/util/maven/maven.go                            |  4 +-
 pkg/util/maven/{mavent_test.go => maven_test.go}   |  2 +-
 .../build_manager_integration_test.go              | 70 ++++++++++------------
 {pkg/install => test}/cluster_integration_test.go  | 12 ++--
 .../local_builder_integration_test.go              | 44 +++++---------
 {pkg/util/test => test}/testing_env.go             | 46 ++++++++++++--
 version/version.go                                 |  2 +
 18 files changed, 177 insertions(+), 170 deletions(-)

diff --git a/.gitignore b/.gitignore
index 2304de0..00e62a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,6 +2,12 @@
 /camel-k-operator
 /kamel
 
+# Released Packages
+*.tar.gz
+
+# Unuseful file
+/deploy/operator.yaml
+
 # We do not stage vendor directory
 /vendor
 
diff --git a/README.md b/README.md
index b7d7f4c..77ec083 100644
--- a/README.md
+++ b/README.md
@@ -111,6 +111,7 @@ This is a high level overview of the project structure:
 - [/deploy](/deploy): contains Kubernetes resource files that are used by the **kamel** client
during installation. The `/deploy/resources.go` file is kept in sync with the content of the
directory (`make build-embed-resources`), so that resources can be used from within the go
code.
 - [/pkg](/pkg): this is where the code resides. The code is divided in multiple subpackages.
 - [/runtime](/runtime): the Java runtime code that is used inside the integration Docker
containers.
+- [/test](/test): include integration tests to ensure that the software interacts correctly
with Kubernetes and Openshift.
 - [/tmp](/tmp): scripts and Docker configuration files used by the operator-sdk.
 - [/vendor](/vendor): project dependencies.
 - [/version](/version): contains the global version of the project.
@@ -151,6 +152,7 @@ Unit tests are executed automatically as part of the build. They use the
standar
 Integration tests (aimed at ensuring that the code integrates correctly with Kubernetes and
Openshift), need special care.
 
 The **convention** used in this repo is to name unit tests `xxx_test.go`, and name integration
tests `yyy_integration_test.go`.
+Integration tests are all in the [/test](/test) dir.
 
 Since both names end with `_test.go`, both would be executed by go during build, so you need
to put a special **build tag** to mark
 integration tests. A integration test should start with the following line:
diff --git a/build/Makefile b/build/Makefile
index 74716be..335b9c0 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -1,6 +1,6 @@
 VERSION := $(shell ./build/get_version.sh)
 
-build: build-runtime build-operator build-kamel
+build: build-runtime build-operator build-kamel test
 
 build-operator: build-embed-resources
 	go build -o camel-k-operator ./cmd/camel-k-operator/*.go
@@ -14,6 +14,14 @@ build-embed-resources:
 build-runtime:
 	mvn clean install -f ./runtime/pom.xml
 
+release: prepare-release build images-build images-push test-integration cross-compile
+
+prepare-release:
+	./build/prepare_release.sh
+
+cross-compile:
+	./build/cross_compile.sh
+
 dep:
 	dep ensure -v
 
@@ -43,22 +51,9 @@ check:
 	go test ./...
 
 test-integration: check-integration
-check-integration: require-kubeconfig require-namespace
+check-integration:
 	go test ./... -tags=integration
 
-ifndef WATCH_NAMESPACE
-require-namespace:
-	$(error WATCH_NAMESPACE not set)
-else
-require-namespace:
-	@echo "WATCH_NAMESPACE set"
-endif
-ifndef KUBERNETES_CONFIG
-require-kubeconfig:
-	$(error KUBERNETES_CONFIG not set)
-else
-require-kubeconfig:
-	@echo "KUBERNETES_CONFIG set"
-endif
-
-.PHONY: build build-operator build-kamel build-embed-resources build-runtime dep codegen
images images-build images-push test check test-integration check-integration clean 
+
+
+.PHONY: build build-operator build-kamel build-embed-resources build-runtime dep codegen
images images-build images-push test check test-integration check-integration clean release
prepare-release cross-compile
diff --git a/build/cross_compile.sh b/build/cross_compile.sh
new file mode 100755
index 0000000..b05a668
--- /dev/null
+++ b/build/cross_compile.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+location=$(dirname $0)
+builddir=$(realpath $location/../xtmp)
+
+rm -rf $builddir
+
+basename=camel-k-client
+version=$($location/get_version.sh)
+
+cross_compile () {
+	label=$1
+	export GOOS=$2
+	export GOARCH=$3
+
+	targetdir=$builddir/$label
+	go build -o $targetdir/kamel ./cmd/kamel/...
+
+	cp $location/../LICENSE $targetdir/
+	cp $location/../NOTICE $targetdir/
+
+	pushd . && cd $targetdir && tar -zcvf ../../$label.tar.gz . && popd
+}
+
+cross_compile $basename-$version-linux-64bit linux amd64
+cross_compile $basename-$version-mac-64bit darwin amd64
+cross_compile $basename-$version-windows-64bit windows amd64
+
+
+rm -rf $builddir
diff --git a/build/embed_resources.sh b/build/embed_resources.sh
index 7d7fe89..ab44706 100755
--- a/build/embed_resources.sh
+++ b/build/embed_resources.sh
@@ -38,7 +38,7 @@ func init() {
 
 EOM
 
-for f in $(ls $destdir | grep ".yaml"); do
+for f in $(ls $destdir | grep ".yaml" | grep -v -e "^operator.yaml$"); do
 	printf "\tResources[\"$f\"] =\n\t\t\`\n" >> $destfile
 	cat $destdir/$f >> $destfile
 	printf "\n\`\n" >> $destfile
diff --git a/build/prepare_release.sh b/build/prepare_release.sh
new file mode 100755
index 0000000..cd8894c
--- /dev/null
+++ b/build/prepare_release.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+set -e
+
+location=$(dirname $0)
+global_version_file=$location/../version/version.go
+
+# Set the new global version by removing "-SNAPSHOT"
+sed -i "s/-SNAPSHOT//g" $global_version_file
+
+# Get the new version
+version=$($location/get_version.sh)
+
+# Updating the Java modules
+mvn versions:set -DgenerateBackupPoms=false -DnewVersion=$version -f $location/../runtime
+
+echo "Camel K prepared for releasing version: $version"
+
diff --git a/deploy/operator.yaml b/deploy/operator.yaml
deleted file mode 100644
index 863b21c..0000000
--- a/deploy/operator.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: camel-k-operator
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      name: camel-k-operator
-  template:
-    metadata:
-      labels:
-        name: camel-k-operator
-    spec:
-      containers:
-        - name: camel-k-operator
-          image: docker.io/apache/camel-k:0.0.1-SNAPSHOT
-          ports:
-          - containerPort: 60000
-            name: metrics
-          command:
-          - camel-k-operator
-          imagePullPolicy: Always
-          env:
-            - name: WATCH_NAMESPACE
-              valueFrom:
-                fieldRef:
-                  fieldPath: metadata.namespace
-            - name: OPERATOR_NAME
-              value: "camel-k-operator"
diff --git a/deploy/resources.go b/deploy/resources.go
index 3b40638..c0b8bbf 100644
--- a/deploy/resources.go
+++ b/deploy/resources.go
@@ -357,40 +357,6 @@ status:
   loadBalancer: {}
 
 `
-	Resources["operator.yaml"] =
-		`
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: camel-k-operator
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      name: camel-k-operator
-  template:
-    metadata:
-      labels:
-        name: camel-k-operator
-    spec:
-      containers:
-        - name: camel-k-operator
-          image: docker.io/apache/camel-k:0.0.1-SNAPSHOT
-          ports:
-          - containerPort: 60000
-            name: metrics
-          command:
-          - camel-k-operator
-          imagePullPolicy: Always
-          env:
-            - name: WATCH_NAMESPACE
-              valueFrom:
-                fieldRef:
-                  fieldPath: metadata.namespace
-            - name: OPERATOR_NAME
-              value: "camel-k-operator"
-
-`
 	Resources["user-cluster-role.yaml"] =
 		`
 kind: ClusterRole
diff --git a/pkg/client/cmd/install.go b/pkg/client/cmd/install.go
index 12746c8..0693b36 100644
--- a/pkg/client/cmd/install.go
+++ b/pkg/client/cmd/install.go
@@ -62,7 +62,7 @@ func (o *InstallCmdOptions) install(cmd *cobra.Command, args []string) error
{
 	} else {
 		namespace := o.Namespace
 
-		err = install.Operator(namespace)
+		err = install.InstallOperator(namespace)
 		if err != nil {
 			return err
 		}
diff --git a/pkg/install/cluster.go b/pkg/install/cluster.go
index df807bb..4fddf54 100644
--- a/pkg/install/cluster.go
+++ b/pkg/install/cluster.go
@@ -42,7 +42,7 @@ func SetupClusterwideResources() error {
 	}
 
 	// Installing ClusterRole
-	clusterRoleInstalled, err := isClusterRoleInstalled()
+	clusterRoleInstalled, err := IsClusterRoleInstalled()
 	if err != nil {
 		return err
 	}
@@ -56,7 +56,7 @@ func SetupClusterwideResources() error {
 	return nil
 }
 
-func isCRDInstalled(name string) (bool, error) {
+func IsCRDInstalled(kind string) (bool, error) {
 	lst, err := k8sclient.GetKubeClient().Discovery().ServerResourcesForGroupVersion("camel.apache.org/v1alpha1")
 	if err != nil && errors.IsNotFound(err) {
 		return false, nil
@@ -64,7 +64,7 @@ func isCRDInstalled(name string) (bool, error) {
 		return false, err
 	}
 	for _, res := range lst.APIResources {
-		if res.Kind == name {
+		if res.Kind == kind {
 			return true, nil
 		}
 	}
@@ -73,7 +73,7 @@ func isCRDInstalled(name string) (bool, error) {
 
 func installCRD(kind string, resourceName string) error {
 	// Installing Integration CRD
-	installed, err := isCRDInstalled(kind)
+	installed, err := IsCRDInstalled(kind)
 	if err != nil {
 		return err
 	}
@@ -104,7 +104,7 @@ func installCRD(kind string, resourceName string) error {
 	return nil
 }
 
-func isClusterRoleInstalled() (bool, error) {
+func IsClusterRoleInstalled() (bool, error) {
 	clusterRole := v1.ClusterRole{
 		TypeMeta: metav1.TypeMeta{
 			Kind:       "ClusterRole",
diff --git a/pkg/install/operator.go b/pkg/install/operator.go
index e3bf3f2..a7044f9 100644
--- a/pkg/install/operator.go
+++ b/pkg/install/operator.go
@@ -25,7 +25,7 @@ import (
 	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
 )
 
-func Operator(namespace string) error {
+func InstallOperator(namespace string) error {
 	return installResources(namespace,
 		"operator-service-account.yaml",
 		"operator-role-openshift.yaml", // TODO distinguish between Openshift and Kubernetes
diff --git a/pkg/util/maven/maven.go b/pkg/util/maven/maven.go
index 6a0362e..32e1317 100644
--- a/pkg/util/maven/maven.go
+++ b/pkg/util/maven/maven.go
@@ -64,6 +64,8 @@ func Build(project ProjectDefinition) (string, error) {
 func runMavenBuild(buildDir string) error {
 	mavenBuild := exec.Command("mvn", mavenExtraOptions(), "clean", "install", "-DskipTests")
 	mavenBuild.Dir = buildDir
+	mavenBuild.Stdout = os.Stdout
+	mavenBuild.Stderr = os.Stderr
 	logrus.Info("Starting maven build: mvn " + mavenExtraOptions() + " clean install -DskipTests")
 	err := mavenBuild.Run()
 	if err != nil {
@@ -85,7 +87,7 @@ func mavenExtraOptions() string {
 	if _, err := os.Stat("/tmp/artifacts/m2"); err == nil {
 		return "-Dmaven.repo.local=/tmp/artifacts/m2"
 	}
-	return ""
+	return "-Dcamel.noop=true"
 }
 
 func createTar(buildDir string, project ProjectDefinition) (string, error) {
diff --git a/pkg/util/maven/mavent_test.go b/pkg/util/maven/maven_test.go
similarity index 98%
rename from pkg/util/maven/mavent_test.go
rename to pkg/util/maven/maven_test.go
index a22ab3f..7e59e54 100644
--- a/pkg/util/maven/mavent_test.go
+++ b/pkg/util/maven/maven_test.go
@@ -84,7 +84,7 @@ func TestPomGeneration(t *testing.T) {
 		},
 	}
 
-	pom, err := pomFileContent(project)
+	pom, err := GeneratePomFileContent(project)
 
 	assert.Nil(t, err)
 	assert.NotNil(t, pom)
diff --git a/pkg/build/build_manager_integration_test.go b/test/build_manager_integration_test.go
similarity index 54%
rename from pkg/build/build_manager_integration_test.go
rename to test/build_manager_integration_test.go
index e271721..36a0631 100644
--- a/pkg/build/build_manager_integration_test.go
+++ b/test/build_manager_integration_test.go
@@ -17,91 +17,81 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
-package build
+package test
 
 import (
 	"context"
 	"testing"
 	"time"
 
-	build "github.com/apache/camel-k/pkg/build/api"
+	buildapi "github.com/apache/camel-k/pkg/build/api"
 	"github.com/apache/camel-k/pkg/util/digest"
-	"github.com/apache/camel-k/pkg/util/test"
 	"github.com/stretchr/testify/assert"
+	"github.com/apache/camel-k/pkg/build"
 )
 
-func TestBuild(t *testing.T) {
+func TestBuildManagerBuild(t *testing.T) {
 	ctx := context.TODO()
-	buildManager := NewManager(ctx, test.GetTargetNamespace())
-	identifier := build.BuildIdentifier{
+	buildManager := build.NewManager(ctx, GetTargetNamespace())
+	identifier := buildapi.BuildIdentifier{
 		Name:   "man-test",
 		Digest: digest.Random(),
 	}
-	buildManager.Start(build.BuildSource{
+	buildManager.Start(buildapi.BuildSource{
 		Identifier: identifier,
-		Code: build.Code{
-			Content: code(),
+		Code: buildapi.Code{
+			Content: TimerToLogIntegrationCode(),
+		},
+		Dependencies: []string{
+			"mvn:org.apache.camel/camel-core",
+			"camel:telegram",
 		},
 	})
 
 	deadline := time.Now().Add(5 * time.Minute)
-	var result build.BuildResult
+	var result buildapi.BuildResult
 	for time.Now().Before(deadline) {
 		result = buildManager.Get(identifier)
-		if result.Status == build.BuildStatusCompleted || result.Status == build.BuildStatusError
{
+		if result.Status == buildapi.BuildStatusCompleted || result.Status == buildapi.BuildStatusError
{
 			break
 		}
 		time.Sleep(2 * time.Second)
 	}
 
-	assert.NotEqual(t, build.BuildStatusError, result.Status)
-	assert.Equal(t, build.BuildStatusCompleted, result.Status)
+	assert.NotEqual(t, buildapi.BuildStatusError, result.Status)
+	assert.Equal(t, buildapi.BuildStatusCompleted, result.Status)
 	assert.Regexp(t, ".*/.*/.*:.*", result.Image)
 }
 
-func TestFailedBuild(t *testing.T) {
+func TestBuildManagerFailedBuild(t *testing.T) {
 
 	ctx := context.TODO()
-	buildManager := NewManager(ctx, test.GetTargetNamespace())
-	identifier := build.BuildIdentifier{
+	buildManager := build.NewManager(ctx, GetTargetNamespace())
+	identifier := buildapi.BuildIdentifier{
 		Name:   "man-test-2",
 		Digest: digest.Random(),
 	}
-	buildManager.Start(build.BuildSource{
+	buildManager.Start(buildapi.BuildSource{
 		Identifier: identifier,
-		Code: build.Code{
-			Content: code() + "XX",
+		Code: buildapi.Code{
+			Content: TimerToLogIntegrationCode(),
+		},
+		Dependencies: []string{
+			"mvn:org.apache.camel/camel-cippalippa",
 		},
 	})
 
 	deadline := time.Now().Add(5 * time.Minute)
-	var result build.BuildResult
+	var result buildapi.BuildResult
 	for time.Now().Before(deadline) {
 		result = buildManager.Get(identifier)
-		if result.Status == build.BuildStatusCompleted || result.Status == build.BuildStatusError
{
+		if result.Status == buildapi.BuildStatusCompleted || result.Status == buildapi.BuildStatusError
{
 			break
 		}
 		time.Sleep(2 * time.Second)
 	}
 
-	assert.Equal(t, build.BuildStatusError, result.Status)
-	assert.NotEqual(t, build.BuildStatusCompleted, result.Status)
+	assert.Equal(t, buildapi.BuildStatusError, result.Status)
+	assert.NotEqual(t, buildapi.BuildStatusCompleted, result.Status)
 	assert.Empty(t, result.Image)
 }
-
-func code() string {
-	return `package kamel;
-
-import org.apache.camel.builder.RouteBuilder;
-
-public class Routes extends RouteBuilder {
-
-	@Override
-    public void configure() throws Exception {
-        from("timer:tick")
-		  .to("log:info");
-    }
-
-}
-`
-}
diff --git a/pkg/install/cluster_integration_test.go b/test/cluster_integration_test.go
similarity index 76%
rename from pkg/install/cluster_integration_test.go
rename to test/cluster_integration_test.go
index 1f6b6e4..50030bc 100644
--- a/pkg/install/cluster_integration_test.go
+++ b/test/cluster_integration_test.go
@@ -1,3 +1,5 @@
+// +build integration
+
 /*
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -15,22 +17,24 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
-package install
+package test
 
 import (
 	"github.com/stretchr/testify/assert"
 	"testing"
+	"github.com/apache/camel-k/pkg/install"
 )
 
 func TestInstallation(t *testing.T) {
-	err := SetupClusterwideResources()
+	installedCtxCRD, err := install.IsCRDInstalled("IntegrationContext")
 	assert.Nil(t, err)
+	assert.True(t, installedCtxCRD)
 
-	installedCRD, err := isCRDInstalled()
+	installedCRD, err := install.IsCRDInstalled("Integration")
 	assert.Nil(t, err)
 	assert.True(t, installedCRD)
 
-	installedClusterRole, err := isClusterRoleInstalled()
+	installedClusterRole, err := install.IsClusterRoleInstalled()
 	assert.Nil(t, err)
 	assert.True(t, installedClusterRole)
 }
diff --git a/pkg/build/local/local_builder_integration_test.go b/test/local_builder_integration_test.go
similarity index 74%
rename from pkg/build/local/local_builder_integration_test.go
rename to test/local_builder_integration_test.go
index 967a0ad..9339348 100644
--- a/pkg/build/local/local_builder_integration_test.go
+++ b/test/local_builder_integration_test.go
@@ -17,7 +17,7 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
-package local
+package test
 
 import (
 	"context"
@@ -25,14 +25,14 @@ import (
 
 	build "github.com/apache/camel-k/pkg/build/api"
 	"github.com/apache/camel-k/pkg/util/digest"
-	"github.com/apache/camel-k/pkg/util/test"
 	"github.com/stretchr/testify/assert"
+	"github.com/apache/camel-k/pkg/build/local"
 )
 
-func TestBuild(t *testing.T) {
+func TestLocalBuild(t *testing.T) {
 
 	ctx := context.TODO()
-	builder := NewLocalBuilder(ctx, test.GetTargetNamespace())
+	builder := local.NewLocalBuilder(ctx, GetTargetNamespace())
 
 	execution := builder.Build(build.BuildSource{
 		Identifier: build.BuildIdentifier{
@@ -40,7 +40,7 @@ func TestBuild(t *testing.T) {
 			Qualifier: digest.Random(),
 		},
 		Code: build.Code{
-			Content: code(),
+			Content: TimerToLogIntegrationCode(),
 		},
 	})
 
@@ -49,10 +49,10 @@ func TestBuild(t *testing.T) {
 	assert.Nil(t, res.Error, "Build failed")
 }
 
-func TestDoubleBuild(t *testing.T) {
+func TestLocalDoubleBuild(t *testing.T) {
 
 	ctx := context.TODO()
-	builder := NewLocalBuilder(ctx, test.GetTargetNamespace())
+	builder := local.NewLocalBuilder(ctx, GetTargetNamespace())
 
 	execution1 := builder.Build(build.BuildSource{
 		Identifier: build.BuildIdentifier{
@@ -60,7 +60,7 @@ func TestDoubleBuild(t *testing.T) {
 			Qualifier: digest.Random(),
 		},
 		Code: build.Code{
-			Content: code(),
+			Content: TimerToLogIntegrationCode(),
 		},
 	})
 
@@ -70,7 +70,7 @@ func TestDoubleBuild(t *testing.T) {
 			Qualifier: digest.Random(),
 		},
 		Code: build.Code{
-			Content: code(),
+			Content: TimerToLogIntegrationCode(),
 		},
 	})
 
@@ -81,10 +81,10 @@ func TestDoubleBuild(t *testing.T) {
 	assert.Nil(t, res2.Error, "Build failed")
 }
 
-func TestFailedBuild(t *testing.T) {
+func TestLocalFailedBuild(t *testing.T) {
 
 	ctx := context.TODO()
-	builder := NewLocalBuilder(ctx, test.GetTargetNamespace())
+	builder := local.NewLocalBuilder(ctx, GetTargetNamespace())
 
 	execution := builder.Build(build.BuildSource{
 		Identifier: build.BuildIdentifier{
@@ -92,7 +92,10 @@ func TestFailedBuild(t *testing.T) {
 			Qualifier: digest.Random(),
 		},
 		Code: build.Code{
-			Content: code() + "-",
+			Content: TimerToLogIntegrationCode(),
+		},
+		Dependencies: []string{
+			"camel:cippalippa",
 		},
 	})
 
@@ -100,20 +103,3 @@ func TestFailedBuild(t *testing.T) {
 
 	assert.NotNil(t, res.Error, "Build should fail")
 }
-
-func code() string {
-	return `package kamel;
-
-import org.apache.camel.builder.RouteBuilder;
-
-public class Routes extends RouteBuilder {
-
-	@Override
-    public void configure() throws Exception {
-        from("timer:tick")
-		  .to("log:info");
-    }
-
-}
-`
-}
diff --git a/pkg/util/test/testing_env.go b/test/testing_env.go
similarity index 51%
rename from pkg/util/test/testing_env.go
rename to test/testing_env.go
index 16e7e13..e8cd929 100644
--- a/pkg/util/test/testing_env.go
+++ b/test/testing_env.go
@@ -1,3 +1,5 @@
+// +build integration
+
 /*
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
@@ -17,12 +19,46 @@ limitations under the License.
 
 package test
 
-import "os"
-
-const (
-	EnvWatchNamespace = "WATCH_NAMESPACE"
+import (
+	"github.com/apache/camel-k/pkg/util/kubernetes"
+	"github.com/apache/camel-k/pkg/install"
 )
 
+func init() {
+	// Initializes the kubernetes client to auto-detect the context
+	kubernetes.InitKubeClient("")
+
+	err := install.SetupClusterwideResources()
+	if err != nil {
+		panic(err)
+	}
+
+	err = install.InstallOperator(GetTargetNamespace())
+	if err != nil {
+		panic(err)
+	}
+}
+
 func GetTargetNamespace() string {
-	return os.Getenv(EnvWatchNamespace)
+	ns, err := kubernetes.GetClientCurrentNamespace("")
+	if err != nil {
+		panic(err)
+	}
+	return ns
+}
+
+func TimerToLogIntegrationCode() string {
+	return `
+import org.apache.camel.builder.RouteBuilder;
+
+public class Routes extends RouteBuilder {
+
+	@Override
+    public void configure() throws Exception {
+        from("timer:tick")
+		  .to("log:info");
+    }
+
 }
+`
+}
\ No newline at end of file
diff --git a/version/version.go b/version/version.go
index 6d8b94b..f656e8a 100644
--- a/version/version.go
+++ b/version/version.go
@@ -15,8 +15,10 @@ See the License for the specific language governing permissions and
 limitations under the License.
 */
 
+// Do not change this file manually
 package version
 
 var (
+	// Global Camel K Version
 	Version = "0.0.1-SNAPSHOT"
 )


Mime
View raw message