You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pc...@apache.org on 2023/02/27 17:30:13 UTC

[camel-k] 09/19: chore: knative tests

This is an automated email from the ASF dual-hosted git repository.

pcongiusti pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git

commit 4ed20573d0cefab1756cd760ea3e04485c1ee4fe
Author: Pasquale Congiusti <pa...@gmail.com>
AuthorDate: Thu Feb 23 09:48:51 2023 +0100

    chore: knative tests
---
 .github/actions/e2e-common/action.yml              |  3 +-
 .github/actions/e2e-common/exec-tests.sh           |  4 +-
 .github/workflows/common.yml                       |  2 +-
 .../cli/{kamelet_test.go => kamelet_repo_test.go}  |  4 +-
 e2e/common/misc/kamelet_test.go                    | 19 ------
 ...{display.groovy => test-kamelet-display.groovy} |  2 +-
 e2e/knative/kamelet_test.go                        |  7 +-
 e2e/knative/knative_platform_test.go               | 78 ++++++++++++----------
 e2e/knative/knative_test.go                        |  6 +-
 9 files changed, 57 insertions(+), 68 deletions(-)

diff --git a/.github/actions/e2e-common/action.yml b/.github/actions/e2e-common/action.yml
index ba9052873..b9771b105 100644
--- a/.github/actions/e2e-common/action.yml
+++ b/.github/actions/e2e-common/action.yml
@@ -26,7 +26,8 @@ inputs:
     description: 'Base16 encoded kube config - required for custom cluster type only'
     required: false
   with-custom-install:
-    description: 'Special type of common tests which require customized installation procedure'
+    description: 'Indicates whether the advanced common integration tests should be launched (default false)'
+    default: 'false'
     required: false
 
 runs:
diff --git a/.github/actions/e2e-common/exec-tests.sh b/.github/actions/e2e-common/exec-tests.sh
index c38482719..69fff0375 100755
--- a/.github/actions/e2e-common/exec-tests.sh
+++ b/.github/actions/e2e-common/exec-tests.sh
@@ -58,7 +58,7 @@ while getopts ":b:c:g:i:l:n:q:s:v:x:z:" opt; do
       SAVE_FAILED_TEST_NS=${OPTARG}
       ;;
     z)
-      CUSTOM_INSTALL_TEST="${OPTARG}"
+      CUSTOM_INSTALL_TEST=${OPTARG}
       ;;
     :)
       echo "ERROR: Option -$OPTARG requires an argument"
@@ -137,7 +137,7 @@ fi
 # Then run all integration tests rather than ending on first failure
 set -e
 exit_code=0
-if [ ! -z "${CUSTOM_INSTALL_TEST}" ] && [ "${CUSTOM_INSTALL_TEST}" == "true" ]; then
+if [ "${CUSTOM_INSTALL_TEST}" == "true" ]; then
   DO_TEST_PREBUILD=false GOTESTFMT="-json 2>&1 | gotestfmt" make test-common-with-custom-install || exit_code=1
 else
   DO_TEST_PREBUILD=false GOTESTFMT="-json 2>&1 | gotestfmt" make test-common || exit_code=1
diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml
index 5502bebda..ef9931143 100644
--- a/.github/workflows/common.yml
+++ b/.github/workflows/common.yml
@@ -116,4 +116,4 @@ jobs:
       with:
         cluster-config-data: ${{ secrets.E2E_CLUSTER_CONFIG }}
         cluster-kube-config-data: ${{ secrets.E2E_KUBE_CONFIG }}
-        with-custom-install: true
+        with-custom-install: 'true'
diff --git a/e2e/common/cli/kamelet_test.go b/e2e/common/cli/kamelet_repo_test.go
similarity index 94%
rename from e2e/common/cli/kamelet_test.go
rename to e2e/common/cli/kamelet_repo_test.go
index aad161b90..c1e87fe4e 100644
--- a/e2e/common/cli/kamelet_test.go
+++ b/e2e/common/cli/kamelet_repo_test.go
@@ -43,7 +43,7 @@ func TestKameletFromCustomRepository(t *testing.T) {
 	Eventually(Kamelet(kameletName, ns)).Should(BeNil())
 	// Add the custom repository
 	Expect(Kamel("kamelet", "add-repo",
-		"github:apache/camel-k/e2e/global/common/files/kamelets",
+		"github:squakez/ck-kamelet-test-repo/kamelets",
 		"-n", ns,
 		"-x", operatorID).Execute()).To(Succeed())
 
@@ -54,7 +54,7 @@ func TestKameletFromCustomRepository(t *testing.T) {
 
 	// Remove the custom repository
 	Expect(Kamel("kamelet", "remove-repo",
-		"github:apache/camel-k/e2e/global/common/files/kamelets",
+		"github:squakez/ck-kamelet-test-repo/kamelets",
 		"-n", ns,
 		"-x", operatorID).Execute()).To(Succeed())
 }
diff --git a/e2e/common/misc/kamelet_test.go b/e2e/common/misc/kamelet_test.go
index 2975c7801..8ceb2abec 100644
--- a/e2e/common/misc/kamelet_test.go
+++ b/e2e/common/misc/kamelet_test.go
@@ -46,24 +46,5 @@ func TestKameletClasspathLoading(t *testing.T) {
 		Eventually(IntegrationLogs(ns, "timer-kamelet-integration")).Should(ContainSubstring("important message"))
 	})
 
-	// Custom repo without operator ID
-	t.Run("test custom Kamelet repository without operator ID", func(t *testing.T) {
-		kameletName := "timer-custom-source"
-		removeKamelet(kameletName, ns)
-		Eventually(Kamelet(kameletName, ns)).Should(BeNil())
-		// Add the custom repository
-		Expect(Kamel("kamelet", "add-repo", "github:apache/camel-k/e2e/global/common/files/kamelets", "-n", ns).Execute()).To(Succeed())
-		Expect(KamelRunWithID(operatorID, ns, "files/TimerCustomKameletIntegration.java").Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "timer-custom-kamelet-integration"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationLogs(ns, "timer-custom-kamelet-integration")).Should(ContainSubstring("great message"))
-		// Remove the custom repository
-		Expect(Kamel("kamelet", "remove-repo", "github:apache/camel-k/e2e/global/common/files/kamelets", "-n", ns).Execute()).To(Succeed())
-	})
-
 	Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
 }
-
-func removeKamelet(name string, ns string) {
-	kamelet := Kamelet(name, ns)()
-	TestClient().Delete(TestContext, kamelet)
-}
diff --git a/e2e/knative/files/display.groovy b/e2e/knative/files/test-kamelet-display.groovy
similarity index 94%
rename from e2e/knative/files/display.groovy
rename to e2e/knative/files/test-kamelet-display.groovy
index 43a595f6c..fcde17d22 100644
--- a/e2e/knative/files/display.groovy
+++ b/e2e/knative/files/test-kamelet-display.groovy
@@ -15,6 +15,6 @@
  * limitations under the License.
  */
 
-from('knative:channel/messages')
+from('knative:channel/test-kamelet-messages')
     .convertBodyTo(String.class)
     .to('log:info?showAll=false')
diff --git a/e2e/knative/kamelet_test.go b/e2e/knative/kamelet_test.go
index 6d9a6d583..8e48a8710 100644
--- a/e2e/knative/kamelet_test.go
+++ b/e2e/knative/kamelet_test.go
@@ -41,10 +41,11 @@ import (
 func TestKameletChange(t *testing.T) {
 	RegisterTestingT(t)
 
+	knChannel := "test-kamelet-messages"
 	timerSource := "my-timer-source"
 	Expect(CreateTimerKamelet(ns, timerSource)()).To(Succeed())
-	Expect(CreateKnativeChannel(ns, "messages")()).To(Succeed())
-	Expect(KamelRunWithID(operatorID, ns, "files/display.groovy", "-w").Execute()).To(Succeed())
+	Expect(CreateKnativeChannel(ns, knChannel)()).To(Succeed())
+	Expect(KamelRunWithID(operatorID, ns, "files/test-kamelet-display.groovy", "-w").Execute()).To(Succeed())
 
 	from := corev1.ObjectReference{
 		Kind:       "Kamelet",
@@ -54,7 +55,7 @@ func TestKameletChange(t *testing.T) {
 
 	to := corev1.ObjectReference{
 		Kind:       "InMemoryChannel",
-		Name:       "messages",
+		Name:       knChannel,
 		APIVersion: messaging.SchemeGroupVersion.String(),
 	}
 
diff --git a/e2e/knative/knative_platform_test.go b/e2e/knative/knative_platform_test.go
index 594718b51..fc39544c0 100644
--- a/e2e/knative/knative_platform_test.go
+++ b/e2e/knative/knative_platform_test.go
@@ -38,7 +38,7 @@ import (
 	"github.com/apache/camel-k/pkg/util/knative"
 )
 
-func TestKnativePlatform(t *testing.T) {
+func TestKnativePlatformDetection(t *testing.T) {
 	RegisterTestingT(t)
 
 	installed, err := knative.IsInstalled(TestClient())
@@ -48,41 +48,45 @@ func TestKnativePlatform(t *testing.T) {
 		t.FailNow()
 	}
 
-	operatorID := "camel-k-knative"
-	Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
-	Eventually(PlatformProfile(ns), TestTimeoutShort).Should(Equal(v1.TraitProfile("")))
-	cluster := Platform(ns)().Status.Cluster
-
-	t.Run("run yaml on cluster profile", func(t *testing.T) {
-		Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml", "--profile", string(cluster)).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(IntegrationProfile(ns, "yaml"), TestTimeoutShort).Should(Equal(v1.TraitProfile(string(cluster))))
-		// Change something in the integration to produce a redeploy
-		Expect(UpdateIntegration(ns, "yaml", func(it *v1.Integration) {
-			it.Spec.Profile = ""
-			content, err := dsl.ToYamlDSL(it.Spec.Flows)
-			assert.NoError(t, err)
-			newData := strings.ReplaceAll(string(content), "string!", "string!!!")
-			newFlows, err := dsl.FromYamlDSLString(newData)
-			assert.NoError(t, err)
-			it.Spec.Flows = newFlows
-		})).To(Succeed())
-		// Spec profile should be reset by "kamel run"
-		Eventually(IntegrationSpecProfile(ns, "yaml")).Should(Equal(v1.TraitProfile("")))
-		// When integration is running again ...
-		Eventually(IntegrationPhase(ns, "yaml")).Should(Equal(v1.IntegrationPhaseRunning))
-		Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!!!"))
-		// It should keep the old profile saved in status
-		Eventually(IntegrationProfile(ns, "yaml"), TestTimeoutMedium).Should(Equal(v1.TraitProfile(cluster)))
-
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
-	})
-
-	t.Run("run yaml on automatic profile", func(t *testing.T) {
-		Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationProfile(ns, "yaml"), TestTimeoutShort).Should(Equal(v1.TraitProfileKnative))
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+	WithNewTestNamespace(t, func(ns string) {
+		operatorID := "camel-k-knative"
+		// Install withouth profile (should automatically detect the presence of KNative)
+		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
+		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Eventually(PlatformProfile(ns), TestTimeoutShort).Should(Equal(v1.TraitProfile("")))
+		cluster := Platform(ns)().Status.Cluster
+
+		t.Run("run yaml on cluster profile", func(t *testing.T) {
+			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml", "--profile", string(cluster)).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationProfile(ns, "yaml"), TestTimeoutShort).Should(Equal(v1.TraitProfile(string(cluster))))
+			// Change something in the integration to produce a redeploy
+			Expect(UpdateIntegration(ns, "yaml", func(it *v1.Integration) {
+				it.Spec.Profile = ""
+				content, err := dsl.ToYamlDSL(it.Spec.Flows)
+				assert.NoError(t, err)
+				newData := strings.ReplaceAll(string(content), "string!", "string!!!")
+				newFlows, err := dsl.FromYamlDSLString(newData)
+				assert.NoError(t, err)
+				it.Spec.Flows = newFlows
+			})).To(Succeed())
+			// Spec profile should be reset by "kamel run"
+			Eventually(IntegrationSpecProfile(ns, "yaml")).Should(Equal(v1.TraitProfile("")))
+			// When integration is running again ...
+			Eventually(IntegrationPhase(ns, "yaml")).Should(Equal(v1.IntegrationPhaseRunning))
+			Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!!!"))
+			// It should keep the old profile saved in status
+			Eventually(IntegrationProfile(ns, "yaml"), TestTimeoutMedium).Should(Equal(v1.TraitProfile(cluster)))
+
+			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		})
+
+		t.Run("run yaml on automatic profile", func(t *testing.T) {
+			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationProfile(ns, "yaml"), TestTimeoutShort).Should(Equal(v1.TraitProfileKnative))
+			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		})
 	})
 }
diff --git a/e2e/knative/knative_test.go b/e2e/knative/knative_test.go
index 6c69a05de..a9810564a 100644
--- a/e2e/knative/knative_test.go
+++ b/e2e/knative/knative_test.go
@@ -38,8 +38,10 @@ import (
 func TestKnative(t *testing.T) {
 	RegisterTestingT(t)
 
-	Expect(CreateKnativeChannel(ns, "messages")()).To(Succeed())
-	Expect(CreateKnativeChannel(ns, "words")()).To(Succeed())
+	knChannelMessages := "messages"
+	knChannelWords := "words"
+	Expect(CreateKnativeChannel(ns, knChannelMessages)()).To(Succeed())
+	Expect(CreateKnativeChannel(ns, knChannelWords)()).To(Succeed())
 	operatorID := fmt.Sprintf("camel-k-%s", ns)
 	Expect(KamelInstallWithID(operatorID, ns, "--trait-profile", "knative").Execute()).To(Succeed())