You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cd...@apache.org on 2024/03/08 19:35:55 UTC

(camel-k) 02/10: chore(e2e): Run E2E tests in parallel

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

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

commit 4e2db21a8ae09d57a739d45ae643fe3f89d7d29e
Author: Christoph Deppisch <cd...@redhat.com>
AuthorDate: Fri Mar 1 10:31:35 2024 +0100

    chore(e2e): Run E2E tests in parallel
---
 e2e/advanced/build_order_strategy_test.go        | 166 ++--
 e2e/advanced/builder_test.go                     |  46 +-
 e2e/advanced/catalog_builder_test.go             |  87 ++-
 e2e/advanced/debug_test.go                       |  50 +-
 e2e/advanced/deployment_test.go                  |  18 +-
 e2e/advanced/dump_test.go                        |  20 +-
 e2e/advanced/environment_test.go                 |  48 +-
 e2e/advanced/incremental_build_test.go           | 200 ++---
 e2e/advanced/integration_profile_test.go         | 108 +--
 e2e/advanced/kamelet_repo_test.go                |  30 +-
 e2e/advanced/local_platform_test.go              |  75 +-
 e2e/advanced/main_test.go                        |  30 +-
 e2e/advanced/maven_http_proxy_test.go            |  58 +-
 e2e/advanced/operator_id_filtering_test.go       |  94 +--
 e2e/advanced/operator_metrics_test.go            |  30 +-
 e2e/advanced/platform_traits_test.go             |  32 +-
 e2e/advanced/promote_test.go                     | 132 ++--
 e2e/advanced/reset_test.go                       |  62 +-
 e2e/advanced/synthetic_test.go                   |  57 +-
 e2e/advanced/tekton_test.go                      |  14 +-
 e2e/builder/build_test.go                        | 146 ++--
 e2e/builder/registry_test.go                     |  24 +-
 e2e/common/cli/bind_test.go                      |  26 +-
 e2e/common/cli/config_test.go                    |  18 +-
 e2e/common/cli/delete_test.go                    |  58 +-
 e2e/common/cli/describe_test.go                  |  16 +-
 e2e/common/cli/dev_mode_test.go                  |  20 +-
 e2e/common/cli/duplicate_parameters_test.go      |   4 +-
 e2e/common/cli/get_test.go                       |  46 +-
 e2e/common/cli/help_test.go                      |   6 +-
 e2e/common/cli/log_test.go                       |  16 +-
 e2e/common/cli/offline_commands_test.go          |   8 +-
 e2e/common/cli/run_test.go                       | 144 ++--
 e2e/common/cli/version_test.go                   |   2 +-
 e2e/common/config/config_reload_test.go          |  68 +-
 e2e/common/config/config_test.go                 | 266 +++----
 e2e/common/config/kamelet_config_test.go         | 282 +++----
 e2e/common/config/pipe_config_test.go            | 116 +--
 e2e/common/languages/groovy_test.go              |  12 +-
 e2e/common/languages/java_test.go                |  12 +-
 e2e/common/languages/js_test.go                  |  12 +-
 e2e/common/languages/kotlin_test.go              |  12 +-
 e2e/common/languages/polyglot_test.go            |  14 +-
 e2e/common/languages/xml_test.go                 |  12 +-
 e2e/common/languages/yaml_test.go                |  12 +-
 e2e/common/misc/client_test.go                   |   4 +-
 e2e/common/misc/cron_test.go                     |  44 +-
 e2e/common/misc/integration_fail_test.go         | 134 ++--
 e2e/common/misc/integration_trait_update_test.go |  14 +-
 e2e/common/misc/kamelet_test.go                  |  16 +-
 e2e/common/misc/kamelet_update_test.go           |  20 +-
 e2e/common/misc/maven_repository_test.go         |  14 +-
 e2e/common/misc/pipe_test.go                     |  46 +-
 e2e/common/misc/pipe_with_image_test.go          |  28 +-
 e2e/common/misc/registry_maven_wagon_test.go     |  56 +-
 e2e/common/misc/rest_test.go                     |  26 +-
 e2e/common/misc/scale_binding_test.go            |  54 +-
 e2e/common/misc/scale_integration_test.go        |  68 +-
 e2e/common/misc/structured_logs_test.go          |  18 +-
 e2e/common/runtimes/runtimes_test.go             |  42 +-
 e2e/common/setup/main_test.go                    |  26 +-
 e2e/common/traits/affinity_test.go               |  48 +-
 e2e/common/traits/builder_test.go                | 231 +++---
 e2e/common/traits/camel_test.go                  |  30 +-
 e2e/common/traits/container_test.go              |  32 +-
 e2e/common/traits/deployment_test.go             |  30 +-
 e2e/common/traits/error_handler_test.go          |  12 +-
 e2e/common/traits/errored_trait_test.go          |  26 +-
 e2e/common/traits/health_test.go                 | 134 ++--
 e2e/common/traits/istio_test.go                  |  18 +-
 e2e/common/traits/jolokia_test.go                |  20 +-
 e2e/common/traits/jvm_test.go                    |  18 +-
 e2e/common/traits/kamelet_test.go                |  20 +-
 e2e/common/traits/master_test.go                 |  30 +-
 e2e/common/traits/openapi_test.go                |  18 +-
 e2e/common/traits/pdb_test.go                    |  54 +-
 e2e/common/traits/pod_test.go                    |  20 +-
 e2e/common/traits/prometheus_test.go             |  27 +-
 e2e/common/traits/pull_secret_test.go            |  36 +-
 e2e/common/traits/route_test.go                  |  72 +-
 e2e/common/traits/service_binding_test.go        |  24 +-
 e2e/common/traits/service_test.go                |  46 +-
 e2e/common/traits/toleration_test.go             |  40 +-
 e2e/install/cli/global_kamelet_test.go           |  30 +-
 e2e/install/cli/global_test.go                   | 124 +--
 e2e/install/cli/install_test.go                  |  80 +-
 e2e/install/cli/maven_ca_secret_test.go          |  46 +-
 e2e/install/cli/uninstall_test.go                |  88 +--
 e2e/install/helm/setup_test.go                   |  16 +-
 e2e/install/kustomize/operator_test.go           |  54 +-
 e2e/install/kustomize/setup_test.go              |  34 +-
 e2e/install/kustomize/uninstall_test.go          |  72 +-
 e2e/install/olm/olm_install_test.go              |  32 +-
 e2e/install/upgrade/cli_upgrade_test.go          |  61 +-
 e2e/install/upgrade/helm_upgrade_test.go         |  42 +-
 e2e/install/upgrade/olm_upgrade_test.go          | 112 +--
 e2e/knative/kamelet_test.go                      |  30 +-
 e2e/knative/knative_platform_test.go             |  38 +-
 e2e/knative/knative_test.go                      | 140 ++--
 e2e/knative/openapi_test.go                      |  14 +-
 e2e/knative/pod_test.go                          |  18 +-
 e2e/native/native_binding_test.go                |  22 +-
 e2e/native/native_test.go                        |  82 +-
 e2e/native/native_with_sources_test.go           |  64 +-
 e2e/support/csv.go                               |  37 +-
 e2e/support/test_nexus_hooks.go                  |   2 +-
 e2e/support/test_support.go                      | 950 ++++++++++++-----------
 e2e/support/test_util.go                         |  10 +-
 e2e/telemetry/telemetry_test.go                  |  28 +-
 script/Makefile                                  |  26 +-
 110 files changed, 3373 insertions(+), 3184 deletions(-)

diff --git a/e2e/advanced/build_order_strategy_test.go b/e2e/advanced/build_order_strategy_test.go
index 5dd64120d..46111d8cb 100644
--- a/e2e/advanced/build_order_strategy_test.go
+++ b/e2e/advanced/build_order_strategy_test.go
@@ -35,80 +35,82 @@ import (
 )
 
 func TestRunBuildOrderStrategyMatchingDependencies(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-build-order-deps"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns,
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns,
 			"--max-running-pipelines", "4",
 			"--build-order-strategy", string(v1.BuildOrderStrategyDependencies)).Execute()).To(Succeed())
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
-		Expect(CreateTimerKamelet(ns, "timer-source")()).To(Succeed())
+		Expect(CreateTimerKamelet(t, ns, "timer-source")()).To(Succeed())
 
 		integrationA := RandomizedSuffixName("java-a")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", integrationA,
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationKit(ns, integrationA), TestTimeoutMedium).ShouldNot(BeEmpty())
-		integrationKitNameA := IntegrationKit(ns, integrationA)()
-		Eventually(Build(ns, integrationKitNameA), TestTimeoutMedium).ShouldNot(BeNil())
+		Eventually(IntegrationKit(t, ns, integrationA), TestTimeoutMedium).ShouldNot(BeEmpty())
+		integrationKitNameA := IntegrationKit(t, ns, integrationA)()
+		Eventually(Build(t, ns, integrationKitNameA), TestTimeoutMedium).ShouldNot(BeNil())
 
 		integrationB := RandomizedSuffixName("java-b")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", integrationB,
 			"-d", "camel:cron",
 		).Execute()).To(Succeed())
 
 		integrationC := RandomizedSuffixName("java-c")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", integrationC,
 			"-d", "camel:cron",
 			"-d", "camel:zipfile",
 		).Execute()).To(Succeed())
 
 		integrationZ := RandomizedSuffixName("groovy-z")
-		Expect(KamelRunWithID(operatorID, ns, "files/timer-source.groovy",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/timer-source.groovy",
 			"--name", integrationZ,
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationKit(ns, integrationB), TestTimeoutMedium).ShouldNot(BeEmpty())
-		Eventually(IntegrationKit(ns, integrationC), TestTimeoutMedium).ShouldNot(BeEmpty())
-		Eventually(IntegrationKit(ns, integrationZ), TestTimeoutMedium).ShouldNot(BeEmpty())
-
-		integrationKitNameB := IntegrationKit(ns, integrationB)()
-		integrationKitNameC := IntegrationKit(ns, integrationC)()
-		integrationKitNameZ := IntegrationKit(ns, integrationZ)()
-
-		Eventually(BuildPhase(ns, integrationKitNameA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(IntegrationPodPhase(ns, integrationA), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, integrationA, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, integrationA), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(Kit(ns, integrationKitNameA)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
-
-		Eventually(BuildPhase(ns, integrationKitNameB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(IntegrationPodPhase(ns, integrationB), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, integrationB, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, integrationB), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(Kit(ns, integrationKitNameB)().Status.BaseImage).Should(ContainSubstring(integrationKitNameA))
-
-		Eventually(BuildPhase(ns, integrationKitNameC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(IntegrationPodPhase(ns, integrationC), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, integrationC, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, integrationC), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(Kit(ns, integrationKitNameC)().Status.BaseImage).Should(ContainSubstring(integrationKitNameB))
-
-		Eventually(BuildPhase(ns, integrationKitNameZ), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(IntegrationPodPhase(ns, integrationZ), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, integrationZ, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, integrationZ), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(Kit(ns, integrationKitNameZ)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
-
-		buildA := Build(ns, integrationKitNameA)()
-		buildB := Build(ns, integrationKitNameB)()
-		buildC := Build(ns, integrationKitNameC)()
-		buildZ := Build(ns, integrationKitNameZ)()
+		Eventually(IntegrationKit(t, ns, integrationB), TestTimeoutMedium).ShouldNot(BeEmpty())
+		Eventually(IntegrationKit(t, ns, integrationC), TestTimeoutMedium).ShouldNot(BeEmpty())
+		Eventually(IntegrationKit(t, ns, integrationZ), TestTimeoutMedium).ShouldNot(BeEmpty())
+
+		integrationKitNameB := IntegrationKit(t, ns, integrationB)()
+		integrationKitNameC := IntegrationKit(t, ns, integrationC)()
+		integrationKitNameZ := IntegrationKit(t, ns, integrationZ)()
+
+		Eventually(BuildPhase(t, ns, integrationKitNameA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(IntegrationPodPhase(t, ns, integrationA), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, integrationA, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, integrationA), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(Kit(t, ns, integrationKitNameA)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+
+		Eventually(BuildPhase(t, ns, integrationKitNameB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(IntegrationPodPhase(t, ns, integrationB), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, integrationB, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, integrationB), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(Kit(t, ns, integrationKitNameB)().Status.BaseImage).Should(ContainSubstring(integrationKitNameA))
+
+		Eventually(BuildPhase(t, ns, integrationKitNameC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(IntegrationPodPhase(t, ns, integrationC), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, integrationC, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, integrationC), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(Kit(t, ns, integrationKitNameC)().Status.BaseImage).Should(ContainSubstring(integrationKitNameB))
+
+		Eventually(BuildPhase(t, ns, integrationKitNameZ), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(IntegrationPodPhase(t, ns, integrationZ), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, integrationZ, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, integrationZ), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(Kit(t, ns, integrationKitNameZ)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+
+		buildA := Build(t, ns, integrationKitNameA)()
+		buildB := Build(t, ns, integrationKitNameB)()
+		buildC := Build(t, ns, integrationKitNameC)()
+		buildZ := Build(t, ns, integrationKitNameZ)()
 
 		Expect(buildA.Status.StartedAt.Before(buildB.Status.StartedAt)).Should(BeTrue())
 		Expect(buildA.Status.StartedAt.Before(buildC.Status.StartedAt)).Should(BeTrue())
@@ -116,7 +118,7 @@ func TestRunBuildOrderStrategyMatchingDependencies(t *testing.T) {
 		Expect(buildZ.Status.StartedAt.Before(buildB.Status.StartedAt)).Should(BeTrue())
 		Expect(buildZ.Status.StartedAt.Before(buildC.Status.StartedAt)).Should(BeTrue())
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -124,60 +126,60 @@ func TestRunBuildOrderStrategyMatchingDependencies(t *testing.T) {
 func TestRunBuildOrderStrategyFIFO(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-build-order-fifo"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns, "--build-order-strategy", string(v1.BuildOrderStrategyFIFO)).Execute()).To(Succeed())
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--build-order-strategy", string(v1.BuildOrderStrategyFIFO)).Execute()).To(Succeed())
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
-		Expect(CreateTimerKamelet(ns, "timer-source")()).To(Succeed())
+		Expect(CreateTimerKamelet(t, ns, "timer-source")()).To(Succeed())
 
 		integrationA := RandomizedSuffixName("java-a")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", integrationA,
 		).Execute()).To(Succeed())
-		Eventually(IntegrationPhase(ns, integrationA)).Should(Equal(v1.IntegrationPhaseBuildingKit))
+		Eventually(IntegrationPhase(t, ns, integrationA)).Should(Equal(v1.IntegrationPhaseBuildingKit))
 
 		integrationB := RandomizedSuffixName("java-b")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", integrationB,
 			"-d", "camel:joor",
 		).Execute()).To(Succeed())
 
 		integrationZ := RandomizedSuffixName("groovy-z")
-		Expect(KamelRunWithID(operatorID, ns, "files/timer-source.groovy",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/timer-source.groovy",
 			"--name", integrationZ,
 		).Execute()).To(Succeed())
 
-		integrationKitNameA := IntegrationKit(ns, integrationA)()
-		Eventually(BuildPhase(ns, integrationKitNameA), TestTimeoutShort).Should(Equal(v1.BuildPhaseRunning))
+		integrationKitNameA := IntegrationKit(t, ns, integrationA)()
+		Eventually(BuildPhase(t, ns, integrationKitNameA), TestTimeoutShort).Should(Equal(v1.BuildPhaseRunning))
 
-		Eventually(IntegrationPhase(ns, integrationB)).Should(Equal(v1.IntegrationPhaseBuildingKit))
-		integrationKitNameB := IntegrationKit(ns, integrationB)()
-		Eventually(BuildPhase(ns, integrationKitNameB), TestTimeoutShort).Should(Equal(v1.BuildPhaseRunning))
+		Eventually(IntegrationPhase(t, ns, integrationB)).Should(Equal(v1.IntegrationPhaseBuildingKit))
+		integrationKitNameB := IntegrationKit(t, ns, integrationB)()
+		Eventually(BuildPhase(t, ns, integrationKitNameB), TestTimeoutShort).Should(Equal(v1.BuildPhaseRunning))
 
-		Eventually(IntegrationPhase(ns, integrationZ)).Should(Equal(v1.IntegrationPhaseBuildingKit))
-		integrationKitNameZ := IntegrationKit(ns, integrationZ)()
-		Eventually(BuildPhase(ns, integrationKitNameZ), TestTimeoutShort).Should(Equal(v1.BuildPhaseRunning))
+		Eventually(IntegrationPhase(t, ns, integrationZ)).Should(Equal(v1.IntegrationPhaseBuildingKit))
+		integrationKitNameZ := IntegrationKit(t, ns, integrationZ)()
+		Eventually(BuildPhase(t, ns, integrationKitNameZ), TestTimeoutShort).Should(Equal(v1.BuildPhaseRunning))
 
-		Eventually(BuildPhase(ns, integrationKitNameA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(IntegrationPodPhase(ns, integrationA), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, integrationA, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, integrationA), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(Kit(ns, integrationKitNameA)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+		Eventually(BuildPhase(t, ns, integrationKitNameA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(IntegrationPodPhase(t, ns, integrationA), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, integrationA, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, integrationA), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(Kit(t, ns, integrationKitNameA)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
 
-		Eventually(BuildPhase(ns, integrationKitNameB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(IntegrationPodPhase(ns, integrationB), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, integrationB, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, integrationB), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(Kit(ns, integrationKitNameB)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+		Eventually(BuildPhase(t, ns, integrationKitNameB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(IntegrationPodPhase(t, ns, integrationB), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, integrationB, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, integrationB), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(Kit(t, ns, integrationKitNameB)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
 
-		Eventually(BuildPhase(ns, integrationKitNameZ), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(IntegrationPodPhase(ns, integrationZ), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, integrationZ, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, integrationZ), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(Kit(ns, integrationKitNameZ)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+		Eventually(BuildPhase(t, ns, integrationKitNameZ), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(IntegrationPodPhase(t, ns, integrationZ), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, integrationZ, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, integrationZ), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(Kit(t, ns, integrationKitNameZ)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 */
diff --git a/e2e/advanced/builder_test.go b/e2e/advanced/builder_test.go
index 78867b16e..a1548812c 100644
--- a/e2e/advanced/builder_test.go
+++ b/e2e/advanced/builder_test.go
@@ -36,50 +36,52 @@ import (
 )
 
 func TestBuilderTimeout(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Eventually(Platform(ns)).ShouldNot(BeNil())
-		Eventually(PlatformConditionStatus(ns, v1.IntegrationPlatformConditionTypeCreated), TestTimeoutShort).
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Eventually(Platform(t, ns)).ShouldNot(BeNil())
+		Eventually(PlatformConditionStatus(t, ns, v1.IntegrationPlatformConditionTypeCreated), TestTimeoutShort).
 			Should(Equal(corev1.ConditionTrue))
 
-		pl := Platform(ns)()
+		pl := Platform(t, ns)()
 		// set a short timeout to simulate the build timeout
 		pl.Spec.Build.Timeout = &metav1.Duration{
 			Duration: 10 * time.Second,
 		}
-		TestClient().Update(TestContext, pl)
-		Eventually(Platform(ns)).ShouldNot(BeNil())
-		Eventually(PlatformTimeout(ns)).Should(Equal(
+		TestClient(t).Update(TestContext, pl)
+		Eventually(Platform(t, ns)).ShouldNot(BeNil())
+		Eventually(PlatformTimeout(t, ns)).Should(Equal(
 			&metav1.Duration{
 				Duration: 10 * time.Second,
 			},
 		))
 
-		operatorPod := OperatorPod(ns)()
+		operatorPod := OperatorPod(t, ns)()
 		operatorPodImage := operatorPod.Spec.Containers[0].Image
 
 		t.Run("run yaml", func(t *testing.T) {
 			name := RandomizedSuffixName("yaml")
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml",
 				"--name", name,
 				"-t", "builder.strategy=pod").Execute()).To(Succeed())
 			// As the build hits timeout, it keeps trying building
-			Eventually(IntegrationPhase(ns, name)).Should(Equal(v1.IntegrationPhaseBuildingKit))
-			integrationKitName := IntegrationKit(ns, name)()
+			Eventually(IntegrationPhase(t, ns, name)).Should(Equal(v1.IntegrationPhaseBuildingKit))
+			integrationKitName := IntegrationKit(t, ns, name)()
 			builderKitName := fmt.Sprintf("camel-k-%s-builder", integrationKitName)
-			Eventually(BuilderPodPhase(ns, builderKitName)).Should(Equal(corev1.PodPending))
-			Eventually(BuildPhase(ns, integrationKitName)).Should(Equal(v1.BuildPhaseRunning))
-			Eventually(BuilderPod(ns, builderKitName)().Spec.InitContainers[0].Name).Should(Equal("builder"))
-			Eventually(BuilderPod(ns, builderKitName)().Spec.InitContainers[0].Image).Should(Equal(operatorPodImage))
+			Eventually(BuilderPodPhase(t, ns, builderKitName)).Should(Equal(corev1.PodPending))
+			Eventually(BuildPhase(t, ns, integrationKitName)).Should(Equal(v1.BuildPhaseRunning))
+			Eventually(BuilderPod(t, ns, builderKitName)().Spec.InitContainers[0].Name).Should(Equal("builder"))
+			Eventually(BuilderPod(t, ns, builderKitName)().Spec.InitContainers[0].Image).Should(Equal(operatorPodImage))
 			// After a few minutes (5 max retries), this has to be in error state
-			Eventually(BuildPhase(ns, integrationKitName), TestTimeoutMedium).Should(Equal(v1.BuildPhaseError))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseError))
-			Eventually(BuildFailureRecovery(ns, integrationKitName), TestTimeoutMedium).Should(Equal(5))
-			Eventually(BuilderPodPhase(ns, builderKitName), TestTimeoutMedium).Should(Equal(corev1.PodFailed))
+			Eventually(BuildPhase(t, ns, integrationKitName), TestTimeoutMedium).Should(Equal(v1.BuildPhaseError))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(BuildFailureRecovery(t, ns, integrationKitName), TestTimeoutMedium).Should(Equal(5))
+			Eventually(BuilderPodPhase(t, ns, builderKitName), TestTimeoutMedium).Should(Equal(corev1.PodFailed))
 		})
 	})
 }
diff --git a/e2e/advanced/catalog_builder_test.go b/e2e/advanced/catalog_builder_test.go
index d67cfacd9..e85f900ac 100644
--- a/e2e/advanced/catalog_builder_test.go
+++ b/e2e/advanced/catalog_builder_test.go
@@ -36,19 +36,20 @@ import (
 )
 
 func TestCamelCatalogBuilder(t *testing.T) {
+	t.Parallel()
 
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Eventually(Platform(ns)).ShouldNot(BeNil())
-		Eventually(PlatformConditionStatus(ns, v1.IntegrationPlatformConditionTypeCreated), TestTimeoutShort).
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Eventually(Platform(t, ns)).ShouldNot(BeNil())
+		Eventually(PlatformConditionStatus(t, ns, v1.IntegrationPlatformConditionTypeCreated), TestTimeoutShort).
 			Should(Equal(corev1.ConditionTrue))
 		catalogName := fmt.Sprintf("camel-catalog-%s", strings.ToLower(defaults.DefaultRuntimeVersion))
-		Eventually(CamelCatalog(ns, catalogName)).ShouldNot(BeNil())
-		Eventually(CamelCatalogPhase(ns, catalogName), TestTimeoutMedium).Should(Equal(v1.CamelCatalogPhaseReady))
+		Eventually(CamelCatalog(t, ns, catalogName)).ShouldNot(BeNil())
+		Eventually(CamelCatalogPhase(t, ns, catalogName), TestTimeoutMedium).Should(Equal(v1.CamelCatalogPhaseReady))
 
 		// Run an integration with a catalog not compatible
 		// The operator should create the catalog, but fail on reconciliation as it is not compatible
@@ -57,23 +58,23 @@ func TestCamelCatalogBuilder(t *testing.T) {
 			name := RandomizedSuffixName("java-1-15")
 			nonCompatibleCatalogName := "camel-catalog-1.15.0"
 			Expect(
-				KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name,
+				KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name,
 					"-t", "camel.runtime-version=1.15.0",
 				).Execute()).To(Succeed())
 
-			Eventually(CamelCatalog(ns, nonCompatibleCatalogName)).ShouldNot(BeNil())
-			Eventually(CamelCatalogPhase(ns, nonCompatibleCatalogName)).Should(Equal(v1.CamelCatalogPhaseError))
-			Eventually(CamelCatalogCondition(ns, nonCompatibleCatalogName, v1.CamelCatalogConditionReady)().Message).Should(ContainSubstring("Container image tool missing in catalog"))
+			Eventually(CamelCatalog(t, ns, nonCompatibleCatalogName)).ShouldNot(BeNil())
+			Eventually(CamelCatalogPhase(t, ns, nonCompatibleCatalogName)).Should(Equal(v1.CamelCatalogPhaseError))
+			Eventually(CamelCatalogCondition(t, ns, nonCompatibleCatalogName, v1.CamelCatalogConditionReady)().Message).Should(ContainSubstring("Container image tool missing in catalog"))
 
-			Eventually(IntegrationKit(ns, name)).ShouldNot(Equal(""))
-			kitName := IntegrationKit(ns, name)()
-			Eventually(KitPhase(ns, kitName)).Should(Equal(v1.IntegrationKitPhaseError))
-			Eventually(KitCondition(ns, kitName, v1.IntegrationKitConditionCatalogAvailable)().Reason).Should(Equal("Camel Catalog 1.15.0 error"))
-			Eventually(IntegrationPhase(ns, name)).Should(Equal(v1.IntegrationPhaseError))
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionKitAvailable)().Status).Should(Equal(corev1.ConditionFalse))
+			Eventually(IntegrationKit(t, ns, name)).ShouldNot(Equal(""))
+			kitName := IntegrationKit(t, ns, name)()
+			Eventually(KitPhase(t, ns, kitName)).Should(Equal(v1.IntegrationKitPhaseError))
+			Eventually(KitCondition(t, ns, kitName, v1.IntegrationKitConditionCatalogAvailable)().Reason).Should(Equal("Camel Catalog 1.15.0 error"))
+			Eventually(IntegrationPhase(t, ns, name)).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionKitAvailable)().Status).Should(Equal(corev1.ConditionFalse))
 
 			// Clean up
-			Eventually(DeleteIntegrations(ns)).Should(Equal(0))
+			Eventually(DeleteIntegrations(t, ns)).Should(Equal(0))
 		})
 
 		// Run an integration with a compatible catalog
@@ -84,24 +85,24 @@ func TestCamelCatalogBuilder(t *testing.T) {
 			compatibleCatalogName := "camel-catalog-" + strings.ToLower(compatibleVersion)
 
 			// First of all we delete the catalog, if by any chance it was created previously
-			Expect(DeleteCamelCatalog(ns, compatibleCatalogName)()).Should(BeTrue())
-			Eventually(CamelCatalog(ns, compatibleCatalogName)).Should(BeNil())
+			Expect(DeleteCamelCatalog(t, ns, compatibleCatalogName)()).Should(BeTrue())
+			Eventually(CamelCatalog(t, ns, compatibleCatalogName)).Should(BeNil())
 
 			Expect(
-				KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name,
+				KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name,
 					"-t", "camel.runtime-version="+compatibleVersion,
 				).Execute()).To(Succeed())
 
-			Eventually(CamelCatalog(ns, compatibleCatalogName)).ShouldNot(BeNil())
-			Eventually(CamelCatalogPhase(ns, compatibleCatalogName)).Should(Equal(v1.CamelCatalogPhaseReady))
-			Eventually(CamelCatalogCondition(ns, compatibleCatalogName, v1.CamelCatalogConditionReady)().Message).Should(Equal("Container image tool found in catalog"))
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).
+			Eventually(CamelCatalog(t, ns, compatibleCatalogName)).ShouldNot(BeNil())
+			Eventually(CamelCatalogPhase(t, ns, compatibleCatalogName)).Should(Equal(v1.CamelCatalogPhaseReady))
+			Eventually(CamelCatalogCondition(t, ns, compatibleCatalogName, v1.CamelCatalogConditionReady)().Message).Should(Equal("Container image tool found in catalog"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutMedium).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutMedium).Should(ContainSubstring("Magicstring!"))
 
 			// Clean up
-			Eventually(DeleteIntegrations(ns)).Should(Equal(0))
+			Eventually(DeleteIntegrations(t, ns)).Should(Equal(0))
 		})
 
 		t.Run("Run catalog container exists", func(t *testing.T) {
@@ -110,32 +111,32 @@ func TestCamelCatalogBuilder(t *testing.T) {
 			compatibleCatalogName := "camel-catalog-" + strings.ToLower(compatibleVersion)
 
 			// First of all we delete the catalog, if by any chance it was created previously
-			Expect(DeleteCamelCatalog(ns, compatibleCatalogName)()).Should(BeTrue())
-			Eventually(CamelCatalog(ns, compatibleCatalogName)).Should(BeNil())
+			Expect(DeleteCamelCatalog(t, ns, compatibleCatalogName)()).Should(BeTrue())
+			Eventually(CamelCatalog(t, ns, compatibleCatalogName)).Should(BeNil())
 
 			Expect(
-				KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name,
+				KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name,
 					"-t", "camel.runtime-version="+compatibleVersion,
 				).Execute()).To(Succeed())
 
-			Eventually(CamelCatalog(ns, compatibleCatalogName)).ShouldNot(BeNil())
-			Eventually(CamelCatalogPhase(ns, compatibleCatalogName)).Should(Equal(v1.CamelCatalogPhaseReady))
-			Eventually(CamelCatalogCondition(ns, compatibleCatalogName, v1.CamelCatalogConditionReady)().Message).Should(
+			Eventually(CamelCatalog(t, ns, compatibleCatalogName)).ShouldNot(BeNil())
+			Eventually(CamelCatalogPhase(t, ns, compatibleCatalogName)).Should(Equal(v1.CamelCatalogPhaseReady))
+			Eventually(CamelCatalogCondition(t, ns, compatibleCatalogName, v1.CamelCatalogConditionReady)().Message).Should(
 				Equal("Container image tool found in catalog"),
 			)
 
-			Eventually(IntegrationKit(ns, name)).ShouldNot(Equal(""))
-			kitName := IntegrationKit(ns, name)()
-			Eventually(KitPhase(ns, kitName)).Should(Equal(v1.IntegrationKitPhaseReady))
-			Eventually(IntegrationPodPhase(ns, name)).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Eventually(IntegrationKit(t, ns, name)).ShouldNot(Equal(""))
+			kitName := IntegrationKit(t, ns, name)()
+			Eventually(KitPhase(t, ns, kitName)).Should(Equal(v1.IntegrationKitPhaseReady))
+			Eventually(IntegrationPodPhase(t, ns, name)).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 			// Clean up
-			Eventually(DeleteIntegrations(ns)).Should(Equal(0))
+			Eventually(DeleteIntegrations(t, ns)).Should(Equal(0))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/advanced/debug_test.go b/e2e/advanced/debug_test.go
index 38c422cee..206211aac 100644
--- a/e2e/advanced/debug_test.go
+++ b/e2e/advanced/debug_test.go
@@ -37,70 +37,70 @@ import (
 )
 
 func TestKamelCLIDebug(t *testing.T) {
-	RegisterTestingT(t)
+	t.Parallel()
 
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
 
-		Eventually(SelectedPlatformPhase(ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Eventually(SelectedPlatformPhase(t, ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		t.Run("debug local default port check", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 			Expect(portIsInUse("127.0.0.1", "5005")()).To(BeFalse())
 
 			debugTestContext, cancel := context.WithCancel(TestContext)
 			defer cancelAndWait(cancel)
-			go KamelWithContext(debugTestContext, "debug", "yaml", "-n", ns).ExecuteContext(debugTestContext)
+			go KamelWithContext(t, debugTestContext, "debug", "yaml", "-n", ns).ExecuteContext(debugTestContext)
 
 			Eventually(portIsInUse("127.0.0.1", "5005"), TestTimeoutMedium, 5*time.Second).Should(BeTrue())
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("debug local port check", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 			Expect(portIsInUse("127.0.0.1", "5006")()).To(BeFalse())
 
 			debugTestContext, cancel := context.WithCancel(TestContext)
 			defer cancelAndWait(cancel)
-			go KamelWithContext(debugTestContext, "debug", "yaml", "--port", "5006", "-n", ns).ExecuteContext(debugTestContext)
+			go KamelWithContext(t, debugTestContext, "debug", "yaml", "--port", "5006", "-n", ns).ExecuteContext(debugTestContext)
 
 			Eventually(portIsInUse("127.0.0.1", "5006"), TestTimeoutMedium, 5*time.Second).Should(BeTrue())
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("debug logs check", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 
 			debugTestContext, cancel := context.WithCancel(TestContext)
 			defer cancelAndWait(cancel)
-			go KamelWithContext(debugTestContext, "debug", "yaml", "-n", ns).ExecuteContext(debugTestContext)
+			go KamelWithContext(t, debugTestContext, "debug", "yaml", "-n", ns).ExecuteContext(debugTestContext)
 
-			Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutMedium).Should(ContainSubstring("Listening for transport dt_socket at address: 5005"))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Eventually(IntegrationLogs(t, ns, "yaml"), TestTimeoutMedium).Should(ContainSubstring("Listening for transport dt_socket at address: 5005"))
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Pod config test", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 
 			debugTestContext, cancel := context.WithCancel(TestContext)
 			defer cancelAndWait(cancel)
-			go KamelWithContext(debugTestContext, "debug", "yaml", "-n", ns).ExecuteContext(debugTestContext)
+			go KamelWithContext(t, debugTestContext, "debug", "yaml", "-n", ns).ExecuteContext(debugTestContext)
 
 			Eventually(func() string {
-				return IntegrationPod(ns, "yaml")().Spec.Containers[0].Args[0]
+				return IntegrationPod(t, ns, "yaml")().Spec.Containers[0].Args[0]
 			}).Should(ContainSubstring("-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005"))
-			Expect(IntegrationPod(ns, "yaml")().GetLabels()["camel.apache.org/debug"]).To(Not(BeNil()))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(IntegrationPod(t, ns, "yaml")().GetLabels()["camel.apache.org/debug"]).To(Not(BeNil()))
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
diff --git a/e2e/advanced/deployment_test.go b/e2e/advanced/deployment_test.go
index 4d489e2dd..8c80f68a4 100644
--- a/e2e/advanced/deployment_test.go
+++ b/e2e/advanced/deployment_test.go
@@ -34,12 +34,14 @@ import (
 )
 
 func TestDeploymentFailureShouldReportIntegrationCondition(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-failing-deploy"
 		nsRestr := "restr"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns, "--global", "--force").Execute()).To(Succeed())
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--global", "--force").Execute()).To(Succeed())
 		// Create restricted namespace
 		ExpectExecSucceed(t,
 			exec.Command(
@@ -66,14 +68,14 @@ func TestDeploymentFailureShouldReportIntegrationCondition(t *testing.T) {
 		)
 		// Create an Integration into a restricted namespace
 		name := RandomizedSuffixName("java-fail")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name, "-n", nsRestr).Execute()).To(Succeed())
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name, "-n", nsRestr).Execute()).To(Succeed())
 		// Check the error is reported into the Integration
-		Eventually(IntegrationPhase(nsRestr, name), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseError))
-		Eventually(IntegrationCondition(nsRestr, name, v1.IntegrationConditionReady)().Status).
+		Eventually(IntegrationPhase(t, nsRestr, name), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseError))
+		Eventually(IntegrationCondition(t, nsRestr, name, v1.IntegrationConditionReady)().Status).
 			Should(Equal(corev1.ConditionFalse))
-		Eventually(IntegrationCondition(nsRestr, name, v1.IntegrationConditionReady)().Message).
+		Eventually(IntegrationCondition(t, nsRestr, name, v1.IntegrationConditionReady)().Message).
 			Should(ContainSubstring("is forbidden: violates PodSecurity"))
 		// Clean up
-		Eventually(DeleteIntegrations(nsRestr)).Should(Equal(0))
+		Eventually(DeleteIntegrations(t, nsRestr)).Should(Equal(0))
 	})
 }
diff --git a/e2e/advanced/dump_test.go b/e2e/advanced/dump_test.go
index 31a31825e..3f6bad518 100644
--- a/e2e/advanced/dump_test.go
+++ b/e2e/advanced/dump_test.go
@@ -35,11 +35,11 @@ import (
 )
 
 func TestKamelCLIDump(t *testing.T) {
-	RegisterTestingT(t)
+	t.Parallel()
 
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("dump empty namespace", func(t *testing.T) {
-			dump := GetOutputString(Kamel("dump", "-n", ns))
+			dump := GetOutputString(Kamel(t, "dump", "-n", ns))
 
 			Expect(dump).To(ContainSubstring("Found 0 integrations:"))
 			Expect(dump).To(ContainSubstring("Found 0 deployments:"))
@@ -47,16 +47,16 @@ func TestKamelCLIDump(t *testing.T) {
 
 		t.Run("dump non-empty namespace", func(t *testing.T) {
 			operatorID := fmt.Sprintf("camel-k-%s", ns)
-			Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-			Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-			Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-			Eventually(SelectedPlatformPhase(ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+			Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+			Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+			Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+			Eventually(SelectedPlatformPhase(t, ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, "yaml")).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, "yaml")).Should(ContainSubstring("Magicstring!"))
 
-			dump := GetOutputString(Kamel("dump", "-n", ns))
+			dump := GetOutputString(Kamel(t, "dump", "-n", ns))
 			Expect(dump).To(ContainSubstring("Found 1 platforms"))
 			Expect(dump).To(ContainSubstring("Found 1 integrations"))
 			Expect(dump).To(ContainSubstring("name: yaml"))
diff --git a/e2e/advanced/environment_test.go b/e2e/advanced/environment_test.go
index 2befe92fe..a9793a904 100644
--- a/e2e/advanced/environment_test.go
+++ b/e2e/advanced/environment_test.go
@@ -39,6 +39,8 @@ import (
 )
 
 func TestEnvironmentTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		// HTTP proxy configuration
 		httpProxy := "http://proxy"
@@ -50,7 +52,7 @@ func TestEnvironmentTrait(t *testing.T) {
 		}
 
 		// Retrieve the Kubernetes Service ClusterIPs to populate the NO_PROXY environment variable
-		svc := Service(TestDefaultNamespace, "kubernetes")()
+		svc := Service(t, TestDefaultNamespace, "kubernetes")()
 		Expect(svc).NotTo(BeNil())
 
 		noProxy = append(noProxy, svc.Spec.ClusterIPs...)
@@ -65,23 +67,23 @@ func TestEnvironmentTrait(t *testing.T) {
 
 		// Install Camel K with the HTTP proxy environment variable
 		operatorID := "camel-k-trait-environment"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns,
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns,
 			"--operator-env-vars", fmt.Sprintf("HTTP_PROXY=%s", httpProxy),
 			"--operator-env-vars", "NO_PROXY="+strings.Join(noProxy, ","),
 		).Execute()).To(Succeed())
 
-		Eventually(SelectedPlatformPhase(ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Eventually(SelectedPlatformPhase(t, ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		t.Run("Run integration with default environment", func(t *testing.T) {
 			name := RandomizedSuffixName("java-default")
-			Expect(KamelRunWithID(operatorID, ns, "--name", name, "files/Java.java").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "--name", name, "files/Java.java").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			Expect(IntegrationPod(ns, name)()).To(WithTransform(podEnvVars, And(
+			Expect(IntegrationPod(t, ns, name)()).To(WithTransform(podEnvVars, And(
 				ContainElement(corev1.EnvVar{Name: "CAMEL_K_VERSION", Value: defaults.Version}),
 				ContainElement(corev1.EnvVar{Name: "NAMESPACE", ValueFrom: &corev1.EnvVarSource{
 					FieldRef: &corev1.ObjectFieldSelector{
@@ -102,15 +104,15 @@ func TestEnvironmentTrait(t *testing.T) {
 
 		t.Run("Run integration with custom environment", func(t *testing.T) {
 			name := RandomizedSuffixName("java-custom-proxy")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "environment.vars=HTTP_PROXY=http://custom.proxy",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			Expect(IntegrationPod(ns, name)()).To(WithTransform(podEnvVars, And(
+			Expect(IntegrationPod(t, ns, name)()).To(WithTransform(podEnvVars, And(
 				ContainElement(corev1.EnvVar{Name: "CAMEL_K_VERSION", Value: defaults.Version}),
 				ContainElement(corev1.EnvVar{Name: "NAMESPACE", ValueFrom: &corev1.EnvVarSource{
 					FieldRef: &corev1.ObjectFieldSelector{
@@ -131,15 +133,15 @@ func TestEnvironmentTrait(t *testing.T) {
 
 		t.Run("Run integration without default HTTP proxy environment", func(t *testing.T) {
 			name := RandomizedSuffixName("java-no-proxy")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "environment.http-proxy=false",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			Expect(IntegrationPod(ns, name)()).To(WithTransform(podEnvVars, And(
+			Expect(IntegrationPod(t, ns, name)()).To(WithTransform(podEnvVars, And(
 				ContainElement(corev1.EnvVar{Name: "CAMEL_K_VERSION", Value: defaults.Version}),
 				ContainElement(corev1.EnvVar{Name: "NAMESPACE", ValueFrom: &corev1.EnvVarSource{
 					FieldRef: &corev1.ObjectFieldSelector{
@@ -158,15 +160,15 @@ func TestEnvironmentTrait(t *testing.T) {
 			)))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, name)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, name)()
+			Eventually(UnstructuredIntegration(t, ns, name)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, name)()
 			envTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "environment")
 			Expect(envTrait).ToNot(BeNil())
 			Expect(len(envTrait)).To(Equal(1))
 			Expect(envTrait["httpProxy"]).To(Equal(false))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
diff --git a/e2e/advanced/incremental_build_test.go b/e2e/advanced/incremental_build_test.go
index a28510e78..5f627e73d 100644
--- a/e2e/advanced/incremental_build_test.go
+++ b/e2e/advanced/incremental_build_test.go
@@ -36,33 +36,35 @@ import (
 )
 
 func TestRunIncrementalBuildRoutine(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-incremental-build"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(SelectedPlatformPhase(ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(SelectedPlatformPhase(t, ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", name,
 		).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		integrationKitName := IntegrationKit(ns, name)()
-		Eventually(Kit(ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
-		Eventually(Kit(ns, integrationKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		integrationKitName := IntegrationKit(t, ns, name)()
+		Eventually(Kit(t, ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+		Eventually(Kit(t, ns, integrationKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
 
 		t.Run("Reuse previous kit", func(t *testing.T) {
 			nameClone := "java-clone"
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", nameClone,
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, nameClone), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, nameClone, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, nameClone), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			integrationCloneKitName := IntegrationKit(ns, nameClone)()
+			Eventually(IntegrationPodPhase(t, ns, nameClone), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, nameClone, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, nameClone), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			integrationCloneKitName := IntegrationKit(t, ns, nameClone)()
 			Eventually(integrationCloneKitName).Should(Equal(integrationKitName))
 		})
 
@@ -70,184 +72,190 @@ func TestRunIncrementalBuildRoutine(t *testing.T) {
 			// Another integration that should be built on top of the previous IntegrationKit
 			// just add a new random dependency
 			nameIncremental := RandomizedSuffixName("java-incremental")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", nameIncremental,
 				"-d", "camel:zipfile",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, nameIncremental), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, nameIncremental, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, nameIncremental), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			integrationIncrementalKitName := IntegrationKit(ns, nameIncremental)()
+			Eventually(IntegrationPodPhase(t, ns, nameIncremental), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, nameIncremental, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, nameIncremental), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			integrationIncrementalKitName := IntegrationKit(t, ns, nameIncremental)()
 			// the container comes in a format like
 			// 10.108.177.66/test-d7cad110-bb1d-4e79-8a0e-ebd44f6fe5d4/camel-k-kit-c8357r4k5tp6fn1idm60@sha256:d49716f0429ad8b23a1b8d20a357d64b1aa42a67c1a2a534ebd4c54cd598a18d
-			// we should be save just to check the substring is contained
-			Eventually(Kit(ns, integrationIncrementalKitName)().Status.BaseImage).Should(ContainSubstring(integrationKitName))
-			Eventually(Kit(ns, integrationIncrementalKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
+			// we should be saving just to check the substring is contained
+			Eventually(Kit(t, ns, integrationIncrementalKitName)().Status.BaseImage).Should(ContainSubstring(integrationKitName))
+			Eventually(Kit(t, ns, integrationIncrementalKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestRunIncrementalBuildPod(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-incremental-build"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
 
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", name,
 			"-t", "builder.strategy=pod",
 		).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		integrationKitName := IntegrationKit(ns, name)()
-		Eventually(Kit(ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
-		Eventually(Kit(ns, integrationKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
-		Eventually(BuilderPodsCount(ns)).Should(Equal(1))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		integrationKitName := IntegrationKit(t, ns, name)()
+		Eventually(Kit(t, ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+		Eventually(Kit(t, ns, integrationKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
+		Eventually(BuilderPodsCount(t, ns)).Should(Equal(1))
 
 		t.Run("Reuse previous kit", func(t *testing.T) {
 			nameClone := RandomizedSuffixName("java-clone")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", nameClone,
 				"-t", "builder.strategy=pod",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, nameClone), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, nameClone, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, nameClone), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			integrationCloneKitName := IntegrationKit(ns, nameClone)()
+			Eventually(IntegrationPodPhase(t, ns, nameClone), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, nameClone, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, nameClone), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			integrationCloneKitName := IntegrationKit(t, ns, nameClone)()
 			Eventually(integrationCloneKitName).Should(Equal(integrationKitName))
-			Eventually(BuilderPodsCount(ns)).Should(Equal(1))
+			Eventually(BuilderPodsCount(t, ns)).Should(Equal(1))
 		})
 
 		t.Run("Create incremental kit", func(t *testing.T) {
 			// Another integration that should be built on top of the previous IntegrationKit
 			// just add a new random dependency
 			nameIncremental := RandomizedSuffixName("java-incremental")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", nameIncremental,
 				"-d", "camel:zipfile",
 				"-t", "builder.strategy=pod",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, nameIncremental), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, nameIncremental, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, nameIncremental), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			integrationIncrementalKitName := IntegrationKit(ns, nameIncremental)()
+			Eventually(IntegrationPodPhase(t, ns, nameIncremental), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, nameIncremental, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, nameIncremental), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			integrationIncrementalKitName := IntegrationKit(t, ns, nameIncremental)()
 			// the container comes in a format like
 			// 10.108.177.66/test-d7cad110-bb1d-4e79-8a0e-ebd44f6fe5d4/camel-k-kit-c8357r4k5tp6fn1idm60@sha256:d49716f0429ad8b23a1b8d20a357d64b1aa42a67c1a2a534ebd4c54cd598a18d
 			// we should be save just to check the substring is contained
-			Eventually(Kit(ns, integrationIncrementalKitName)().Status.BaseImage).Should(ContainSubstring(integrationKitName))
-			Eventually(Kit(ns, integrationIncrementalKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
-			Eventually(BuilderPodsCount(ns)).Should(Equal(2))
+			Eventually(Kit(t, ns, integrationIncrementalKitName)().Status.BaseImage).Should(ContainSubstring(integrationKitName))
+			Eventually(Kit(t, ns, integrationIncrementalKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
+			Eventually(BuilderPodsCount(t, ns)).Should(Equal(2))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestRunIncrementalBuildOff(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-standard-build"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
 
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", name,
 		).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		integrationKitName := IntegrationKit(ns, name)()
-		Eventually(Kit(ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		integrationKitName := IntegrationKit(t, ns, name)()
+		Eventually(Kit(t, ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
 
 		t.Run("Don't reuse previous kit", func(t *testing.T) {
 			nameClone := RandomizedSuffixName("java-clone")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", nameClone,
 				"-t", "builder.incremental-image-build=false",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, nameClone), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, nameClone, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, nameClone), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			integrationCloneKitName := IntegrationKit(ns, nameClone)()
-			Eventually(Kit(ns, integrationCloneKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+			Eventually(IntegrationPodPhase(t, ns, nameClone), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, nameClone, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, nameClone), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			integrationCloneKitName := IntegrationKit(t, ns, nameClone)()
+			Eventually(Kit(t, ns, integrationCloneKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
 		})
 
 		t.Run("Don't create incremental kit", func(t *testing.T) {
 			// Another integration that should be built on top of the previous IntegrationKit
 			// just add a new random dependency
 			nameIncremental := RandomizedSuffixName("java-incremental")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", nameIncremental,
 				"-d", "camel:zipfile",
 				"-t", "builder.incremental-image-build=false",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, nameIncremental), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, nameIncremental, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, nameIncremental), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			integrationIncrementalKitName := IntegrationKit(ns, nameIncremental)()
-			Eventually(Kit(ns, integrationIncrementalKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+			Eventually(IntegrationPodPhase(t, ns, nameIncremental), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, nameIncremental, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, nameIncremental), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			integrationIncrementalKitName := IntegrationKit(t, ns, nameIncremental)()
+			Eventually(Kit(t, ns, integrationIncrementalKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestRunIncrementalBuildWithDifferentBaseImages(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
-		operatorID := "camel-k-standard-build"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
+		operatorID := "camel-k-incremental-different-base"
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
 
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", name,
 		).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		integrationKitName := IntegrationKit(ns, name)()
-		Eventually(Kit(ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
-		Eventually(Kit(ns, integrationKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		integrationKitName := IntegrationKit(t, ns, name)()
+		Eventually(Kit(t, ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+		Eventually(Kit(t, ns, integrationKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
 
 		t.Run("Create incremental kit", func(t *testing.T) {
 			// Another integration that should be built on top of the previous IntegrationKit
 			// just add a new random dependency
 			nameIncremental := RandomizedSuffixName("java-incremental")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", nameIncremental,
 				"-d", "camel:zipfile",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, nameIncremental), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, nameIncremental, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, nameIncremental), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			integrationIncrementalKitName := IntegrationKit(ns, nameIncremental)()
+			Eventually(IntegrationPodPhase(t, ns, nameIncremental), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, nameIncremental, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, nameIncremental), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			integrationIncrementalKitName := IntegrationKit(t, ns, nameIncremental)()
 			// the container comes in a format like
 			// 10.108.177.66/test-d7cad110-bb1d-4e79-8a0e-ebd44f6fe5d4/camel-k-kit-c8357r4k5tp6fn1idm60@sha256:d49716f0429ad8b23a1b8d20a357d64b1aa42a67c1a2a534ebd4c54cd598a18d
 			// we should be save just to check the substring is contained
-			Eventually(Kit(ns, integrationIncrementalKitName)().Status.BaseImage).Should(ContainSubstring(integrationKitName))
-			Eventually(Kit(ns, integrationIncrementalKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
+			Eventually(Kit(t, ns, integrationIncrementalKitName)().Status.BaseImage).Should(ContainSubstring(integrationKitName))
+			Eventually(Kit(t, ns, integrationIncrementalKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
 		})
 
 		t.Run("Create new hierarchy kit", func(t *testing.T) {
 			// We should spin off a new hierarchy of builds
 			newBaseImage := "eclipse-temurin:17.0.8.1_1-jdk-ubi9-minimal"
 			name = RandomizedSuffixName("java-new")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-d", "camel:mongodb",
 				"-t", fmt.Sprintf("builder.base-image=%s", newBaseImage),
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			integrationKitName = IntegrationKit(ns, name)()
-			Eventually(Kit(ns, integrationKitName)().Status.BaseImage).Should(Equal(newBaseImage))
-			Eventually(Kit(ns, integrationKitName)().Status.RootImage).Should(Equal(newBaseImage))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			integrationKitName = IntegrationKit(t, ns, name)()
+			Eventually(Kit(t, ns, integrationKitName)().Status.BaseImage).Should(Equal(newBaseImage))
+			Eventually(Kit(t, ns, integrationKitName)().Status.RootImage).Should(Equal(newBaseImage))
 		})
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/advanced/integration_profile_test.go b/e2e/advanced/integration_profile_test.go
index b4475fb0f..e26000097 100644
--- a/e2e/advanced/integration_profile_test.go
+++ b/e2e/advanced/integration_profile_test.go
@@ -36,10 +36,12 @@ import (
 )
 
 func TestIntegrationProfile(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-integration-profile"
-		Expect(KamelInstallWithID(operatorID, ns, "--global", "--force").Execute()).To(Succeed())
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Expect(KamelInstallWithID(t, operatorID, ns, "--global", "--force").Execute()).To(Succeed())
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		integrationProfile := v1.NewIntegrationProfile(ns, "ipr-global")
 		integrationProfile.SetOperatorID(operatorID)
@@ -48,8 +50,8 @@ func TestIntegrationProfile(t *testing.T) {
 			LimitCPU: "0.2",
 		}
 
-		Expect(CreateIntegrationProfile(&integrationProfile)).To(Succeed())
-		Eventually(SelectedIntegrationProfilePhase(ns, "ipr-global"), TestTimeoutMedium).Should(Equal(v1.IntegrationProfilePhaseReady))
+		Expect(CreateIntegrationProfile(t, &integrationProfile)).To(Succeed())
+		Eventually(SelectedIntegrationProfilePhase(t, ns, "ipr-global"), TestTimeoutMedium).Should(Equal(v1.IntegrationProfilePhaseReady))
 
 		WithNewTestNamespace(t, func(ns1 string) {
 			integrationProfile := v1.NewIntegrationProfile(ns1, "ipr-local")
@@ -57,35 +59,35 @@ func TestIntegrationProfile(t *testing.T) {
 			integrationProfile.Spec.Traits.Container = &traitv1.ContainerTrait{
 				LimitCPU: "0.1",
 			}
-			Expect(CreateIntegrationProfile(&integrationProfile)).To(Succeed())
-			Eventually(SelectedIntegrationProfilePhase(ns1, "ipr-local"), TestTimeoutMedium).Should(Equal(v1.IntegrationProfilePhaseReady))
+			Expect(CreateIntegrationProfile(t, &integrationProfile)).To(Succeed())
+			Eventually(SelectedIntegrationProfilePhase(t, ns1, "ipr-local"), TestTimeoutMedium).Should(Equal(v1.IntegrationProfilePhaseReady))
 
 			t.Run("Run integration with global integration profile", func(t *testing.T) {
-				Expect(KamelRunWithID(operatorID, ns1, "--name", "limited", "--integration-profile", "ipr-global", "files/yaml.yaml").Execute()).To(Succeed())
+				Expect(KamelRunWithID(t, operatorID, ns1, "--name", "limited", "--integration-profile", "ipr-global", "files/yaml.yaml").Execute()).To(Succeed())
 
-				Eventually(IntegrationPod(ns1, "limited"), TestTimeoutMedium).Should(Not(BeNil()))
-				Eventually(IntegrationPodHas(ns1, "limited", func(pod *corev1.Pod) bool {
+				Eventually(IntegrationPod(t, ns1, "limited"), TestTimeoutMedium).Should(Not(BeNil()))
+				Eventually(IntegrationPodHas(t, ns1, "limited", func(pod *corev1.Pod) bool {
 					if len(pod.Spec.Containers) != 1 {
 						return false
 					}
 					containerName := pod.Spec.Containers[0].Name
 					return containerName == "ck-integration-global"
 				}), TestTimeoutShort).Should(BeTrue())
-				Eventually(IntegrationPodHas(ns1, "limited", func(pod *corev1.Pod) bool {
+				Eventually(IntegrationPodHas(t, ns1, "limited", func(pod *corev1.Pod) bool {
 					if len(pod.Spec.Containers) != 1 {
 						return false
 					}
 					cpuLimits := pod.Spec.Containers[0].Resources.Limits.Cpu()
 					return cpuLimits != nil && cpuLimits.AsApproximateFloat64() > 0
 				}), TestTimeoutShort).Should(BeTrue())
-				Expect(Kamel("delete", "limited", "-n", ns1).Execute()).To(Succeed())
+				Expect(Kamel(t, "delete", "limited", "-n", ns1).Execute()).To(Succeed())
 			})
 
 			t.Run("Run integration with namespace local integration profile", func(t *testing.T) {
-				Expect(KamelRunWithID(operatorID, ns1, "--name", "limited", "--integration-profile", "ipr-local", "files/yaml.yaml").Execute()).To(Succeed())
+				Expect(KamelRunWithID(t, operatorID, ns1, "--name", "limited", "--integration-profile", "ipr-local", "files/yaml.yaml").Execute()).To(Succeed())
 
-				Eventually(IntegrationPod(ns1, "limited"), TestTimeoutMedium).Should(Not(BeNil()))
-				Eventually(IntegrationPodHas(ns1, "limited", func(pod *corev1.Pod) bool {
+				Eventually(IntegrationPod(t, ns1, "limited"), TestTimeoutMedium).Should(Not(BeNil()))
+				Eventually(IntegrationPodHas(t, ns1, "limited", func(pod *corev1.Pod) bool {
 					if len(pod.Spec.Containers) != 1 {
 						return false
 					}
@@ -93,20 +95,20 @@ func TestIntegrationProfile(t *testing.T) {
 					return containerName == "integration"
 				}), TestTimeoutShort).Should(BeTrue())
 
-				Eventually(IntegrationPodHas(ns1, "limited", func(pod *corev1.Pod) bool {
+				Eventually(IntegrationPodHas(t, ns1, "limited", func(pod *corev1.Pod) bool {
 					if len(pod.Spec.Containers) != 1 {
 						return false
 					}
 					cpuLimits := pod.Spec.Containers[0].Resources.Limits.Cpu()
 					return cpuLimits != nil && cpuLimits.AsApproximateFloat64() > 0
 				}), TestTimeoutShort).Should(BeTrue())
-				Expect(Kamel("delete", "limited", "-n", ns1).Execute()).To(Succeed())
+				Expect(Kamel(t, "delete", "limited", "-n", ns1).Execute()).To(Succeed())
 			})
 
 			t.Run("Run integration without integration profile", func(t *testing.T) {
-				Expect(KamelRunWithID(operatorID, ns1, "--name", "normal", "files/yaml.yaml").Execute()).To(Succeed())
-				Eventually(IntegrationPod(ns1, "normal"), TestTimeoutShort).Should(Not(BeNil()))
-				Eventually(IntegrationPodHas(ns1, "normal", func(pod *corev1.Pod) bool {
+				Expect(KamelRunWithID(t, operatorID, ns1, "--name", "normal", "files/yaml.yaml").Execute()).To(Succeed())
+				Eventually(IntegrationPod(t, ns1, "normal"), TestTimeoutShort).Should(Not(BeNil()))
+				Eventually(IntegrationPodHas(t, ns1, "normal", func(pod *corev1.Pod) bool {
 					if len(pod.Spec.Containers) != 1 {
 						return false
 					}
@@ -116,16 +118,18 @@ func TestIntegrationProfile(t *testing.T) {
 			})
 
 			// Clean up
-			Expect(Kamel("delete", "--all", "-n", ns1).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns1).Execute()).To(Succeed())
 		})
 	})
 }
 
 func TestIntegrationProfileInfluencesKit(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-ipr-kit"
-		Expect(KamelInstallWithID(operatorID, ns, "--global", "--force").Execute()).To(Succeed())
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Expect(KamelInstallWithID(t, operatorID, ns, "--global", "--force").Execute()).To(Succeed())
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		integrationProfile := v1.NewIntegrationProfile(ns, "ipr-global")
 		integrationProfile.SetOperatorID(operatorID)
@@ -133,42 +137,44 @@ func TestIntegrationProfileInfluencesKit(t *testing.T) {
 			Properties: []string{"b1=foo"},
 		}
 
-		Expect(CreateIntegrationProfile(&integrationProfile)).To(Succeed())
-		Eventually(SelectedIntegrationProfilePhase(ns, "ipr-global"), TestTimeoutMedium).Should(Equal(v1.IntegrationProfilePhaseReady))
+		Expect(CreateIntegrationProfile(t, &integrationProfile)).To(Succeed())
+		Eventually(SelectedIntegrationProfilePhase(t, ns, "ipr-global"), TestTimeoutMedium).Should(Equal(v1.IntegrationProfilePhaseReady))
 
-		Expect(KamelRunWithID(operatorID, ns, "--name", "normal", "files/yaml.yaml").Execute()).To(Succeed())
-		Eventually(IntegrationPod(ns, "normal"), TestTimeoutMedium).Should(Not(BeNil()))
-		Eventually(IntegrationPodPhase(ns, "normal"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, "normal", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, "normal"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Expect(KamelRunWithID(t, operatorID, ns, "--name", "normal", "files/yaml.yaml").Execute()).To(Succeed())
+		Eventually(IntegrationPod(t, ns, "normal"), TestTimeoutMedium).Should(Not(BeNil()))
+		Eventually(IntegrationPodPhase(t, ns, "normal"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, "normal", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, "normal"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		// Verify that a new kit has been built based on the default base image
-		integrationKitName := IntegrationKit(ns, "normal")()
-		Eventually(Kit(ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
-		Eventually(Kit(ns, integrationKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
+		integrationKitName := IntegrationKit(t, ns, "normal")()
+		Eventually(Kit(t, ns, integrationKitName)().Status.BaseImage).Should(Equal(defaults.BaseImage()))
+		Eventually(Kit(t, ns, integrationKitName)().Status.RootImage).Should(Equal(defaults.BaseImage()))
 
-		Expect(KamelRunWithID(operatorID, ns, "--name", "simple", "--integration-profile", "ipr-global", "files/yaml.yaml").Execute()).To(Succeed())
+		Expect(KamelRunWithID(t, operatorID, ns, "--name", "simple", "--integration-profile", "ipr-global", "files/yaml.yaml").Execute()).To(Succeed())
 
-		Eventually(IntegrationPod(ns, "simple"), TestTimeoutMedium).Should(Not(BeNil()))
-		Eventually(IntegrationPodPhase(ns, "simple"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, "simple", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, "simple"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(IntegrationPod(t, ns, "simple"), TestTimeoutMedium).Should(Not(BeNil()))
+		Eventually(IntegrationPodPhase(t, ns, "simple"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, "simple", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, "simple"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 		// Verify that a new kit has been built based on the previous kit
-		integrationKitNameWithProfile := IntegrationKit(ns, "simple")()
+		integrationKitNameWithProfile := IntegrationKit(t, ns, "simple")()
 		Eventually(integrationKitNameWithProfile).ShouldNot(Equal(integrationKitName))
-		Eventually(Kit(ns, integrationKitNameWithProfile)().Status.BaseImage).Should(ContainSubstring(integrationKitName))
-		Eventually(Kit(ns, integrationKitNameWithProfile)().Status.RootImage).Should(Equal(defaults.BaseImage()))
+		Eventually(Kit(t, ns, integrationKitNameWithProfile)().Status.BaseImage).Should(ContainSubstring(integrationKitName))
+		Eventually(Kit(t, ns, integrationKitNameWithProfile)().Status.RootImage).Should(Equal(defaults.BaseImage()))
 
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestPropagateIntegrationProfileChanges(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-ipr-changes"
-		Expect(KamelInstallWithID(operatorID, ns, "--global", "--force").Execute()).To(Succeed())
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Expect(KamelInstallWithID(t, operatorID, ns, "--global", "--force").Execute()).To(Succeed())
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		integrationProfile := v1.NewIntegrationProfile(ns, "debug-profile")
 		integrationProfile.SetOperatorID(operatorID)
@@ -179,13 +185,13 @@ func TestPropagateIntegrationProfileChanges(t *testing.T) {
 			Level: "DEBUG",
 		}
 
-		Expect(CreateIntegrationProfile(&integrationProfile)).To(Succeed())
-		Eventually(SelectedIntegrationProfilePhase(ns, "debug-profile"), TestTimeoutMedium).Should(Equal(v1.IntegrationProfilePhaseReady))
+		Expect(CreateIntegrationProfile(t, &integrationProfile)).To(Succeed())
+		Eventually(SelectedIntegrationProfilePhase(t, ns, "debug-profile"), TestTimeoutMedium).Should(Equal(v1.IntegrationProfilePhaseReady))
 
-		Expect(KamelRunWithID(operatorID, ns, "--name", "simple", "--integration-profile", "debug-profile", "files/yaml.yaml").Execute()).To(Succeed())
+		Expect(KamelRunWithID(t, operatorID, ns, "--name", "simple", "--integration-profile", "debug-profile", "files/yaml.yaml").Execute()).To(Succeed())
 
-		Eventually(IntegrationPod(ns, "simple"), TestTimeoutMedium).Should(Not(BeNil()))
-		Eventually(IntegrationPodHas(ns, "simple", func(pod *corev1.Pod) bool {
+		Eventually(IntegrationPod(t, ns, "simple"), TestTimeoutMedium).Should(Not(BeNil()))
+		Eventually(IntegrationPodHas(t, ns, "simple", func(pod *corev1.Pod) bool {
 			if len(pod.Spec.Containers) != 1 {
 				return false
 			}
@@ -193,13 +199,13 @@ func TestPropagateIntegrationProfileChanges(t *testing.T) {
 			return containerName == "ck-ipr"
 		}), TestTimeoutShort).Should(BeTrue())
 
-		Expect(UpdateIntegrationProfile(ns, func(ipr *v1.IntegrationProfile) {
+		Expect(UpdateIntegrationProfile(t, ns, func(ipr *v1.IntegrationProfile) {
 			ipr.Spec.Traits.Container = &traitv1.ContainerTrait{
 				Name: "ck-ipr-new",
 			}
 		})).To(Succeed())
 
-		Eventually(IntegrationPodHas(ns, "simple", func(pod *corev1.Pod) bool {
+		Eventually(IntegrationPodHas(t, ns, "simple", func(pod *corev1.Pod) bool {
 			if len(pod.Spec.Containers) != 1 {
 				return false
 			}
@@ -208,6 +214,6 @@ func TestPropagateIntegrationProfileChanges(t *testing.T) {
 		}), TestTimeoutShort).Should(BeTrue())
 
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/advanced/kamelet_repo_test.go b/e2e/advanced/kamelet_repo_test.go
index 08a9ad3d5..532397c43 100644
--- a/e2e/advanced/kamelet_repo_test.go
+++ b/e2e/advanced/kamelet_repo_test.go
@@ -34,39 +34,39 @@ import (
 )
 
 func TestKameletFromCustomRepository(t *testing.T) {
-	RegisterTestingT(t)
+	t.Parallel()
 
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		kameletName := "timer-custom-source"
-		removeKamelet(kameletName, ns)
+		removeKamelet(t, kameletName, ns)
 
-		Eventually(Kamelet(kameletName, ns)).Should(BeNil())
+		Eventually(Kamelet(t, kameletName, ns)).Should(BeNil())
 		// Add the custom repository
-		Expect(Kamel("kamelet", "add-repo",
+		Expect(Kamel(t, "kamelet", "add-repo",
 			"github:squakez/ck-kamelet-test-repo/kamelets",
 			"-n", ns,
 			"-x", operatorID).Execute()).To(Succeed())
 
-		Expect(KamelRunWithID(operatorID, ns, "files/TimerCustomKameletIntegration.java").Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "timer-custom-kamelet-integration"), TestTimeoutLong).
+		Expect(KamelRunWithID(t, operatorID, ns, "files/TimerCustomKameletIntegration.java").Execute()).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, "timer-custom-kamelet-integration"), TestTimeoutLong).
 			Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationLogs(ns, "timer-custom-kamelet-integration")).Should(ContainSubstring("hello world"))
+		Eventually(IntegrationLogs(t, ns, "timer-custom-kamelet-integration")).Should(ContainSubstring("hello world"))
 
 		// Remove the custom repository
-		Expect(Kamel("kamelet", "remove-repo",
+		Expect(Kamel(t, "kamelet", "remove-repo",
 			"github:squakez/ck-kamelet-test-repo/kamelets",
 			"-n", ns,
 			"-x", operatorID).Execute()).To(Succeed())
 	})
 }
 
-func removeKamelet(name string, ns string) {
-	kamelet := Kamelet(name, ns)()
-	TestClient().Delete(TestContext, kamelet)
+func removeKamelet(t *testing.T, name string, ns string) {
+	kamelet := Kamelet(t, name, ns)()
+	TestClient(t).Delete(TestContext, kamelet)
 }
diff --git a/e2e/advanced/local_platform_test.go b/e2e/advanced/local_platform_test.go
index 64516768e..ddfc20a2a 100644
--- a/e2e/advanced/local_platform_test.go
+++ b/e2e/advanced/local_platform_test.go
@@ -34,54 +34,51 @@ import (
 )
 
 func TestLocalPlatform(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-platform-local"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns, "--global", "--force").Execute()).To(Succeed())
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
-
-		pl := Platform(ns)()
-		pl.Spec.Build.Maven.Properties = make(map[string]string)
-		pl.Spec.Build.Maven.Properties["build-global-prop1"] = "build-global-value1"
-		// set maximum number of running builds
-		pl.Spec.Build.MaxRunningBuilds = 1
-		if err := TestClient().Update(TestContext, pl); err != nil {
-			t.Error(err)
-			t.FailNow()
-		}
-
-		Eventually(PlatformHas(ns, func(pl *v1.IntegrationPlatform) bool {
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--global", "--force").Execute()).To(Succeed())
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
+		Expect(UpdatePlatform(t, ns, operatorID, func(pl *v1.IntegrationPlatform) {
+			pl.Spec.Build.Maven.Properties = make(map[string]string)
+			pl.Spec.Build.Maven.Properties["build-global-prop1"] = "build-global-value1"
+			// set maximum number of running builds
+			pl.Spec.Build.MaxRunningBuilds = 1
+		})).To(Succeed())
+
+		Eventually(PlatformHas(t, ns, func(pl *v1.IntegrationPlatform) bool {
 			return pl.Status.Build.MaxRunningBuilds == 1
 		}), TestTimeoutMedium).Should(BeTrue())
 
 		WithNewTestNamespace(t, func(ns1 string) {
 			// Install platform (use the installer to get staging if present)
-			Expect(KamelInstallWithID("local-platform", ns1, "--skip-operator-setup").Execute()).To(Succeed())
-
-			localPlatform := Platform(ns1)()
-			localPlatform.Spec.Build.Maven.Properties = make(map[string]string)
-			localPlatform.Spec.Build.Maven.Properties["build-local-prop1"] = "build-local-value1"
-			localPlatform.SetOperatorID(operatorID)
-
-			localPlatform.Spec.Traits.Container = &traitv1.ContainerTrait{
-				LimitCPU: "0.1",
-			}
-
-			if err := TestClient().Update(TestContext, localPlatform); err != nil {
-				t.Error(err)
-				t.FailNow()
-			}
-			Eventually(PlatformPhase(ns1), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
-			Eventually(PlatformHas(ns1, func(pl *v1.IntegrationPlatform) bool {
+			Expect(KamelInstallWithID(t, "local-platform", ns1, "--skip-operator-setup").Execute()).To(Succeed())
+
+			Expect(UpdatePlatform(t, ns1, "local-platform", func(pl *v1.IntegrationPlatform) {
+				pl.Spec.Build.Maven.Properties = make(map[string]string)
+				pl.Spec.Build.Maven.Properties["build-local-prop1"] = "build-local-value1"
+				pl.SetOperatorID(operatorID)
+
+				pl.Spec.Traits.Container = &traitv1.ContainerTrait{
+					LimitCPU: "0.1",
+				}
+			})).To(Succeed())
+
+			Eventually(PlatformPhase(t, ns1), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+			Eventually(PlatformHas(t, ns1, func(pl *v1.IntegrationPlatform) bool {
 				return pl.Status.Cluster != ""
 			}), TestTimeoutShort).Should(BeTrue())
 
-			Eventually(PlatformHas(ns1, func(pl *v1.IntegrationPlatform) bool {
+			Eventually(PlatformHas(t, ns1, func(pl *v1.IntegrationPlatform) bool {
 				return pl.Status.Build.MaxRunningBuilds == 1
 			}), TestTimeoutShort).Should(BeTrue())
 
-			local := Platform(ns1)()
+			pl := PlatformByName(t, ns, operatorID)()
+			local := Platform(t, ns1)()
 			Expect(local.Status.Build.PublishStrategy).To(Equal(pl.Status.Build.PublishStrategy))
 			Expect(local.Status.Build.BuildConfiguration.Strategy).To(Equal(pl.Status.Build.BuildConfiguration.Strategy))
 			Expect(local.Status.Build.BuildConfiguration.OrderStrategy).To(Equal(pl.Status.Build.BuildConfiguration.OrderStrategy))
@@ -92,9 +89,9 @@ func TestLocalPlatform(t *testing.T) {
 			Expect(local.Status.Build.Maven.Properties["build-global-prop1"]).To(Equal("build-global-value1"))
 			Expect(local.Status.Build.Maven.Properties["build-local-prop1"]).To(Equal("build-local-value1"))
 
-			Expect(KamelRunWithID(operatorID, ns1, "--name", "local-integration", "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPod(ns1, "local-integration"), TestTimeoutMedium).Should(Not(BeNil()))
-			Eventually(IntegrationPodHas(ns1, "local-integration", func(pod *corev1.Pod) bool {
+			Expect(KamelRunWithID(t, operatorID, ns1, "--name", "local-integration", "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPod(t, ns1, "local-integration"), TestTimeoutMedium).Should(Not(BeNil()))
+			Eventually(IntegrationPodHas(t, ns1, "local-integration", func(pod *corev1.Pod) bool {
 				if len(pod.Spec.Containers) != 1 {
 					return false
 				}
@@ -103,7 +100,7 @@ func TestLocalPlatform(t *testing.T) {
 			}), TestTimeoutShort).Should(BeTrue())
 
 			// Clean up
-			Expect(Kamel("delete", "--all", "-n", ns1).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns1).Execute()).To(Succeed())
 		})
 	})
 }
diff --git a/e2e/advanced/main_test.go b/e2e/advanced/main_test.go
index d403140de..1127038b2 100644
--- a/e2e/advanced/main_test.go
+++ b/e2e/advanced/main_test.go
@@ -49,20 +49,22 @@ func TestMain(m *testing.M) {
 		fmt.Printf("Test fast setup failed! - %s\n", message)
 	})
 
-	g.Expect(KamelRunWithID(operatorID, ns, "files/Java.java").Execute()).To(Succeed())
-	g.Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-	g.Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-	g.Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-
-	g.Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-	g.Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-	g.Eventually(IntegrationConditionStatus(ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-	g.Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-
-	g.Expect(KamelRunWithID(operatorID, ns, "files/timer-source.groovy").Execute()).To(Succeed())
-	g.Eventually(IntegrationPodPhase(ns, "timer-source"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-	g.Eventually(IntegrationConditionStatus(ns, "timer-source", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-	g.Eventually(IntegrationLogs(ns, "timer-source"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+	var t *testing.T
+	g.Expect(TestClient(t)).ShouldNot(BeNil())
+	g.Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java").Execute()).To(Succeed())
+	g.Eventually(IntegrationPodPhase(t, ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+	g.Eventually(IntegrationConditionStatus(t, ns, "java", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+	g.Eventually(IntegrationLogs(t, ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+
+	g.Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+	g.Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+	g.Eventually(IntegrationConditionStatus(t, ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+	g.Eventually(IntegrationLogs(t, ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+
+	g.Expect(KamelRunWithID(t, operatorID, ns, "files/timer-source.groovy").Execute()).To(Succeed())
+	g.Eventually(IntegrationPodPhase(t, ns, "timer-source"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+	g.Eventually(IntegrationConditionStatus(t, ns, "timer-source", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+	g.Eventually(IntegrationLogs(t, ns, "timer-source"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 	os.Exit(m.Run())
 }
diff --git a/e2e/advanced/maven_http_proxy_test.go b/e2e/advanced/maven_http_proxy_test.go
index 358e7ca17..f3acd57e7 100644
--- a/e2e/advanced/maven_http_proxy_test.go
+++ b/e2e/advanced/maven_http_proxy_test.go
@@ -58,6 +58,8 @@ import (
 var httpdTlsMountPath = "/etc/tls/private"
 
 func TestMavenProxy(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		hostname := fmt.Sprintf("%s.%s.svc", "proxy", ns)
 
@@ -112,21 +114,21 @@ func TestMavenProxy(t *testing.T) {
 				corev1.TLSPrivateKeyKey: privateKeyPem,
 			},
 		}
-		Expect(TestClient().Create(TestContext, secret)).To(Succeed())
+		Expect(TestClient(t).Create(TestContext, secret)).To(Succeed())
 
 		// HTTPD ConfigMap
 		config := newHTTPDConfigMap(ns, hostname)
-		Expect(TestClient().Create(TestContext, config)).To(Succeed())
+		Expect(TestClient(t).Create(TestContext, config)).To(Succeed())
 
 		// HTTPD Deployment
 		deployment := newHTTPDDeployment(ns, config.Name, secret.Name)
-		Expect(TestClient().Create(TestContext, deployment)).To(Succeed())
+		Expect(TestClient(t).Create(TestContext, deployment)).To(Succeed())
 
 		service := newHTTPDService(deployment)
-		Expect(TestClient().Create(TestContext, service)).To(Succeed())
+		Expect(TestClient(t).Create(TestContext, service)).To(Succeed())
 
 		// Wait for the Deployment to become ready
-		Eventually(Deployment(ns, deployment.Name), TestTimeoutMedium).Should(PointTo(MatchFields(IgnoreExtras,
+		Eventually(Deployment(t, ns, deployment.Name), TestTimeoutMedium).Should(PointTo(MatchFields(IgnoreExtras,
 			Fields{
 				"Status": MatchFields(IgnoreExtras,
 					Fields{
@@ -135,7 +137,7 @@ func TestMavenProxy(t *testing.T) {
 			}),
 		))
 
-		svc := Service(TestDefaultNamespace, "kubernetes")()
+		svc := Service(t, TestDefaultNamespace, "kubernetes")()
 		Expect(svc).NotTo(BeNil())
 
 		// It may be needed to populate the values from the cluster, machine and service network CIDRs
@@ -148,11 +150,11 @@ func TestMavenProxy(t *testing.T) {
 
 		// Install Camel K with the HTTP proxy
 		operatorID := "camel-k-maven-proxy"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		olm, olmErr := olm.IsAPIAvailable(TestClient())
-		installed, inErr := kubernetes.IsAPIResourceInstalled(TestClient(), configv1.GroupVersion.String(), reflect.TypeOf(configv1.Proxy{}).Name())
-		permission, pErr := kubernetes.CheckPermission(TestContext, TestClient(), configv1.GroupName, reflect.TypeOf(configv1.Proxy{}).Name(), "", "cluster", "edit")
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		olm, olmErr := olm.IsAPIAvailable(TestClient(t))
+		installed, inErr := kubernetes.IsAPIResourceInstalled(TestClient(t), configv1.GroupVersion.String(), reflect.TypeOf(configv1.Proxy{}).Name())
+		permission, pErr := kubernetes.CheckPermission(TestContext, TestClient(t), configv1.GroupName, reflect.TypeOf(configv1.Proxy{}).Name(), "", "cluster", "edit")
 		olmInstall := pErr == nil && olmErr == nil && inErr == nil && olm && installed && permission
 		var defaultProxy configv1.Proxy
 		if olmInstall {
@@ -161,12 +163,12 @@ func TestMavenProxy(t *testing.T) {
 			key := ctrl.ObjectKey{
 				Name: "cluster",
 			}
-			Expect(TestClient().Get(TestContext, key, &defaultProxy)).To(Succeed())
+			Expect(TestClient(t).Get(TestContext, key, &defaultProxy)).To(Succeed())
 
 			newProxy := defaultProxy.DeepCopy()
 			newProxy.Spec.HTTPProxy = fmt.Sprintf("http://%s", hostname)
 			newProxy.Spec.NoProxy = strings.Join(noProxy, ",")
-			Expect(TestClient().Update(TestContext, newProxy))
+			Expect(TestClient(t).Update(TestContext, newProxy))
 
 			defer func() {
 				//
@@ -175,13 +177,13 @@ func TestMavenProxy(t *testing.T) {
 				//       does not work on some platforms, eg. OCP4
 				//
 				patch := []byte(`[{"op": "replace","path": "/spec","value": {}},{"op": "replace","path": "/status","value": {}}]`)
-				TestClient().Patch(TestContext, &defaultProxy, ctrl.RawPatch(types.JSONPatchType, patch))
+				TestClient(t).Patch(TestContext, &defaultProxy, ctrl.RawPatch(types.JSONPatchType, patch))
 			}()
 
 			// ENV values should be injected by the OLM
-			Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
+			Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
 		} else {
-			Expect(KamelInstallWithID(operatorID, ns,
+			Expect(KamelInstallWithID(t, operatorID, ns,
 				"--operator-env-vars", fmt.Sprintf("HTTP_PROXY=http://%s", hostname),
 				// TODO: enable TLS for the HTTPS proxy when Maven supports it
 				// "--operator-env-vars", fmt.Sprintf("HTTPS_PROXY=https://%s", hostname),
@@ -190,15 +192,15 @@ func TestMavenProxy(t *testing.T) {
 			).Execute()).To(Succeed())
 		}
 
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		// Run the Integration
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 		proxies := corev1.PodList{
 			TypeMeta: metav1.TypeMeta{
@@ -206,23 +208,23 @@ func TestMavenProxy(t *testing.T) {
 				APIVersion: corev1.SchemeGroupVersion.String(),
 			},
 		}
-		err = TestClient().List(TestContext, &proxies,
+		err = TestClient(t).List(TestContext, &proxies,
 			ctrl.InNamespace(ns),
 			ctrl.MatchingLabels(deployment.Spec.Selector.MatchLabels),
 		)
 		Expect(err).To(Succeed())
 		Expect(proxies.Items).To(HaveLen(1))
 
-		logs := Logs(ns, proxies.Items[0].Name, corev1.PodLogOptions{})()
+		logs := Logs(t, ns, proxies.Items[0].Name, corev1.PodLogOptions{})()
 		Expect(logs).NotTo(BeEmpty())
 		Expect(logs).To(ContainSubstring("\"CONNECT repo.maven.apache.org:443 HTTP/1.1\" 200"))
 
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
-		Expect(TestClient().Delete(TestContext, deployment)).To(Succeed())
-		Expect(TestClient().Delete(TestContext, service)).To(Succeed())
-		Expect(TestClient().Delete(TestContext, secret)).To(Succeed())
-		Expect(TestClient().Delete(TestContext, config)).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(TestClient(t).Delete(TestContext, deployment)).To(Succeed())
+		Expect(TestClient(t).Delete(TestContext, service)).To(Succeed())
+		Expect(TestClient(t).Delete(TestContext, secret)).To(Succeed())
+		Expect(TestClient(t).Delete(TestContext, config)).To(Succeed())
 	})
 }
 
diff --git a/e2e/advanced/operator_id_filtering_test.go b/e2e/advanced/operator_id_filtering_test.go
index 970dd229d..95c9aff77 100644
--- a/e2e/advanced/operator_id_filtering_test.go
+++ b/e2e/advanced/operator_id_filtering_test.go
@@ -35,91 +35,93 @@ import (
 )
 
 func TestOperatorIDCamelCatalogReconciliation(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns, "--global", "--force").Execute()).To(Succeed())
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
-		Eventually(DefaultCamelCatalogPhase(ns), TestTimeoutMedium).Should(Equal(v1.CamelCatalogPhaseReady))
+		Expect(KamelInstallWithID(t, operatorID, ns, "--global", "--force").Execute()).To(Succeed())
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Eventually(DefaultCamelCatalogPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.CamelCatalogPhaseReady))
 	})
 }
 
 func TestOperatorIDFiltering(t *testing.T) {
-	RegisterTestingT(t)
+	t.Parallel()
 
 	WithNewTestNamespace(t, func(ns string) {
 		WithNewTestNamespace(t, func(nsop1 string) {
 			operator1 := "operator-1"
-			Expect(CopyCamelCatalog(nsop1, operator1)).To(Succeed())
-			Expect(CopyIntegrationKits(nsop1, operator1)).To(Succeed())
-			Expect(KamelInstallWithIDAndKameletCatalog(operator1, nsop1, "--global", "--force").Execute()).To(Succeed())
-			Eventually(PlatformPhase(nsop1), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+			Expect(CopyCamelCatalog(t, nsop1, operator1)).To(Succeed())
+			Expect(CopyIntegrationKits(t, nsop1, operator1)).To(Succeed())
+			Expect(KamelInstallWithIDAndKameletCatalog(t, operator1, nsop1, "--global", "--force").Execute()).To(Succeed())
+			Eventually(PlatformPhase(t, nsop1), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 			WithNewTestNamespace(t, func(nsop2 string) {
 				operator2 := "operator-2"
-				Expect(CopyCamelCatalog(nsop2, operator2)).To(Succeed())
-				Expect(CopyIntegrationKits(nsop2, operator2)).To(Succeed())
-				Expect(KamelInstallWithIDAndKameletCatalog(operator2, nsop2, "--global", "--force").Execute()).To(Succeed())
-				Eventually(PlatformPhase(nsop2), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+				Expect(CopyCamelCatalog(t, nsop2, operator2)).To(Succeed())
+				Expect(CopyIntegrationKits(t, nsop2, operator2)).To(Succeed())
+				Expect(KamelInstallWithIDAndKameletCatalog(t, operator2, nsop2, "--global", "--force").Execute()).To(Succeed())
+				Eventually(PlatformPhase(t, nsop2), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 				t.Run("Operators ignore non-scoped integrations", func(t *testing.T) {
-					Expect(KamelRunWithID("operator-x", ns, "files/yaml.yaml", "--name", "untouched", "--force").Execute()).To(Succeed())
-					Consistently(IntegrationPhase(ns, "untouched"), 10*time.Second).Should(BeEmpty())
+					Expect(KamelRunWithID(t, "operator-x", ns, "files/yaml.yaml", "--name", "untouched", "--force").Execute()).To(Succeed())
+					Consistently(IntegrationPhase(t, ns, "untouched"), 10*time.Second).Should(BeEmpty())
 				})
 
 				t.Run("Operators run scoped integrations", func(t *testing.T) {
-					Expect(KamelRunWithID("operator-x", ns, "files/yaml.yaml", "--name", "moving", "--force").Execute()).To(Succeed())
-					Expect(AssignIntegrationToOperator(ns, "moving", operator1)).To(Succeed())
-					Eventually(IntegrationPhase(ns, "moving"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
-					Eventually(IntegrationPodPhase(ns, "moving"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-					Eventually(IntegrationLogs(ns, "moving"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+					Expect(KamelRunWithID(t, "operator-x", ns, "files/yaml.yaml", "--name", "moving", "--force").Execute()).To(Succeed())
+					Expect(AssignIntegrationToOperator(t, ns, "moving", operator1)).To(Succeed())
+					Eventually(IntegrationPhase(t, ns, "moving"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
+					Eventually(IntegrationPodPhase(t, ns, "moving"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+					Eventually(IntegrationLogs(t, ns, "moving"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 				})
 
 				t.Run("Operators can handoff scoped integrations", func(t *testing.T) {
-					Expect(AssignIntegrationToOperator(ns, "moving", operator2)).To(Succeed())
-					Eventually(IntegrationPhase(ns, "moving"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseBuildingKit))
-					Eventually(IntegrationPhase(ns, "moving"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
-					Eventually(IntegrationPodPhase(ns, "moving"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-					Eventually(IntegrationLogs(ns, "moving"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+					Expect(AssignIntegrationToOperator(t, ns, "moving", operator2)).To(Succeed())
+					Eventually(IntegrationPhase(t, ns, "moving"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseBuildingKit))
+					Eventually(IntegrationPhase(t, ns, "moving"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
+					Eventually(IntegrationPodPhase(t, ns, "moving"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+					Eventually(IntegrationLogs(t, ns, "moving"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 				})
 
 				t.Run("Operators can be deactivated after completely handing off scoped integrations", func(t *testing.T) {
-					Expect(ScaleOperator(nsop1, 0)).To(Succeed())
-					Expect(Kamel("rebuild", "-n", ns, "moving").Execute()).To(Succeed())
-					Eventually(IntegrationPhase(ns, "moving"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
-					Eventually(IntegrationPodPhase(ns, "moving"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-					Eventually(IntegrationLogs(ns, "moving"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-					Expect(ScaleOperator(nsop1, 1)).To(Succeed())
+					Expect(ScaleOperator(t, nsop1, 0)).To(Succeed())
+					Expect(Kamel(t, "rebuild", "-n", ns, "moving").Execute()).To(Succeed())
+					Eventually(IntegrationPhase(t, ns, "moving"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
+					Eventually(IntegrationPodPhase(t, ns, "moving"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+					Eventually(IntegrationLogs(t, ns, "moving"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+					Expect(ScaleOperator(t, nsop1, 1)).To(Succeed())
 				})
 
 				t.Run("Operators can run scoped integrations with fixed image", func(t *testing.T) {
-					image := IntegrationPodImage(ns, "moving")()
+					image := IntegrationPodImage(t, ns, "moving")()
 					Expect(image).NotTo(BeEmpty())
 					// Save resources by deleting "moving" integration
-					Expect(Kamel("delete", "moving", "-n", ns).Execute()).To(Succeed())
+					Expect(Kamel(t, "delete", "moving", "-n", ns).Execute()).To(Succeed())
 
-					Expect(KamelRunWithID("operator-x", ns, "files/yaml.yaml", "--name", "pre-built", "--force",
+					Expect(KamelRunWithID(t, "operator-x", ns, "files/yaml.yaml", "--name", "pre-built", "--force",
 						"-t", fmt.Sprintf("container.image=%s", image), "-t", "jvm.enabled=true").Execute()).To(Succeed())
-					Consistently(IntegrationPhase(ns, "pre-built"), 10*time.Second).Should(BeEmpty())
-					Expect(AssignIntegrationToOperator(ns, "pre-built", operator2)).To(Succeed())
-					Eventually(IntegrationPhase(ns, "pre-built"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-					Eventually(IntegrationPodPhase(ns, "pre-built"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-					Eventually(IntegrationLogs(ns, "pre-built"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-					Expect(Kamel("delete", "pre-built", "-n", ns).Execute()).To(Succeed())
+					Consistently(IntegrationPhase(t, ns, "pre-built"), 10*time.Second).Should(BeEmpty())
+					Expect(AssignIntegrationToOperator(t, ns, "pre-built", operator2)).To(Succeed())
+					Eventually(IntegrationPhase(t, ns, "pre-built"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+					Eventually(IntegrationPodPhase(t, ns, "pre-built"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+					Eventually(IntegrationLogs(t, ns, "pre-built"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+					Expect(Kamel(t, "delete", "pre-built", "-n", ns).Execute()).To(Succeed())
 				})
 
 				t.Run("Operators can run scoped Pipes", func(t *testing.T) {
-					Expect(KamelBindWithID("operator-x", ns, "timer-source?message=Hello", "log-sink",
+					Expect(KamelBindWithID(t, "operator-x", ns, "timer-source?message=Hello", "log-sink",
 						"--name", "klb", "--force").Execute()).To(Succeed())
-					Consistently(Integration(ns, "klb"), 10*time.Second).Should(BeNil())
+					Consistently(Integration(t, ns, "klb"), 10*time.Second).Should(BeNil())
 
-					Expect(AssignPipeToOperator(ns, "klb", operator1)).To(Succeed())
-					Eventually(Integration(ns, "klb"), TestTimeoutShort).ShouldNot(BeNil())
-					Eventually(IntegrationPhase(ns, "klb"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
-					Eventually(IntegrationPodPhase(ns, "klb"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+					Expect(AssignPipeToOperator(t, ns, "klb", operator1)).To(Succeed())
+					Eventually(Integration(t, ns, "klb"), TestTimeoutShort).ShouldNot(BeNil())
+					Eventually(IntegrationPhase(t, ns, "klb"), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
+					Eventually(IntegrationPodPhase(t, ns, "klb"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 				})
 			})
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/advanced/operator_metrics_test.go b/e2e/advanced/operator_metrics_test.go
index 182812577..af5454448 100644
--- a/e2e/advanced/operator_metrics_test.go
+++ b/e2e/advanced/operator_metrics_test.go
@@ -52,30 +52,30 @@ import (
 * Adding CAMEL_K_TEST_SKIP_PROBLEMATIC env var for the moment.
  */
 func TestMetrics(t *testing.T) {
+	t.Parallel()
+
 	if os.Getenv("CAMEL_K_TEST_SKIP_PROBLEMATIC") == "true" {
 		t.Skip("WARNING: Test marked as problematic ... skipping")
 	}
 
-	RegisterTestingT(t)
-
 	WithNewTestNamespace(t, func(ns string) {
 		name := RandomizedSuffixName("java")
 		operatorID := "camel-k-metrics"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns, "--log-level", "debug").Execute()).To(Succeed())
-		Eventually(SelectedPlatformPhase(ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--log-level", "debug").Execute()).To(Succeed())
+		Eventually(SelectedPlatformPhase(t, ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", name,
 			"-t", "prometheus.enabled=true",
 			"-t", "prometheus.pod-monitor=false",
 		).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 			Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-		pod := OperatorPod(ns)()
+		pod := OperatorPod(t, ns)()
 		Expect(pod).NotTo(BeNil())
 
 		// pod.Namespace could be different from ns if using global operator
@@ -83,19 +83,19 @@ func TestMetrics(t *testing.T) {
 		logOptions := &corev1.PodLogOptions{
 			Container: "camel-k-operator",
 		}
-		logs, err := StructuredLogs(pod.Namespace, pod.Name, logOptions, false)
+		logs, err := StructuredLogs(t, pod.Namespace, pod.Name, logOptions, false)
 		Expect(err).To(BeNil())
 		Expect(logs).NotTo(BeEmpty())
 
-		response, err := TestClient().CoreV1().RESTClient().Get().
+		response, err := TestClient(t).CoreV1().RESTClient().Get().
 			AbsPath(fmt.Sprintf("/api/v1/namespaces/%s/pods/%s/proxy/metrics", pod.Namespace, pod.Name)).DoRaw(TestContext)
 		Expect(err).To(BeNil())
 		metrics, err := parsePrometheusData(response)
 		Expect(err).To(BeNil())
 
-		it := Integration(ns, name)()
+		it := Integration(t, ns, name)()
 		Expect(it).NotTo(BeNil())
-		build := Build(ns, it.Status.IntegrationKit.Name)()
+		build := Build(t, ns, it.Status.IntegrationKit.Name)()
 		Expect(build).NotTo(BeNil())
 
 		t.Run("Build duration metric", func(t *testing.T) {
@@ -541,7 +541,7 @@ func TestMetrics(t *testing.T) {
 		})
 
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
diff --git a/e2e/advanced/platform_traits_test.go b/e2e/advanced/platform_traits_test.go
index 0e0ef5d16..1f12d07a7 100644
--- a/e2e/advanced/platform_traits_test.go
+++ b/e2e/advanced/platform_traits_test.go
@@ -36,36 +36,38 @@ import (
 )
 
 func TestTraitOnIntegrationPlatform(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-platform-trait-test"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
 
 		containerTestName := "testname"
 
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
-		ip := Platform(ns)()
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		ip := Platform(t, ns)()
 		ip.Spec.Traits = v1.Traits{Logging: &trait.LoggingTrait{Level: "DEBUG"}, Container: &trait.ContainerTrait{Name: containerTestName}}
 
-		if err := TestClient().Update(TestContext, ip); err != nil {
+		if err := TestClient(t).Update(TestContext, ip); err != nil {
 			t.Fatal("Can't create IntegrationPlatform", err)
 		}
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		name := RandomizedSuffixName("java")
 		t.Run("Run integration with platform traits", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			Expect(IntegrationPod(ns, name)().Spec.Containers[0].Name).To(BeEquivalentTo(containerTestName))
+			Expect(IntegrationPod(t, ns, name)().Spec.Containers[0].Name).To(BeEquivalentTo(containerTestName))
 
 			found := false
-			for _, env := range IntegrationPod(ns, name)().Spec.Containers[0].Env {
+			for _, env := range IntegrationPod(t, ns, name)().Spec.Containers[0].Env {
 				if env.Name == "QUARKUS_LOG_LEVEL" {
 					Expect(env.Value).To(BeEquivalentTo("DEBUG"))
 					found = true
@@ -73,9 +75,9 @@ func TestTraitOnIntegrationPlatform(t *testing.T) {
 				}
 			}
 			Expect(found).To(BeTrue(), "Can't find QUARKUS_LOG_LEVEL ENV variable")
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("DEBUG"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("DEBUG"))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 	})
 }
diff --git a/e2e/advanced/promote_test.go b/e2e/advanced/promote_test.go
index 40b4124c8..e5ea4ee52 100644
--- a/e2e/advanced/promote_test.go
+++ b/e2e/advanced/promote_test.go
@@ -34,144 +34,146 @@ import (
 )
 
 func TestKamelCLIPromote(t *testing.T) {
+	t.Parallel()
+
 	one := int64(1)
 	two := int64(2)
 	// Dev environment namespace
 	WithNewTestNamespace(t, func(nsDev string) {
 		operatorDevID := "camel-k-cli-promote-dev"
-		Expect(CopyCamelCatalog(nsDev, operatorDevID)).To(Succeed())
-		Expect(CopyIntegrationKits(nsDev, operatorDevID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorDevID, nsDev).Execute()).To(Succeed())
-		Eventually(SelectedPlatformPhase(nsDev, operatorDevID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Expect(CopyCamelCatalog(t, nsDev, operatorDevID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, nsDev, operatorDevID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorDevID, nsDev).Execute()).To(Succeed())
+		Eventually(SelectedPlatformPhase(t, nsDev, operatorDevID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		// Dev content configmap
 		var cmData = make(map[string]string)
 		cmData["my-configmap-key"] = "I am development configmap!"
-		CreatePlainTextConfigmap(nsDev, "my-cm-promote", cmData)
+		CreatePlainTextConfigmap(t, nsDev, "my-cm-promote", cmData)
 		// Dev secret
 		var secData = make(map[string]string)
 		secData["my-secret-key"] = "very top secret development"
-		CreatePlainTextSecret(nsDev, "my-sec-promote", secData)
+		CreatePlainTextSecret(t, nsDev, "my-sec-promote", secData)
 
 		t.Run("plain integration dev", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorDevID, nsDev, "./files/promote-route.groovy",
+			Expect(KamelRunWithID(t, operatorDevID, nsDev, "./files/promote-route.groovy",
 				"--config", "configmap:my-cm-promote",
 				"--config", "secret:my-sec-promote",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(nsDev, "promote-route"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationObservedGeneration(nsDev, "promote-route")).Should(Equal(&one))
-			//Eventually(IntegrationConditionStatus(nsDev, "promote-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(nsDev, "promote-route"), TestTimeoutShort).Should(ContainSubstring("I am development configmap!"))
-			Eventually(IntegrationLogs(nsDev, "promote-route"), TestTimeoutShort).Should(ContainSubstring("very top secret development"))
+			Eventually(IntegrationPodPhase(t, nsDev, "promote-route"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationObservedGeneration(t, nsDev, "promote-route")).Should(Equal(&one))
+			//Eventually(IntegrationConditionStatus(t, nsDev, "promote-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, nsDev, "promote-route"), TestTimeoutShort).Should(ContainSubstring("I am development configmap!"))
+			Eventually(IntegrationLogs(t, nsDev, "promote-route"), TestTimeoutShort).Should(ContainSubstring("very top secret development"))
 		})
 
 		t.Run("kamelet integration dev", func(t *testing.T) {
-			Expect(CreateTimerKamelet(nsDev, "my-own-timer-source")()).To(Succeed())
-			Expect(KamelRunWithID(operatorDevID, nsDev, "./files/timer-kamelet-usage.groovy").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(nsDev, "timer-kamelet-usage"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(nsDev, "timer-kamelet-usage"), TestTimeoutShort).Should(ContainSubstring("Hello world"))
+			Expect(CreateTimerKamelet(t, nsDev, "my-own-timer-source")()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorDevID, nsDev, "./files/timer-kamelet-usage.groovy").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, nsDev, "timer-kamelet-usage"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, nsDev, "timer-kamelet-usage"), TestTimeoutShort).Should(ContainSubstring("Hello world"))
 		})
 
 		t.Run("binding dev", func(t *testing.T) {
-			Expect(CreateTimerKamelet(nsDev, "kb-timer-source")()).To(Succeed())
-			Expect(KamelBindWithID(operatorDevID, nsDev, "kb-timer-source", "log:info", "-p", "source.message=my-kamelet-binding-rocks").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(nsDev, "kb-timer-source-to-log"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(nsDev, "kb-timer-source-to-log"), TestTimeoutShort).Should(ContainSubstring("my-kamelet-binding-rocks"))
+			Expect(CreateTimerKamelet(t, nsDev, "kb-timer-source")()).To(Succeed())
+			Expect(KamelBindWithID(t, operatorDevID, nsDev, "kb-timer-source", "log:info", "-p", "source.message=my-kamelet-binding-rocks").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, nsDev, "kb-timer-source-to-log"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, nsDev, "kb-timer-source-to-log"), TestTimeoutShort).Should(ContainSubstring("my-kamelet-binding-rocks"))
 		})
 
 		// Prod environment namespace
 		WithNewTestNamespace(t, func(nsProd string) {
 			operatorProdID := "camel-k-cli-promote-prod"
-			Expect(CopyCamelCatalog(nsProd, operatorProdID)).To(Succeed())
-			Expect(CopyIntegrationKits(nsProd, operatorProdID)).To(Succeed())
-			Expect(KamelInstallWithID(operatorProdID, nsProd).Execute()).To(Succeed())
-			Eventually(PlatformPhase(nsProd), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+			Expect(CopyCamelCatalog(t, nsProd, operatorProdID)).To(Succeed())
+			Expect(CopyIntegrationKits(t, nsProd, operatorProdID)).To(Succeed())
+			Expect(KamelInstallWithID(t, operatorProdID, nsProd).Execute()).To(Succeed())
+			Eventually(PlatformPhase(t, nsProd), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 			t.Run("no configmap in destination", func(t *testing.T) {
-				Expect(Kamel("promote", "-n", nsDev, "promote-route", "--to", nsProd).Execute()).NotTo(Succeed())
+				Expect(Kamel(t, "promote", "-n", nsDev, "promote-route", "--to", nsProd).Execute()).NotTo(Succeed())
 			})
 
 			// Prod content configmap
 			var cmData = make(map[string]string)
 			cmData["my-configmap-key"] = "I am production!"
-			CreatePlainTextConfigmap(nsProd, "my-cm-promote", cmData)
+			CreatePlainTextConfigmap(t, nsProd, "my-cm-promote", cmData)
 
 			t.Run("no secret in destination", func(t *testing.T) {
-				Expect(Kamel("promote", "-n", nsDev, "promote-route", "--to", nsProd).Execute()).NotTo(Succeed())
+				Expect(Kamel(t, "promote", "-n", nsDev, "promote-route", "--to", nsProd).Execute()).NotTo(Succeed())
 			})
 
 			// Prod secret
 			var secData = make(map[string]string)
 			secData["my-secret-key"] = "very top secret production"
-			CreatePlainTextSecret(nsProd, "my-sec-promote", secData)
+			CreatePlainTextSecret(t, nsProd, "my-sec-promote", secData)
 
 			t.Run("plain integration promotion", func(t *testing.T) {
-				Expect(Kamel("promote", "-n", nsDev, "promote-route", "--to", nsProd).Execute()).To(Succeed())
-				Eventually(IntegrationObservedGeneration(nsProd, "promote-route")).Should(Equal(&one))
-				Eventually(IntegrationPodPhase(nsProd, "promote-route"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(nsProd, "promote-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(nsProd, "promote-route"), TestTimeoutShort).Should(ContainSubstring("I am production!"))
-				Eventually(IntegrationLogs(nsProd, "promote-route"), TestTimeoutShort).Should(ContainSubstring("very top secret production"))
+				Expect(Kamel(t, "promote", "-n", nsDev, "promote-route", "--to", nsProd).Execute()).To(Succeed())
+				Eventually(IntegrationObservedGeneration(t, nsProd, "promote-route")).Should(Equal(&one))
+				Eventually(IntegrationPodPhase(t, nsProd, "promote-route"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, nsProd, "promote-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+				Eventually(IntegrationLogs(t, nsProd, "promote-route"), TestTimeoutShort).Should(ContainSubstring("I am production!"))
+				Eventually(IntegrationLogs(t, nsProd, "promote-route"), TestTimeoutShort).Should(ContainSubstring("very top secret production"))
 				// They must use the same image
-				Expect(IntegrationPodImage(nsProd, "promote-route")()).Should(Equal(IntegrationPodImage(nsDev, "promote-route")()))
+				Expect(IntegrationPodImage(t, nsProd, "promote-route")()).Should(Equal(IntegrationPodImage(t, nsDev, "promote-route")()))
 			})
 
 			t.Run("plain integration promotion update", func(t *testing.T) {
 				// We need to update the Integration CR in order the operator to restart it both in dev and prod envs
-				Expect(KamelRunWithID(operatorDevID, nsDev, "./files/promote-route-edited.groovy", "--name", "promote-route",
+				Expect(KamelRunWithID(t, operatorDevID, nsDev, "./files/promote-route-edited.groovy", "--name", "promote-route",
 					"--config", "configmap:my-cm-promote").Execute()).To(Succeed())
 				// The generation has to be incremented
-				Eventually(IntegrationObservedGeneration(nsDev, "promote-route")).Should(Equal(&two))
-				Eventually(IntegrationPodPhase(nsDev, "promote-route"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(nsDev, "promote-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(nsDev, "promote-route"), TestTimeoutShort).Should(ContainSubstring("I am development configmap!"))
+				Eventually(IntegrationObservedGeneration(t, nsDev, "promote-route")).Should(Equal(&two))
+				Eventually(IntegrationPodPhase(t, nsDev, "promote-route"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, nsDev, "promote-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+				Eventually(IntegrationLogs(t, nsDev, "promote-route"), TestTimeoutShort).Should(ContainSubstring("I am development configmap!"))
 				// Update the configmap only in prod
 				var cmData = make(map[string]string)
 				cmData["my-configmap-key"] = "I am production, but I was updated!"
-				UpdatePlainTextConfigmap(nsProd, "my-cm-promote", cmData)
+				UpdatePlainTextConfigmap(t, nsProd, "my-cm-promote", cmData)
 				// Promote the edited Integration
-				Expect(Kamel("promote", "-n", nsDev, "promote-route", "--to", nsProd).Execute()).To(Succeed())
+				Expect(Kamel(t, "promote", "-n", nsDev, "promote-route", "--to", nsProd).Execute()).To(Succeed())
 				// The generation has to be incremented also in prod
-				Eventually(IntegrationObservedGeneration(nsDev, "promote-route")).Should(Equal(&two))
-				Eventually(IntegrationPodPhase(nsProd, "promote-route"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(nsProd, "promote-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(nsProd, "promote-route"), TestTimeoutShort).Should(ContainSubstring("I am production, but I was updated!"))
+				Eventually(IntegrationObservedGeneration(t, nsDev, "promote-route")).Should(Equal(&two))
+				Eventually(IntegrationPodPhase(t, nsProd, "promote-route"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, nsProd, "promote-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+				Eventually(IntegrationLogs(t, nsProd, "promote-route"), TestTimeoutShort).Should(ContainSubstring("I am production, but I was updated!"))
 				// They must use the same image
-				Expect(IntegrationPodImage(nsProd, "promote-route")()).Should(Equal(IntegrationPodImage(nsDev, "promote-route")()))
+				Expect(IntegrationPodImage(t, nsProd, "promote-route")()).Should(Equal(IntegrationPodImage(t, nsDev, "promote-route")()))
 			})
 
 			t.Run("no kamelet in destination", func(t *testing.T) {
-				Expect(Kamel("promote", "-n", nsDev, "timer-kamelet-usage", "--to", nsProd).Execute()).NotTo(Succeed())
+				Expect(Kamel(t, "promote", "-n", nsDev, "timer-kamelet-usage", "--to", nsProd).Execute()).NotTo(Succeed())
 			})
 
 			t.Run("kamelet integration promotion", func(t *testing.T) {
-				Expect(CreateTimerKamelet(nsProd, "my-own-timer-source")()).To(Succeed())
-				Expect(Kamel("promote", "-n", nsDev, "timer-kamelet-usage", "--to", nsProd).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(nsProd, "timer-kamelet-usage"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(nsProd, "timer-kamelet-usage"), TestTimeoutShort).Should(ContainSubstring("Hello world"))
+				Expect(CreateTimerKamelet(t, nsProd, "my-own-timer-source")()).To(Succeed())
+				Expect(Kamel(t, "promote", "-n", nsDev, "timer-kamelet-usage", "--to", nsProd).Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, nsProd, "timer-kamelet-usage"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, nsProd, "timer-kamelet-usage"), TestTimeoutShort).Should(ContainSubstring("Hello world"))
 				// They must use the same image
-				Expect(IntegrationPodImage(nsProd, "timer-kamelet-usage")()).Should(Equal(IntegrationPodImage(nsDev, "timer-kamelet-usage")()))
+				Expect(IntegrationPodImage(t, nsProd, "timer-kamelet-usage")()).Should(Equal(IntegrationPodImage(t, nsDev, "timer-kamelet-usage")()))
 			})
 
 			t.Run("no kamelet for binding in destination", func(t *testing.T) {
-				Expect(Kamel("promote", "-n", nsDev, "kb-timer-source-to-log", "--to", nsProd).Execute()).NotTo(Succeed())
+				Expect(Kamel(t, "promote", "-n", nsDev, "kb-timer-source-to-log", "--to", nsProd).Execute()).NotTo(Succeed())
 			})
 
 			t.Run("binding promotion", func(t *testing.T) {
-				Expect(CreateTimerKamelet(nsProd, "kb-timer-source")()).To(Succeed())
-				Expect(Kamel("promote", "-n", nsDev, "kb-timer-source-to-log", "--to", nsProd).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(nsProd, "kb-timer-source-to-log"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(nsProd, "kb-timer-source-to-log"), TestTimeoutShort).Should(ContainSubstring("my-kamelet-binding-rocks"))
+				Expect(CreateTimerKamelet(t, nsProd, "kb-timer-source")()).To(Succeed())
+				Expect(Kamel(t, "promote", "-n", nsDev, "kb-timer-source-to-log", "--to", nsProd).Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, nsProd, "kb-timer-source-to-log"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, nsProd, "kb-timer-source-to-log"), TestTimeoutShort).Should(ContainSubstring("my-kamelet-binding-rocks"))
 				// They must use the same image
-				Expect(IntegrationPodImage(nsProd, "kb-timer-source-to-log")()).Should(Equal(IntegrationPodImage(nsDev, "kb-timer-source-to-log")()))
+				Expect(IntegrationPodImage(t, nsProd, "kb-timer-source-to-log")()).Should(Equal(IntegrationPodImage(t, nsDev, "kb-timer-source-to-log")()))
 
 				//Binding update
-				Expect(KamelBindWithID(operatorDevID, nsDev, "kb-timer-source", "log:info", "-p", "source.message=my-kamelet-binding-rocks-again").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(nsDev, "kb-timer-source-to-log"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(nsDev, "kb-timer-source-to-log"), TestTimeoutShort).Should(ContainSubstring("my-kamelet-binding-rocks-again"))
-				Expect(Kamel("promote", "-n", nsDev, "kb-timer-source-to-log", "--to", nsProd).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(nsProd, "kb-timer-source-to-log"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(nsProd, "kb-timer-source-to-log"), TestTimeoutShort).Should(ContainSubstring("my-kamelet-binding-rocks-again"))
+				Expect(KamelBindWithID(t, operatorDevID, nsDev, "kb-timer-source", "log:info", "-p", "source.message=my-kamelet-binding-rocks-again").Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, nsDev, "kb-timer-source-to-log"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, nsDev, "kb-timer-source-to-log"), TestTimeoutShort).Should(ContainSubstring("my-kamelet-binding-rocks-again"))
+				Expect(Kamel(t, "promote", "-n", nsDev, "kb-timer-source-to-log", "--to", nsProd).Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, nsProd, "kb-timer-source-to-log"), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, nsProd, "kb-timer-source-to-log"), TestTimeoutShort).Should(ContainSubstring("my-kamelet-binding-rocks-again"))
 			})
 		})
 	})
diff --git a/e2e/advanced/reset_test.go b/e2e/advanced/reset_test.go
index 4768ec0f7..3c866768c 100644
--- a/e2e/advanced/reset_test.go
+++ b/e2e/advanced/reset_test.go
@@ -33,60 +33,62 @@ import (
 )
 
 func TestKamelReset(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-cli-reset"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
 
-		Eventually(SelectedPlatformPhase(ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Eventually(SelectedPlatformPhase(t, ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		t.Run("Reset the whole platform", func(t *testing.T) {
 			name := RandomizedSuffixName("yaml1")
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			Eventually(Kit(ns, IntegrationKit(ns, name)())).Should(Not(BeNil()))
-			Eventually(Integration(ns, name)).Should(Not(BeNil()))
+			Eventually(Kit(t, ns, IntegrationKit(t, ns, name)())).Should(Not(BeNil()))
+			Eventually(Integration(t, ns, name)).Should(Not(BeNil()))
 
-			Expect(Kamel("reset", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "reset", "-n", ns).Execute()).To(Succeed())
 
-			Expect(Integration(ns, name)()).To(BeNil())
-			Expect(Kits(ns)()).To(HaveLen(0))
+			Expect(Integration(t, ns, name)()).To(BeNil())
+			Expect(Kits(t, ns)()).To(HaveLen(0))
 		})
 
 		t.Run("Reset skip-integrations", func(t *testing.T) {
 			name := RandomizedSuffixName("yaml2")
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			Eventually(Kit(ns, IntegrationKit(ns, name)())).Should(Not(BeNil()))
-			Eventually(Integration(ns, name)).Should(Not(BeNil()))
+			Eventually(Kit(t, ns, IntegrationKit(t, ns, name)())).Should(Not(BeNil()))
+			Eventually(Integration(t, ns, name)).Should(Not(BeNil()))
 
-			Expect(Kamel("reset", "-n", ns, "--skip-integrations").Execute()).To(Succeed())
+			Expect(Kamel(t, "reset", "-n", ns, "--skip-integrations").Execute()).To(Succeed())
 
-			Expect(Integration(ns, name)()).To(Not(BeNil()))
-			Expect(Kits(ns)()).To(HaveLen(0))
+			Expect(Integration(t, ns, name)()).To(Not(BeNil()))
+			Expect(Kits(t, ns)()).To(HaveLen(0))
 		})
 
 		t.Run("Reset skip-kits", func(t *testing.T) {
 			name := RandomizedSuffixName("yaml3")
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			kitName := IntegrationKit(ns, name)()
-			Eventually(Kit(ns, kitName)).Should(Not(BeNil()))
-			Eventually(Integration(ns, name)).Should(Not(BeNil()))
+			kitName := IntegrationKit(t, ns, name)()
+			Eventually(Kit(t, ns, kitName)).Should(Not(BeNil()))
+			Eventually(Integration(t, ns, name)).Should(Not(BeNil()))
 
-			Expect(Kamel("reset", "-n", ns, "--skip-kits").Execute()).To(Succeed())
+			Expect(Kamel(t, "reset", "-n", ns, "--skip-kits").Execute()).To(Succeed())
 
-			Expect(Integration(ns, name)()).To(BeNil())
-			Expect(Kit(ns, kitName)()).To(Not(BeNil()))
+			Expect(Integration(t, ns, name)()).To(BeNil())
+			Expect(Kit(t, ns, kitName)()).To(Not(BeNil()))
 		})
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/advanced/synthetic_test.go b/e2e/advanced/synthetic_test.go
index 236a1fae8..a1f25eeb4 100644
--- a/e2e/advanced/synthetic_test.go
+++ b/e2e/advanced/synthetic_test.go
@@ -35,18 +35,19 @@ import (
 )
 
 func TestSyntheticIntegrationOff(t *testing.T) {
-	RegisterTestingT(t)
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		// Install Camel K without synthetic Integration feature variable (default)
 		operatorID := "camel-k-synthetic-env-off"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(SelectedPlatformPhase(ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(SelectedPlatformPhase(t, ns, operatorID), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		// Run the external deployment
 		ExpectExecSucceed(t, Kubectl("apply", "-f", "files/deploy.yaml", "-n", ns))
-		Eventually(DeploymentCondition(ns, "my-camel-sb-svc", appsv1.DeploymentProgressing), TestTimeoutShort).
+		Eventually(DeploymentCondition(t, ns, "my-camel-sb-svc", appsv1.DeploymentProgressing), TestTimeoutShort).
 			Should(MatchFields(IgnoreExtras, Fields{
 				"Status": Equal(corev1.ConditionTrue),
 				"Reason": Equal("NewReplicaSetAvailable"),
@@ -54,7 +55,7 @@ func TestSyntheticIntegrationOff(t *testing.T) {
 
 		// Label the deployment --> Verify the Integration is not created
 		ExpectExecSucceed(t, Kubectl("label", "deploy", "my-camel-sb-svc", "camel.apache.org/integration=my-it", "-n", ns))
-		Eventually(Integration(ns, "my-it"), TestTimeoutShort).Should(BeNil())
+		Eventually(Integration(t, ns, "my-it"), TestTimeoutShort).Should(BeNil())
 	})
 }
 func TestSyntheticIntegrationFromDeployment(t *testing.T) {
@@ -62,15 +63,15 @@ func TestSyntheticIntegrationFromDeployment(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		// Install Camel K with the synthetic Integration feature variable
 		operatorID := "camel-k-synthetic-env"
-		Expect(CopyCamelCatalog(ns, operatorID)).To(Succeed())
-		Expect(CopyIntegrationKits(ns, operatorID)).To(Succeed())
-		Expect(KamelInstallWithID(operatorID, ns,
+		Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+		Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns,
 			"--operator-env-vars", "CAMEL_K_SYNTHETIC_INTEGRATIONS=true",
 		).Execute()).To(Succeed())
 
 		// Run the external deployment
 		ExpectExecSucceed(t, Kubectl("apply", "-f", "files/deploy.yaml", "-n", ns))
-		Eventually(DeploymentCondition(ns, "my-camel-sb-svc", appsv1.DeploymentProgressing), TestTimeoutShort).
+		Eventually(DeploymentCondition(t, ns, "my-camel-sb-svc", appsv1.DeploymentProgressing), TestTimeoutShort).
 			Should(MatchFields(IgnoreExtras, Fields{
 				"Status": Equal(corev1.ConditionTrue),
 				"Reason": Equal("NewReplicaSetAvailable"),
@@ -78,47 +79,47 @@ func TestSyntheticIntegrationFromDeployment(t *testing.T) {
 
 		// Label the deployment --> Verify the Integration is created (cannot still monitor)
 		ExpectExecSucceed(t, Kubectl("label", "deploy", "my-camel-sb-svc", "camel.apache.org/integration=my-it", "-n", ns))
-		Eventually(IntegrationPhase(ns, "my-it"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-		Eventually(IntegrationConditionStatus(ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
-		Eventually(IntegrationCondition(ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(
+		Eventually(IntegrationPhase(t, ns, "my-it"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+		Eventually(IntegrationConditionStatus(t, ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
+		Eventually(IntegrationCondition(t, ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(
 			WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionMonitoringPodsAvailableReason)))
 
 		// Label the deployment template --> Verify the Integration is monitored
 		ExpectExecSucceed(t, Kubectl("patch", "deployment", "my-camel-sb-svc", "--patch", `{"spec": {"template": {"metadata": {"labels": {"camel.apache.org/integration": "my-it"}}}}}`, "-n", ns))
-		Eventually(IntegrationPhase(ns, "my-it"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-		Eventually(IntegrationConditionStatus(ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationPhase(t, ns, "my-it"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+		Eventually(IntegrationConditionStatus(t, ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 		one := int32(1)
-		Eventually(IntegrationStatusReplicas(ns, "my-it"), TestTimeoutShort).Should(Equal(&one))
+		Eventually(IntegrationStatusReplicas(t, ns, "my-it"), TestTimeoutShort).Should(Equal(&one))
 
 		// Delete the deployment --> Verify the Integration is eventually garbage collected
 		ExpectExecSucceed(t, Kubectl("delete", "deploy", "my-camel-sb-svc", "-n", ns))
-		Eventually(Integration(ns, "my-it"), TestTimeoutShort).Should(BeNil())
+		Eventually(Integration(t, ns, "my-it"), TestTimeoutShort).Should(BeNil())
 
 		// Recreate the deployment and label --> Verify the Integration is monitored
 		ExpectExecSucceed(t, Kubectl("apply", "-f", "files/deploy.yaml", "-n", ns))
 		ExpectExecSucceed(t, Kubectl("label", "deploy", "my-camel-sb-svc", "camel.apache.org/integration=my-it", "-n", ns))
 		ExpectExecSucceed(t, Kubectl("patch", "deployment", "my-camel-sb-svc", "--patch", `{"spec": {"template": {"metadata": {"labels": {"camel.apache.org/integration": "my-it"}}}}}`, "-n", ns))
-		Eventually(IntegrationPhase(ns, "my-it"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-		Eventually(IntegrationConditionStatus(ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationStatusReplicas(ns, "my-it"), TestTimeoutShort).Should(Equal(&one))
+		Eventually(IntegrationPhase(t, ns, "my-it"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+		Eventually(IntegrationConditionStatus(t, ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationStatusReplicas(t, ns, "my-it"), TestTimeoutShort).Should(Equal(&one))
 
 		// Remove label from the deployment --> Verify the Integration is deleted
 		ExpectExecSucceed(t, Kubectl("label", "deploy", "my-camel-sb-svc", "camel.apache.org/integration-", "-n", ns))
-		Eventually(Integration(ns, "my-it"), TestTimeoutShort).Should(BeNil())
+		Eventually(Integration(t, ns, "my-it"), TestTimeoutShort).Should(BeNil())
 
 		// Add label back to the deployment --> Verify the Integration is created
 		ExpectExecSucceed(t, Kubectl("label", "deploy", "my-camel-sb-svc", "camel.apache.org/integration=my-it", "-n", ns))
-		Eventually(IntegrationPhase(ns, "my-it"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-		Eventually(IntegrationConditionStatus(ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationStatusReplicas(ns, "my-it"), TestTimeoutShort).Should(Equal(&one))
+		Eventually(IntegrationPhase(t, ns, "my-it"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+		Eventually(IntegrationConditionStatus(t, ns, "my-it", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationStatusReplicas(t, ns, "my-it"), TestTimeoutShort).Should(Equal(&one))
 		// Scale the deployment --> verify replicas are correctly set
 		ExpectExecSucceed(t, Kubectl("scale", "deploy", "my-camel-sb-svc", "--replicas", "2", "-n", ns))
 		two := int32(2)
-		Eventually(IntegrationStatusReplicas(ns, "my-it"), TestTimeoutShort).Should(Equal(&two))
+		Eventually(IntegrationStatusReplicas(t, ns, "my-it"), TestTimeoutShort).Should(Equal(&two))
 
 		// Delete Integration and deployments --> verify no Integration exists any longer
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		ExpectExecSucceed(t, Kubectl("delete", "deploy", "my-camel-sb-svc", "-n", ns))
-		Eventually(Integration(ns, "my-it"), TestTimeoutShort).Should(BeNil())
+		Eventually(Integration(t, ns, "my-it"), TestTimeoutShort).Should(BeNil())
 	})
 }
diff --git a/e2e/advanced/tekton_test.go b/e2e/advanced/tekton_test.go
index f9e84e299..4f075a11c 100644
--- a/e2e/advanced/tekton_test.go
+++ b/e2e/advanced/tekton_test.go
@@ -33,16 +33,16 @@ import (
 // TestTektonLikeBehavior verifies that the kamel binary can be invoked from within the Camel K image.
 // This feature is used in Tekton pipelines.
 func TestTektonLikeBehavior(t *testing.T) {
-	RegisterTestingT(t)
+	t.Parallel()
 
 	WithNewTestNamespace(t, func(ns string) {
-		Expect(CreateOperatorServiceAccount(ns)).To(Succeed())
-		Expect(CreateOperatorRole(ns)).To(Succeed())
-		Expect(CreateOperatorRoleBinding(ns)).To(Succeed())
+		Expect(CreateOperatorServiceAccount(t, ns)).To(Succeed())
+		Expect(CreateOperatorRole(t, ns)).To(Succeed())
+		Expect(CreateOperatorRoleBinding(t, ns)).To(Succeed())
 
-		Eventually(OperatorPod(ns)).Should(BeNil())
-		Expect(CreateKamelPod(ns, "tekton-task", "install", "--skip-cluster-setup", "--force")).To(Succeed())
+		Eventually(OperatorPod(t, ns)).Should(BeNil())
+		Expect(CreateKamelPod(t, ns, "tekton-task", "install", "--skip-cluster-setup", "--force")).To(Succeed())
 
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
 	})
 }
diff --git a/e2e/builder/build_test.go b/e2e/builder/build_test.go
index c90f91f3d..709054b17 100644
--- a/e2e/builder/build_test.go
+++ b/e2e/builder/build_test.go
@@ -43,13 +43,13 @@ type kitOptions struct {
 
 func TestKitMaxBuildLimit(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
-		createOperator(ns, "8m0s", "--global", "--force")
+		createOperator(t, ns, "8m0s", "--global", "--force")
 
-		pl := Platform(ns)()
+		pl := Platform(t, ns)()
 		// set maximum number of running builds and order strategy
 		pl.Spec.Build.MaxRunningBuilds = 2
 		pl.Spec.Build.BuildConfiguration.OrderStrategy = v1.BuildOrderStrategySequential
-		if err := TestClient().Update(TestContext, pl); err != nil {
+		if err := TestClient(t).Update(TestContext, pl); err != nil {
 			t.Error(err)
 			t.FailNow()
 		}
@@ -64,25 +64,25 @@ func TestKitMaxBuildLimit(t *testing.T) {
 				pl.Spec.DeepCopyInto(&pl1.Spec)
 				pl1.Spec.Build.Maven.Settings = v1.ValueSource{}
 				pl1.SetOperatorID(fmt.Sprintf("camel-k-%s", ns))
-				if err := TestClient().Create(TestContext, &pl1); err != nil {
+				if err := TestClient(t).Create(TestContext, &pl1); err != nil {
 					t.Error(err)
 					t.FailNow()
 				}
 
-				Eventually(PlatformPhase(ns1), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+				Eventually(PlatformPhase(t, ns1), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 				pl2 := v1.NewIntegrationPlatform(ns2, fmt.Sprintf("camel-k-%s", ns))
 				pl.Spec.DeepCopyInto(&pl2.Spec)
 				pl2.Spec.Build.Maven.Settings = v1.ValueSource{}
 				pl2.SetOperatorID(fmt.Sprintf("camel-k-%s", ns))
-				if err := TestClient().Create(TestContext, &pl2); err != nil {
+				if err := TestClient(t).Create(TestContext, &pl2); err != nil {
 					t.Error(err)
 					t.FailNow()
 				}
 
-				Eventually(PlatformPhase(ns2), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+				Eventually(PlatformPhase(t, ns2), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
-				doKitBuildInNamespace(buildA, ns, TestTimeoutShort, kitOptions{
+				doKitBuildInNamespace(t, buildA, ns, TestTimeoutShort, kitOptions{
 					operatorID: fmt.Sprintf("camel-k-%s", ns),
 					dependencies: []string{
 						"camel:timer", "camel:log",
@@ -92,7 +92,7 @@ func TestKitMaxBuildLimit(t *testing.T) {
 					},
 				}, v1.BuildPhaseRunning, v1.IntegrationKitPhaseBuildRunning)
 
-				doKitBuildInNamespace(buildB, ns1, TestTimeoutShort, kitOptions{
+				doKitBuildInNamespace(t, buildB, ns1, TestTimeoutShort, kitOptions{
 					operatorID: fmt.Sprintf("camel-k-%s", ns),
 					dependencies: []string{
 						"camel:timer", "camel:log",
@@ -102,7 +102,7 @@ func TestKitMaxBuildLimit(t *testing.T) {
 					},
 				}, v1.BuildPhaseRunning, v1.IntegrationKitPhaseBuildRunning)
 
-				doKitBuildInNamespace(buildC, ns2, TestTimeoutShort, kitOptions{
+				doKitBuildInNamespace(t, buildC, ns2, TestTimeoutShort, kitOptions{
 					operatorID: fmt.Sprintf("camel-k-%s", ns),
 					dependencies: []string{
 						"camel:timer", "camel:log",
@@ -117,27 +117,27 @@ func TestKitMaxBuildLimit(t *testing.T) {
 				}
 
 				limit := 0
-				for limit < 5 && BuildPhase(ns, buildA)() == v1.BuildPhaseRunning {
+				for limit < 5 && BuildPhase(t, ns, buildA)() == v1.BuildPhaseRunning {
 					// verify that number of running builds does not exceed max build limit
-					Consistently(BuildsRunning(BuildPhase(ns, buildA), BuildPhase(ns1, buildB), BuildPhase(ns2, buildC)), TestTimeoutShort, 10*time.Second).Should(Satisfy(notExceedsMaxBuildLimit))
+					Consistently(BuildsRunning(BuildPhase(t, ns, buildA), BuildPhase(t, ns1, buildB), BuildPhase(t, ns2, buildC)), TestTimeoutShort, 10*time.Second).Should(Satisfy(notExceedsMaxBuildLimit))
 					limit++
 				}
 
 				// make sure we have verified max build limit at least once
 				if limit == 0 {
-					t.Error(errors.New(fmt.Sprintf("Unexpected build phase '%s' for %s - not able to verify max builds limit", BuildPhase(ns, buildA)(), buildA)))
+					t.Error(errors.New(fmt.Sprintf("Unexpected build phase '%s' for %s - not able to verify max builds limit", BuildPhase(t, ns, buildA)(), buildA)))
 					t.FailNow()
 				}
 
 				// verify that all builds are successful
-				Eventually(BuildPhase(ns, buildA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-				Eventually(KitPhase(ns, buildA), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+				Eventually(BuildPhase(t, ns, buildA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+				Eventually(KitPhase(t, ns, buildA), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
 
-				Eventually(BuildPhase(ns1, buildB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-				Eventually(KitPhase(ns1, buildB), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+				Eventually(BuildPhase(t, ns1, buildB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+				Eventually(KitPhase(t, ns1, buildB), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
 
-				Eventually(BuildPhase(ns2, buildC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-				Eventually(KitPhase(ns2, buildC), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+				Eventually(BuildPhase(t, ns2, buildC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+				Eventually(KitPhase(t, ns2, buildC), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
 			})
 		})
 	})
@@ -145,13 +145,13 @@ func TestKitMaxBuildLimit(t *testing.T) {
 
 func TestKitMaxBuildLimitFIFOStrategy(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
-		createOperator(ns, "8m0s", "--global", "--force")
+		createOperator(t, ns, "8m0s", "--global", "--force")
 
-		pl := Platform(ns)()
+		pl := Platform(t, ns)()
 		// set maximum number of running builds and order strategy
 		pl.Spec.Build.MaxRunningBuilds = 2
 		pl.Spec.Build.BuildConfiguration.OrderStrategy = v1.BuildOrderStrategyFIFO
-		if err := TestClient().Update(TestContext, pl); err != nil {
+		if err := TestClient(t).Update(TestContext, pl); err != nil {
 			t.Error(err)
 			t.FailNow()
 		}
@@ -160,7 +160,7 @@ func TestKitMaxBuildLimitFIFOStrategy(t *testing.T) {
 		buildB := "integration-b"
 		buildC := "integration-c"
 
-		doKitBuildInNamespace(buildA, ns, TestTimeoutShort, kitOptions{
+		doKitBuildInNamespace(t, buildA, ns, TestTimeoutShort, kitOptions{
 			operatorID: fmt.Sprintf("camel-k-%s", ns),
 			dependencies: []string{
 				"camel:timer", "camel:log",
@@ -170,7 +170,7 @@ func TestKitMaxBuildLimitFIFOStrategy(t *testing.T) {
 			},
 		}, v1.BuildPhaseRunning, v1.IntegrationKitPhaseBuildRunning)
 
-		doKitBuildInNamespace(buildB, ns, TestTimeoutShort, kitOptions{
+		doKitBuildInNamespace(t, buildB, ns, TestTimeoutShort, kitOptions{
 			operatorID: fmt.Sprintf("camel-k-%s", ns),
 			dependencies: []string{
 				"camel:timer", "camel:log",
@@ -180,7 +180,7 @@ func TestKitMaxBuildLimitFIFOStrategy(t *testing.T) {
 			},
 		}, v1.BuildPhaseRunning, v1.IntegrationKitPhaseBuildRunning)
 
-		doKitBuildInNamespace(buildC, ns, TestTimeoutShort, kitOptions{
+		doKitBuildInNamespace(t, buildC, ns, TestTimeoutShort, kitOptions{
 			operatorID: fmt.Sprintf("camel-k-%s", ns),
 			dependencies: []string{
 				"camel:timer", "camel:log",
@@ -195,37 +195,37 @@ func TestKitMaxBuildLimitFIFOStrategy(t *testing.T) {
 		}
 
 		limit := 0
-		for limit < 5 && BuildPhase(ns, buildA)() == v1.BuildPhaseRunning {
+		for limit < 5 && BuildPhase(t, ns, buildA)() == v1.BuildPhaseRunning {
 			// verify that number of running builds does not exceed max build limit
-			Consistently(BuildsRunning(BuildPhase(ns, buildA), BuildPhase(ns, buildB), BuildPhase(ns, buildC)), TestTimeoutShort, 10*time.Second).Should(Satisfy(notExceedsMaxBuildLimit))
+			Consistently(BuildsRunning(BuildPhase(t, ns, buildA), BuildPhase(t, ns, buildB), BuildPhase(t, ns, buildC)), TestTimeoutShort, 10*time.Second).Should(Satisfy(notExceedsMaxBuildLimit))
 			limit++
 		}
 
 		// make sure we have verified max build limit at least once
 		if limit == 0 {
-			t.Error(errors.New(fmt.Sprintf("Unexpected build phase '%s' for %s - not able to verify max builds limit", BuildPhase(ns, buildA)(), buildA)))
+			t.Error(errors.New(fmt.Sprintf("Unexpected build phase '%s' for %s - not able to verify max builds limit", BuildPhase(t, ns, buildA)(), buildA)))
 			t.FailNow()
 		}
 
 		// verify that all builds are successful
-		Eventually(BuildPhase(ns, buildA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(KitPhase(ns, buildA), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
-		Eventually(BuildPhase(ns, buildB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(KitPhase(ns, buildB), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
-		Eventually(BuildPhase(ns, buildC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(KitPhase(ns, buildC), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+		Eventually(BuildPhase(t, ns, buildA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(KitPhase(t, ns, buildA), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+		Eventually(BuildPhase(t, ns, buildB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(KitPhase(t, ns, buildB), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+		Eventually(BuildPhase(t, ns, buildC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(KitPhase(t, ns, buildC), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
 	})
 }
 
 func TestKitMaxBuildLimitDependencyMatchingStrategy(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
-		createOperator(ns, "8m0s", "--global", "--force")
+		createOperator(t, ns, "8m0s", "--global", "--force")
 
-		pl := Platform(ns)()
+		pl := Platform(t, ns)()
 		// set maximum number of running builds and order strategy
 		pl.Spec.Build.MaxRunningBuilds = 2
 		pl.Spec.Build.BuildConfiguration.OrderStrategy = v1.BuildOrderStrategyDependencies
-		if err := TestClient().Update(TestContext, pl); err != nil {
+		if err := TestClient(t).Update(TestContext, pl); err != nil {
 			t.Error(err)
 			t.FailNow()
 		}
@@ -234,7 +234,7 @@ func TestKitMaxBuildLimitDependencyMatchingStrategy(t *testing.T) {
 		buildB := "integration-b"
 		buildC := "integration-c"
 
-		doKitBuildInNamespace(buildA, ns, TestTimeoutShort, kitOptions{
+		doKitBuildInNamespace(t, buildA, ns, TestTimeoutShort, kitOptions{
 			operatorID: fmt.Sprintf("camel-k-%s", ns),
 			dependencies: []string{
 				"camel:timer", "camel:log",
@@ -244,7 +244,7 @@ func TestKitMaxBuildLimitDependencyMatchingStrategy(t *testing.T) {
 			},
 		}, v1.BuildPhaseRunning, v1.IntegrationKitPhaseBuildRunning)
 
-		doKitBuildInNamespace(buildB, ns, TestTimeoutShort, kitOptions{
+		doKitBuildInNamespace(t, buildB, ns, TestTimeoutShort, kitOptions{
 			operatorID: fmt.Sprintf("camel-k-%s", ns),
 			dependencies: []string{
 				"camel:cron", "camel:log", "camel:joor",
@@ -254,7 +254,7 @@ func TestKitMaxBuildLimitDependencyMatchingStrategy(t *testing.T) {
 			},
 		}, v1.BuildPhaseRunning, v1.IntegrationKitPhaseBuildRunning)
 
-		doKitBuildInNamespace(buildC, ns, TestTimeoutShort, kitOptions{
+		doKitBuildInNamespace(t, buildC, ns, TestTimeoutShort, kitOptions{
 			operatorID: fmt.Sprintf("camel-k-%s", ns),
 			dependencies: []string{
 				"camel:timer", "camel:log", "camel:joor", "camel:http",
@@ -269,37 +269,37 @@ func TestKitMaxBuildLimitDependencyMatchingStrategy(t *testing.T) {
 		}
 
 		limit := 0
-		for limit < 5 && BuildPhase(ns, buildA)() == v1.BuildPhaseRunning {
+		for limit < 5 && BuildPhase(t, ns, buildA)() == v1.BuildPhaseRunning {
 			// verify that number of running builds does not exceed max build limit
-			Consistently(BuildsRunning(BuildPhase(ns, buildA), BuildPhase(ns, buildB), BuildPhase(ns, buildC)), TestTimeoutShort, 10*time.Second).Should(Satisfy(notExceedsMaxBuildLimit))
+			Consistently(BuildsRunning(BuildPhase(t, ns, buildA), BuildPhase(t, ns, buildB), BuildPhase(t, ns, buildC)), TestTimeoutShort, 10*time.Second).Should(Satisfy(notExceedsMaxBuildLimit))
 			limit++
 		}
 
 		// make sure we have verified max build limit at least once
 		if limit == 0 {
-			t.Error(errors.New(fmt.Sprintf("Unexpected build phase '%s' for %s - not able to verify max builds limit", BuildPhase(ns, buildA)(), buildA)))
+			t.Error(errors.New(fmt.Sprintf("Unexpected build phase '%s' for %s - not able to verify max builds limit", BuildPhase(t, ns, buildA)(), buildA)))
 			t.FailNow()
 		}
 
 		// verify that all builds are successful
-		Eventually(BuildPhase(ns, buildA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(KitPhase(ns, buildA), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
-		Eventually(BuildPhase(ns, buildB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(KitPhase(ns, buildB), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
-		Eventually(BuildPhase(ns, buildC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(KitPhase(ns, buildC), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+		Eventually(BuildPhase(t, ns, buildA), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(KitPhase(t, ns, buildA), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+		Eventually(BuildPhase(t, ns, buildB), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(KitPhase(t, ns, buildB), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+		Eventually(BuildPhase(t, ns, buildC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(KitPhase(t, ns, buildC), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
 	})
 }
 
 func TestMaxBuildLimitWaitingBuilds(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
-		createOperator(ns, "8m0s", "--global", "--force")
+		createOperator(t, ns, "8m0s", "--global", "--force")
 
-		pl := Platform(ns)()
+		pl := Platform(t, ns)()
 		// set maximum number of running builds and order strategy
 		pl.Spec.Build.MaxRunningBuilds = 1
 		pl.Spec.Build.BuildConfiguration.OrderStrategy = v1.BuildOrderStrategyFIFO
-		if err := TestClient().Update(TestContext, pl); err != nil {
+		if err := TestClient(t).Update(TestContext, pl); err != nil {
 			t.Error(err)
 			t.FailNow()
 		}
@@ -308,7 +308,7 @@ func TestMaxBuildLimitWaitingBuilds(t *testing.T) {
 		buildB := "integration-b"
 		buildC := "integration-c"
 
-		doKitBuildInNamespace(buildA, ns, TestTimeoutShort, kitOptions{
+		doKitBuildInNamespace(t, buildA, ns, TestTimeoutShort, kitOptions{
 			operatorID: fmt.Sprintf("camel-k-%s", ns),
 			dependencies: []string{
 				"camel:timer", "camel:log",
@@ -318,7 +318,7 @@ func TestMaxBuildLimitWaitingBuilds(t *testing.T) {
 			},
 		}, v1.BuildPhaseRunning, v1.IntegrationKitPhaseBuildRunning)
 
-		doKitBuildInNamespace(buildB, ns, TestTimeoutShort, kitOptions{
+		doKitBuildInNamespace(t, buildB, ns, TestTimeoutShort, kitOptions{
 			operatorID: fmt.Sprintf("camel-k-%s", ns),
 			dependencies: []string{
 				"camel:cron", "camel:log", "camel:joor",
@@ -328,7 +328,7 @@ func TestMaxBuildLimitWaitingBuilds(t *testing.T) {
 			},
 		}, v1.BuildPhaseScheduling, v1.IntegrationKitPhaseNone)
 
-		doKitBuildInNamespace(buildC, ns, TestTimeoutShort, kitOptions{
+		doKitBuildInNamespace(t, buildC, ns, TestTimeoutShort, kitOptions{
 			operatorID: fmt.Sprintf("camel-k-%s", ns),
 			dependencies: []string{
 				"camel:timer", "camel:log", "camel:joor", "camel:http",
@@ -339,24 +339,24 @@ func TestMaxBuildLimitWaitingBuilds(t *testing.T) {
 		}, v1.BuildPhaseScheduling, v1.IntegrationKitPhaseNone)
 
 		// verify that last build is waiting
-		Eventually(BuildConditions(ns, buildC), TestTimeoutMedium).ShouldNot(BeNil())
+		Eventually(BuildConditions(t, ns, buildC), TestTimeoutMedium).ShouldNot(BeNil())
 		Eventually(
-			BuildCondition(ns, buildC, v1.BuildConditionType(v1.BuildConditionScheduled))().Status,
+			BuildCondition(t, ns, buildC, v1.BuildConditionType(v1.BuildConditionScheduled))().Status,
 			TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
 		Eventually(
-			BuildCondition(ns, buildC, v1.BuildConditionType(v1.BuildConditionScheduled))().Reason,
+			BuildCondition(t, ns, buildC, v1.BuildConditionType(v1.BuildConditionScheduled))().Reason,
 			TestTimeoutShort).Should(Equal(v1.BuildConditionWaitingReason))
 
 		// verify that last build is scheduled
-		Eventually(BuildPhase(ns, buildC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
-		Eventually(KitPhase(ns, buildC), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
+		Eventually(BuildPhase(t, ns, buildC), TestTimeoutLong).Should(Equal(v1.BuildPhaseSucceeded))
+		Eventually(KitPhase(t, ns, buildC), TestTimeoutLong).Should(Equal(v1.IntegrationKitPhaseReady))
 
-		Eventually(BuildConditions(ns, buildC), TestTimeoutLong).ShouldNot(BeNil())
+		Eventually(BuildConditions(t, ns, buildC), TestTimeoutLong).ShouldNot(BeNil())
 		Eventually(
-			BuildCondition(ns, buildC, v1.BuildConditionType(v1.BuildConditionScheduled))().Status,
+			BuildCondition(t, ns, buildC, v1.BuildConditionType(v1.BuildConditionScheduled))().Status,
 			TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 		Eventually(
-			BuildCondition(ns, buildC, v1.BuildConditionType(v1.BuildConditionScheduled))().Reason,
+			BuildCondition(t, ns, buildC, v1.BuildConditionType(v1.BuildConditionScheduled))().Reason,
 			TestTimeoutShort).Should(Equal(v1.BuildConditionReadyReason))
 	})
 }
@@ -393,21 +393,21 @@ func doKitFullBuild(t *testing.T, name string, buildTimeout string, testTimeout
 	t.Helper()
 
 	WithNewTestNamespace(t, func(ns string) {
-		createOperator(ns, buildTimeout)
-		doKitBuildInNamespace(name, ns, testTimeout, options, buildPhase, kitPhase)
+		createOperator(t, ns, buildTimeout)
+		doKitBuildInNamespace(t, name, ns, testTimeout, options, buildPhase, kitPhase)
 	})
 }
 
-func createOperator(ns string, buildTimeout string, installArgs ...string) {
+func createOperator(t *testing.T, ns string, buildTimeout string, installArgs ...string) {
 	args := []string{"--build-timeout", buildTimeout}
 	args = append(args, installArgs...)
 
 	operatorID := fmt.Sprintf("camel-k-%s", ns)
-	Expect(KamelInstallWithID(operatorID, ns, args...).Execute()).To(Succeed())
-	Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+	Expect(KamelInstallWithID(t, operatorID, ns, args...).Execute()).To(Succeed())
+	Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 }
 
-func doKitBuildInNamespace(name string, ns string, testTimeout time.Duration, options kitOptions, buildPhase v1.BuildPhase, kitPhase v1.IntegrationKitPhase) {
+func doKitBuildInNamespace(t *testing.T, name string, ns string, testTimeout time.Duration, options kitOptions, buildPhase v1.BuildPhase, kitPhase v1.IntegrationKitPhase) {
 
 	buildKitArgs := []string{"kit", "create", name, "-n", ns}
 	for _, dependency := range options.dependencies {
@@ -423,13 +423,13 @@ func doKitBuildInNamespace(name string, ns string, testTimeout time.Duration, op
 		buildKitArgs = append(buildKitArgs, "--operator-id", fmt.Sprintf("camel-k-%s", ns))
 	}
 
-	Expect(Kamel(buildKitArgs...).Execute()).To(Succeed())
+	Expect(Kamel(t, buildKitArgs...).Execute()).To(Succeed())
 
-	Eventually(Build(ns, name), testTimeout).ShouldNot(BeNil())
+	Eventually(Build(t, ns, name), testTimeout).ShouldNot(BeNil())
 	if buildPhase != v1.BuildPhaseNone {
-		Eventually(BuildPhase(ns, name), testTimeout).Should(Equal(buildPhase))
+		Eventually(BuildPhase(t, ns, name), testTimeout).Should(Equal(buildPhase))
 	}
 	if kitPhase != v1.IntegrationKitPhaseNone {
-		Eventually(KitPhase(ns, name), testTimeout).Should(Equal(kitPhase))
+		Eventually(KitPhase(t, ns, name), testTimeout).Should(Equal(kitPhase))
 	}
 }
diff --git a/e2e/builder/registry_test.go b/e2e/builder/registry_test.go
index b587e8262..1d4c5b3bf 100644
--- a/e2e/builder/registry_test.go
+++ b/e2e/builder/registry_test.go
@@ -43,7 +43,7 @@ func TestRunWithDockerHubRegistry(t *testing.T) {
 
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-docker-hub"
-		Expect(KamelInstallWithID(operatorID, ns,
+		Expect(KamelInstallWithID(t, operatorID, ns,
 			"--registry", "docker.io",
 			"--organization", user,
 			"--registry-auth-username", user,
@@ -51,12 +51,12 @@ func TestRunWithDockerHubRegistry(t *testing.T) {
 			"--cluster-type", "kubernetes").
 			Execute()).To(Succeed())
 
-		Expect(KamelRunWithID(operatorID, ns, "files/groovy.groovy").Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "groovy"), TestTimeoutLong).Should(Equal(v1.PodRunning))
-		Eventually(IntegrationLogs(ns, "groovy"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(IntegrationPodImage(ns, "groovy"), TestTimeoutShort).Should(HavePrefix("docker.io"))
+		Expect(KamelRunWithID(t, operatorID, ns, "files/groovy.groovy").Execute()).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, "groovy"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+		Eventually(IntegrationLogs(t, ns, "groovy"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(IntegrationPodImage(t, ns, "groovy"), TestTimeoutShort).Should(HavePrefix("docker.io"))
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -71,7 +71,7 @@ func TestRunWithGithubPackagesRegistry(t *testing.T) {
 
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := "camel-k-github-registry"
-		Expect(KamelInstallWithID(operatorID, ns,
+		Expect(KamelInstallWithID(t, operatorID, ns,
 			"--registry", "docker.pkg.github.com",
 			"--organization", repo,
 			"--registry-auth-username", user,
@@ -79,11 +79,11 @@ func TestRunWithGithubPackagesRegistry(t *testing.T) {
 			"--cluster-type", "kubernetes").
 			Execute()).To(Succeed())
 
-		Expect(KamelRunWithID(operatorID, ns, "files/groovy.groovy").Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "groovy"), TestTimeoutLong).Should(Equal(v1.PodRunning))
-		Eventually(IntegrationLogs(ns, "groovy"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(IntegrationPodImage(ns, "groovy"), TestTimeoutShort).Should(HavePrefix("docker.pkg.github.com"))
+		Expect(KamelRunWithID(t, operatorID, ns, "files/groovy.groovy").Execute()).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, "groovy"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+		Eventually(IntegrationLogs(t, ns, "groovy"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(IntegrationPodImage(t, ns, "groovy"), TestTimeoutShort).Should(HavePrefix("docker.pkg.github.com"))
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/cli/bind_test.go b/e2e/common/cli/bind_test.go
index e888bf597..45dd4c265 100644
--- a/e2e/common/cli/bind_test.go
+++ b/e2e/common/cli/bind_test.go
@@ -35,32 +35,32 @@ import (
 func TestKamelCLIBind(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		kameletName := "test-timer-source"
-		Expect(CreateTimerKamelet(ns, kameletName)()).To(Succeed())
+		Expect(CreateTimerKamelet(t, ns, kameletName)()).To(Succeed())
 
 		t.Run("bind timer to log", func(t *testing.T) {
-			Expect(KamelBindWithID(operatorID, ns, kameletName, "log:info", "-p", "source.message=helloTest").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "test-timer-source-to-log"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, "test-timer-source-to-log")).Should(ContainSubstring("Body: helloTest"))
-			Expect(KamelBindWithID(operatorID, ns, "test-timer-source", "log:info", "-p", "source.message=newText").Execute()).To(Succeed())
-			Eventually(IntegrationLogs(ns, "test-timer-source-to-log")).Should(ContainSubstring("Body: newText"))
+			Expect(KamelBindWithID(t, operatorID, ns, kameletName, "log:info", "-p", "source.message=helloTest").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "test-timer-source-to-log"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, "test-timer-source-to-log")).Should(ContainSubstring("Body: helloTest"))
+			Expect(KamelBindWithID(t, operatorID, ns, "test-timer-source", "log:info", "-p", "source.message=newText").Execute()).To(Succeed())
+			Eventually(IntegrationLogs(t, ns, "test-timer-source-to-log")).Should(ContainSubstring("Body: newText"))
 		})
 
 		t.Run("unsuccessful binding, no property", func(t *testing.T) {
 			opns := GetEnvOrDefault("CAMEL_K_GLOBAL_OPERATOR_NS", TestDefaultNamespace)
-			Expect(KamelBindWithID(operatorID, ns, opns+"/timer-source", "log:info").Execute()).NotTo(Succeed())
+			Expect(KamelBindWithID(t, operatorID, ns, opns+"/timer-source", "log:info").Execute()).NotTo(Succeed())
 		})
 
 		t.Run("bind uris", func(t *testing.T) {
-			Expect(KamelBindWithID(operatorID, ns, "timer:foo", "log:bar").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "timer-to-log"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, "timer-to-log")).Should(ContainSubstring("Body is null"))
+			Expect(KamelBindWithID(t, operatorID, ns, "timer:foo", "log:bar").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "timer-to-log"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, "timer-to-log")).Should(ContainSubstring("Body is null"))
 		})
 
 		t.Run("bind with custom SA", func(t *testing.T) {
-			Expect(KamelBindWithID(operatorID, ns, "timer:foo", "log:bar", "--service-account", "my-service-account").Execute()).To(Succeed())
-			Eventually(IntegrationSpecSA(ns, "timer-to-log")).Should(Equal("my-service-account"))
+			Expect(KamelBindWithID(t, operatorID, ns, "timer:foo", "log:bar", "--service-account", "my-service-account").Execute()).To(Succeed())
+			Eventually(IntegrationSpecSA(t, ns, "timer-to-log")).Should(Equal("my-service-account"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/cli/config_test.go b/e2e/common/cli/config_test.go
index 20390ee89..476a1ff85 100644
--- a/e2e/common/cli/config_test.go
+++ b/e2e/common/cli/config_test.go
@@ -44,25 +44,25 @@ func TestKamelCLIConfig(t *testing.T) {
 			_, err := os.Stat(cmd.DefaultConfigLocation)
 			assert.True(t, os.IsNotExist(err), "No file at "+cmd.DefaultConfigLocation+" was expected")
 			t.Cleanup(func() { os.Remove(cmd.DefaultConfigLocation) })
-			Expect(Kamel("config", "--default-namespace", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "config", "--default-namespace", ns).Execute()).To(Succeed())
 			_, err = os.Stat(cmd.DefaultConfigLocation)
 			require.NoError(t, err, "A file at "+cmd.DefaultConfigLocation+" was expected")
-			Expect(Kamel("run", "--operator-id", operatorID, "files/yaml.yaml").Execute()).To(Succeed())
+			Expect(Kamel(t, "run", "--operator-id", operatorID, "files/yaml.yaml").Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationLogs(t, ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 			// first line of the integration logs
-			logs := strings.Split(IntegrationLogs(ns, "yaml")(), "\n")[0]
-			podName := IntegrationPod(ns, "yaml")().Name
+			logs := strings.Split(IntegrationLogs(t, ns, "yaml")(), "\n")[0]
+			podName := IntegrationPod(t, ns, "yaml")().Name
 
-			logsCLI := GetOutputStringAsync(Kamel("log", "yaml"))
+			logsCLI := GetOutputStringAsync(Kamel(t, "log", "yaml"))
 			Eventually(logsCLI).Should(ContainSubstring("Monitoring pod " + podName))
 			Eventually(logsCLI).Should(ContainSubstring(logs))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/cli/delete_test.go b/e2e/common/cli/delete_test.go
index 01935ea56..6726f145c 100644
--- a/e2e/common/cli/delete_test.go
+++ b/e2e/common/cli/delete_test.go
@@ -35,45 +35,45 @@ import (
 func TestKamelCLIDelete(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("delete running integration", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Expect(Kamel("delete", "yaml", "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, "yaml")).Should(BeNil())
-			Eventually(IntegrationPod(ns, "yaml"), TestTimeoutLong).Should(BeNil())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Expect(Kamel(t, "delete", "yaml", "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, "yaml")).Should(BeNil())
+			Eventually(IntegrationPod(t, ns, "yaml"), TestTimeoutLong).Should(BeNil())
 		})
 
 		t.Run("delete building integration", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Expect(Kamel("delete", "yaml", "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, "yaml")).Should(BeNil())
-			Eventually(IntegrationPod(ns, "yaml"), TestTimeoutLong).Should(BeNil())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "yaml", "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, "yaml")).Should(BeNil())
+			Eventually(IntegrationPod(t, ns, "yaml"), TestTimeoutLong).Should(BeNil())
 		})
 
 		t.Run("delete several integrations", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Expect(Kamel("delete", "yaml", "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, "yaml")).Should(BeNil())
-			Eventually(IntegrationPod(ns, "yaml"), TestTimeoutLong).Should(BeNil())
-			Expect(Kamel("delete", "java", "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, "java")).Should(BeNil())
-			Eventually(IntegrationPod(ns, "java"), TestTimeoutLong).Should(BeNil())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPodPhase(t, ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Expect(Kamel(t, "delete", "yaml", "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, "yaml")).Should(BeNil())
+			Eventually(IntegrationPod(t, ns, "yaml"), TestTimeoutLong).Should(BeNil())
+			Expect(Kamel(t, "delete", "java", "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, "java")).Should(BeNil())
+			Eventually(IntegrationPod(t, ns, "java"), TestTimeoutLong).Should(BeNil())
 		})
 
 		t.Run("delete all integrations", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, "yaml")).Should(BeNil())
-			Eventually(IntegrationPod(ns, "yaml"), TestTimeoutLong).Should(BeNil())
-			Eventually(Integration(ns, "java")).Should(BeNil())
-			Eventually(IntegrationPod(ns, "java"), TestTimeoutLong).Should(BeNil())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPodPhase(t, ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, "yaml")).Should(BeNil())
+			Eventually(IntegrationPod(t, ns, "yaml"), TestTimeoutLong).Should(BeNil())
+			Eventually(Integration(t, ns, "java")).Should(BeNil())
+			Eventually(IntegrationPod(t, ns, "java"), TestTimeoutLong).Should(BeNil())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/cli/describe_test.go b/e2e/common/cli/describe_test.go
index ce7cb7a28..c4105efdb 100644
--- a/e2e/common/cli/describe_test.go
+++ b/e2e/common/cli/describe_test.go
@@ -38,11 +38,11 @@ import (
 func TestKamelCliDescribe(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 
-		Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 
 		t.Run("Test kamel describe integration", func(t *testing.T) {
-			integration := GetOutputString(Kamel("describe", "integration", "yaml", "-n", ns))
+			integration := GetOutputString(Kamel(t, "describe", "integration", "yaml", "-n", ns))
 			r, _ := regexp.Compile("(?sm).*Name:\\s+yaml.*")
 			Expect(integration).To(MatchRegexp(r.String()))
 
@@ -54,9 +54,9 @@ func TestKamelCliDescribe(t *testing.T) {
 		})
 
 		t.Run("Test kamel describe integration kit", func(t *testing.T) {
-			kitName := Integration(ns, "yaml")().Status.IntegrationKit.Name
-			kitNamespace := Integration(ns, "yaml")().Status.IntegrationKit.Namespace
-			kit := GetOutputString(Kamel("describe", "kit", kitName, "-n", kitNamespace))
+			kitName := Integration(t, ns, "yaml")().Status.IntegrationKit.Name
+			kitNamespace := Integration(t, ns, "yaml")().Status.IntegrationKit.Namespace
+			kit := GetOutputString(Kamel(t, "describe", "kit", kitName, "-n", kitNamespace))
 
 			r, _ := regexp.Compile("(?sm).*Namespace:\\s+" + kitNamespace + ".*")
 			Expect(kit).To(MatchRegexp(r.String()))
@@ -72,7 +72,7 @@ func TestKamelCliDescribe(t *testing.T) {
 
 		t.Run("Test kamel describe integration platform", func(t *testing.T) {
 			opns := GetEnvOrDefault("CAMEL_K_GLOBAL_OPERATOR_NS", TestDefaultNamespace)
-			platform := GetOutputString(Kamel("describe", "platform", operatorID, "-n", opns))
+			platform := GetOutputString(Kamel(t, "describe", "platform", operatorID, "-n", opns))
 			Expect(platform).To(ContainSubstring(fmt.Sprintf("Name:	%s", operatorID)))
 
 			r, _ := regexp.Compile("(?sm).*Namespace:\\s+" + opns + ".*")
@@ -82,6 +82,6 @@ func TestKamelCliDescribe(t *testing.T) {
 			Expect(platform).To(MatchRegexp(r.String()))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/cli/dev_mode_test.go b/e2e/common/cli/dev_mode_test.go
index bc0a67636..57041d6f6 100644
--- a/e2e/common/cli/dev_mode_test.go
+++ b/e2e/common/cli/dev_mode_test.go
@@ -60,7 +60,7 @@ func TestRunDevMode(t *testing.T) {
 			file := util.MakeTempCopy(t, "files/yaml.yaml")
 			name := RandomizedSuffixName("yaml")
 
-			kamelRun := KamelRunWithContext(ctx, operatorID, ns, file, "--name", name, "--dev")
+			kamelRun := KamelRunWithContext(t, ctx, operatorID, ns, file, "--name", name, "--dev")
 			kamelRun.SetOut(pipew)
 
 			logScanner := util.NewLogScanner(ctx, piper, `integration "`+name+`" in phase Running`, "Magicstring!", "Magicjordan!")
@@ -89,7 +89,7 @@ func TestRunDevMode(t *testing.T) {
 
 			remoteFile := "https://raw.githubusercontent.com/apache/camel-k/b29333f0a878d5d09fb3965be8fe586d77dd95d0/e2e/common/files/yaml.yaml"
 			name := RandomizedSuffixName("yaml")
-			kamelRun := KamelRunWithContext(ctx, operatorID, ns, remoteFile, "--name", name, "--dev")
+			kamelRun := KamelRunWithContext(t, ctx, operatorID, ns, remoteFile, "--name", name, "--dev")
 			kamelRun.SetOut(pipew)
 
 			logScanner := util.NewLogScanner(ctx, piper, "Magicstring!")
@@ -117,12 +117,12 @@ func TestRunDevMode(t *testing.T) {
 			name := RandomizedSuffixName("yaml")
 
 			// First run (warm up)
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name)).Should(BeNil())
-			Eventually(IntegrationPod(ns, name), TestTimeoutMedium).Should(BeNil())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name)).Should(BeNil())
+			Eventually(IntegrationPod(t, ns, name), TestTimeoutMedium).Should(BeNil())
 
 			// Second run (rebuild)
 			ctx, cancel := context.WithCancel(TestContext)
@@ -133,7 +133,7 @@ func TestRunDevMode(t *testing.T) {
 
 			file := util.MakeTempCopy(t, "files/yaml.yaml")
 
-			kamelRun := KamelRunWithContext(ctx, operatorID, ns, file, "--name", name, "--dev")
+			kamelRun := KamelRunWithContext(t, ctx, operatorID, ns, file, "--name", name, "--dev")
 			kamelRun.SetOut(pipew)
 
 			logScanner := util.NewLogScanner(ctx, piper, `integration "`+name+`" in phase Running`, "Magicstring!")
@@ -151,6 +151,6 @@ func TestRunDevMode(t *testing.T) {
 			Eventually(logScanner.IsFound("Magicstring!"), timeout).Should(BeTrue())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/cli/duplicate_parameters_test.go b/e2e/common/cli/duplicate_parameters_test.go
index 84af397ce..ae0345216 100644
--- a/e2e/common/cli/duplicate_parameters_test.go
+++ b/e2e/common/cli/duplicate_parameters_test.go
@@ -48,7 +48,9 @@ func TestDuplicateParameters(t *testing.T) {
 	comm, _, _ := cmd.NewKamelWithModelineCommand(ctx, cmdParams)
 
 	// the command is executed inside GetOutputString function
-	commOutput := GetOutputString(comm)
+	commOutput := GetOutputString(&KamelCLI{
+		Command: comm,
+	})
 
 	outParams :=
 		`"traits":{"affinity":{"enabled":true},"camel":{"properties":["prop1 = true","prop2 = true","foo = bar"]},"pull-secret":{"enabled":true},"addons":{"telemetry":{"enabled":true}}}`
diff --git a/e2e/common/cli/get_test.go b/e2e/common/cli/get_test.go
index 88cdffda2..4732c56af 100644
--- a/e2e/common/cli/get_test.go
+++ b/e2e/common/cli/get_test.go
@@ -37,43 +37,43 @@ func TestKamelCLIGet(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("get integration", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 			// regex is used for the compatibility of tests between OC and vanilla K8
 			// kamel get may have different output depending on the platform
-			Eventually(IntegrationKit(ns, "yaml")).ShouldNot(Equal(""))
-			kitName := IntegrationKit(ns, "yaml")()
-			kitNamespace := IntegrationKitNamespace(ns, "yaml")()
+			Eventually(IntegrationKit(t, ns, "yaml")).ShouldNot(Equal(""))
+			kitName := IntegrationKit(t, ns, "yaml")()
+			kitNamespace := IntegrationKitNamespace(t, ns, "yaml")()
 			regex := fmt.Sprintf("^NAME\tPHASE\tKIT\n\\s*yaml\tRunning\t(%s/%s|%s)", kitNamespace, kitName, kitName)
-			Expect(GetOutputString(Kamel("get", "-n", ns))).To(MatchRegexp(regex))
+			Expect(GetOutputString(Kamel(t, "get", "-n", ns))).To(MatchRegexp(regex))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("get several integrations", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-
-			Eventually(IntegrationKit(ns, "java")).ShouldNot(Equal(""))
-			Eventually(IntegrationKit(ns, "yaml")).ShouldNot(Equal(""))
-			kitName1 := IntegrationKit(ns, "java")()
-			kitName2 := IntegrationKit(ns, "yaml")()
-			kitNamespace1 := IntegrationKitNamespace(ns, "java")()
-			kitNamespace2 := IntegrationKitNamespace(ns, "yaml")()
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPodPhase(t, ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+
+			Eventually(IntegrationKit(t, ns, "java")).ShouldNot(Equal(""))
+			Eventually(IntegrationKit(t, ns, "yaml")).ShouldNot(Equal(""))
+			kitName1 := IntegrationKit(t, ns, "java")()
+			kitName2 := IntegrationKit(t, ns, "yaml")()
+			kitNamespace1 := IntegrationKitNamespace(t, ns, "java")()
+			kitNamespace2 := IntegrationKitNamespace(t, ns, "yaml")()
 			regex := fmt.Sprintf("^NAME\tPHASE\tKIT\n\\s*java\tRunning\t"+
 				"(%s/%s|%s)\n\\s*yaml\tRunning\t(%s/%s|%s)\n", kitNamespace1, kitName1, kitName1, kitNamespace2, kitName2, kitName2)
-			Expect(GetOutputString(Kamel("get", "-n", ns))).To(MatchRegexp(regex))
+			Expect(GetOutputString(Kamel(t, "get", "-n", ns))).To(MatchRegexp(regex))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("get no integrations", func(t *testing.T) {
-			Expect(GetOutputString(Kamel("get", "-n", ns))).NotTo(ContainSubstring("Running"))
-			Expect(GetOutputString(Kamel("get", "-n", ns))).NotTo(ContainSubstring("Building Kit"))
+			Expect(GetOutputString(Kamel(t, "get", "-n", ns))).NotTo(ContainSubstring("Running"))
+			Expect(GetOutputString(Kamel(t, "get", "-n", ns))).NotTo(ContainSubstring("Building Kit"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/cli/help_test.go b/e2e/common/cli/help_test.go
index ac54e4b16..2507b6ec4 100644
--- a/e2e/common/cli/help_test.go
+++ b/e2e/common/cli/help_test.go
@@ -34,7 +34,7 @@ func TestKamelCLIHelp(t *testing.T) {
 	RegisterTestingT(t)
 
 	t.Run("default help message", func(t *testing.T) {
-		helpMsg := GetOutputString(Kamel("help"))
+		helpMsg := GetOutputString(Kamel(t, "help"))
 		Expect(helpMsg).To(ContainSubstring("Apache Camel K is a lightweight integration platform, born on Kubernetes"))
 		Expect(helpMsg).To(ContainSubstring("Usage:"))
 		Expect(helpMsg).To(ContainSubstring("Available Commands:"))
@@ -42,14 +42,14 @@ func TestKamelCLIHelp(t *testing.T) {
 	})
 
 	t.Run("'get' command help (short flag)", func(t *testing.T) {
-		helpMsg := GetOutputString(Kamel("get", "-h"))
+		helpMsg := GetOutputString(Kamel(t, "get", "-h"))
 		Expect(helpMsg).To(ContainSubstring("Get the status of integrations deployed on Kubernetes"))
 		Expect(helpMsg).To(ContainSubstring("Usage:"))
 		Expect(helpMsg).To(ContainSubstring("Flags:"))
 	})
 
 	t.Run("'bind' command help (long flag)", func(t *testing.T) {
-		helpMsg := GetOutputString(Kamel("bind", "--help"))
+		helpMsg := GetOutputString(Kamel(t, "bind", "--help"))
 		Expect(helpMsg).To(ContainSubstring("Bind Kubernetes resources, such as Kamelets, in an integration flow."))
 		Expect(helpMsg).To(ContainSubstring("kamel bind [source] [sink] ... [flags]"))
 		Expect(helpMsg).To(ContainSubstring("Global Flags:"))
diff --git a/e2e/common/cli/log_test.go b/e2e/common/cli/log_test.go
index 093872822..d2baf7c45 100644
--- a/e2e/common/cli/log_test.go
+++ b/e2e/common/cli/log_test.go
@@ -34,24 +34,24 @@ import (
 func TestKamelCLILog(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("check integration log", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml", "--name", "log-yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "log-yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml", "--name", "log-yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "log-yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 			// first line of the integration logs
-			firstLine := strings.Split(IntegrationLogs(ns, "log-yaml")(), "\n")[0]
-			podName := IntegrationPod(ns, "log-yaml")().Name
+			firstLine := strings.Split(IntegrationLogs(t, ns, "log-yaml")(), "\n")[0]
+			podName := IntegrationPod(t, ns, "log-yaml")().Name
 
-			logsCLI := GetOutputStringAsync(Kamel("log", "log-yaml", "-n", ns))
+			logsCLI := GetOutputStringAsync(Kamel(t, "log", "log-yaml", "-n", ns))
 			Eventually(logsCLI).Should(ContainSubstring("Monitoring pod " + podName))
 			Eventually(logsCLI).Should(ContainSubstring(firstLine))
 
-			logs := strings.Split(IntegrationLogs(ns, "log-yaml")(), "\n")
+			logs := strings.Split(IntegrationLogs(t, ns, "log-yaml")(), "\n")
 			lastLine := logs[len(logs)-1]
 
-			logsCLI = GetOutputStringAsync(Kamel("log", "log-yaml", "-n", ns, "--tail", "5"))
+			logsCLI = GetOutputStringAsync(Kamel(t, "log", "log-yaml", "-n", ns, "--tail", "5"))
 			Eventually(logsCLI).Should(ContainSubstring("Monitoring pod " + podName))
 			Eventually(logsCLI).Should(ContainSubstring(lastLine))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/cli/offline_commands_test.go b/e2e/common/cli/offline_commands_test.go
index 0027e8b7d..5a5e7d32d 100644
--- a/e2e/common/cli/offline_commands_test.go
+++ b/e2e/common/cli/offline_commands_test.go
@@ -35,13 +35,13 @@ import (
 func TestKamelVersionWorksOffline(t *testing.T) {
 	RegisterTestingT(t)
 
-	assert.Nil(t, Kamel("version", "--kube-config", "non-existent-kubeconfig-file").Execute())
+	assert.Nil(t, Kamel(t, "version", "--kube-config", "non-existent-kubeconfig-file").Execute())
 }
 
 func TestKamelHelpOptionWorksOffline(t *testing.T) {
 	RegisterTestingT(t)
 
-	traitCmd := Kamel("run", "Xxx.java", "--help")
+	traitCmd := Kamel(t, "run", "Xxx.java", "--help")
 	traitCmd.SetOut(io.Discard)
 	assert.Nil(t, traitCmd.Execute())
 }
@@ -49,9 +49,9 @@ func TestKamelHelpOptionWorksOffline(t *testing.T) {
 func TestKamelCompletionWorksOffline(t *testing.T) {
 	RegisterTestingT(t)
 
-	bashCmd := Kamel("completion", "bash", "--kube-config", "non-existent-kubeconfig-file")
+	bashCmd := Kamel(t, "completion", "bash", "--kube-config", "non-existent-kubeconfig-file")
 	bashCmd.SetOut(io.Discard)
-	zshCmd := Kamel("completion", "zsh", "--kube-config", "non-existent-kubeconfig-file")
+	zshCmd := Kamel(t, "completion", "zsh", "--kube-config", "non-existent-kubeconfig-file")
 	zshCmd.SetOut(io.Discard)
 	assert.Nil(t, bashCmd.Execute())
 	assert.Nil(t, zshCmd.Execute())
diff --git a/e2e/common/cli/run_test.go b/e2e/common/cli/run_test.go
index 692b4a20f..7bcf6f7b6 100644
--- a/e2e/common/cli/run_test.go
+++ b/e2e/common/cli/run_test.go
@@ -43,34 +43,34 @@ func TestKamelCLIRun(t *testing.T) {
 
 		t.Run("Examples from GitHub", func(t *testing.T) {
 			t.Run("Java", func(t *testing.T) {
-				Expect(KamelRunWithID(operatorID, ns,
+				Expect(KamelRunWithID(t, operatorID, ns,
 					"github:apache/camel-k-examples/generic-examples/languages/Sample.java").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, "sample"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, "sample", v1.IntegrationConditionReady), TestTimeoutShort).
+				Eventually(IntegrationPodPhase(t, ns, "sample"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, "sample", v1.IntegrationConditionReady), TestTimeoutShort).
 					Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, "sample"), TestTimeoutShort).Should(ContainSubstring("Hello Camel K!"))
-				Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+				Eventually(IntegrationLogs(t, ns, "sample"), TestTimeoutShort).Should(ContainSubstring("Hello Camel K!"))
+				Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 			})
 
 			t.Run("Java (RAW)", func(t *testing.T) {
-				Expect(KamelRunWithID(operatorID, ns,
+				Expect(KamelRunWithID(t, operatorID, ns,
 					"https://raw.githubusercontent.com/apache/camel-k-examples/main/generic-examples/languages/Sample.java").Execute()).
 					To(Succeed())
-				Eventually(IntegrationPodPhase(ns, "sample"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, "sample", v1.IntegrationConditionReady), TestTimeoutShort).
+				Eventually(IntegrationPodPhase(t, ns, "sample"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, "sample", v1.IntegrationConditionReady), TestTimeoutShort).
 					Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, "sample"), TestTimeoutShort).Should(ContainSubstring("Hello Camel K!"))
-				Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+				Eventually(IntegrationLogs(t, ns, "sample"), TestTimeoutShort).Should(ContainSubstring("Hello Camel K!"))
+				Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 			})
 
 			t.Run("Java (branch)", func(t *testing.T) {
-				Expect(KamelRunWithID(operatorID, ns,
+				Expect(KamelRunWithID(t, operatorID, ns,
 					"github:apache/camel-k-examples/generic-examples/languages/Sample.java?branch=main").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, "sample"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, "sample", v1.IntegrationConditionReady), TestTimeoutShort).
+				Eventually(IntegrationPodPhase(t, ns, "sample"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, "sample", v1.IntegrationConditionReady), TestTimeoutShort).
 					Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, "sample"), TestTimeoutShort).Should(ContainSubstring("Hello Camel K!"))
-				Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+				Eventually(IntegrationLogs(t, ns, "sample"), TestTimeoutShort).Should(ContainSubstring("Hello Camel K!"))
+				Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 			})
 
 			// GIST does not like GITHUB_TOKEN apparently, we must temporarily remove it
@@ -79,26 +79,26 @@ func TestKamelCLIRun(t *testing.T) {
 
 			t.Run("Gist (ID)", func(t *testing.T) {
 				name := RandomizedSuffixName("github-gist-id")
-				Expect(KamelRunWithID(operatorID, ns, "--name", name,
+				Expect(KamelRunWithID(t, operatorID, ns, "--name", name,
 					"gist:e2c3f9a5fd0d9e79b21b04809786f17a").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 					Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Tick!"))
-				Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Tick!"))
+				Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 			})
 
 			t.Run("Gist (URL)", func(t *testing.T) {
 				name := RandomizedSuffixName("github-gist-url")
-				Expect(KamelRunWithID(operatorID, ns, "--name", name,
+				Expect(KamelRunWithID(t, operatorID, ns, "--name", name,
 					"https://gist.github.com/lburgazzoli/e2c3f9a5fd0d9e79b21b04809786f17a").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 					Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Tick!"))
-				Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Tick!"))
+				Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 			})
 
 			// Revert GITHUB TOKEN
@@ -106,76 +106,76 @@ func TestKamelCLIRun(t *testing.T) {
 			os.Unsetenv("GITHUB_TOKEN_TMP")
 
 			// Clean up
-			Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+			Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 		})
 
 		t.Run("Run and update", func(t *testing.T) {
 			name := RandomizedSuffixName("run")
-			Expect(KamelRunWithID(operatorID, ns, "files/run.yaml", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Expect(KamelRunWithID(t, operatorID, ns, "files/run.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magic default"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magic default"))
 
 			// Re-run the Integration with an updated configuration
-			Expect(KamelRunWithID(operatorID, ns, "files/run.yaml", "--name", name, "-p", "property=value").Execute()).
+			Expect(KamelRunWithID(t, operatorID, ns, "files/run.yaml", "--name", name, "-p", "property=value").Execute()).
 				To(Succeed())
 
 			// Check the Deployment has progressed successfully
-			Eventually(DeploymentCondition(ns, name, appsv1.DeploymentProgressing), TestTimeoutShort).
+			Eventually(DeploymentCondition(t, ns, name, appsv1.DeploymentProgressing), TestTimeoutShort).
 				Should(MatchFields(IgnoreExtras, Fields{
 					"Status": Equal(corev1.ConditionTrue),
 					"Reason": Equal("NewReplicaSetAvailable"),
 				}))
 
 			// Check the new configuration is taken into account
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutShort).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutShort).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magic value"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magic value"))
 
 			// Clean up
-			Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+			Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 		})
 
 		t.Run("Run with glob patterns", func(t *testing.T) {
 			t.Run("YAML", func(t *testing.T) {
 				name := RandomizedSuffixName("run")
-				Expect(KamelRunWithID(operatorID, ns, "files/glob/run*", "--name", name).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+				Expect(KamelRunWithID(t, operatorID, ns, "files/glob/run*", "--name", name).Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 					Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Hello run 1 default"))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Hello run 2 default"))
-				Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Hello run 1 default"))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Hello run 2 default"))
+				Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 			})
 
 			t.Run("Java", func(t *testing.T) {
 				name := RandomizedSuffixName("java")
-				Expect(KamelRunWithID(operatorID, ns, "files/glob/Java*", "--name", name).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+				Expect(KamelRunWithID(t, operatorID, ns, "files/glob/Java*", "--name", name).Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 					Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Hello java 1 default"))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Hello java 2 default"))
-				Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Hello java 1 default"))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Hello java 2 default"))
+				Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 			})
 
 			t.Run("All", func(t *testing.T) {
 				name := RandomizedSuffixName("java")
-				Expect(KamelRunWithID(operatorID, ns, "files/glob/*", "--name", name).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+				Expect(KamelRunWithID(t, operatorID, ns, "files/glob/*", "--name", name).Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 					Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Hello run 1 default"))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Hello run 2 default"))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Hello java 1 default"))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Hello java 2 default"))
-				Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Hello run 1 default"))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Hello run 2 default"))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Hello java 1 default"))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Hello java 2 default"))
+				Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 			})
 
 			// Clean up
-			Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+			Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 		})
 	})
 
@@ -192,15 +192,15 @@ func TestKamelCLIRun(t *testing.T) {
 			}
 			// Requires a local integration platform in order to resolve the insecure registry
 			// Install platform (use the installer to get staging if present)
-			Expect(KamelInstallWithID("local-platform", ns, "--skip-operator-setup").Execute()).To(Succeed())
+			Expect(KamelInstallWithID(t, "local-platform", ns, "--skip-operator-setup").Execute()).To(Succeed())
 
-			Expect(KamelRunWithID(operatorID, ns, "../traits/files/jvm/Classpath.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "../traits/files/jvm/Classpath.java",
 				"-d", sampleJar,
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!"))
-			Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+			Eventually(IntegrationPodPhase(t, ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!"))
+			Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 		})
 	})
 
@@ -217,18 +217,18 @@ func TestKamelCLIRun(t *testing.T) {
 			}
 			// Requires a local integration platform in order to resolve the insecure registry
 			// Install platform (use the installer to get staging if present)
-			Expect(KamelInstallWithID("local-platform", ns, "--skip-operator-setup").Execute()).To(Succeed())
+			Expect(KamelInstallWithID(t, "local-platform", ns, "--skip-operator-setup").Execute()).To(Succeed())
 
-			Expect(KamelRunWithID(operatorID, ns, "../traits/files/jvm/Classpath.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "../traits/files/jvm/Classpath.java",
 				"-d", sampleJar,
 				"-d", "https://raw.githubusercontent.com/apache/camel-k-examples/main/generic-examples/languages/Sample.java|targetPath=/tmp/foo",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!"))
-			Eventually(DeleteIntegrations(ns), TestTimeoutLong).Should(Equal(0))
+			Eventually(IntegrationPodPhase(t, ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!"))
+			Eventually(DeleteIntegrations(t, ns), TestTimeoutLong).Should(Equal(0))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/cli/version_test.go b/e2e/common/cli/version_test.go
index 202135e14..6b8e5deae 100644
--- a/e2e/common/cli/version_test.go
+++ b/e2e/common/cli/version_test.go
@@ -35,7 +35,7 @@ func TestKamelCLIVersion(t *testing.T) {
 	RegisterTestingT(t)
 
 	t.Run("check version correctness", func(t *testing.T) {
-		version := GetOutputString(Kamel("version"))
+		version := GetOutputString(Kamel(t, "version"))
 		Expect(version).To(ContainSubstring(defaults.Version))
 	})
 }
diff --git a/e2e/common/config/config_reload_test.go b/e2e/common/config/config_reload_test.go
index b8e3dd33b..9e0a3bcbf 100644
--- a/e2e/common/config/config_reload_test.go
+++ b/e2e/common/config/config_reload_test.go
@@ -35,15 +35,17 @@ import (
 )
 
 func TestConfigmapHotReload(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		name := RandomizedSuffixName("config-configmap-route")
 
 		var cmData = make(map[string]string)
 		cmData["my-configmap-key"] = "my configmap content"
-		CreatePlainTextConfigmapWithLabels(ns, "my-hot-cm", cmData, map[string]string{"camel.apache.org/integration": "test"})
+		CreatePlainTextConfigmapWithLabels(t, ns, "my-hot-cm", cmData, map[string]string{"camel.apache.org/integration": "test"})
 
-		Expect(KamelRunWithID(operatorID, ns,
+		Expect(KamelRunWithID(t, operatorID, ns,
 			"./files/config-configmap-route.groovy",
 			"--config",
 			"configmap:my-hot-cm",
@@ -52,15 +54,15 @@ func TestConfigmapHotReload(t *testing.T) {
 			"--name",
 			name,
 		).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("my configmap content"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("my configmap content"))
 
 		cmData["my-configmap-key"] = "my configmap content updated"
-		UpdatePlainTextConfigmapWithLabels(ns, "my-hot-cm", cmData, map[string]string{"camel.apache.org/integration": "test"})
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("my configmap content updated"))
+		UpdatePlainTextConfigmapWithLabels(t, ns, "my-hot-cm", cmData, map[string]string{"camel.apache.org/integration": "test"})
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("my configmap content updated"))
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -71,23 +73,23 @@ func TestConfigmapHotReloadDefault(t *testing.T) {
 
 		var cmData = make(map[string]string)
 		cmData["my-configmap-key"] = "my configmap content"
-		CreatePlainTextConfigmapWithLabels(ns, "my-hot-cm-2", cmData, map[string]string{"camel.apache.org/integration": "test"})
+		CreatePlainTextConfigmapWithLabels(t, ns, "my-hot-cm-2", cmData, map[string]string{"camel.apache.org/integration": "test"})
 
-		Expect(KamelRunWithID(operatorID, ns, "./files/config-configmap-route.groovy",
+		Expect(KamelRunWithID(t, operatorID, ns, "./files/config-configmap-route.groovy",
 			"--config",
 			"configmap:my-hot-cm-2",
 			"--name",
 			name,
 		).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("my configmap content"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("my configmap content"))
 
 		cmData["my-configmap-key"] = "my configmap content updated"
-		UpdatePlainTextConfigmapWithLabels(ns, "my-hot-cm-2", cmData, map[string]string{"camel.apache.org/integration": "test"})
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(Not(ContainSubstring("my configmap content updated")))
+		UpdatePlainTextConfigmapWithLabels(t, ns, "my-hot-cm-2", cmData, map[string]string{"camel.apache.org/integration": "test"})
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(Not(ContainSubstring("my configmap content updated")))
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -98,9 +100,9 @@ func TestSecretHotReload(t *testing.T) {
 
 		var secData = make(map[string]string)
 		secData["my-secret-key"] = "very top secret"
-		CreatePlainTextSecretWithLabels(ns, "my-hot-sec", secData, map[string]string{"camel.apache.org/integration": "test"})
+		CreatePlainTextSecretWithLabels(t, ns, "my-hot-sec", secData, map[string]string{"camel.apache.org/integration": "test"})
 
-		Expect(KamelRunWithID(operatorID, ns, "./files/config-secret-route.groovy",
+		Expect(KamelRunWithID(t, operatorID, ns, "./files/config-secret-route.groovy",
 			"--config",
 			"secret:my-hot-sec",
 			"-t",
@@ -108,15 +110,15 @@ func TestSecretHotReload(t *testing.T) {
 			"--name",
 			name,
 		).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("very top secret"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("very top secret"))
 
 		secData["my-secret-key"] = "very top secret updated"
-		UpdatePlainTextSecretWithLabels(ns, "my-hot-sec", secData, map[string]string{"camel.apache.org/integration": "test"})
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("very top secret updated"))
+		UpdatePlainTextSecretWithLabels(t, ns, "my-hot-sec", secData, map[string]string{"camel.apache.org/integration": "test"})
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("very top secret updated"))
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -133,7 +135,7 @@ func CheckConfigmapWithOwnerRef(t *testing.T, hotreload bool) {
 
 		name := RandomizedSuffixName("config-configmap-route")
 		cmName := RandomizedSuffixName("my-hot-cm-")
-		Expect(KamelRunWithID(operatorID, ns, "./files/config-configmap-route.groovy",
+		Expect(KamelRunWithID(t, operatorID, ns, "./files/config-configmap-route.groovy",
 			"--config",
 			"configmap:"+cmName,
 			"--name",
@@ -142,19 +144,19 @@ func CheckConfigmapWithOwnerRef(t *testing.T, hotreload bool) {
 			"mount.hot-reload="+strconv.FormatBool(hotreload),
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPhase(ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
+		Eventually(IntegrationPhase(t, ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
 		var cmData = make(map[string]string)
 		cmData["my-configmap-key"] = "my configmap content"
-		CreatePlainTextConfigmapWithOwnerRefWithLabels(ns, cmName, cmData, name, Integration(ns, name)().UID, map[string]string{"camel.apache.org/integration": "test"})
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutLong).Should(ContainSubstring("my configmap content"))
+		CreatePlainTextConfigmapWithOwnerRefWithLabels(t, ns, cmName, cmData, name, Integration(t, ns, name)().UID, map[string]string{"camel.apache.org/integration": "test"})
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutLong).Should(ContainSubstring("my configmap content"))
 		cmData["my-configmap-key"] = "my configmap content updated"
-		UpdatePlainTextConfigmapWithLabels(ns, cmName, cmData, map[string]string{"camel.apache.org/integration": "test"})
+		UpdatePlainTextConfigmapWithLabels(t, ns, cmName, cmData, map[string]string{"camel.apache.org/integration": "test"})
 		if hotreload {
-			Eventually(IntegrationLogs(ns, name), TestTimeoutLong).Should(ContainSubstring("my configmap content updated"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutLong).Should(ContainSubstring("my configmap content updated"))
 		} else {
-			Eventually(IntegrationLogs(ns, name), TestTimeoutLong).Should(Not(ContainSubstring("my configmap content updated")))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutLong).Should(Not(ContainSubstring("my configmap content updated")))
 		}
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/config/config_test.go b/e2e/common/config/config_test.go
index a799063e5..0d8f8fb21 100644
--- a/e2e/common/config/config_test.go
+++ b/e2e/common/config/config_test.go
@@ -35,102 +35,104 @@ import (
 )
 
 func TestRunConfigExamples(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Simple property", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "my.message=test-property").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("test-property"))
-			Expect(Kamel("delete", "property-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/property-route.groovy", "-p", "my.message=test-property").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("test-property"))
+			Expect(Kamel(t, "delete", "property-route", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Property file", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/property-file-route.groovy", "--property", "file:./files/my.properties").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "property-file-route"), TestTimeoutShort).Should(ContainSubstring("hello world"))
-			Expect(Kamel("delete", "property-file-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/property-file-route.groovy", "--property", "file:./files/my.properties").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "property-file-route"), TestTimeoutShort).Should(ContainSubstring("hello world"))
+			Expect(Kamel(t, "delete", "property-file-route", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Property precedence", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/property-file-route.groovy", "-p", "my.key.2=universe", "-p", "file:./files/my.properties").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "property-file-route"), TestTimeoutShort).Should(ContainSubstring("hello universe"))
-			Expect(Kamel("delete", "property-file-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/property-file-route.groovy", "-p", "my.key.2=universe", "-p", "file:./files/my.properties").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "property-file-route"), TestTimeoutShort).Should(ContainSubstring("hello universe"))
+			Expect(Kamel(t, "delete", "property-file-route", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Property from ConfigMap", func(t *testing.T) {
 			var cmData = make(map[string]string)
 			cmData["my.message"] = "my-configmap-property-value"
-			CreatePlainTextConfigmap(ns, "my-cm-test-property", cmData)
+			CreatePlainTextConfigmap(t, ns, "my-cm-test-property", cmData)
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "configmap:my-cm-test-property").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-configmap-property-value"))
-			Expect(Kamel("delete", "property-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/property-route.groovy", "-p", "configmap:my-cm-test-property").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-configmap-property-value"))
+			Expect(Kamel(t, "delete", "property-route", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Property from ConfigMap as property file", func(t *testing.T) {
 			var cmData = make(map[string]string)
 			cmData["my.properties"] = "my.message=my-configmap-property-entry"
-			CreatePlainTextConfigmap(ns, "my-cm-test-properties", cmData)
+			CreatePlainTextConfigmap(t, ns, "my-cm-test-properties", cmData)
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "configmap:my-cm-test-properties").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-configmap-property-entry"))
-			Expect(Kamel("delete", "property-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/property-route.groovy", "-p", "configmap:my-cm-test-properties").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-configmap-property-entry"))
+			Expect(Kamel(t, "delete", "property-route", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Property from Secret", func(t *testing.T) {
 			var secData = make(map[string]string)
 			secData["my.message"] = "my-secret-property-value"
-			CreatePlainTextSecret(ns, "my-sec-test-property", secData)
+			CreatePlainTextSecret(t, ns, "my-sec-test-property", secData)
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "secret:my-sec-test-property").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-property-value"))
-			Expect(Kamel("delete", "property-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/property-route.groovy", "-p", "secret:my-sec-test-property").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-property-value"))
+			Expect(Kamel(t, "delete", "property-route", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Property from Secret as property file", func(t *testing.T) {
 			var secData = make(map[string]string)
 			secData["my.properties"] = "my.message=my-secret-property-entry"
-			CreatePlainTextSecret(ns, "my-sec-test-properties", secData)
+			CreatePlainTextSecret(t, ns, "my-sec-test-properties", secData)
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/property-route.groovy", "-p", "secret:my-sec-test-properties").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-property-entry"))
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/property-route.groovy", "-p", "secret:my-sec-test-properties").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "property-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-property-entry"))
 		})
 
 		t.Run("Property from Secret inlined", func(t *testing.T) {
 			var secData = make(map[string]string)
 			secData["my-message"] = "my-secret-external-value"
-			CreatePlainTextSecret(ns, "my-sec-inlined", secData)
+			CreatePlainTextSecret(t, ns, "my-sec-inlined", secData)
 
 			// TODO: remove jvm.options trait as soon as CAMEL-20054 gets fixed
-			Expect(KamelRunWithID(operatorID, ns, "./files/property-secret-route.groovy",
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/property-secret-route.groovy",
 				"-t", "mount.configs=secret:my-sec-inlined",
 				"-t", "jvm.options=-Dcamel.k.mount-path.secrets=/etc/camel/conf.d/_secrets",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "property-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "property-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "property-secret-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-external-value"))
+			Eventually(IntegrationPodPhase(t, ns, "property-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "property-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "property-secret-route"), TestTimeoutShort).Should(ContainSubstring("my-secret-external-value"))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, "property-secret-route")).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, "property-secret-route")()
+			Eventually(UnstructuredIntegration(t, ns, "property-secret-route")).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, "property-secret-route")()
 			mountTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "mount")
 			Expect(mountTrait).ToNot(BeNil())
 			Expect(len(mountTrait)).To(Equal(1))
 			Expect(mountTrait["configs"]).ToNot(BeNil())
 
-			Expect(Kamel("delete", "property-secret-route", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "property-secret-route", "-n", ns).Execute()).To(Succeed())
 
 		})
 
@@ -139,59 +141,59 @@ func TestRunConfigExamples(t *testing.T) {
 		// Store a configmap on the cluster
 		var cmData = make(map[string]string)
 		cmData["my-configmap-key"] = "my-configmap-content"
-		CreatePlainTextConfigmap(ns, "my-cm", cmData)
+		CreatePlainTextConfigmap(t, ns, "my-cm", cmData)
 
 		// Store a configmap with multiple values
 		var cmDataMulti = make(map[string]string)
 		cmDataMulti["my-configmap-key"] = "should-not-see-it"
 		cmDataMulti["my-configmap-key-2"] = "my-configmap-content-2"
-		CreatePlainTextConfigmap(ns, "my-cm-multi", cmDataMulti)
+		CreatePlainTextConfigmap(t, ns, "my-cm-multi", cmDataMulti)
 
 		t.Run("Config configmap", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/config-configmap-route.groovy", "--config", "configmap:my-cm").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "config-configmap-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "config-configmap-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "config-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"]))
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/config-configmap-route.groovy", "--config", "configmap:my-cm").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "config-configmap-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "config-configmap-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "config-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"]))
 		})
 
 		t.Run("Resource configmap", func(t *testing.T) {
 			// We can reuse the configmap created previously
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/resource-configmap-route.groovy", "--resource", "configmap:my-cm").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "resource-configmap-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "resource-configmap-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "resource-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"]))
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/resource-configmap-route.groovy", "--resource", "configmap:my-cm").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "resource-configmap-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "resource-configmap-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "resource-configmap-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"]))
 		})
 
 		t.Run("Resource configmap with destination", func(t *testing.T) {
 			// We can reuse the configmap created previously
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/resource-configmap-location-route.groovy", "--resource", "configmap:my-cm@/tmp/app").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "resource-configmap-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "resource-configmap-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "resource-configmap-location-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"]))
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/resource-configmap-location-route.groovy", "--resource", "configmap:my-cm@/tmp/app").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "resource-configmap-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "resource-configmap-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "resource-configmap-location-route"), TestTimeoutShort).Should(ContainSubstring(cmData["my-configmap-key"]))
 		})
 
 		t.Run("Resource configmap with filtered key and destination", func(t *testing.T) {
 			// We'll use the configmap contaning 2 values filtering only 1 key
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/resource-configmap-key-location-route.groovy", "--resource", "configmap:my-cm-multi/my-configmap-key-2@/tmp/app/test.txt").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "resource-configmap-key-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "resource-configmap-key-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "resource-configmap-key-location-route"), TestTimeoutShort).ShouldNot(ContainSubstring(cmDataMulti["my-configmap-key"]))
-			Eventually(IntegrationLogs(ns, "resource-configmap-key-location-route"), TestTimeoutShort).Should(ContainSubstring(cmDataMulti["my-configmap-key-2"]))
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/resource-configmap-key-location-route.groovy", "--resource", "configmap:my-cm-multi/my-configmap-key-2@/tmp/app/test.txt").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "resource-configmap-key-location-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "resource-configmap-key-location-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "resource-configmap-key-location-route"), TestTimeoutShort).ShouldNot(ContainSubstring(cmDataMulti["my-configmap-key"]))
+			Eventually(IntegrationLogs(t, ns, "resource-configmap-key-location-route"), TestTimeoutShort).Should(ContainSubstring(cmDataMulti["my-configmap-key-2"]))
 		})
 
 		// Store a configmap as property file
 		var cmDataProps = make(map[string]string)
 		cmDataProps["my.properties"] = "my.key.1=hello\nmy.key.2=world"
-		CreatePlainTextConfigmap(ns, "my-cm-properties", cmDataProps)
+		CreatePlainTextConfigmap(t, ns, "my-cm-properties", cmDataProps)
 
 		t.Run("Config configmap as property file", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/config-configmap-properties-route.groovy", "--config", "configmap:my-cm-properties").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "config-configmap-properties-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "config-configmap-properties-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "config-configmap-properties-route"), TestTimeoutShort).Should(ContainSubstring("hello world"))
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/config-configmap-properties-route.groovy", "--config", "configmap:my-cm-properties").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "config-configmap-properties-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "config-configmap-properties-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "config-configmap-properties-route"), TestTimeoutShort).Should(ContainSubstring("hello world"))
 		})
 
 		// Secret
@@ -199,127 +201,127 @@ func TestRunConfigExamples(t *testing.T) {
 		// Store a secret on the cluster
 		var secData = make(map[string]string)
 		secData["my-secret-key"] = "very top secret"
-		CreatePlainTextSecret(ns, "my-sec", secData)
+		CreatePlainTextSecret(t, ns, "my-sec", secData)
 
 		// Store a secret with multi values
 		var secDataMulti = make(map[string]string)
 		secDataMulti["my-secret-key"] = "very top secret"
 		secDataMulti["my-secret-key-2"] = "even more secret"
-		CreatePlainTextSecret(ns, "my-sec-multi", secDataMulti)
+		CreatePlainTextSecret(t, ns, "my-sec-multi", secDataMulti)
 
 		t.Run("Config secret", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/config-secret-route.groovy", "--config", "secret:my-sec").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "config-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "config-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "config-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"]))
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/config-secret-route.groovy", "--config", "secret:my-sec").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "config-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "config-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "config-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"]))
 		})
 
 		t.Run("Resource secret", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/resource-secret-route.groovy", "--resource", "secret:my-sec").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "resource-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "resource-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "resource-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"]))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/resource-secret-route.groovy", "--resource", "secret:my-sec").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "resource-secret-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "resource-secret-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "resource-secret-route"), TestTimeoutShort).Should(ContainSubstring(secData["my-secret-key"]))
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Secret with filtered key", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/config-secret-key-route.groovy", "--config", "secret:my-sec-multi/my-secret-key-2").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "config-secret-key-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "config-secret-key-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "config-secret-key-route"), TestTimeoutShort).ShouldNot(ContainSubstring(secDataMulti["my-secret-key"]))
-			Eventually(IntegrationLogs(ns, "config-secret-key-route"), TestTimeoutShort).Should(ContainSubstring(secDataMulti["my-secret-key-2"]))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/config-secret-key-route.groovy", "--config", "secret:my-sec-multi/my-secret-key-2").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "config-secret-key-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "config-secret-key-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "config-secret-key-route"), TestTimeoutShort).ShouldNot(ContainSubstring(secDataMulti["my-secret-key"]))
+			Eventually(IntegrationLogs(t, ns, "config-secret-key-route"), TestTimeoutShort).Should(ContainSubstring(secDataMulti["my-secret-key-2"]))
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		// Build-Properties
 		t.Run("Build time property", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/build-property-route.groovy", "--build-property", "quarkus.application.name=my-super-application").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "build-property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "build-property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "build-property-route"), TestTimeoutShort).Should(ContainSubstring("my-super-application"))
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/build-property-route.groovy", "--build-property", "quarkus.application.name=my-super-application").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "build-property-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "build-property-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "build-property-route"), TestTimeoutShort).Should(ContainSubstring("my-super-application"))
 			// Don't delete - we need it for next test execution
 		})
 
 		// We need to check also that the property (which is available in the IntegrationKit) is correctly replaced and we don't reuse the same kit
 		t.Run("Build time property updated", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/build-property-route.groovy", "--name", "build-property-route-updated",
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/build-property-route.groovy", "--name", "build-property-route-updated",
 				"--build-property", "quarkus.application.name=my-super-application-updated").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "build-property-route-updated"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "build-property-route-updated", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "build-property-route-updated"), TestTimeoutShort).Should(ContainSubstring("my-super-application-updated"))
+			Eventually(IntegrationPodPhase(t, ns, "build-property-route-updated"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "build-property-route-updated", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "build-property-route-updated"), TestTimeoutShort).Should(ContainSubstring("my-super-application-updated"))
 			// Verify the integration kits are different
-			Eventually(IntegrationKit(ns, "build-property-route-updated")).ShouldNot(Equal(IntegrationKit(ns, "build-property-route")()))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Eventually(IntegrationKit(t, ns, "build-property-route-updated")).ShouldNot(Equal(IntegrationKit(t, ns, "build-property-route")()))
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		// Build-Properties file
 		t.Run("Build time property file", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "file:./files/quarkus.properties").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-super-application"))
-			Expect(Kamel("delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "file:./files/quarkus.properties").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-super-application"))
+			Expect(Kamel(t, "delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Build time property file with precedence", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "quarkus.application.name=my-overridden-application", "--build-property", "file:./files/quarkus.properties").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutMedium).Should(ContainSubstring("my-overridden-application"))
-			Expect(Kamel("delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "quarkus.application.name=my-overridden-application", "--build-property", "file:./files/quarkus.properties").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "build-property-file-route"), TestTimeoutMedium).Should(ContainSubstring("my-overridden-application"))
+			Expect(Kamel(t, "delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Build time property from ConfigMap", func(t *testing.T) {
 			var cmData = make(map[string]string)
 			cmData["quarkus.application.name"] = "my-cool-application"
-			CreatePlainTextConfigmap(ns, "my-cm-test-build-property", cmData)
+			CreatePlainTextConfigmap(t, ns, "my-cm-test-build-property", cmData)
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "configmap:my-cm-test-build-property").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutLong).Should(ContainSubstring("my-cool-application"))
-			Expect(Kamel("delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "configmap:my-cm-test-build-property").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "build-property-file-route"), TestTimeoutLong).Should(ContainSubstring("my-cool-application"))
+			Expect(Kamel(t, "delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Build time property from ConfigMap as property file", func(t *testing.T) {
 			var cmData = make(map[string]string)
 			cmData["my.properties"] = "quarkus.application.name=my-super-cool-application"
-			CreatePlainTextConfigmap(ns, "my-cm-test-build-properties", cmData)
+			CreatePlainTextConfigmap(t, ns, "my-cm-test-build-properties", cmData)
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "configmap:my-cm-test-build-properties").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-super-cool-application"))
-			Expect(Kamel("delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "configmap:my-cm-test-build-properties").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-super-cool-application"))
+			Expect(Kamel(t, "delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
 
 		})
 
 		t.Run("Build time property from Secret", func(t *testing.T) {
 			var secData = make(map[string]string)
 			secData["quarkus.application.name"] = "my-great-application"
-			CreatePlainTextSecret(ns, "my-sec-test-build-property", secData)
+			CreatePlainTextSecret(t, ns, "my-sec-test-build-property", secData)
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "secret:my-sec-test-build-property").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-great-application"))
-			Expect(Kamel("delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "secret:my-sec-test-build-property").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-great-application"))
+			Expect(Kamel(t, "delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
 
 		})
 
 		t.Run("Build time property from Secret as property file", func(t *testing.T) {
 			var secData = make(map[string]string)
 			secData["my.properties"] = "quarkus.application.name=my-awsome-application"
-			CreatePlainTextSecret(ns, "my-sec-test-build-properties", secData)
+			CreatePlainTextSecret(t, ns, "my-sec-test-build-properties", secData)
 
-			Expect(KamelRunWithID(operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "secret:my-sec-test-build-properties").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-awsome-application"))
-			Expect(Kamel("delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/build-property-file-route.groovy", "--build-property", "secret:my-sec-test-build-properties").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "build-property-file-route"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "build-property-file-route", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "build-property-file-route"), TestTimeoutShort).Should(ContainSubstring("my-awsome-application"))
+			Expect(Kamel(t, "delete", "build-property-file-route", "-n", ns).Execute()).To(Succeed())
 
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/config/kamelet_config_test.go b/e2e/common/config/kamelet_config_test.go
index 931300bdc..21bb648eb 100644
--- a/e2e/common/config/kamelet_config_test.go
+++ b/e2e/common/config/kamelet_config_test.go
@@ -35,24 +35,26 @@ import (
 //
 //	without having to change the integration code.
 func TestKameletImplicitConfigDefaultUserPropery(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("run test default config using properties", func(t *testing.T) {
 
-			Expect(CreateTimerKamelet(ns, "iconfig01-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "iconfig01-timer-source")()).To(Succeed())
 
 			name := RandomizedSuffixName("iconfig-test-timer-source-int01")
-			Expect(KamelRunWithID(operatorID, ns, "files/TimerKameletIntegrationConfiguration01.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/TimerKameletIntegrationConfiguration01.java",
 				"-p", "camel.kamelet.iconfig01-timer-source.message='Default message 01'",
 				"--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("Default message 01"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("Default message 01"))
 
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteKamelet(ns, "iconfig01-timer-source")).To(Succeed())
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteKamelet(t, ns, "iconfig01-timer-source")).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -61,30 +63,30 @@ func TestKameletImplicitConfigDefaultMountedSecret(t *testing.T) {
 
 		t.Run("run test default config using mounted secret", func(t *testing.T) {
 
-			Expect(CreateTimerKamelet(ns, "iconfig03-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "iconfig03-timer-source")()).To(Succeed())
 
 			name := RandomizedSuffixName("iconfig-test-timer-source-int3")
 			secretName := "my-iconfig-int3-secret"
 
 			var secData = make(map[string]string)
 			secData["camel.kamelet.iconfig03-timer-source.message"] = "very top mounted secret message"
-			Expect(CreatePlainTextSecret(ns, secretName, secData)).To(Succeed())
-			Eventually(SecretByName(ns, secretName), TestTimeoutLong).Should(Not(BeNil()))
+			Expect(CreatePlainTextSecret(t, ns, secretName, secData)).To(Succeed())
+			Eventually(SecretByName(t, ns, secretName), TestTimeoutLong).Should(Not(BeNil()))
 
-			Expect(KamelRunWithID(operatorID, ns, "files/TimerKameletIntegrationConfiguration03.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/TimerKameletIntegrationConfiguration03.java",
 				"-t", "mount.configs=secret:"+secretName,
 				"--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("very top mounted secret message"))
-
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteSecret(ns, secretName)).To(Succeed())
-			Eventually(SecretByName(ns, secretName), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteKamelet(ns, "iconfig03-timer-source")).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("very top mounted secret message"))
+
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
+			Eventually(SecretByName(t, ns, secretName), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteKamelet(t, ns, "iconfig03-timer-source")).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -93,57 +95,57 @@ func TestKameletImplicitConfigDefaultMountedConfigmap(t *testing.T) {
 
 		t.Run("run test default config using mounted configmap", func(t *testing.T) {
 
-			Expect(CreateTimerKamelet(ns, "iconfig04-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "iconfig04-timer-source")()).To(Succeed())
 
 			name := RandomizedSuffixName("iconfig-test-timer-source-int4")
 			cmName := "my-iconfig-int4-configmap"
 
 			var cmData = make(map[string]string)
 			cmData["camel.kamelet.iconfig04-timer-source.message"] = "very top mounted configmap message"
-			Expect(CreatePlainTextConfigmap(ns, cmName, cmData)).To(Succeed())
+			Expect(CreatePlainTextConfigmap(t, ns, cmName, cmData)).To(Succeed())
 
-			Expect(KamelRunWithID(operatorID, ns, "files/TimerKameletIntegrationConfiguration04.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/TimerKameletIntegrationConfiguration04.java",
 				"-t", "mount.configs=configmap:"+cmName,
 				"--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("very top mounted configmap message"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("very top mounted configmap message"))
 
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteConfigmap(ns, cmName)).To(Succeed())
-			Expect(DeleteKamelet(ns, "iconfig04-timer-source")).To(Succeed())
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteConfigmap(t, ns, cmName)).To(Succeed())
+			Expect(DeleteKamelet(t, ns, "iconfig04-timer-source")).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestKameletImplicitConfigNamedUserPropery(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("run test named config using properties", func(t *testing.T) {
-			Expect(CreateTimerKamelet(ns, "iconfig05-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "iconfig05-timer-source")()).To(Succeed())
 
 			name := RandomizedSuffixName("iconfig-test-timer-source-int5")
-			Expect(KamelRunWithID(operatorID, ns, "files/TimerKameletIntegrationNamedConfiguration05.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/TimerKameletIntegrationNamedConfiguration05.java",
 				"-p", "camel.kamelet.iconfig05-timer-source.message='Default message 05'",
 				"-p", "camel.kamelet.iconfig05-timer-source.mynamedconfig.message='My Named Config message'",
 				"--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My Named Config message"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My Named Config message"))
 
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteKamelet(ns, "iconfig05-timer-source")).To(Succeed())
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteKamelet(t, ns, "iconfig05-timer-source")).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestKameletImplicitConfigNamedLabeledSecret(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("run test named config using labeled secret", func(t *testing.T) {
-			Expect(CreateTimerKamelet(ns, "iconfig06-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "iconfig06-timer-source")()).To(Succeed())
 
 			name := RandomizedSuffixName("iconfig-test-timer-source-int6")
 			secretName := "my-iconfig-int6-secret"
@@ -153,90 +155,90 @@ func TestKameletImplicitConfigNamedLabeledSecret(t *testing.T) {
 			var labels = make(map[string]string)
 			labels["camel.apache.org/kamelet"] = "iconfig06-timer-source"
 			labels["camel.apache.org/kamelet.configuration"] = "mynamedconfig"
-			Expect(CreatePlainTextSecretWithLabels(ns, secretName, secData, labels)).To(Succeed())
-			Eventually(SecretByName(ns, secretName), TestTimeoutLong).Should(Not(BeNil()))
+			Expect(CreatePlainTextSecretWithLabels(t, ns, secretName, secData, labels)).To(Succeed())
+			Eventually(SecretByName(t, ns, secretName), TestTimeoutLong).Should(Not(BeNil()))
 
-			Expect(KamelRunWithID(operatorID, ns, "files/TimerKameletIntegrationNamedConfiguration06.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/TimerKameletIntegrationNamedConfiguration06.java",
 				"-p", "camel.kamelet.iconfig06-timer-source.message='Default message 06'",
 				"--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("very top named secret message"))
-
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteSecret(ns, secretName)).To(Succeed())
-			Eventually(SecretByName(ns, secretName), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteKamelet(ns, "iconfig06-timer-source")).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("very top named secret message"))
+
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
+			Eventually(SecretByName(t, ns, secretName), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteKamelet(t, ns, "iconfig06-timer-source")).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestKameletImplicitConfigNamedMountedSecret(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("run test named config using mounted secret", func(t *testing.T) {
-			Expect(CreateTimerKamelet(ns, "iconfig07-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "iconfig07-timer-source")()).To(Succeed())
 
 			name := RandomizedSuffixName("iconfig-test-timer-source-int7")
 			secretName := "my-iconfig-int7-secret"
 
 			var secData = make(map[string]string)
 			secData["camel.kamelet.iconfig07-timer-source.mynamedconfig.message"] = "very top named mounted secret message"
-			Expect(CreatePlainTextSecret(ns, secretName, secData)).To(Succeed())
-			Eventually(SecretByName(ns, secretName), TestTimeoutLong).Should(Not(BeNil()))
+			Expect(CreatePlainTextSecret(t, ns, secretName, secData)).To(Succeed())
+			Eventually(SecretByName(t, ns, secretName), TestTimeoutLong).Should(Not(BeNil()))
 
-			Expect(KamelRunWithID(operatorID, ns, "files/TimerKameletIntegrationNamedConfiguration07.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/TimerKameletIntegrationNamedConfiguration07.java",
 				"-p", "camel.kamelet.iconfig07-timer-source.message='Default message 07'",
 				"-t", "mount.configs=secret:"+secretName,
 				"--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("very top named mounted secret message"))
-
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteSecret(ns, secretName)).To(Succeed())
-			Eventually(SecretByName(ns, secretName), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteKamelet(ns, "iconfig07-timer-source")).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("very top named mounted secret message"))
+
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
+			Eventually(SecretByName(t, ns, secretName), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteKamelet(t, ns, "iconfig07-timer-source")).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestKameletImplicitConfigNamedMountedConfigmap(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("run test named config using mounted configmap", func(t *testing.T) {
-			Expect(CreateTimerKamelet(ns, "iconfig08-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "iconfig08-timer-source")()).To(Succeed())
 
 			name := RandomizedSuffixName("iconfig-test-timer-source-int8")
 			cmName := "my-iconfig-int8-configmap"
 
 			var cmData = make(map[string]string)
 			cmData["camel.kamelet.iconfig08-timer-source.mynamedconfig.message"] = "very top named mounted configmap message"
-			Expect(CreatePlainTextConfigmap(ns, cmName, cmData)).To(Succeed())
+			Expect(CreatePlainTextConfigmap(t, ns, cmName, cmData)).To(Succeed())
 
-			Expect(KamelRunWithID(operatorID, ns, "files/TimerKameletIntegrationNamedConfiguration08.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/TimerKameletIntegrationNamedConfiguration08.java",
 				"-p", "camel.kamelet.iconfig08-timer-source.message='Default message 08'",
 				"-t", "mount.configs=configmap:"+cmName,
 				"--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("very top named mounted configmap message"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("very top named mounted configmap message"))
 
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteConfigmap(ns, cmName)).To(Succeed())
-			Expect(DeleteKamelet(ns, "iconfig08-timer-source")).To(Succeed())
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteConfigmap(t, ns, cmName)).To(Succeed())
+			Expect(DeleteKamelet(t, ns, "iconfig08-timer-source")).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestKameletImplicitConfigDefaultLabeledSecret(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("run test default config using labeled secret", func(t *testing.T) {
-			Expect(CreateTimerKamelet(ns, "iconfig09-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "iconfig09-timer-source")()).To(Succeed())
 
 			name := RandomizedSuffixName("iconfig-test-timer-source-int9")
 			secretName := "my-iconfig-int9-secret"
@@ -245,22 +247,22 @@ func TestKameletImplicitConfigDefaultLabeledSecret(t *testing.T) {
 			secData["camel.kamelet.iconfig09-timer-source.message"] = "very top labeled secret message"
 			var labels = make(map[string]string)
 			labels["camel.apache.org/kamelet"] = "iconfig09-timer-source"
-			Expect(CreatePlainTextSecretWithLabels(ns, secretName, secData, labels)).To(Succeed())
-			Eventually(SecretByName(ns, secretName), TestTimeoutLong).Should(Not(BeNil()))
+			Expect(CreatePlainTextSecretWithLabels(t, ns, secretName, secData, labels)).To(Succeed())
+			Eventually(SecretByName(t, ns, secretName), TestTimeoutLong).Should(Not(BeNil()))
 
-			Expect(KamelRunWithID(operatorID, ns, "files/TimerKameletIntegrationConfiguration09.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/TimerKameletIntegrationConfiguration09.java",
 				"--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("very top labeled secret message"))
-
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteSecret(ns, secretName)).To(Succeed())
-			Eventually(SecretByName(ns, secretName), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteKamelet(ns, "iconfig09-timer-source")).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("very top labeled secret message"))
+
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
+			Eventually(SecretByName(t, ns, secretName), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteKamelet(t, ns, "iconfig09-timer-source")).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -269,24 +271,24 @@ func TestKameletImplicitConfigDefaultLabeledSecret(t *testing.T) {
 func TestKameletConfigInlinedUserPropery(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("run test default config inlined properties", func(t *testing.T) {
-			Expect(CreateTimerKamelet(ns, "config01-timer-source")()).To(Succeed())
-			Expect(CreateLogKamelet(ns, "config01-log-sink")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "config01-timer-source")()).To(Succeed())
+			Expect(CreateLogKamelet(t, ns, "config01-log-sink")()).To(Succeed())
 
 			name := RandomizedSuffixName("config-test-timer-source-int1")
 
-			Expect(KamelRunWithID(operatorID, ns, "files/timer-kamelet-integration-inlined-configuration-01.yaml",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/timer-kamelet-integration-inlined-configuration-01.yaml",
 				"--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("important message"))
-			Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("integrationLogger"))
-
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-			Expect(DeleteKamelet(ns, "config01-timer-source")).To(Succeed())
-			Expect(DeleteKamelet(ns, "config01-log-sink")).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("important message"))
+			Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("integrationLogger"))
+
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(DeleteKamelet(t, ns, "config01-timer-source")).To(Succeed())
+			Expect(DeleteKamelet(t, ns, "config01-log-sink")).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -294,34 +296,34 @@ func TestKameletConfigDefaultParamUserPropery(t *testing.T) {
 	RegisterTestingT(t)
 	t.Run("run test default config parameters properties", func(t *testing.T) {
 
-		Expect(CreateTimerKamelet(ns, "config02-timer-source")()).To(Succeed())
-		Expect(CreateLogKamelet(ns, "config02-log-sink")()).To(Succeed())
+		Expect(CreateTimerKamelet(t, ns, "config02-timer-source")()).To(Succeed())
+		Expect(CreateLogKamelet(t, ns, "config02-log-sink")()).To(Succeed())
 
 		name := RandomizedSuffixName("config-test-timer-source-int2")
 
-		Expect(KamelRunWithID(operatorID, ns, "files/timer-kamelet-integration-parameters-configuration-02.yaml",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/timer-kamelet-integration-parameters-configuration-02.yaml",
 			"-p", "my-message='My parameter message 02'",
 			"-p", "my-logger='myIntegrationLogger02'",
 			"--name", name).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My parameter message 02"))
-		Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myIntegrationLogger02"))
-
-		Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-		Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-		Expect(DeleteKamelet(ns, "config02-timer-source")).To(Succeed())
-		Expect(DeleteKamelet(ns, "config02-log-sink")).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My parameter message 02"))
+		Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myIntegrationLogger02"))
+
+		Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+		Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+		Expect(DeleteKamelet(t, ns, "config02-timer-source")).To(Succeed())
+		Expect(DeleteKamelet(t, ns, "config02-log-sink")).To(Succeed())
 	})
 
-	Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+	Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 }
 
 func TestKameletConfigDefaultParamMountedSecret(t *testing.T) {
 	RegisterTestingT(t)
 	t.Run("run test default config secret properties", func(t *testing.T) {
 
-		Expect(CreateTimerKamelet(ns, "config03-timer-source")()).To(Succeed())
-		Expect(CreateLogKamelet(ns, "config03-log-sink")()).To(Succeed())
+		Expect(CreateTimerKamelet(t, ns, "config03-timer-source")()).To(Succeed())
+		Expect(CreateLogKamelet(t, ns, "config03-log-sink")()).To(Succeed())
 
 		name := RandomizedSuffixName("config-test-timer-source-int3")
 		secretName := "my-config-int3-secret"
@@ -329,31 +331,31 @@ func TestKameletConfigDefaultParamMountedSecret(t *testing.T) {
 		var secData = make(map[string]string)
 		secData["my-message"] = "My secret message 03"
 		secData["my-logger"] = "mySecretIntegrationLogger03"
-		Expect(CreatePlainTextSecret(ns, secretName, secData)).To(Succeed())
+		Expect(CreatePlainTextSecret(t, ns, secretName, secData)).To(Succeed())
 
-		Expect(KamelRunWithID(operatorID, ns, "files/timer-kamelet-integration-parameters-configuration-03.yaml",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/timer-kamelet-integration-parameters-configuration-03.yaml",
 			"-t", "mount.configs=secret:"+secretName,
 			"--name", name).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My secret message 03"))
-		Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("mySecretIntegrationLogger03"))
-
-		Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-		Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-		Expect(DeleteSecret(ns, secretName)).To(Succeed())
-		Expect(DeleteKamelet(ns, "config03-timer-source")).To(Succeed())
-		Expect(DeleteKamelet(ns, "config03-log-sink")).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My secret message 03"))
+		Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("mySecretIntegrationLogger03"))
+
+		Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+		Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+		Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
+		Expect(DeleteKamelet(t, ns, "config03-timer-source")).To(Succeed())
+		Expect(DeleteKamelet(t, ns, "config03-log-sink")).To(Succeed())
 	})
 
-	Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+	Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 }
 
 func TestKameletConfigDefaultParamMountedConfigmap(t *testing.T) {
 	RegisterTestingT(t)
 	t.Run("run test default config configmap properties", func(t *testing.T) {
 
-		Expect(CreateTimerKamelet(ns, "config04-timer-source")()).To(Succeed())
-		Expect(CreateLogKamelet(ns, "config04-log-sink")()).To(Succeed())
+		Expect(CreateTimerKamelet(t, ns, "config04-timer-source")()).To(Succeed())
+		Expect(CreateLogKamelet(t, ns, "config04-log-sink")()).To(Succeed())
 
 		name := RandomizedSuffixName("config-test-timer-source-int4")
 		cmName := "my-config-int4-configmap"
@@ -361,21 +363,21 @@ func TestKameletConfigDefaultParamMountedConfigmap(t *testing.T) {
 		var cmData = make(map[string]string)
 		cmData["my-message"] = "My configmap message 04"
 		cmData["my-logger"] = "myConfigmapIntegrationLogger04"
-		Expect(CreatePlainTextConfigmap(ns, cmName, cmData)).To(Succeed())
+		Expect(CreatePlainTextConfigmap(t, ns, cmName, cmData)).To(Succeed())
 
-		Expect(KamelRunWithID(operatorID, ns, "files/timer-kamelet-integration-parameters-configuration-04.yaml",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/timer-kamelet-integration-parameters-configuration-04.yaml",
 			"-t", "mount.configs=configmap:"+cmName,
 			"--name", name).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My configmap message 04"))
-		Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myConfigmapIntegrationLogger04"))
-
-		Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-		Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
-		Expect(DeleteConfigmap(ns, cmName)).To(Succeed())
-		Expect(DeleteKamelet(ns, "config04-timer-source")).To(Succeed())
-		Expect(DeleteKamelet(ns, "config04-log-sink")).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My configmap message 04"))
+		Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myConfigmapIntegrationLogger04"))
+
+		Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+		Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
+		Expect(DeleteConfigmap(t, ns, cmName)).To(Succeed())
+		Expect(DeleteKamelet(t, ns, "config04-timer-source")).To(Succeed())
+		Expect(DeleteKamelet(t, ns, "config04-log-sink")).To(Succeed())
 	})
 
-	Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+	Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 }
diff --git a/e2e/common/config/pipe_config_test.go b/e2e/common/config/pipe_config_test.go
index 49ff9b444..da50d115a 100644
--- a/e2e/common/config/pipe_config_test.go
+++ b/e2e/common/config/pipe_config_test.go
@@ -33,25 +33,27 @@ import (
 
 // Tests on pipe with kamelets containing configuration from properties and secrets.
 func TestPipeConfig(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		t.Run("test custom source/sink pipe", func(t *testing.T) {
-			Expect(CreateTimerKamelet(ns, "my-pipe-timer-source")()).To(Succeed())
-			Expect(CreateLogKamelet(ns, "my-pipe-log-sink")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "my-pipe-timer-source")()).To(Succeed())
+			Expect(CreateLogKamelet(t, ns, "my-pipe-log-sink")()).To(Succeed())
 			t.Run("run test default config using properties", func(t *testing.T) {
 				name := RandomizedSuffixName("my-pipe-with-properties")
 
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-pipe-timer-source",
 					"my-pipe-log-sink",
 					"-p", "source.message=My pipe message",
 					"-p", "sink.loggerName=myPipeLogger",
 					"--name", name,
 				).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My pipe message"))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myPipeLogger"))
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My pipe message"))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myPipeLogger"))
 
-				Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
+				Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
 			})
 
 			t.Run("run test implicit default config using labeled secret", func(t *testing.T) {
@@ -62,20 +64,20 @@ func TestPipeConfig(t *testing.T) {
 				secData["camel.kamelet.my-pipe-timer-source.message"] = "My pipe secret message"
 				var labels = make(map[string]string)
 				labels["camel.apache.org/kamelet"] = "my-pipe-timer-source"
-				Expect(CreatePlainTextSecretWithLabels(ns, secretName, secData, labels)).To(Succeed())
+				Expect(CreatePlainTextSecretWithLabels(t, ns, secretName, secData, labels)).To(Succeed())
 
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-pipe-timer-source",
 					"my-pipe-log-sink",
 					"-p", "sink.loggerName=myDefaultLogger",
 					"--name", name,
 				).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My pipe secret message"))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myDefaultLogger"))
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My pipe secret message"))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myDefaultLogger"))
 
-				Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-				Expect(DeleteSecret(ns, secretName)).To(Succeed())
+				Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+				Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
 			})
 
 			t.Run("run test implicit default config using mounted secret", func(t *testing.T) {
@@ -85,20 +87,20 @@ func TestPipeConfig(t *testing.T) {
 				var secData = make(map[string]string)
 				secData["camel.kamelet.my-pipe-timer-source.message"] = "My pipe secret message"
 				secData["camel.kamelet.my-pipe-log-sink.loggerName"] = "myPipeSecretLogger"
-				Expect(CreatePlainTextSecret(ns, secretName, secData)).To(Succeed())
+				Expect(CreatePlainTextSecret(t, ns, secretName, secData)).To(Succeed())
 
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-pipe-timer-source",
 					"my-pipe-log-sink",
 					"-t", "mount.configs=secret:"+secretName,
 					"--name", name,
 				).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My pipe secret message"))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myPipeSecretLogger"))
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My pipe secret message"))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myPipeSecretLogger"))
 
-				Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-				Expect(DeleteSecret(ns, secretName)).To(Succeed())
+				Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+				Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
 			})
 
 			t.Run("run test implicit default config using mounted configmap", func(t *testing.T) {
@@ -108,20 +110,20 @@ func TestPipeConfig(t *testing.T) {
 				var cmData = make(map[string]string)
 				cmData["camel.kamelet.my-pipe-timer-source.message"] = "My pipe configmap message"
 				cmData["camel.kamelet.my-pipe-log-sink.loggerName"] = "myPipeConfigmapLogger"
-				Expect(CreatePlainTextConfigmap(ns, cmName, cmData)).To(Succeed())
+				Expect(CreatePlainTextConfigmap(t, ns, cmName, cmData)).To(Succeed())
 
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-pipe-timer-source",
 					"my-pipe-log-sink",
 					"-t", "mount.configs=configmap:"+cmName,
 					"--name", name,
 				).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My pipe configmap message"))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myPipeConfigmapLogger"))
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My pipe configmap message"))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myPipeConfigmapLogger"))
 
-				Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-				Expect(DeleteConfigmap(ns, cmName)).To(Succeed())
+				Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+				Expect(DeleteConfigmap(t, ns, cmName)).To(Succeed())
 			})
 
 			t.Run("run test implicit named config using mounted secret", func(t *testing.T) {
@@ -131,9 +133,9 @@ func TestPipeConfig(t *testing.T) {
 				var secData = make(map[string]string)
 				secData["camel.kamelet.my-pipe-timer-source.mynamedconfig.message"] = "My pipe named secret message"
 				secData["camel.kamelet.my-pipe-log-sink.mynamedconfig.loggerName"] = "myPipeNamedSecretLogger"
-				Expect(CreatePlainTextSecret(ns, secretName, secData)).To(Succeed())
+				Expect(CreatePlainTextSecret(t, ns, secretName, secData)).To(Succeed())
 
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-pipe-timer-source",
 					"my-pipe-log-sink",
 					"-t", "mount.configs=secret:"+secretName,
@@ -142,12 +144,12 @@ func TestPipeConfig(t *testing.T) {
 					"--name", name,
 				).Execute()).To(Succeed())
 
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My pipe named secret message"))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myPipeNamedSecretLogger"))
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My pipe named secret message"))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myPipeNamedSecretLogger"))
 
-				Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-				Expect(DeleteSecret(ns, secretName)).To(Succeed())
+				Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+				Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
 			})
 
 			t.Run("run test implicit named config using mounted configmap", func(t *testing.T) {
@@ -157,9 +159,9 @@ func TestPipeConfig(t *testing.T) {
 				var cmData = make(map[string]string)
 				cmData["camel.kamelet.my-pipe-timer-source.mynamedconfig.message"] = "My pipe named configmap message"
 				cmData["camel.kamelet.my-pipe-log-sink.mynamedconfig.loggerName"] = "myPipeNamedConfigmapLogger"
-				Expect(CreatePlainTextConfigmap(ns, cmName, cmData)).To(Succeed())
+				Expect(CreatePlainTextConfigmap(t, ns, cmName, cmData)).To(Succeed())
 
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-pipe-timer-source",
 					"my-pipe-log-sink",
 					"-t", "mount.configs=configmap:"+cmName,
@@ -168,12 +170,12 @@ func TestPipeConfig(t *testing.T) {
 					"--name", name,
 				).Execute()).To(Succeed())
 
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My pipe named configmap message"))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myPipeNamedConfigmapLogger"))
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My pipe named configmap message"))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myPipeNamedConfigmapLogger"))
 
-				Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-				Expect(DeleteConfigmap(ns, cmName)).To(Succeed())
+				Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+				Expect(DeleteConfigmap(t, ns, cmName)).To(Succeed())
 			})
 			t.Run("run test implicit specific config using mounted secret", func(t *testing.T) {
 				name := RandomizedSuffixName("my-pipe-with-specific-secret")
@@ -182,9 +184,9 @@ func TestPipeConfig(t *testing.T) {
 				var secData = make(map[string]string)
 				secData["mynamedconfig.message"] = "My pipe specific secret message"
 				secData["mynamedconfig.loggerName"] = "myPipeSpecificSecretLogger"
-				Expect(CreatePlainTextSecret(ns, secretName, secData)).To(Succeed())
+				Expect(CreatePlainTextSecret(t, ns, secretName, secData)).To(Succeed())
 
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-pipe-timer-source",
 					"my-pipe-log-sink",
 					"-t", "mount.configs=secret:"+secretName,
@@ -193,12 +195,12 @@ func TestPipeConfig(t *testing.T) {
 					"--name", name,
 				).Execute()).To(Succeed())
 
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My pipe specific secret message"))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myPipeSpecificSecretLogger"))
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My pipe specific secret message"))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myPipeSpecificSecretLogger"))
 
-				Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-				Expect(DeleteSecret(ns, secretName)).To(Succeed())
+				Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+				Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
 			})
 			t.Run("run test implicit specific config using mounted configmap", func(t *testing.T) {
 				name := RandomizedSuffixName("my-pipe-with-specific-configmap")
@@ -207,9 +209,9 @@ func TestPipeConfig(t *testing.T) {
 				var cmData = make(map[string]string)
 				cmData["mynamedconfig.message"] = "My pipe specific configmap message"
 				cmData["mynamedconfig.loggerName"] = "myPipeSpecificConfgmapLogger"
-				Expect(CreatePlainTextConfigmap(ns, cmName, cmData)).To(Succeed())
+				Expect(CreatePlainTextConfigmap(t, ns, cmName, cmData)).To(Succeed())
 
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-pipe-timer-source",
 					"my-pipe-log-sink",
 					"-t", "mount.configs=configmap:"+cmName,
@@ -218,15 +220,15 @@ func TestPipeConfig(t *testing.T) {
 					"--name", name,
 				).Execute()).To(Succeed())
 
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("My pipe specific configmap message"))
-				Eventually(IntegrationLogs(ns, name)).Should(ContainSubstring("myPipeSpecificConfgmapLogger"))
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("My pipe specific configmap message"))
+				Eventually(IntegrationLogs(t, ns, name)).Should(ContainSubstring("myPipeSpecificConfgmapLogger"))
 
-				Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-				Expect(DeleteConfigmap(ns, cmName)).To(Succeed())
+				Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+				Expect(DeleteConfigmap(t, ns, cmName)).To(Succeed())
 			})
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/languages/groovy_test.go b/e2e/common/languages/groovy_test.go
index a86db06e7..75072d233 100644
--- a/e2e/common/languages/groovy_test.go
+++ b/e2e/common/languages/groovy_test.go
@@ -34,15 +34,17 @@ import (
 )
 
 func TestRunSimpleGroovyExamples(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("run groovy", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/groovy.groovy").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "groovy"), TestTimeoutLong).Should(Equal(v1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "groovy", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "groovy"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/groovy.groovy").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "groovy"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "groovy", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "groovy"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/languages/java_test.go b/e2e/common/languages/java_test.go
index c361bc072..fd17a6ff7 100644
--- a/e2e/common/languages/java_test.go
+++ b/e2e/common/languages/java_test.go
@@ -34,15 +34,17 @@ import (
 )
 
 func TestRunSimpleJavaExamples(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("run java", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(v1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "java", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "java"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "java", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/languages/js_test.go b/e2e/common/languages/js_test.go
index 9cf92e27f..76fe2e706 100644
--- a/e2e/common/languages/js_test.go
+++ b/e2e/common/languages/js_test.go
@@ -34,15 +34,17 @@ import (
 )
 
 func TestRunSimpleJavaScriptExamples(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("run js", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/js.js").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "js"), TestTimeoutLong).Should(Equal(v1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "js", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "js"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/js.js").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "js"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "js", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "js"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/languages/kotlin_test.go b/e2e/common/languages/kotlin_test.go
index e252fd0f0..657ce5dba 100644
--- a/e2e/common/languages/kotlin_test.go
+++ b/e2e/common/languages/kotlin_test.go
@@ -34,15 +34,17 @@ import (
 )
 
 func TestRunSimpleKotlinExamples(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("run kotlin", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/kotlin.kts").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "kotlin"), TestTimeoutLong).Should(Equal(v1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "kotlin", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "kotlin"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/kotlin.kts").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "kotlin"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "kotlin", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "kotlin"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/languages/polyglot_test.go b/e2e/common/languages/polyglot_test.go
index 8009c9fc2..ef55d16b8 100644
--- a/e2e/common/languages/polyglot_test.go
+++ b/e2e/common/languages/polyglot_test.go
@@ -34,16 +34,18 @@ import (
 )
 
 func TestRunPolyglotExamples(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("run polyglot", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "--name", "polyglot", "files/js-polyglot.js", "files/yaml-polyglot.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "polyglot"), TestTimeoutLong).Should(Equal(v1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "polyglot", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "polyglot"), TestTimeoutShort).Should(ContainSubstring("Magicpolyglot-yaml"))
-			Eventually(IntegrationLogs(ns, "polyglot"), TestTimeoutShort).Should(ContainSubstring("Magicpolyglot-js"))
+			Expect(KamelRunWithID(t, operatorID, ns, "--name", "polyglot", "files/js-polyglot.js", "files/yaml-polyglot.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "polyglot"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "polyglot", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "polyglot"), TestTimeoutShort).Should(ContainSubstring("Magicpolyglot-yaml"))
+			Eventually(IntegrationLogs(t, ns, "polyglot"), TestTimeoutShort).Should(ContainSubstring("Magicpolyglot-js"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/languages/xml_test.go b/e2e/common/languages/xml_test.go
index 4e5cc3ff7..037768bf2 100644
--- a/e2e/common/languages/xml_test.go
+++ b/e2e/common/languages/xml_test.go
@@ -34,15 +34,17 @@ import (
 )
 
 func TestRunSimpleXmlExamples(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("run xml", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/xml.xml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "xml"), TestTimeoutLong).Should(Equal(v1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "xml", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "xml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/xml.xml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "xml"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "xml", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "xml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/languages/yaml_test.go b/e2e/common/languages/yaml_test.go
index 82f150b21..1d38e211e 100644
--- a/e2e/common/languages/yaml_test.go
+++ b/e2e/common/languages/yaml_test.go
@@ -34,15 +34,17 @@ import (
 )
 
 func TestRunSimpleYamlExamples(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("run yaml", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(v1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "yaml", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(v1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "yaml", camelv1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/client_test.go b/e2e/common/misc/client_test.go
index 5bddeac36..41a2d3554 100644
--- a/e2e/common/misc/client_test.go
+++ b/e2e/common/misc/client_test.go
@@ -39,6 +39,8 @@ import (
 )
 
 func TestClientFunctionalities(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		cfg, err := config.GetConfig()
@@ -65,6 +67,6 @@ func TestClientFunctionalities(t *testing.T) {
 		err = camel.CamelV1().Integrations(ns).Delete(TestContext, "dummy", metav1.DeleteOptions{})
 		require.NoError(t, err)
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/cron_test.go b/e2e/common/misc/cron_test.go
index efcd0e948..42fb81171 100644
--- a/e2e/common/misc/cron_test.go
+++ b/e2e/common/misc/cron_test.go
@@ -34,43 +34,45 @@ import (
 )
 
 func TestRunCronExample(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("cron", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/cron.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationCronJob(ns, "cron"), TestTimeoutMedium).ShouldNot(BeNil())
-			Eventually(IntegrationConditionStatus(ns, "cron", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "cron"), TestTimeoutMedium).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/cron.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationCronJob(t, ns, "cron"), TestTimeoutMedium).ShouldNot(BeNil())
+			Eventually(IntegrationConditionStatus(t, ns, "cron", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "cron"), TestTimeoutMedium).Should(ContainSubstring("Magicstring!"))
 		})
 
 		t.Run("cron-yaml", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/cron-yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationCronJob(ns, "cron-yaml"), TestTimeoutMedium).ShouldNot(BeNil())
-			Eventually(IntegrationConditionStatus(ns, "cron-yaml", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "cron-yaml"), TestTimeoutMedium).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/cron-yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationCronJob(t, ns, "cron-yaml"), TestTimeoutMedium).ShouldNot(BeNil())
+			Eventually(IntegrationConditionStatus(t, ns, "cron-yaml", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "cron-yaml"), TestTimeoutMedium).Should(ContainSubstring("Magicstring!"))
 		})
 
 		t.Run("cron-timer", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/cron-timer.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationCronJob(ns, "cron-timer"), TestTimeoutMedium).ShouldNot(BeNil())
-			Eventually(IntegrationConditionStatus(ns, "cron-timer", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "cron-timer"), TestTimeoutMedium).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/cron-timer.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationCronJob(t, ns, "cron-timer"), TestTimeoutMedium).ShouldNot(BeNil())
+			Eventually(IntegrationConditionStatus(t, ns, "cron-timer", v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "cron-timer"), TestTimeoutMedium).Should(ContainSubstring("Magicstring!"))
 		})
 
 		t.Run("cron-fallback", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/cron-fallback.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "cron-fallback"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "cron-fallback", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "cron-fallback"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/cron-fallback.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "cron-fallback"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "cron-fallback", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "cron-fallback"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		})
 
 		t.Run("cron-quartz", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/cron-quartz.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "cron-quartz"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "cron-quartz", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "cron-quartz"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/cron-quartz.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "cron-quartz"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "cron-quartz", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "cron-quartz"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/integration_fail_test.go b/e2e/common/misc/integration_fail_test.go
index 4165358cf..f74b22df5 100644
--- a/e2e/common/misc/integration_fail_test.go
+++ b/e2e/common/misc/integration_fail_test.go
@@ -35,152 +35,154 @@ import (
 )
 
 func TestBadRouteIntegration(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("run bad java route", func(t *testing.T) {
 			name := RandomizedSuffixName("bad-route")
-			Expect(KamelRunWithID(operatorID, ns, "files/BadRoute.java", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Expect(KamelRunWithID(t, operatorID, ns, "files/BadRoute.java", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionFalse))
 
 			// Make sure the Integration can be scaled
-			Expect(ScaleIntegration(ns, name, 2)).To(Succeed())
+			Expect(ScaleIntegration(t, ns, name, 2)).To(Succeed())
 			// Check the scale cascades into the Deployment scale
-			Eventually(IntegrationPods(ns, name), TestTimeoutShort).Should(HaveLen(2))
+			Eventually(IntegrationPods(t, ns, name), TestTimeoutShort).Should(HaveLen(2))
 			// Check it also cascades into the Integration scale subresource Status field
-			Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 2)))
 			// Check the Integration stays in error phase
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
 
 			// Kit valid
-			kitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
-			Eventually(KitPhase(integrationKitNamespace, kitName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
+			kitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
+			Eventually(KitPhase(t, integrationKitNamespace, kitName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
 		})
 
 		t.Run("run missing dependency java route", func(t *testing.T) {
 			name := RandomizedSuffixName("java-route")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name,
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name,
 				"-d", "mvn:com.example:nonexistent:1.0").Execute()).To(Succeed())
 			// Integration in error
-			Eventually(IntegrationPhase(ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionKitAvailable), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionKitAvailable), TestTimeoutShort).Should(
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionKitAvailable), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionKitAvailable), TestTimeoutShort).Should(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionKitAvailableReason)))
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionKitAvailable), TestTimeoutShort).Should(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionKitAvailable), TestTimeoutShort).Should(
 				WithTransform(IntegrationConditionMessage, ContainSubstring("is in state \"Error\"")))
 			// Kit in error
-			kitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
-			Eventually(KitPhase(integrationKitNamespace, kitName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseError))
+			kitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
+			Eventually(KitPhase(t, integrationKitNamespace, kitName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseError))
 			//Build in error with 5 attempts
-			build := Build(integrationKitNamespace, kitName)()
+			build := Build(t, integrationKitNamespace, kitName)()
 			Eventually(build.Status.Phase, TestTimeoutShort).Should(Equal(v1.BuildPhaseError))
 			Eventually(build.Status.Failure.Recovery.Attempt, TestTimeoutShort).Should(Equal(5))
 
 			// Fixing the route should reconcile the Integration
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPhase(ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseRunning))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseRunning))
 			// New Kit success
-			kitRecoveryName := IntegrationKit(ns, name)()
-			integrationKitRecoveryNamespace := IntegrationKitNamespace(ns, name)()
-			Eventually(KitPhase(integrationKitRecoveryNamespace, kitRecoveryName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
+			kitRecoveryName := IntegrationKit(t, ns, name)()
+			integrationKitRecoveryNamespace := IntegrationKitNamespace(t, ns, name)()
+			Eventually(KitPhase(t, integrationKitRecoveryNamespace, kitRecoveryName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
 			Expect(kitRecoveryName).NotTo(Equal(kitName))
 			// New Build success
-			buildRecovery := Build(integrationKitRecoveryNamespace, kitRecoveryName)()
+			buildRecovery := Build(t, integrationKitRecoveryNamespace, kitRecoveryName)()
 			Eventually(buildRecovery.Status.Phase, TestTimeoutShort).Should(Equal(v1.BuildPhaseSucceeded))
 
 		})
 
 		t.Run("run invalid dependency java route", func(t *testing.T) {
 			name := RandomizedSuffixName("invalid-dependency")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name,
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name,
 				"-d", "camel:non-existent").Execute()).To(Succeed())
 			// Integration in error with Initialization Failed condition
-			Eventually(IntegrationPhase(ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionFalse))
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(And(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(And(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionInitializationFailedReason)),
 				WithTransform(IntegrationConditionMessage, HavePrefix("error during trait customization")),
 			))
 			// Kit shouldn't be created
-			Consistently(IntegrationKit(ns, name), 10*time.Second).Should(BeEmpty())
+			Consistently(IntegrationKit(t, ns, name), 10*time.Second).Should(BeEmpty())
 
 			// Fixing the route should reconcile the Integration in Initialization Failed condition to Running
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 			// New Kit success
-			kitRecoveryName := IntegrationKit(ns, name)()
-			integrationKitRecoveryNamespace := IntegrationKitNamespace(ns, name)()
-			Eventually(KitPhase(integrationKitRecoveryNamespace, kitRecoveryName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
+			kitRecoveryName := IntegrationKit(t, ns, name)()
+			integrationKitRecoveryNamespace := IntegrationKitNamespace(t, ns, name)()
+			Eventually(KitPhase(t, integrationKitRecoveryNamespace, kitRecoveryName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
 			// New Build success
-			buildRecovery := Build(integrationKitRecoveryNamespace, kitRecoveryName)()
+			buildRecovery := Build(t, integrationKitRecoveryNamespace, kitRecoveryName)()
 			Eventually(buildRecovery.Status.Phase, TestTimeoutShort).Should(Equal(v1.BuildPhaseSucceeded))
 		})
 
 		t.Run("run unresolvable component java route", func(t *testing.T) {
 			name := RandomizedSuffixName("unresolvable-route")
-			Expect(KamelRunWithID(operatorID, ns, "files/Unresolvable.java", "--name", name).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Unresolvable.java", "--name", name).Execute()).To(Succeed())
 			// Integration in error with Initialization Failed condition
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionFalse))
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(And(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(And(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionInitializationFailedReason)),
 				WithTransform(IntegrationConditionMessage, HavePrefix("error during trait customization")),
 			))
 			// Kit shouldn't be created
-			Consistently(IntegrationKit(ns, name), 10*time.Second).Should(BeEmpty())
+			Consistently(IntegrationKit(t, ns, name), 10*time.Second).Should(BeEmpty())
 
 			// Fixing the route should reconcile the Integration in Initialization Failed condition to Running
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 			// New Kit success
-			kitRecoveryName := IntegrationKit(ns, name)()
-			integrationKitRecoveryNamespace := IntegrationKitNamespace(ns, name)()
-			Eventually(KitPhase(integrationKitRecoveryNamespace, kitRecoveryName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
+			kitRecoveryName := IntegrationKit(t, ns, name)()
+			integrationKitRecoveryNamespace := IntegrationKitNamespace(t, ns, name)()
+			Eventually(KitPhase(t, integrationKitRecoveryNamespace, kitRecoveryName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
 			// New Build success
-			buildRecovery := Build(integrationKitRecoveryNamespace, kitRecoveryName)()
+			buildRecovery := Build(t, integrationKitRecoveryNamespace, kitRecoveryName)()
 			Eventually(buildRecovery.Status.Phase, TestTimeoutShort).Should(Equal(v1.BuildPhaseSucceeded))
 		})
 
 		t.Run("run invalid java route", func(t *testing.T) {
 			name := RandomizedSuffixName("invalid-java-route")
-			Expect(KamelRunWithID(operatorID, ns, "files/InvalidJava.java", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Expect(KamelRunWithID(t, operatorID, ns, "files/InvalidJava.java", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionFalse))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Compilation error"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Compilation error"))
 
 			// Kit valid
-			kitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
-			Eventually(KitPhase(integrationKitNamespace, kitName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
+			kitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
+			Eventually(KitPhase(t, integrationKitNamespace, kitName), TestTimeoutShort).Should(Equal(v1.IntegrationKitPhaseReady))
 
 			// Fixing the route should reconcile the Integration in Initialization Failed condition to Running
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 			// Kit should not have changed
-			kitRecoveryName := IntegrationKit(ns, name)()
+			kitRecoveryName := IntegrationKit(t, ns, name)()
 			Expect(kitRecoveryName).To(Equal(kitName))
 
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/integration_trait_update_test.go b/e2e/common/misc/integration_trait_update_test.go
index 681a2a70d..014c75bc6 100644
--- a/e2e/common/misc/integration_trait_update_test.go
+++ b/e2e/common/misc/integration_trait_update_test.go
@@ -34,21 +34,23 @@ import (
 )
 
 func TestTraitUpdates(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("run and update trait", func(t *testing.T) {
 			name := RandomizedSuffixName("yaml-route")
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 			var numberOfPods = func(pods *int32) bool {
 				return *pods >= 1 && *pods <= 2
 			}
 			// Adding a property will change the camel trait
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml", "--name", name, "-p", "hello=world").Execute()).To(Succeed())
-			Consistently(IntegrationPodsNumbers(ns, name), TestTimeoutShort, 1*time.Second).Should(Satisfy(numberOfPods))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml", "--name", name, "-p", "hello=world").Execute()).To(Succeed())
+			Consistently(IntegrationPodsNumbers(t, ns, name), TestTimeoutShort, 1*time.Second).Should(Satisfy(numberOfPods))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/kamelet_test.go b/e2e/common/misc/kamelet_test.go
index ee6559396..7b5a768f5 100644
--- a/e2e/common/misc/kamelet_test.go
+++ b/e2e/common/misc/kamelet_test.go
@@ -33,6 +33,8 @@ import (
 )
 
 func TestKameletClasspathLoading(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		// Store a configmap on the cluster
@@ -108,28 +110,28 @@ spec:
             constant: "{{contentType}}"
         - to: kamelet:sink
 `
-		CreatePlainTextConfigmap(ns, "my-kamelet-cm", cmData)
+		CreatePlainTextConfigmap(t, ns, "my-kamelet-cm", cmData)
 
 		// Basic
 		t.Run("test basic case", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/TimerKameletIntegration.java", "-t", "kamelets.enabled=false",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/TimerKameletIntegration.java", "-t", "kamelets.enabled=false",
 				"--resource", "configmap:my-kamelet-cm@/kamelets",
 				"-p camel.component.kamelet.location=file:/kamelets",
 				"-d", "camel:yaml-dsl",
 				// kamelet dependencies
 				"-d", "camel:timer").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "timer-kamelet-integration"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, "timer-kamelet-integration")).Should(ContainSubstring("important message"))
+			Eventually(IntegrationPodPhase(t, ns, "timer-kamelet-integration"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, "timer-kamelet-integration")).Should(ContainSubstring("important message"))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, "timer-kamelet-integration")).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, "timer-kamelet-integration")()
+			Eventually(UnstructuredIntegration(t, ns, "timer-kamelet-integration")).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, "timer-kamelet-integration")()
 			kameletsTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "kamelets")
 			Expect(kameletsTrait).ToNot(BeNil())
 			Expect(len(kameletsTrait)).To(Equal(1))
 			Expect(kameletsTrait["enabled"]).To(Equal(false))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/kamelet_update_test.go b/e2e/common/misc/kamelet_update_test.go
index 70202e1ce..361eecb65 100644
--- a/e2e/common/misc/kamelet_update_test.go
+++ b/e2e/common/misc/kamelet_update_test.go
@@ -35,21 +35,23 @@ import (
 const customLabel = "custom-label"
 
 func TestBundleKameletUpdate(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
-		Expect(createBundleKamelet(ns, "my-http-sink")()).To(Succeed()) // Going to be replaced
-		Expect(createUserKamelet(ns, "user-sink")()).To(Succeed())      // Left intact by the operator
+		Expect(createBundleKamelet(t, ns, "my-http-sink")()).To(Succeed()) // Going to be replaced
+		Expect(createUserKamelet(t, ns, "user-sink")()).To(Succeed())      // Left intact by the operator
 
-		Eventually(Kamelet("my-http-sink", ns)).
+		Eventually(Kamelet(t, "my-http-sink", ns)).
 			Should(WithTransform(KameletLabels, HaveKeyWithValue(customLabel, "true")))
-		Consistently(Kamelet("user-sink", ns), 5*time.Second, 1*time.Second).
+		Consistently(Kamelet(t, "user-sink", ns), 5*time.Second, 1*time.Second).
 			Should(WithTransform(KameletLabels, HaveKeyWithValue(customLabel, "true")))
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
-func createBundleKamelet(ns string, name string) func() error {
+func createBundleKamelet(t *testing.T, ns string, name string) func() error {
 	flow := map[string]interface{}{
 		"from": map[string]interface{}{
 			"uri": "kamelet:source",
@@ -60,10 +62,10 @@ func createBundleKamelet(ns string, name string) func() error {
 		customLabel:            "true",
 		v1.KameletBundledLabel: "true",
 	}
-	return CreateKamelet(ns, name, flow, nil, labels)
+	return CreateKamelet(t, ns, name, flow, nil, labels)
 }
 
-func createUserKamelet(ns string, name string) func() error {
+func createUserKamelet(t *testing.T, ns string, name string) func() error {
 	flow := map[string]interface{}{
 		"from": map[string]interface{}{
 			"uri": "kamelet:source",
@@ -73,5 +75,5 @@ func createUserKamelet(ns string, name string) func() error {
 	labels := map[string]string{
 		customLabel: "true",
 	}
-	return CreateKamelet(ns, name, flow, nil, labels)
+	return CreateKamelet(t, ns, name, flow, nil, labels)
 }
diff --git a/e2e/common/misc/maven_repository_test.go b/e2e/common/misc/maven_repository_test.go
index 0d8d47438..fee3ea655 100644
--- a/e2e/common/misc/maven_repository_test.go
+++ b/e2e/common/misc/maven_repository_test.go
@@ -34,22 +34,24 @@ import (
 )
 
 func TestRunExtraRepository(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--maven-repository", "https://maven.repository.redhat.com/ga@id=redhat",
 			"--dependency", "mvn:org.jolokia:jolokia-core:1.7.1.redhat-00001",
 			"--name", name,
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-		Eventually(Integration(ns, name)).Should(WithTransform(IntegrationSpec, And(
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(Integration(t, ns, name)).Should(WithTransform(IntegrationSpec, And(
 			HaveExistingField("Repositories"),
 			HaveField("Repositories", ContainElements("https://maven.repository.redhat.com/ga@id=redhat")),
 		)))
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/pipe_test.go b/e2e/common/misc/pipe_test.go
index 4692e500c..07891d229 100644
--- a/e2e/common/misc/pipe_test.go
+++ b/e2e/common/misc/pipe_test.go
@@ -35,15 +35,17 @@ import (
 )
 
 func TestPipe(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		// Error Handler testing
 		t.Run("test error handler", func(t *testing.T) {
-			Expect(createErrorProducerKamelet(ns, "my-own-error-producer-source")()).To(Succeed())
-			Expect(CreateLogKamelet(ns, "my-own-log-sink")()).To(Succeed())
+			Expect(createErrorProducerKamelet(t, ns, "my-own-error-producer-source")()).To(Succeed())
+			Expect(CreateLogKamelet(t, ns, "my-own-log-sink")()).To(Succeed())
 
 			t.Run("throw error test", func(t *testing.T) {
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-own-error-producer-source",
 					"my-own-log-sink",
 					"--error-handler", "sink:my-own-log-sink",
@@ -55,14 +57,14 @@ func TestPipe(t *testing.T) {
 					"--name", "throw-error-binding",
 				).Execute()).To(Succeed())
 
-				Eventually(IntegrationPodPhase(ns, "throw-error-binding"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, "throw-error-binding"), TestTimeoutShort).Should(ContainSubstring("[kameletErrorHandler] (Camel (camel-1) thread #1 - timer://tick)"))
-				Eventually(IntegrationLogs(ns, "throw-error-binding"), TestTimeoutShort).ShouldNot(ContainSubstring("[integrationLogger] (Camel (camel-1) thread #1 - timer://tick)"))
+				Eventually(IntegrationPodPhase(t, ns, "throw-error-binding"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, "throw-error-binding"), TestTimeoutShort).Should(ContainSubstring("[kameletErrorHandler] (Camel (camel-1) thread #1 - timer://tick)"))
+				Eventually(IntegrationLogs(t, ns, "throw-error-binding"), TestTimeoutShort).ShouldNot(ContainSubstring("[integrationLogger] (Camel (camel-1) thread #1 - timer://tick)"))
 
 			})
 
 			t.Run("don't throw error test", func(t *testing.T) {
-				Expect(KamelBindWithID(operatorID, ns,
+				Expect(KamelBindWithID(t, operatorID, ns,
 					"my-own-error-producer-source",
 					"my-own-log-sink",
 					"--error-handler", "sink:my-own-log-sink",
@@ -74,19 +76,19 @@ func TestPipe(t *testing.T) {
 					"--name", "no-error-binding",
 				).Execute()).To(Succeed())
 
-				Eventually(IntegrationPodPhase(ns, "no-error-binding"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns, "no-error-binding"), TestTimeoutShort).ShouldNot(ContainSubstring("[kameletErrorHandler] (Camel (camel-1) thread #1 - timer://tick)"))
-				Eventually(IntegrationLogs(ns, "no-error-binding"), TestTimeoutShort).Should(ContainSubstring("[integrationLogger] (Camel (camel-1) thread #1 - timer://tick)"))
+				Eventually(IntegrationPodPhase(t, ns, "no-error-binding"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns, "no-error-binding"), TestTimeoutShort).ShouldNot(ContainSubstring("[kameletErrorHandler] (Camel (camel-1) thread #1 - timer://tick)"))
+				Eventually(IntegrationLogs(t, ns, "no-error-binding"), TestTimeoutShort).Should(ContainSubstring("[integrationLogger] (Camel (camel-1) thread #1 - timer://tick)"))
 
 			})
 		})
 
 		//Pipe with traits testing
 		t.Run("test Pipe with trait", func(t *testing.T) {
-			Expect(CreateTimerKamelet(ns, "my-own-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "my-own-timer-source")()).To(Succeed())
 			// Log sink kamelet exists from previous test
 
-			Expect(KamelBindWithID(operatorID, ns,
+			Expect(KamelBindWithID(t, operatorID, ns,
 				"my-own-timer-source",
 				"my-own-log-sink",
 				"-p", "source.message=hello from test",
@@ -95,9 +97,9 @@ func TestPipe(t *testing.T) {
 				"--name", "kb-with-traits",
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, "kb-with-traits"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, "kb-with-traits"), TestTimeoutShort).Should(ContainSubstring("hello from test"))
-			Eventually(IntegrationLogs(ns, "kb-with-traits"), TestTimeoutShort).Should(ContainSubstring("integrationLogger"))
+			Eventually(IntegrationPodPhase(t, ns, "kb-with-traits"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, "kb-with-traits"), TestTimeoutShort).Should(ContainSubstring("hello from test"))
+			Eventually(IntegrationLogs(t, ns, "kb-with-traits"), TestTimeoutShort).Should(ContainSubstring("integrationLogger"))
 		})
 
 		// Pipe with wrong spec
@@ -105,22 +107,22 @@ func TestPipe(t *testing.T) {
 			name := RandomizedSuffixName("bad-klb")
 			kb := v1.NewPipe(ns, name)
 			kb.Spec = v1.PipeSpec{}
-			_, err := kubernetes.ReplaceResource(TestContext, TestClient(), &kb)
+			_, err := kubernetes.ReplaceResource(TestContext, TestClient(t), &kb)
 			Eventually(err).Should(BeNil())
-			Eventually(PipePhase(ns, name), TestTimeoutShort).Should(Equal(v1.PipePhaseError))
-			Eventually(PipeConditionStatus(ns, name, v1.PipeConditionReady), TestTimeoutShort).ShouldNot(Equal(corev1.ConditionTrue))
-			Eventually(PipeCondition(ns, name, v1.PipeIntegrationConditionError), TestTimeoutShort).Should(
+			Eventually(PipePhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.PipePhaseError))
+			Eventually(PipeConditionStatus(t, ns, name, v1.PipeConditionReady), TestTimeoutShort).ShouldNot(Equal(corev1.ConditionTrue))
+			Eventually(PipeCondition(t, ns, name, v1.PipeIntegrationConditionError), TestTimeoutShort).Should(
 				WithTransform(PipeConditionMessage, And(
 					ContainSubstring("could not determine source URI"),
 					ContainSubstring("no ref or URI specified in endpoint"),
 				)))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
-func createErrorProducerKamelet(ns string, name string) func() error {
+func createErrorProducerKamelet(t *testing.T, ns string, name string) func() error {
 	props := map[string]v1.JSONSchemaProp{
 		"message": {
 			Type: "string",
@@ -148,5 +150,5 @@ func createErrorProducerKamelet(ns string, name string) func() error {
 		},
 	}
 
-	return CreateKamelet(ns, name, flow, props, nil)
+	return CreateKamelet(t, ns, name, flow, props, nil)
 }
diff --git a/e2e/common/misc/pipe_with_image_test.go b/e2e/common/misc/pipe_with_image_test.go
index 6c9de10aa..9173cefe7 100644
--- a/e2e/common/misc/pipe_with_image_test.go
+++ b/e2e/common/misc/pipe_with_image_test.go
@@ -34,6 +34,8 @@ import (
 )
 
 func TestPipeWithImage(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		bindingID := "with-image-binding"
@@ -41,7 +43,7 @@ func TestPipeWithImage(t *testing.T) {
 		t.Run("run with initial image", func(t *testing.T) {
 			expectedImage := "docker.io/jmalloc/echo-server:0.3.2"
 
-			Expect(KamelBindWithID(operatorID, ns,
+			Expect(KamelBindWithID(t, operatorID, ns,
 				"my-own-timer-source",
 				"my-own-log-sink",
 				"--annotation", "trait.camel.apache.org/container.image="+expectedImage,
@@ -52,24 +54,24 @@ func TestPipeWithImage(t *testing.T) {
 				"--name", bindingID,
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationGeneration(ns, bindingID)).
+			Eventually(IntegrationGeneration(t, ns, bindingID)).
 				Should(gstruct.PointTo(BeNumerically("==", 1)))
-			Eventually(Integration(ns, bindingID)).Should(WithTransform(Annotations, And(
+			Eventually(Integration(t, ns, bindingID)).Should(WithTransform(Annotations, And(
 				HaveKeyWithValue("test", "1"),
 				HaveKeyWithValue("trait.camel.apache.org/container.image", expectedImage),
 			)))
-			Eventually(IntegrationStatusImage(ns, bindingID)).
+			Eventually(IntegrationStatusImage(t, ns, bindingID)).
 				Should(Equal(expectedImage))
-			Eventually(IntegrationPodPhase(ns, bindingID), TestTimeoutLong).
+			Eventually(IntegrationPodPhase(t, ns, bindingID), TestTimeoutLong).
 				Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPodImage(ns, bindingID)).
+			Eventually(IntegrationPodImage(t, ns, bindingID)).
 				Should(Equal(expectedImage))
 		})
 
 		t.Run("run with new image", func(t *testing.T) {
 			expectedImage := "docker.io/jmalloc/echo-server:0.3.3"
 
-			Expect(KamelBindWithID(operatorID, ns,
+			Expect(KamelBindWithID(t, operatorID, ns,
 				"my-own-timer-source",
 				"my-own-log-sink",
 				"--annotation", "trait.camel.apache.org/container.image="+expectedImage,
@@ -79,20 +81,20 @@ func TestPipeWithImage(t *testing.T) {
 				"--annotation", "test=2",
 				"--name", bindingID,
 			).Execute()).To(Succeed())
-			Eventually(IntegrationGeneration(ns, bindingID)).
+			Eventually(IntegrationGeneration(t, ns, bindingID)).
 				Should(gstruct.PointTo(BeNumerically("==", 1)))
-			Eventually(Integration(ns, bindingID)).Should(WithTransform(Annotations, And(
+			Eventually(Integration(t, ns, bindingID)).Should(WithTransform(Annotations, And(
 				HaveKeyWithValue("test", "2"),
 				HaveKeyWithValue("trait.camel.apache.org/container.image", expectedImage),
 			)))
-			Eventually(IntegrationStatusImage(ns, bindingID)).
+			Eventually(IntegrationStatusImage(t, ns, bindingID)).
 				Should(Equal(expectedImage))
-			Eventually(IntegrationPodPhase(ns, bindingID), TestTimeoutLong).
+			Eventually(IntegrationPodPhase(t, ns, bindingID), TestTimeoutLong).
 				Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPodImage(ns, bindingID)).
+			Eventually(IntegrationPodImage(t, ns, bindingID)).
 				Should(Equal(expectedImage))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/registry_maven_wagon_test.go b/e2e/common/misc/registry_maven_wagon_test.go
index 9b4003536..bb8a39016 100644
--- a/e2e/common/misc/registry_maven_wagon_test.go
+++ b/e2e/common/misc/registry_maven_wagon_test.go
@@ -38,7 +38,9 @@ import (
 )
 
 func TestImageRegistryIsAMavenRepository(t *testing.T) {
-	ocp, err := openshift.IsOpenShift(TestClient())
+	t.Parallel()
+
+	ocp, err := openshift.IsOpenShift(TestClient(t))
 	require.NoError(t, err)
 	if ocp {
 		t.Skip("Avoid running on OpenShift until CA and secret are injected client side")
@@ -53,59 +55,59 @@ func TestImageRegistryIsAMavenRepository(t *testing.T) {
 		pom, err := filepath.Abs("files/registry/sample-decryption-1.0.pom")
 		require.NoError(t, err)
 
-		Expect(KamelRunWithID(operatorID, ns, "files/registry/FoobarDecryption.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/registry/FoobarDecryption.java",
 			"--name", name,
 			"-d", fmt.Sprintf("file://%s", jar),
 			"-d", fmt.Sprintf("file://%s", pom),
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("foobar"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("foobar"))
 	})
 
 	t.Run("local files are mounted in the integration container at the default path", func(t *testing.T) {
 		name := RandomizedSuffixName("laughing-route-default-path")
 
-		Expect(KamelRunWithID(operatorID, ns, "files/registry/LaughingRoute.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/registry/LaughingRoute.java",
 			"--name", name,
 			"-p", "location=/deployments/?filename=laugh.txt",
 			"-d", "file://files/registry/laugh.txt",
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("haha"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("haha"))
 	})
 
 	t.Run("local files are mounted in the integration container at a custom path", func(t *testing.T) {
 		name := RandomizedSuffixName("laughing-route-custom-path")
 		customPath := "this/is/a/custom/path/"
 
-		Expect(KamelRunWithID(operatorID, ns, "files/registry/LaughingRoute.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/registry/LaughingRoute.java",
 			"--name", name,
 			"-p", fmt.Sprintf("location=%s", customPath),
 			"-d", fmt.Sprintf("file://files/registry/laugh.txt?targetPath=%slaugh.txt", customPath),
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("haha"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("haha"))
 	})
 
 	t.Run("local directory is mounted in the integration container", func(t *testing.T) {
 		name := RandomizedSuffixName("laughing-route-directory")
 
-		Expect(KamelRunWithID(operatorID, ns, "files/registry/LaughingRoute.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/registry/LaughingRoute.java",
 			"--name", name,
 			"-p", "location=files/registry/",
 			"-d", fmt.Sprintf("file://files/registry/laughs/?targetPath=files/registry/"),
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("haha"))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("hehe"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("haha"))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("hehe"))
 	})
 
 	t.Run("pom file is extracted from JAR", func(t *testing.T) {
@@ -114,28 +116,28 @@ func TestImageRegistryIsAMavenRepository(t *testing.T) {
 		jar, err := filepath.Abs("files/registry/sample-decryption-1.0.jar")
 		require.NoError(t, err)
 
-		Expect(KamelRunWithID(operatorID, ns, "files/registry/FoobarDecryption.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/registry/FoobarDecryption.java",
 			"--name", name,
 			"-d", fmt.Sprintf("file://%s", jar),
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("foobar"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("foobar"))
 	})
 
 	t.Run("dependency can be used at build time", func(t *testing.T) {
 		// Create integration that should run an Xslt transformation whose template needs to be present at build time
 		name := RandomizedSuffixName("xslt")
-		Expect(KamelRunWithID(operatorID, ns, "files/registry/classpath/Xslt.java", "--name", name,
+		Expect(KamelRunWithID(t, operatorID, ns, "files/registry/classpath/Xslt.java", "--name", name,
 			"-d", "file://files/registry/classpath/cheese.xsl?targetPath=xslt/cheese.xsl&classpath=true",
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("<cheese><item>A</item></cheese>"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("<cheese><item>A</item></cheese>"))
 	})
 
 	// Clean up
-	Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+	Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 }
diff --git a/e2e/common/misc/rest_test.go b/e2e/common/misc/rest_test.go
index 8c1a7b9c8..abe19d834 100644
--- a/e2e/common/misc/rest_test.go
+++ b/e2e/common/misc/rest_test.go
@@ -38,37 +38,39 @@ import (
 )
 
 func TestRunRest(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
-		ocp, err := openshift.IsOpenShift(TestClient())
+		ocp, err := openshift.IsOpenShift(TestClient(t))
 		require.NoError(t, err)
 
-		Expect(KamelRunWithID(operatorID, ns, "files/rest-consumer.yaml").Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "rest-consumer"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Expect(KamelRunWithID(t, operatorID, ns, "files/rest-consumer.yaml").Execute()).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, "rest-consumer"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 
 		t.Run("Service works", func(t *testing.T) {
 			name := RandomizedSuffixName("John")
-			service := Service(ns, "rest-consumer")
+			service := Service(t, ns, "rest-consumer")
 			Eventually(service, TestTimeoutShort).ShouldNot(BeNil())
-			Expect(KamelRunWithID(operatorID, ns, "files/rest-producer.yaml", "-p", "serviceName=rest-consumer", "-p", "name="+name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "rest-producer"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, "rest-consumer"), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("get %s", name)))
-			Eventually(IntegrationLogs(ns, "rest-producer"), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("%s Doe", name)))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/rest-producer.yaml", "-p", "serviceName=rest-consumer", "-p", "name="+name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "rest-producer"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, "rest-consumer"), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("get %s", name)))
+			Eventually(IntegrationLogs(t, ns, "rest-producer"), TestTimeoutLong).Should(ContainSubstring(fmt.Sprintf("%s Doe", name)))
 		})
 
 		if ocp {
 			t.Run("Route works", func(t *testing.T) {
 				name := RandomizedSuffixName("Peter")
-				route := Route(ns, "rest-consumer")
+				route := Route(t, ns, "rest-consumer")
 				Eventually(route, TestTimeoutShort).ShouldNot(BeNil())
-				Eventually(RouteStatus(ns, "rest-consumer"), TestTimeoutMedium).Should(Equal("True"))
+				Eventually(RouteStatus(t, ns, "rest-consumer"), TestTimeoutMedium).Should(Equal("True"))
 				url := fmt.Sprintf("http://%s/customers/%s", route().Spec.Host, name)
 				Eventually(httpRequest(url), TestTimeoutMedium).Should(Equal(fmt.Sprintf("%s Doe", name)))
-				Eventually(IntegrationLogs(ns, "rest-consumer"), TestTimeoutShort).Should(ContainSubstring(fmt.Sprintf("get %s", name)))
+				Eventually(IntegrationLogs(t, ns, "rest-consumer"), TestTimeoutShort).Should(ContainSubstring(fmt.Sprintf("get %s", name)))
 			})
 		}
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
diff --git a/e2e/common/misc/scale_binding_test.go b/e2e/common/misc/scale_binding_test.go
index b4501767d..49caec365 100644
--- a/e2e/common/misc/scale_binding_test.go
+++ b/e2e/common/misc/scale_binding_test.go
@@ -40,9 +40,11 @@ import (
 )
 
 func TestPipeScale(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
-		ocp, err := openshift.IsOpenShift(TestClient())
+		ocp, err := openshift.IsOpenShift(TestClient(t))
 		require.NoError(t, err)
 		if ocp {
 			t.Skip("TODO: Temporarily disabled as this test is flaky on OpenShift 3")
@@ -50,30 +52,30 @@ func TestPipeScale(t *testing.T) {
 		}
 
 		name := RandomizedSuffixName("timer2log")
-		Expect(KamelBindWithID(operatorID, ns, "timer-source?message=HelloPipe", "log-sink", "--name", name).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(PipeConditionStatus(ns, name, v1.PipeConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("HelloPipe"))
+		Expect(KamelBindWithID(t, operatorID, ns, "timer-source?message=HelloPipe", "log-sink", "--name", name).Execute()).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(PipeConditionStatus(t, ns, name, v1.PipeConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("HelloPipe"))
 
 		t.Run("Update Pipe scale spec", func(t *testing.T) {
-			Expect(ScalePipe(ns, name, 3)).To(Succeed())
+			Expect(ScalePipe(t, ns, name, 3)).To(Succeed())
 			// Check the scale cascades into the Deployment scale
-			Eventually(IntegrationPods(ns, name), TestTimeoutShort).Should(HaveLen(3))
+			Eventually(IntegrationPods(t, ns, name), TestTimeoutShort).Should(HaveLen(3))
 			// Check it also cascades into the Integration scale subresource Status field
-			Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 3)))
 			// Check it also cascades into the Pipe scale subresource Status field
-			Eventually(PipeStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(PipeStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 3)))
 			// Check the readiness condition becomes truthy back
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
 			// Finally check the readiness condition becomes truthy back onPipe
-			Eventually(PipeConditionStatus(ns, name, v1.PipeConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+			Eventually(PipeConditionStatus(t, ns, name, v1.PipeConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
 		})
 
 		t.Run("ScalePipe with polymorphic client", func(t *testing.T) {
-			scaleClient, err := TestClient().ScalesClient()
+			scaleClient, err := TestClient(t).ScalesClient()
 			Expect(err).To(BeNil())
 
 			// Patch the integration scale subresource
@@ -82,22 +84,22 @@ func TestPipeScale(t *testing.T) {
 			Expect(err).To(BeNil())
 
 			// Check the readiness condition is still truthy as down-scaling
-			Expect(PipeConditionStatus(ns, name, v1.PipeConditionReady)()).To(Equal(corev1.ConditionTrue))
+			Expect(PipeConditionStatus(t, ns, name, v1.PipeConditionReady)()).To(Equal(corev1.ConditionTrue))
 			// Check the Integration scale subresource Spec field
-			Eventually(IntegrationSpecReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationSpecReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 2)))
 			// Then check it cascades into the Deployment scale
-			Eventually(IntegrationPods(ns, name), TestTimeoutShort).Should(HaveLen(2))
+			Eventually(IntegrationPods(t, ns, name), TestTimeoutShort).Should(HaveLen(2))
 			// Check it cascades into the Integration scale subresource Status field
-			Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 2)))
 			// Finally check it cascades into the Pipe scale subresource Status field
-			Eventually(PipeStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(PipeStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 2)))
 		})
 
 		t.Run("ScalePipe with Camel K client", func(t *testing.T) {
-			camel, err := versioned.NewForConfig(TestClient().GetConfig())
+			camel, err := versioned.NewForConfig(TestClient(t).GetConfig())
 			Expect(err).To(BeNil())
 
 			// Getter
@@ -112,22 +114,22 @@ func TestPipeScale(t *testing.T) {
 			Expect(err).To(BeNil())
 
 			// Check the readiness condition is still truthy as down-scaling inPipe
-			Expect(PipeConditionStatus(ns, name, v1.PipeConditionReady)()).To(Equal(corev1.ConditionTrue))
+			Expect(PipeConditionStatus(t, ns, name, v1.PipeConditionReady)()).To(Equal(corev1.ConditionTrue))
 			// Check the Pipe scale subresource Spec field
-			Eventually(PipeSpecReplicas(ns, name), TestTimeoutShort).
+			Eventually(PipeSpecReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 1)))
 			// Check the readiness condition is still truthy as down-scaling
-			Expect(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady)()).To(Equal(corev1.ConditionTrue))
+			Expect(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady)()).To(Equal(corev1.ConditionTrue))
 			// Check the Integration scale subresource Spec field
-			Eventually(IntegrationSpecReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationSpecReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 1)))
 			// Then check it cascades into the Deployment scale
-			Eventually(IntegrationPods(ns, name), TestTimeoutShort).Should(HaveLen(1))
+			Eventually(IntegrationPods(t, ns, name), TestTimeoutShort).Should(HaveLen(1))
 			// Finally check it cascades into the Integration scale subresource Status field
-			Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 1)))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/scale_integration_test.go b/e2e/common/misc/scale_integration_test.go
index 0b38946ed..fdbc80288 100644
--- a/e2e/common/misc/scale_integration_test.go
+++ b/e2e/common/misc/scale_integration_test.go
@@ -39,30 +39,32 @@ import (
 )
 
 func TestIntegrationScale(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 		t.Run("Update integration scale spec", func(t *testing.T) {
 			RegisterTestingT(t)
-			Expect(ScaleIntegration(ns, name, 3)).To(Succeed())
+			Expect(ScaleIntegration(t, ns, name, 3)).To(Succeed())
 			// Check the readiness condition becomes falsy
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
 			// Check the scale cascades into the Deployment scale
-			Eventually(IntegrationPods(ns, name), TestTimeoutShort).Should(HaveLen(3))
+			Eventually(IntegrationPods(t, ns, name), TestTimeoutShort).Should(HaveLen(3))
 			// Check it also cascades into the Integration scale subresource Status field
-			Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 3)))
 			// Finally check the readiness condition becomes truthy back
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
 		})
 
 		t.Run("Scale integration with polymorphic client", func(t *testing.T) {
-			scaleClient, err := TestClient().ScalesClient()
+			scaleClient, err := TestClient(t).ScalesClient()
 			Expect(err).To(BeNil())
 
 			// Patch the integration scale subresource
@@ -71,19 +73,19 @@ func TestIntegrationScale(t *testing.T) {
 			Expect(err).To(BeNil())
 
 			// Check the readiness condition is still truthy as down-scaling
-			Expect(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady)()).To(Equal(corev1.ConditionTrue))
+			Expect(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady)()).To(Equal(corev1.ConditionTrue))
 			// Check the Integration scale subresource Spec field
-			Eventually(IntegrationSpecReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationSpecReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 2)))
 			// Then check it cascades into the Deployment scale
-			Eventually(IntegrationPods(ns, name), TestTimeoutShort).Should(HaveLen(2))
+			Eventually(IntegrationPods(t, ns, name), TestTimeoutShort).Should(HaveLen(2))
 			// Finally check it cascades into the Integration scale subresource Status field
-			Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 2)))
 		})
 
 		t.Run("Scale integration with Camel K client", func(t *testing.T) {
-			camel, err := versioned.NewForConfig(TestClient().GetConfig())
+			camel, err := versioned.NewForConfig(TestClient(t).GetConfig())
 			Expect(err).To(BeNil())
 
 			// Getter
@@ -98,35 +100,35 @@ func TestIntegrationScale(t *testing.T) {
 			Expect(err).To(BeNil())
 
 			// Check the readiness condition is still truthy as down-scaling
-			Expect(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady)()).To(Equal(corev1.ConditionTrue))
+			Expect(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady)()).To(Equal(corev1.ConditionTrue))
 			// Check the Integration scale subresource Spec field
-			Eventually(IntegrationSpecReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationSpecReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 1)))
 			// Then check it cascades into the Deployment scale
-			Eventually(IntegrationPods(ns, name), TestTimeoutShort).Should(HaveLen(1))
+			Eventually(IntegrationPods(t, ns, name), TestTimeoutShort).Should(HaveLen(1))
 			// Finally check it cascades into the Integration scale subresource Status field
-			Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 1)))
 		})
 
 		t.Run("Scale integration with external image", func(t *testing.T) {
-			image := IntegrationPodImage(ns, name)()
+			image := IntegrationPodImage(t, ns, name)()
 			Expect(image).NotTo(BeEmpty())
 			// Save resources by deleting the integration
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", "pre-built", "-t", fmt.Sprintf("container.image=%s", image)).Execute()).To(Succeed())
-			Eventually(IntegrationPhase(ns, "pre-built"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-			Eventually(IntegrationPodPhase(ns, "pre-built"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Expect(ScaleIntegration(ns, "pre-built", 0)).To(Succeed())
-			Eventually(IntegrationPod(ns, "pre-built"), TestTimeoutMedium).Should(BeNil())
-			Expect(ScaleIntegration(ns, "pre-built", 1)).To(Succeed())
-			Eventually(IntegrationPhase(ns, "pre-built"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-			Eventually(IntegrationPodPhase(ns, "pre-built"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-
-			Expect(Kamel("delete", "pre-built", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", "pre-built", "-t", fmt.Sprintf("container.image=%s", image)).Execute()).To(Succeed())
+			Eventually(IntegrationPhase(t, ns, "pre-built"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+			Eventually(IntegrationPodPhase(t, ns, "pre-built"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Expect(ScaleIntegration(t, ns, "pre-built", 0)).To(Succeed())
+			Eventually(IntegrationPod(t, ns, "pre-built"), TestTimeoutMedium).Should(BeNil())
+			Expect(ScaleIntegration(t, ns, "pre-built", 1)).To(Succeed())
+			Eventually(IntegrationPhase(t, ns, "pre-built"), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+			Eventually(IntegrationPodPhase(t, ns, "pre-built"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+
+			Expect(Kamel(t, "delete", "pre-built", "-n", ns).Execute()).To(Succeed())
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/misc/structured_logs_test.go b/e2e/common/misc/structured_logs_test.go
index e011a1ae5..a94925fcd 100644
--- a/e2e/common/misc/structured_logs_test.go
+++ b/e2e/common/misc/structured_logs_test.go
@@ -35,17 +35,19 @@ import (
 )
 
 func TestStructuredLogs(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", name,
 			"-t", "logging.format=json").Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 
 		opns := GetEnvOrDefault("CAMEL_K_GLOBAL_OPERATOR_NS", TestDefaultNamespace)
-		pod := OperatorPod(opns)()
+		pod := OperatorPod(t, opns)()
 		Expect(pod).NotTo(BeNil())
 
 		// pod.Namespace could be different from ns if using global operator
@@ -53,15 +55,15 @@ func TestStructuredLogs(t *testing.T) {
 		logOptions := &corev1.PodLogOptions{
 			Container: "camel-k-operator",
 		}
-		logs, err := StructuredLogs(pod.Namespace, pod.Name, logOptions, false)
+		logs, err := StructuredLogs(t, pod.Namespace, pod.Name, logOptions, false)
 		Expect(err).To(BeNil())
 		Expect(logs).NotTo(BeEmpty())
 
-		it := Integration(ns, name)()
+		it := Integration(t, ns, name)()
 		Expect(it).NotTo(BeNil())
-		build := Build(IntegrationKitNamespace(ns, name)(), IntegrationKit(ns, name)())()
+		build := Build(t, IntegrationKitNamespace(t, ns, name)(), IntegrationKit(t, ns, name)())()
 		Expect(build).NotTo(BeNil())
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/runtimes/runtimes_test.go b/e2e/common/runtimes/runtimes_test.go
index 0e53eb022..57442e03e 100644
--- a/e2e/common/runtimes/runtimes_test.go
+++ b/e2e/common/runtimes/runtimes_test.go
@@ -34,41 +34,43 @@ import (
 )
 
 func TestSourceLessIntegrations(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 		var cmData = make(map[string]string)
 		cmData["my-file.txt"] = "Hello World!"
-		CreatePlainTextConfigmap(ns, "my-cm-sourceless", cmData)
+		CreatePlainTextConfigmap(t, ns, "my-cm-sourceless", cmData)
 
 		t.Run("Camel Main", func(t *testing.T) {
 			itName := "my-camel-main-v1"
-			Expect(KamelRunWithID(operatorID, ns, "--image", "docker.io/squakez/my-camel-main:1.0.0", "--resource", "configmap:my-cm-sourceless@/tmp/app/data").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, itName), TestTimeoutShort).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, itName, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationCondition(ns, itName, v1.IntegrationConditionTraitInfo)().Message).Should(Equal("explicitly disabled by the platform: integration kit was not created via Camel K operator"))
-			Eventually(IntegrationLogs(ns, itName), TestTimeoutShort).Should(ContainSubstring(cmData["my-file.txt"]))
-			Eventually(IntegrationLogs(ns, itName), TestTimeoutShort).Should(ContainSubstring("Apache Camel (Main)"))
+			Expect(KamelRunWithID(t, operatorID, ns, "--image", "docker.io/squakez/my-camel-main:1.0.0", "--resource", "configmap:my-cm-sourceless@/tmp/app/data").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, itName), TestTimeoutShort).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, itName, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationCondition(t, ns, itName, v1.IntegrationConditionTraitInfo)().Message).Should(Equal("explicitly disabled by the platform: integration kit was not created via Camel K operator"))
+			Eventually(IntegrationLogs(t, ns, itName), TestTimeoutShort).Should(ContainSubstring(cmData["my-file.txt"]))
+			Eventually(IntegrationLogs(t, ns, itName), TestTimeoutShort).Should(ContainSubstring("Apache Camel (Main)"))
 		})
 
 		t.Run("Camel Spring Boot", func(t *testing.T) {
 			itName := "my-camel-sb-v1"
-			Expect(KamelRunWithID(operatorID, ns, "--image", "docker.io/squakez/my-camel-sb:1.0.0", "--resource", "configmap:my-cm-sourceless@/tmp/app/data").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, itName), TestTimeoutShort).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, itName, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationCondition(ns, itName, v1.IntegrationConditionTraitInfo)().Message).Should(Equal("explicitly disabled by the platform: integration kit was not created via Camel K operator"))
-			Eventually(IntegrationLogs(ns, itName), TestTimeoutShort).Should(ContainSubstring(cmData["my-file.txt"]))
-			Eventually(IntegrationLogs(ns, itName), TestTimeoutShort).Should(ContainSubstring("Spring Boot"))
+			Expect(KamelRunWithID(t, operatorID, ns, "--image", "docker.io/squakez/my-camel-sb:1.0.0", "--resource", "configmap:my-cm-sourceless@/tmp/app/data").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, itName), TestTimeoutShort).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, itName, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationCondition(t, ns, itName, v1.IntegrationConditionTraitInfo)().Message).Should(Equal("explicitly disabled by the platform: integration kit was not created via Camel K operator"))
+			Eventually(IntegrationLogs(t, ns, itName), TestTimeoutShort).Should(ContainSubstring(cmData["my-file.txt"]))
+			Eventually(IntegrationLogs(t, ns, itName), TestTimeoutShort).Should(ContainSubstring("Spring Boot"))
 		})
 
 		t.Run("Camel Quarkus", func(t *testing.T) {
 			itName := "my-camel-quarkus-v1"
-			Expect(KamelRunWithID(operatorID, ns, "--image", "docker.io/squakez/my-camel-quarkus:1.0.0", "--resource", "configmap:my-cm-sourceless@/tmp/app/data").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, itName), TestTimeoutShort).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, itName, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationCondition(ns, itName, v1.IntegrationConditionTraitInfo)().Message).Should(Equal("explicitly disabled by the platform: integration kit was not created via Camel K operator"))
-			Eventually(IntegrationLogs(ns, itName), TestTimeoutShort).Should(ContainSubstring(cmData["my-file.txt"]))
-			Eventually(IntegrationLogs(ns, itName), TestTimeoutShort).Should(ContainSubstring("powered by Quarkus"))
+			Expect(KamelRunWithID(t, operatorID, ns, "--image", "docker.io/squakez/my-camel-quarkus:1.0.0", "--resource", "configmap:my-cm-sourceless@/tmp/app/data").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, itName), TestTimeoutShort).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, itName, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationCondition(t, ns, itName, v1.IntegrationConditionTraitInfo)().Message).Should(Equal("explicitly disabled by the platform: integration kit was not created via Camel K operator"))
+			Eventually(IntegrationLogs(t, ns, itName), TestTimeoutShort).Should(ContainSubstring(cmData["my-file.txt"]))
+			Eventually(IntegrationLogs(t, ns, itName), TestTimeoutShort).Should(ContainSubstring("powered by Quarkus"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/setup/main_test.go b/e2e/common/setup/main_test.go
index ed301d2cd..a384c9e60 100644
--- a/e2e/common/setup/main_test.go
+++ b/e2e/common/setup/main_test.go
@@ -49,15 +49,23 @@ func TestMain(m *testing.M) {
 		fmt.Printf("Test fast setup failed! - %s\n", message)
 	})
 
-	g.Expect(KamelRunWithID(operatorID, ns, "testdata/Java.java").Execute()).To(Succeed())
-	g.Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-	g.Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-	g.Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-
-	g.Expect(KamelRunWithID(operatorID, ns, "testdata/yaml.yaml").Execute()).To(Succeed())
-	g.Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-	g.Eventually(IntegrationConditionStatus(ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-	g.Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+	var t *testing.T
+	g.Expect(TestClient(t)).ShouldNot(BeNil())
+	g.Expect(UpdatePlatform(t, ns, operatorID, func(pl *v1.IntegrationPlatform) {
+		// Adjust global operator integration platform settings
+		// Tests are run in parallel so need to choose a proper build order strategy
+		pl.Spec.Build.BuildConfiguration.OrderStrategy = v1.BuildOrderStrategyDependencies
+	})).To(Succeed())
+
+	g.Expect(KamelRunWithID(t, operatorID, ns, "testdata/Java.java").Execute()).To(Succeed())
+	g.Eventually(IntegrationPodPhase(t, ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+	g.Eventually(IntegrationConditionStatus(t, ns, "java", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+	g.Eventually(IntegrationLogs(t, ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+
+	g.Expect(KamelRunWithID(t, operatorID, ns, "testdata/yaml.yaml").Execute()).To(Succeed())
+	g.Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+	g.Eventually(IntegrationConditionStatus(t, ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+	g.Eventually(IntegrationLogs(t, ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 	os.Exit(m.Run())
 }
diff --git a/e2e/common/traits/affinity_test.go b/e2e/common/traits/affinity_test.go
index 1c3cadff6..6725dda04 100644
--- a/e2e/common/traits/affinity_test.go
+++ b/e2e/common/traits/affinity_test.go
@@ -37,10 +37,12 @@ import (
 )
 
 func TestAffinityTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		var hostname string
-		if node, err := selectSchedulableNode(); err == nil {
+		if node, err := selectSchedulableNode(t); err == nil {
 			hostname = node.Labels["kubernetes.io/hostname"]
 		} else {
 			// if 'get nodes' is not allowed, just skip tests for node affinity
@@ -50,15 +52,15 @@ func TestAffinityTrait(t *testing.T) {
 		if hostname != "" {
 			t.Run("Run Java with node affinity", func(t *testing.T) {
 				name1 := RandomizedSuffixName("java1")
-				Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+				Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 					"--name", name1,
 					"-t", "affinity.enabled=true",
 					"-t", fmt.Sprintf("affinity.node-affinity-labels=kubernetes.io/hostname in(%s)", hostname)).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name1), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, name1, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, name1), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+				Eventually(IntegrationPodPhase(t, ns, name1), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, name1, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+				Eventually(IntegrationLogs(t, ns, name1), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-				pod := IntegrationPod(ns, name1)()
+				pod := IntegrationPod(t, ns, name1)()
 				Expect(pod.Spec.Affinity).NotTo(BeNil())
 				Expect(pod.Spec.Affinity.NodeAffinity).To(Equal(&corev1.NodeAffinity{
 					RequiredDuringSchedulingIgnoredDuringExecution: nodeSelector("kubernetes.io/hostname", corev1.NodeSelectorOpIn, hostname),
@@ -66,28 +68,28 @@ func TestAffinityTrait(t *testing.T) {
 				Expect(pod.Spec.NodeName).To(Equal(hostname))
 
 				// check integration schema does not contains unwanted default trait value.
-				Eventually(UnstructuredIntegration(ns, name1)).ShouldNot(BeNil())
-				unstructuredIntegration := UnstructuredIntegration(ns, name1)()
+				Eventually(UnstructuredIntegration(t, ns, name1)).ShouldNot(BeNil())
+				unstructuredIntegration := UnstructuredIntegration(t, ns, name1)()
 				affinityTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "affinity")
 				Expect(affinityTrait).NotTo(BeNil())
 				Expect(len(affinityTrait)).To(Equal(2))
 				Expect(affinityTrait["enabled"]).To(Equal(true))
 				Expect(affinityTrait["nodeAffinityLabels"]).NotTo(BeNil())
 
-				Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+				Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 			})
 		}
 
 		t.Run("Run Java with pod affinity", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", "java2",
 				"-t", "affinity.enabled=true",
 				"-t", "affinity.pod-affinity-labels=camel.apache.org/integration").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "java2"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "java2", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "java2"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, "java2"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "java2", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "java2"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			pod := IntegrationPod(ns, "java2")()
+			pod := IntegrationPod(t, ns, "java2")()
 			Expect(pod.Spec.Affinity).NotTo(BeNil())
 			Expect(pod.Spec.Affinity.PodAffinity).To(Equal(&corev1.PodAffinity{
 				RequiredDuringSchedulingIgnoredDuringExecution: []corev1.PodAffinityTerm{
@@ -95,19 +97,19 @@ func TestAffinityTrait(t *testing.T) {
 				},
 			}))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Run Java with pod anti affinity", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", "java3",
 				"-t", "affinity.enabled=true",
 				"-t", "affinity.pod-anti-affinity-labels=camel.apache.org/integration").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "java3"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "java3", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "java3"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, "java3"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "java3", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "java3"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			pod := IntegrationPod(ns, "java3")()
+			pod := IntegrationPod(t, ns, "java3")()
 			Expect(pod.Spec.Affinity).NotTo(BeNil())
 			Expect(pod.Spec.Affinity.PodAntiAffinity).To(Equal(&corev1.PodAntiAffinity{
 				RequiredDuringSchedulingIgnoredDuringExecution: []corev1.PodAffinityTerm{
@@ -115,13 +117,13 @@ func TestAffinityTrait(t *testing.T) {
 				},
 			}))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 	})
 }
 
-func selectSchedulableNode() (*corev1.Node, error) {
-	nodes, err := TestClient().CoreV1().Nodes().List(TestContext, metav1.ListOptions{})
+func selectSchedulableNode(t *testing.T) (*corev1.Node, error) {
+	nodes, err := TestClient(t).CoreV1().Nodes().List(TestContext, metav1.ListOptions{})
 	if err != nil {
 		return nil, err
 	}
diff --git a/e2e/common/traits/builder_test.go b/e2e/common/traits/builder_test.go
index 2fb24bcaf..c1f9323c2 100644
--- a/e2e/common/traits/builder_test.go
+++ b/e2e/common/traits/builder_test.go
@@ -37,97 +37,99 @@ import (
 )
 
 func TestBuilderTrait(t *testing.T) {
+	// Test not able to run in parallel because of maven profile tests
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Run build strategy routine", func(t *testing.T) {
 			name := RandomizedSuffixName("java")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
+				"-t", "builder.order-strategy=sequential",
 				"-t", "builder.strategy=routine").Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			integrationKitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
+			integrationKitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
 			builderKitName := fmt.Sprintf("camel-k-%s-builder", integrationKitName)
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().Strategy, TestTimeoutShort).Should(Equal(v1.BuildStrategyRoutine))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().OrderStrategy, TestTimeoutShort).Should(Equal(v1.BuildOrderStrategySequential))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().Strategy, TestTimeoutShort).Should(Equal(v1.BuildStrategyRoutine))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().OrderStrategy, TestTimeoutShort).Should(Equal(v1.BuildOrderStrategySequential))
 			// Default resource CPU Check
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().RequestCPU, TestTimeoutShort).Should(Equal(""))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().LimitCPU, TestTimeoutShort).Should(Equal(""))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().RequestMemory, TestTimeoutShort).Should(Equal(""))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().LimitMemory, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().RequestCPU, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().LimitCPU, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().RequestMemory, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().LimitMemory, TestTimeoutShort).Should(Equal(""))
 
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName), TestTimeoutShort).Should(BeNil())
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName), TestTimeoutShort).Should(BeNil())
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Run build order strategy dependencies", func(t *testing.T) {
 			name := RandomizedSuffixName("java-dependencies-strategy")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "builder.order-strategy=dependencies").Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			integrationKitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
+			integrationKitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
 			builderKitName := fmt.Sprintf("camel-k-%s-builder", integrationKitName)
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().Strategy, TestTimeoutShort).Should(Equal(v1.BuildStrategyRoutine))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().OrderStrategy, TestTimeoutShort).Should(Equal(v1.BuildOrderStrategyDependencies))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().Strategy, TestTimeoutShort).Should(Equal(v1.BuildStrategyRoutine))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().OrderStrategy, TestTimeoutShort).Should(Equal(v1.BuildOrderStrategyDependencies))
 			// Default resource CPU Check
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().RequestCPU, TestTimeoutShort).Should(Equal(""))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().LimitCPU, TestTimeoutShort).Should(Equal(""))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().RequestMemory, TestTimeoutShort).Should(Equal(""))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().LimitMemory, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().RequestCPU, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().LimitCPU, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().RequestMemory, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().LimitMemory, TestTimeoutShort).Should(Equal(""))
 
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName), TestTimeoutShort).Should(BeNil())
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName), TestTimeoutShort).Should(BeNil())
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, name)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, name)()
+			Eventually(UnstructuredIntegration(t, ns, name)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, name)()
 			builderTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "builder")
 			Expect(builderTrait).NotTo(BeNil())
 			Expect(len(builderTrait)).To(Equal(1))
 			Expect(builderTrait["orderStrategy"]).To(Equal("dependencies"))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Run build order strategy fifo", func(t *testing.T) {
 			name := RandomizedSuffixName("java-fifo-strategy")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "builder.order-strategy=fifo").Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			integrationKitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
+			integrationKitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
 			builderKitName := fmt.Sprintf("camel-k-%s-builder", integrationKitName)
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().Strategy, TestTimeoutShort).Should(Equal(v1.BuildStrategyRoutine))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().OrderStrategy, TestTimeoutShort).Should(Equal(v1.BuildOrderStrategyFIFO))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().Strategy, TestTimeoutShort).Should(Equal(v1.BuildStrategyRoutine))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().OrderStrategy, TestTimeoutShort).Should(Equal(v1.BuildOrderStrategyFIFO))
 			// Default resource CPU Check
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().RequestCPU, TestTimeoutShort).Should(Equal(""))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().LimitCPU, TestTimeoutShort).Should(Equal(""))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().RequestMemory, TestTimeoutShort).Should(Equal(""))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().LimitMemory, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().RequestCPU, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().LimitCPU, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().RequestMemory, TestTimeoutShort).Should(Equal(""))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().LimitMemory, TestTimeoutShort).Should(Equal(""))
 
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName), TestTimeoutShort).Should(BeNil())
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName), TestTimeoutShort).Should(BeNil())
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Run build resources configuration", func(t *testing.T) {
 			name := RandomizedSuffixName("java-resource-config")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "builder.tasks-request-cpu=builder:500m",
 				"-t", "builder.tasks-limit-cpu=builder:1000m",
@@ -136,101 +138,100 @@ func TestBuilderTrait(t *testing.T) {
 				"-t", "builder.strategy=pod",
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			integrationKitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
+			integrationKitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
 			builderKitName := fmt.Sprintf("camel-k-%s-builder", integrationKitName)
 
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().Strategy, TestTimeoutShort).Should(Equal(v1.BuildStrategyPod))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().OrderStrategy, TestTimeoutShort).Should(Equal(v1.BuildOrderStrategySequential))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().RequestCPU, TestTimeoutShort).Should(Equal("500m"))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().LimitCPU, TestTimeoutShort).Should(Equal("1000m"))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().RequestMemory, TestTimeoutShort).Should(Equal("2Gi"))
-			Eventually(BuildConfig(integrationKitNamespace, integrationKitName)().LimitMemory, TestTimeoutShort).Should(Equal("3Gi"))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().Strategy, TestTimeoutShort).Should(Equal(v1.BuildStrategyPod))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().OrderStrategy, TestTimeoutShort).Should(Equal(v1.BuildOrderStrategyDependencies))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().RequestCPU, TestTimeoutShort).Should(Equal("500m"))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().LimitCPU, TestTimeoutShort).Should(Equal("1000m"))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().RequestMemory, TestTimeoutShort).Should(Equal("2Gi"))
+			Eventually(BuildConfig(t, integrationKitNamespace, integrationKitName)().LimitMemory, TestTimeoutShort).Should(Equal("3Gi"))
 
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName), TestTimeoutShort).ShouldNot(BeNil())
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName), TestTimeoutShort).ShouldNot(BeNil())
 			// Let's assert we set the resources on the builder container
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Name, TestTimeoutShort).Should(Equal("builder"))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Resources.Requests.Cpu().String(), TestTimeoutShort).Should(Equal("500m"))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Resources.Limits.Cpu().String(), TestTimeoutShort).Should(Equal("1"))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Resources.Requests.Memory().String(), TestTimeoutShort).Should(Equal("2Gi"))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Resources.Limits.Memory().String(), TestTimeoutShort).Should(Equal("3Gi"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Name, TestTimeoutShort).Should(Equal("builder"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Resources.Requests.Cpu().String(), TestTimeoutShort).Should(Equal("500m"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Resources.Limits.Cpu().String(), TestTimeoutShort).Should(Equal("1"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Resources.Requests.Memory().String(), TestTimeoutShort).Should(Equal("2Gi"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Resources.Limits.Memory().String(), TestTimeoutShort).Should(Equal("3Gi"))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Run custom pipeline task", func(t *testing.T) {
 			name := RandomizedSuffixName("java-pipeline")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "builder.tasks=custom1;alpine;tree",
 				"-t", "builder.tasks=custom2;alpine;cat maven/pom.xml",
 				"-t", "builder.strategy=pod",
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			integrationKitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
+			integrationKitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
 			builderKitName := fmt.Sprintf("camel-k-%s-builder", integrationKitName)
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName), TestTimeoutShort).ShouldNot(BeNil())
-			Eventually(len(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers), TestTimeoutShort).Should(Equal(4))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Name, TestTimeoutShort).Should(Equal("builder"))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[1].Name, TestTimeoutShort).Should(Equal("custom1"))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[2].Name, TestTimeoutShort).Should(Equal("custom2"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName), TestTimeoutShort).ShouldNot(BeNil())
+			Eventually(len(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers), TestTimeoutShort).Should(Equal(4))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Name, TestTimeoutShort).Should(Equal("builder"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[1].Name, TestTimeoutShort).Should(Equal("custom1"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[2].Name, TestTimeoutShort).Should(Equal("custom2"))
 
 			// Check containers conditions
-			Eventually(Build(integrationKitNamespace, integrationKitName), TestTimeoutShort).ShouldNot(BeNil())
+			Eventually(Build(t, integrationKitNamespace, integrationKitName), TestTimeoutShort).ShouldNot(BeNil())
 			Eventually(
-				Build(
-					integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom1 succeeded")).Status,
+				Build(t, integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom1 succeeded")).Status,
 				TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 			Eventually(
-				Build(integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom1 succeeded")).Message,
+				Build(t, integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom1 succeeded")).Message,
 				TestTimeoutShort).Should(ContainSubstring("generated-bytecode.jar"))
-			Eventually(Build(integrationKitNamespace, integrationKitName), TestTimeoutShort).ShouldNot(BeNil())
+			Eventually(Build(t, integrationKitNamespace, integrationKitName), TestTimeoutShort).ShouldNot(BeNil())
 			Eventually(
-				Build(integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom2 succeeded")).Status,
+				Build(t, integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom2 succeeded")).Status,
 				TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 			Eventually(
-				Build(integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom2 succeeded")).Message,
+				Build(t, integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom2 succeeded")).Message,
 				TestTimeoutShort).Should(ContainSubstring("</project>"))
 
 			// Check logs
-			Eventually(Logs(integrationKitNamespace, builderKitName, corev1.PodLogOptions{Container: "custom1"})).Should(ContainSubstring(`generated-bytecode.jar`))
-			Eventually(Logs(integrationKitNamespace, builderKitName, corev1.PodLogOptions{Container: "custom2"})).Should(ContainSubstring(`<artifactId>camel-k-runtime-bom</artifactId>`))
+			Eventually(Logs(t, integrationKitNamespace, builderKitName, corev1.PodLogOptions{Container: "custom1"})).Should(ContainSubstring(`generated-bytecode.jar`))
+			Eventually(Logs(t, integrationKitNamespace, builderKitName, corev1.PodLogOptions{Container: "custom2"})).Should(ContainSubstring(`<artifactId>camel-k-runtime-bom</artifactId>`))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Run custom pipeline task error", func(t *testing.T) {
 			name := RandomizedSuffixName("java-error")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "builder.tasks=custom1;alpine;cat missingfile.txt",
 				"-t", "builder.strategy=pod",
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPhase(ns, name)).Should(Equal(v1.IntegrationPhaseBuildingKit))
-			integrationKitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
+			Eventually(IntegrationPhase(t, ns, name)).Should(Equal(v1.IntegrationPhaseBuildingKit))
+			integrationKitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
 			// Check containers conditions
-			Eventually(Build(integrationKitNamespace, integrationKitName), TestTimeoutLong).ShouldNot(BeNil())
-			Eventually(BuildConditions(integrationKitNamespace, integrationKitName), TestTimeoutLong).ShouldNot(BeNil())
-			Eventually(BuildCondition(integrationKitNamespace, integrationKitName, v1.BuildConditionType("Container custom1 succeeded")), TestTimeoutMedium).ShouldNot(BeNil())
+			Eventually(Build(t, integrationKitNamespace, integrationKitName), TestTimeoutLong).ShouldNot(BeNil())
+			Eventually(BuildConditions(t, integrationKitNamespace, integrationKitName), TestTimeoutLong).ShouldNot(BeNil())
+			Eventually(BuildCondition(t, integrationKitNamespace, integrationKitName, v1.BuildConditionType("Container custom1 succeeded")), TestTimeoutMedium).ShouldNot(BeNil())
 			Eventually(
-				BuildCondition(integrationKitNamespace, integrationKitName, v1.BuildConditionType("Container custom1 succeeded"))().Status,
+				BuildCondition(t, integrationKitNamespace, integrationKitName, v1.BuildConditionType("Container custom1 succeeded"))().Status,
 				TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
 			Eventually(
-				BuildCondition(integrationKitNamespace, integrationKitName, v1.BuildConditionType("Container custom1 succeeded"))().Message,
+				BuildCondition(t, integrationKitNamespace, integrationKitName, v1.BuildConditionType("Container custom1 succeeded"))().Message,
 				TestTimeoutShort).Should(ContainSubstring("No such file or directory"))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Run maven profile", func(t *testing.T) {
@@ -238,11 +239,11 @@ func TestBuilderTrait(t *testing.T) {
 
 			opns := GetEnvOrDefault("CAMEL_K_GLOBAL_OPERATOR_NS", TestDefaultNamespace)
 			mavenProfile1Cm := newMavenProfileConfigMap(opns, "maven-profile-owasp", "owasp-profile")
-			Expect(TestClient().Create(TestContext, mavenProfile1Cm)).To(Succeed())
+			Expect(TestClient(t).Create(TestContext, mavenProfile1Cm)).To(Succeed())
 			mavenProfile2Cm := newMavenProfileConfigMap(opns, "maven-profile-dependency", "dependency-profile")
-			Expect(TestClient().Create(TestContext, mavenProfile2Cm)).To(Succeed())
+			Expect(TestClient(t).Create(TestContext, mavenProfile2Cm)).To(Succeed())
 
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "builder.maven-profiles=configmap:maven-profile-owasp/owasp-profile",
 				"-t", "builder.maven-profiles=configmap:maven-profile-dependency/dependency-profile",
@@ -250,35 +251,35 @@ func TestBuilderTrait(t *testing.T) {
 				"-t", "builder.strategy=pod",
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			integrationKitName := IntegrationKit(ns, name)()
-			integrationKitNamespace := IntegrationKitNamespace(ns, name)()
+			integrationKitName := IntegrationKit(t, ns, name)()
+			integrationKitNamespace := IntegrationKitNamespace(t, ns, name)()
 			builderKitName := fmt.Sprintf("camel-k-%s-builder", integrationKitName)
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName), TestTimeoutShort).ShouldNot(BeNil())
-			Eventually(len(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers), TestTimeoutShort).Should(Equal(3))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Name, TestTimeoutShort).Should(Equal("builder"))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[1].Name, TestTimeoutShort).Should(Equal("custom1"))
-			Eventually(BuilderPod(integrationKitNamespace, builderKitName)().Spec.InitContainers[2].Name, TestTimeoutShort).Should(Equal("package"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName), TestTimeoutShort).ShouldNot(BeNil())
+			Eventually(len(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers), TestTimeoutShort).Should(Equal(3))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[0].Name, TestTimeoutShort).Should(Equal("builder"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[1].Name, TestTimeoutShort).Should(Equal("custom1"))
+			Eventually(BuilderPod(t, integrationKitNamespace, builderKitName)().Spec.InitContainers[2].Name, TestTimeoutShort).Should(Equal("package"))
 
 			// Check containers conditions
-			Eventually(Build(integrationKitNamespace, integrationKitName), TestTimeoutShort).ShouldNot(BeNil())
+			Eventually(Build(t, integrationKitNamespace, integrationKitName), TestTimeoutShort).ShouldNot(BeNil())
 			Eventually(
-				Build(integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom1 succeeded")).Status,
+				Build(t, integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom1 succeeded")).Status,
 				TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 			Eventually(
-				Build(integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom1 succeeded")).Message,
+				Build(t, integrationKitNamespace, integrationKitName)().Status.GetCondition(v1.BuildConditionType("Container custom1 succeeded")).Message,
 				TestTimeoutShort).Should(ContainSubstring("</project>"))
 
 			// Check logs
-			Eventually(Logs(integrationKitNamespace, builderKitName, corev1.PodLogOptions{Container: "custom1"})).Should(ContainSubstring(`<id>owasp-profile</id>`))
-			Eventually(Logs(integrationKitNamespace, builderKitName, corev1.PodLogOptions{Container: "custom1"})).Should(ContainSubstring(`<id>dependency-profile</id>`))
+			Eventually(Logs(t, integrationKitNamespace, builderKitName, corev1.PodLogOptions{Container: "custom1"})).Should(ContainSubstring(`<id>owasp-profile</id>`))
+			Eventually(Logs(t, integrationKitNamespace, builderKitName, corev1.PodLogOptions{Container: "custom1"})).Should(ContainSubstring(`<id>dependency-profile</id>`))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
-			Expect(TestClient().Delete(TestContext, mavenProfile1Cm)).To(Succeed())
-			Expect(TestClient().Delete(TestContext, mavenProfile2Cm)).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(TestClient(t).Delete(TestContext, mavenProfile1Cm)).To(Succeed())
+			Expect(TestClient(t).Delete(TestContext, mavenProfile2Cm)).To(Succeed())
 		})
 	})
 }
diff --git a/e2e/common/traits/camel_test.go b/e2e/common/traits/camel_test.go
index 1cce0aa5b..c2cd82432 100644
--- a/e2e/common/traits/camel_test.go
+++ b/e2e/common/traits/camel_test.go
@@ -34,37 +34,39 @@ import (
 )
 
 func TestCamelTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("properties changes should not rebuild", func(t *testing.T) {
 
-			Expect(Kamel("reset", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "reset", "-n", ns).Execute()).To(Succeed())
 
 			name := RandomizedSuffixName("java")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 			).Execute()).To(Succeed())
 
 			// checking the integration status
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			integrationKit := IntegrationKit(ns, name)()
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			integrationKit := IntegrationKit(t, ns, name)()
 
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-p", "a=1",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutShort).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			Eventually(IntegrationKit(ns, name)).Should(Equal(integrationKit))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutShort).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationKit(t, ns, name)).Should(Equal(integrationKit))
 
-			Expect(Kamel("delete", name, "-n", ns).Execute()).To(Succeed())
-			Eventually(Integration(ns, name), TestTimeoutLong).Should(BeNil())
+			Expect(Kamel(t, "delete", name, "-n", ns).Execute()).To(Succeed())
+			Eventually(Integration(t, ns, name), TestTimeoutLong).Should(BeNil())
 		})
 
 		// Clean-up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/container_test.go b/e2e/common/traits/container_test.go
index 8fa216fe8..d3ff9cc89 100644
--- a/e2e/common/traits/container_test.go
+++ b/e2e/common/traits/container_test.go
@@ -35,11 +35,13 @@ import (
 )
 
 func TestContainerTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Container image pull policy and resources configuration", func(t *testing.T) {
 			name := RandomizedSuffixName("java1")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"-t", "container.image-pull-policy=Always",
 				"-t", "container.request-cpu=0.005",
 				"-t", "container.request-memory=100Mi",
@@ -47,17 +49,17 @@ func TestContainerTrait(t *testing.T) {
 				"-t", "container.limit-memory=500Mi",
 				"--name", name,
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			Eventually(IntegrationPodHas(ns, name, func(pod *corev1.Pod) bool {
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodHas(t, ns, name, func(pod *corev1.Pod) bool {
 				if len(pod.Spec.Containers) != 1 {
 					return false
 				}
 				imagePullPolicy := pod.Spec.Containers[0].ImagePullPolicy
 				return imagePullPolicy == "Always"
 			}), TestTimeoutShort).Should(BeTrue())
-			Eventually(IntegrationPodHas(ns, name, func(pod *corev1.Pod) bool {
+			Eventually(IntegrationPodHas(t, ns, name, func(pod *corev1.Pod) bool {
 				if len(pod.Spec.Containers) != 1 {
 					return false
 				}
@@ -65,7 +67,7 @@ func TestContainerTrait(t *testing.T) {
 				requestsCpu := pod.Spec.Containers[0].Resources.Requests.Cpu()
 				return limitsCpu != nil && limitsCpu.String() == "200m" && requestsCpu != nil && requestsCpu.String() == "5m"
 			}), TestTimeoutShort).Should(BeTrue())
-			Eventually(IntegrationPodHas(ns, name, func(pod *corev1.Pod) bool {
+			Eventually(IntegrationPodHas(t, ns, name, func(pod *corev1.Pod) bool {
 				if len(pod.Spec.Containers) != 1 {
 					return false
 				}
@@ -79,14 +81,14 @@ func TestContainerTrait(t *testing.T) {
 		t.Run("Container name", func(t *testing.T) {
 			name := RandomizedSuffixName("java2")
 			containerName := "my-container-name"
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"-t", "container.name="+containerName,
 				"--name", name,
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			Eventually(IntegrationPodHas(ns, name, func(pod *corev1.Pod) bool {
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodHas(t, ns, name, func(pod *corev1.Pod) bool {
 				if len(pod.Spec.Containers) != 1 {
 					return false
 				}
@@ -95,8 +97,8 @@ func TestContainerTrait(t *testing.T) {
 			}), TestTimeoutShort).Should(BeTrue())
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, name)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, name)()
+			Eventually(UnstructuredIntegration(t, ns, name)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, name)()
 			containerTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "container")
 			Expect(containerTrait).ToNot(BeNil())
 			Expect(len(containerTrait)).To(Equal(1))
@@ -105,6 +107,6 @@ func TestContainerTrait(t *testing.T) {
 		})
 
 		// Clean-up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/deployment_test.go b/e2e/common/traits/deployment_test.go
index 9a5e24117..d8dd0310a 100644
--- a/e2e/common/traits/deployment_test.go
+++ b/e2e/common/traits/deployment_test.go
@@ -38,20 +38,22 @@ import (
 )
 
 func TestRecreateDeploymentStrategyTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Run with Recreate Deployment Strategy", func(t *testing.T) {
 			name := RandomizedSuffixName("java")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "deployment.strategy="+string(appsv1.RecreateDeploymentStrategyType)).
 				Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			Eventually(Deployment(ns, name), TestTimeoutMedium).Should(PointTo(MatchFields(IgnoreExtras,
+			Eventually(Deployment(t, ns, name), TestTimeoutMedium).Should(PointTo(MatchFields(IgnoreExtras,
 				Fields{
 					"Spec": MatchFields(IgnoreExtras,
 						Fields{
@@ -64,8 +66,8 @@ func TestRecreateDeploymentStrategyTrait(t *testing.T) {
 			))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, name)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, name)()
+			Eventually(UnstructuredIntegration(t, ns, name)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, name)()
 			deploymentTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "deployment")
 			Expect(deploymentTrait).ToNot(BeNil())
 			Expect(len(deploymentTrait)).To(Equal(1))
@@ -73,7 +75,7 @@ func TestRecreateDeploymentStrategyTrait(t *testing.T) {
 
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
@@ -81,15 +83,15 @@ func TestRollingUpdateDeploymentStrategyTrait(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Run with RollingUpdate Deployment Strategy", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"-t", "deployment.strategy="+string(appsv1.RollingUpdateDeploymentStrategyType)).
 				Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "java", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			Eventually(Deployment(ns, "java"), TestTimeoutMedium).Should(PointTo(MatchFields(IgnoreExtras,
+			Eventually(Deployment(t, ns, "java"), TestTimeoutMedium).Should(PointTo(MatchFields(IgnoreExtras,
 				Fields{
 					"Spec": MatchFields(IgnoreExtras,
 						Fields{
@@ -102,6 +104,6 @@ func TestRollingUpdateDeploymentStrategyTrait(t *testing.T) {
 			))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/error_handler_test.go b/e2e/common/traits/error_handler_test.go
index 68f0c0cb0..316f8d233 100644
--- a/e2e/common/traits/error_handler_test.go
+++ b/e2e/common/traits/error_handler_test.go
@@ -34,21 +34,23 @@ import (
 )
 
 func TestErrorHandlerTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Run errored integration with error handler", func(t *testing.T) {
 			name := RandomizedSuffixName("error-handler")
-			Expect(KamelRunWithID(operatorID, ns, "files/ErroredRoute.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/ErroredRoute.java",
 				"--name", name,
 				"-t", "error-handler.enabled=true",
 				"-t", "error-handler.ref=defaultErrorHandler",
 				"-p", "camel.beans.defaultErrorHandler=#class:org.apache.camel.builder.DeadLetterChannelBuilder",
 				"-p", "camel.beans.defaultErrorHandler.deadLetterUri=log:my-special-error-handler-in-place?level=ERROR&showCaughtException=false&showBody=false&showBodyType=false&showExchangePattern=false",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).ShouldNot(ContainSubstring("InvalidPayloadException"))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("my-special-error-handler-in-place"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).ShouldNot(ContainSubstring("InvalidPayloadException"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("my-special-error-handler-in-place"))
 		})
 	})
 }
diff --git a/e2e/common/traits/errored_trait_test.go b/e2e/common/traits/errored_trait_test.go
index 3a01aace1..9ee4388eb 100644
--- a/e2e/common/traits/errored_trait_test.go
+++ b/e2e/common/traits/errored_trait_test.go
@@ -34,17 +34,19 @@ import (
 )
 
 func TestErroredTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Integration trait should fail", func(t *testing.T) {
 			name := RandomizedSuffixName("it-errored")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "kamelets.list=missing",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(And(
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(And(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionInitializationFailedReason)),
 				WithTransform(IntegrationConditionMessage, HavePrefix("error during trait customization")),
 			))
@@ -52,28 +54,28 @@ func TestErroredTrait(t *testing.T) {
 
 		t.Run("Pipe trait should fail", func(t *testing.T) {
 			name := RandomizedSuffixName("kb-errored")
-			Expect(KamelBindWithID(operatorID, ns, "timer:foo", "log:bar",
+			Expect(KamelBindWithID(t, operatorID, ns, "timer:foo", "log:bar",
 				"--name", name,
 				"-t", "kamelets.list=missing",
 			).Execute()).To(Succeed())
 			// Pipe
-			Eventually(PipePhase(ns, name), TestTimeoutShort).Should(Equal(v1.PipePhaseError))
-			Eventually(PipeConditionStatus(ns, name, v1.PipeConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
-			Eventually(PipeCondition(ns, name, v1.PipeConditionReady), TestTimeoutShort).Should(
+			Eventually(PipePhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.PipePhaseError))
+			Eventually(PipeConditionStatus(t, ns, name, v1.PipeConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
+			Eventually(PipeCondition(t, ns, name, v1.PipeConditionReady), TestTimeoutShort).Should(
 				WithTransform(PipeConditionMessage, And(
 					ContainSubstring("error during trait customization"),
 					ContainSubstring("[missing] not found"),
 				)))
 			// Integration related
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(And(
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(And(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionInitializationFailedReason)),
 				WithTransform(IntegrationConditionMessage, HavePrefix("error during trait customization")),
 			))
 		})
 
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/health_test.go b/e2e/common/traits/health_test.go
index 69a61c73f..62403812f 100644
--- a/e2e/common/traits/health_test.go
+++ b/e2e/common/traits/health_test.go
@@ -43,11 +43,13 @@ import (
 )
 
 func TestHealthTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Readiness condition with stopped route scaled", func(t *testing.T) {
 			name := RandomizedSuffixName("java")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"-t", "health.enabled=true",
 				// Enable Jolokia for the test to stop the Camel route
 				"-t", "jolokia.enabled=true",
@@ -56,32 +58,32 @@ func TestHealthTrait(t *testing.T) {
 				"--name", name,
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			Expect(ScaleIntegration(ns, name, 3)).To(Succeed())
+			Expect(ScaleIntegration(t, ns, name, 3)).To(Succeed())
 			// Check the readiness condition becomes falsy
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
 			// Check the scale cascades into the Deployment scale
-			Eventually(IntegrationPods(ns, name), TestTimeoutShort).Should(HaveLen(3))
+			Eventually(IntegrationPods(t, ns, name), TestTimeoutShort).Should(HaveLen(3))
 			// Check it also cascades into the Integration scale subresource Status field
-			Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+			Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 				Should(gstruct.PointTo(BeNumerically("==", 3)))
 			// Finally check the readiness condition becomes truthy back
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, name)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, name)()
+			Eventually(UnstructuredIntegration(t, ns, name)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, name)()
 			healthTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "health")
 			Expect(healthTrait).ToNot(BeNil())
 			Expect(len(healthTrait)).To(Equal(1))
 			Expect(healthTrait["enabled"]).To(Equal(true))
 
-			pods := IntegrationPods(ns, name)()
+			pods := IntegrationPods(t, ns, name)()
 
 			for i, pod := range pods {
 				// Stop the Camel route
@@ -93,22 +95,22 @@ func TestHealthTrait(t *testing.T) {
 				body, err := json.Marshal(request)
 				Expect(err).To(BeNil())
 
-				response, err := TestClient().CoreV1().RESTClient().Post().
+				response, err := TestClient(t).CoreV1().RESTClient().Post().
 					AbsPath(fmt.Sprintf("/api/v1/namespaces/%s/pods/%s/proxy/jolokia/", ns, pod.Name)).
 					Body(body).
 					DoRaw(TestContext)
 				Expect(err).To(BeNil())
 				Expect(response).To(ContainSubstring(`"status":200`))
 
-				Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+				Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 					Should(Equal(corev1.ConditionFalse))
 
-				Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
+				Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
 					WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionRuntimeNotReadyReason)),
 					WithTransform(IntegrationConditionMessage, Equal(fmt.Sprintf("%d/3 pods are not ready", i+1)))))
 			}
 
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
 				Satisfy(func(c *v1.IntegrationCondition) bool {
 					if c.Status != corev1.ConditionFalse {
 						return false
@@ -145,15 +147,15 @@ func TestHealthTrait(t *testing.T) {
 					return true
 				}))
 
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
 
 			// Clean-up
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Readiness condition with stopped route", func(t *testing.T) {
 			name := RandomizedSuffixName("java")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"-t", "health.enabled=true",
 				// Enable Jolokia for the test to stop the Camel route
 				"-t", "jolokia.enabled=true",
@@ -162,13 +164,13 @@ func TestHealthTrait(t *testing.T) {
 				"--name", name,
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			pod := IntegrationPod(ns, name)()
+			pod := IntegrationPod(t, ns, name)()
 
 			// Stop the Camel route
 			request := map[string]string{
@@ -179,7 +181,7 @@ func TestHealthTrait(t *testing.T) {
 			body, err := json.Marshal(request)
 			Expect(err).To(BeNil())
 
-			response, err := TestClient().CoreV1().RESTClient().Post().
+			response, err := TestClient(t).CoreV1().RESTClient().Post().
 				AbsPath(fmt.Sprintf("/api/v1/namespaces/%s/pods/%s/proxy/jolokia/", ns, pod.Name)).
 				Body(body).
 				DoRaw(TestContext)
@@ -187,7 +189,7 @@ func TestHealthTrait(t *testing.T) {
 			Expect(response).To(ContainSubstring(`"status":200`))
 
 			// Check the ready condition has turned false
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionFalse))
 			// And it contains details about the runtime state
 
@@ -202,11 +204,11 @@ func TestHealthTrait(t *testing.T) {
 			// status: "False"
 			// type: Ready
 			//
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionRuntimeNotReadyReason)),
 				WithTransform(IntegrationConditionMessage, Equal("1/1 pods are not ready"))))
 
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
 				Satisfy(func(c *v1.IntegrationCondition) bool {
 					if c.Status != corev1.ConditionFalse {
 						return false
@@ -239,10 +241,10 @@ func TestHealthTrait(t *testing.T) {
 					return data["check.kind"].(string) == "READINESS" && data["route.status"].(string) == "Stopped"
 				}))
 
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseError))
 
 			// Clean-up
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Readiness condition with stopped binding", func(t *testing.T) {
@@ -250,10 +252,10 @@ func TestHealthTrait(t *testing.T) {
 			source := RandomizedSuffixName("my-health-timer-source")
 			sink := RandomizedSuffixName("my-health-log-sink")
 
-			Expect(CreateTimerKamelet(ns, source)()).To(Succeed())
-			Expect(CreateLogKamelet(ns, sink)()).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, source)()).To(Succeed())
+			Expect(CreateLogKamelet(t, ns, sink)()).To(Succeed())
 
-			Expect(KamelBindWithID(operatorID, ns,
+			Expect(KamelBindWithID(t, operatorID, ns,
 				source,
 				sink,
 				"-p", "source.message=Magicstring!",
@@ -265,12 +267,12 @@ func TestHealthTrait(t *testing.T) {
 				"--name", name,
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			pod := IntegrationPod(ns, name)()
+			pod := IntegrationPod(t, ns, name)()
 
 			// Stop the Camel route
 			request := map[string]string{
@@ -281,7 +283,7 @@ func TestHealthTrait(t *testing.T) {
 			body, err := json.Marshal(request)
 			Expect(err).To(BeNil())
 
-			response, err := TestClient().CoreV1().RESTClient().Post().
+			response, err := TestClient(t).CoreV1().RESTClient().Post().
 				AbsPath(fmt.Sprintf("/api/v1/namespaces/%s/pods/%s/proxy/jolokia/", ns, pod.Name)).
 				Body(body).
 				DoRaw(TestContext)
@@ -290,15 +292,15 @@ func TestHealthTrait(t *testing.T) {
 			Expect(response).To(ContainSubstring(`"status":200`))
 
 			// Check the ready condition has turned false
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).
 				Should(Equal(corev1.ConditionFalse))
 			// And it contains details about the runtime state
 
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionRuntimeNotReadyReason)),
 				WithTransform(IntegrationConditionMessage, Equal("1/1 pods are not ready"))))
 
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
 				Satisfy(func(c *v1.IntegrationCondition) bool {
 					if c.Status != corev1.ConditionFalse {
 						return false
@@ -331,7 +333,7 @@ func TestHealthTrait(t *testing.T) {
 					return data["check.kind"].(string) == "READINESS" && data["route.status"].(string) == "Stopped" && data["route.id"].(string) == "binding"
 				}))
 
-			Eventually(PipeCondition(ns, name, camelv1.PipeConditionReady), TestTimeoutLong).Should(
+			Eventually(PipeCondition(t, ns, name, camelv1.PipeConditionReady), TestTimeoutLong).Should(
 				Satisfy(func(c *camelv1.PipeCondition) bool {
 					if c.Status != corev1.ConditionFalse {
 						return false
@@ -365,31 +367,31 @@ func TestHealthTrait(t *testing.T) {
 				}))
 
 			// Clean-up
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
-			Expect(DeleteKamelet(ns, source)).To(Succeed())
-			Expect(DeleteKamelet(ns, sink)).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(DeleteKamelet(t, ns, source)).To(Succeed())
+			Expect(DeleteKamelet(t, ns, sink)).To(Succeed())
 		})
 
 		t.Run("Readiness condition with never ready route", func(t *testing.T) {
 			name := RandomizedSuffixName("never-ready")
 
-			Expect(KamelRunWithID(operatorID, ns, "files/NeverReady.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/NeverReady.java",
 				"--name", name,
 				"-t", "health.enabled=true",
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
-			Consistently(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), 1*time.Minute).
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+			Consistently(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), 1*time.Minute).
 				Should(Equal(corev1.ConditionFalse))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
 
 			// Check that the error message is propagated from health checks even if deployment never becomes ready
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionRuntimeNotReadyReason)),
 				WithTransform(IntegrationConditionMessage, Equal("1/1 pods are not ready"))))
 
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
 				Satisfy(func(c *v1.IntegrationCondition) bool {
 					if c.Status != corev1.ConditionFalse {
 						return false
@@ -426,23 +428,23 @@ func TestHealthTrait(t *testing.T) {
 		t.Run("Startup condition with never ready route", func(t *testing.T) {
 			name := RandomizedSuffixName("startup-probe-never-ready-route")
 
-			Expect(KamelRunWithID(operatorID, ns, "files/NeverReady.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/NeverReady.java",
 				"--name", name,
 				"-t", "health.enabled=true",
 				"-t", "health.startup-probe-enabled=true",
 				"-t", "health.startup-timeout=60",
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
-			Consistently(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), 1*time.Minute).Should(Equal(corev1.ConditionFalse))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
+			Consistently(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), 1*time.Minute).Should(Equal(corev1.ConditionFalse))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutLong).Should(Equal(v1.IntegrationPhaseError))
 
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(And(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionRuntimeNotReadyReason)),
 				WithTransform(IntegrationConditionMessage, Equal("1/1 pods are not ready"))))
 
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutLong).Should(
 				Satisfy(func(c *v1.IntegrationCondition) bool {
 					if c.Status != corev1.ConditionFalse {
 						return false
@@ -488,17 +490,17 @@ func TestHealthTrait(t *testing.T) {
 		t.Run("Startup condition with ready route", func(t *testing.T) {
 			name := RandomizedSuffixName("startup-probe-ready-route")
 
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "health.enabled=true",
 				"-t", "health.startup-probe-enabled=true",
 				"-t", "health.startup-timeout=60",
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationPhase(ns, name), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPhase(t, ns, name), TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
 
-			Eventually(IntegrationCondition(ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(And(
+			Eventually(IntegrationCondition(t, ns, name, v1.IntegrationConditionReady), TestTimeoutMedium).Should(And(
 				WithTransform(IntegrationConditionReason, Equal(v1.IntegrationConditionDeploymentReadyReason)),
 				WithTransform(IntegrationConditionMessage, Equal("1/1 ready replicas"))))
 
@@ -511,6 +513,6 @@ func TestHealthTrait(t *testing.T) {
 
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/istio_test.go b/e2e/common/traits/istio_test.go
index 5a0d7567a..c66019349 100644
--- a/e2e/common/traits/istio_test.go
+++ b/e2e/common/traits/istio_test.go
@@ -35,26 +35,28 @@ import (
 )
 
 func TestIstioTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Run Java with Istio", func(t *testing.T) {
 			name := RandomizedSuffixName("java")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "istio.enabled=true").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			pod := IntegrationPod(ns, name)()
+			pod := IntegrationPod(t, ns, name)()
 			Expect(pod.ObjectMeta.Annotations).NotTo(BeNil())
 			annotations := pod.ObjectMeta.Annotations
 			Expect(annotations["sidecar.istio.io/inject"]).To(Equal("true"))
 			Expect(annotations["traffic.sidecar.istio.io/includeOutboundIPRanges"]).To(Equal("10.0.0.0/8,172.16.0.0/12,192.168.0.0/16"))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, name)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, name)()
+			Eventually(UnstructuredIntegration(t, ns, name)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, name)()
 			istioTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "istio")
 			Expect(istioTrait).ToNot(BeNil())
 			Expect(len(istioTrait)).To(Equal(1))
@@ -62,6 +64,6 @@ func TestIstioTrait(t *testing.T) {
 
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/jolokia_test.go b/e2e/common/traits/jolokia_test.go
index bf9b332d6..d43c9385d 100644
--- a/e2e/common/traits/jolokia_test.go
+++ b/e2e/common/traits/jolokia_test.go
@@ -36,29 +36,31 @@ import (
 )
 
 func TestJolokiaTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Run Java with Jolokia", func(t *testing.T) {
 			name := RandomizedSuffixName("java")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "jolokia.enabled=true",
 				"-t", "jolokia.use-ssl-client-authentication=false",
 				"-t", "jolokia.protocol=http",
 				"-t", "jolokia.extended-client-check=false").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			pod := IntegrationPod(ns, name)
-			response, err := TestClient().CoreV1().RESTClient().Get().
+			pod := IntegrationPod(t, ns, name)
+			response, err := TestClient(t).CoreV1().RESTClient().Get().
 				AbsPath(fmt.Sprintf("/api/v1/namespaces/%s/pods/%s/proxy/jolokia/", ns, pod().Name)).DoRaw(TestContext)
 			Expect(err).To(BeNil())
 			Expect(response).To(ContainSubstring(`"status":200`))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, name)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, name)()
+			Eventually(UnstructuredIntegration(t, ns, name)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, name)()
 			jolokiaTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "jolokia")
 			Expect(jolokiaTrait).ToNot(BeNil())
 			Expect(len(jolokiaTrait)).To(Equal(4))
@@ -69,6 +71,6 @@ func TestJolokiaTrait(t *testing.T) {
 
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/jvm_test.go b/e2e/common/traits/jvm_test.go
index bf2b6638a..6ea2dc89b 100644
--- a/e2e/common/traits/jvm_test.go
+++ b/e2e/common/traits/jvm_test.go
@@ -37,6 +37,8 @@ import (
 )
 
 func TestJVMTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		// Store a configmap holding a jar
@@ -45,27 +47,27 @@ func TestJVMTrait(t *testing.T) {
 		source, err := os.ReadFile("./files/jvm/sample-1.0.jar")
 		require.NoError(t, err)
 		cmData["sample-1.0.jar"] = source
-		err = CreateBinaryConfigmap(ns, "my-deps", cmData)
+		err = CreateBinaryConfigmap(t, ns, "my-deps", cmData)
 		require.NoError(t, err)
 
 		t.Run("JVM trait classpath", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "./files/jvm/Classpath.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "./files/jvm/Classpath.java",
 				"--resource", "configmap:my-deps",
 				"-t", "jvm.classpath=/etc/camel/resources/my-deps/sample-1.0.jar",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!"))
+			Eventually(IntegrationPodPhase(t, ns, "classpath"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "classpath", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "classpath"), TestTimeoutShort).Should(ContainSubstring("Hello World!"))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, "classpath")).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, "classpath")()
+			Eventually(UnstructuredIntegration(t, ns, "classpath")).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, "classpath")()
 			jvmTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "jvm")
 			Expect(jvmTrait).ToNot(BeNil())
 			Expect(len(jvmTrait)).To(Equal(1))
 			Expect(jvmTrait["classpath"]).To(Equal("/etc/camel/resources/my-deps/sample-1.0.jar"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/kamelet_test.go b/e2e/common/traits/kamelet_test.go
index a23789408..a0476a662 100644
--- a/e2e/common/traits/kamelet_test.go
+++ b/e2e/common/traits/kamelet_test.go
@@ -34,6 +34,8 @@ import (
 )
 
 func TestKameletTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("discover kamelet capabilities", func(t *testing.T) {
@@ -47,22 +49,22 @@ func TestKameletTrait(t *testing.T) {
 					},
 				},
 			}
-			Expect(CreateKamelet(ns, "capabilities-webhook-source", template, nil, nil)()).To(Succeed())
+			Expect(CreateKamelet(t, ns, "capabilities-webhook-source", template, nil, nil)()).To(Succeed())
 
 			name := RandomizedSuffixName("webhook")
-			Expect(KamelRunWithID(operatorID, ns, "files/webhook.yaml", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Started capabilities-webhook-source-1 (platform-http:///webhook)"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/webhook.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Started capabilities-webhook-source-1 (platform-http:///webhook)"))
 			// Verify Integration capabilities
-			Eventually(IntegrationStatusCapabilities(ns, name), TestTimeoutShort).Should(ContainElements("platform-http"))
+			Eventually(IntegrationStatusCapabilities(t, ns, name), TestTimeoutShort).Should(ContainElements("platform-http"))
 			// Verify expected resources from Kamelet (Service in this case)
-			service := Service(ns, name)
+			service := Service(t, ns, name)
 			Eventually(service, TestTimeoutShort).ShouldNot(BeNil())
 		})
 
 		// Clean-up
-		Expect(DeleteKamelet(ns, "capabilities-webhook-source")).To(Succeed())
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(DeleteKamelet(t, ns, "capabilities-webhook-source")).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/master_test.go b/e2e/common/traits/master_test.go
index 06c6cf5cd..bd5980872 100644
--- a/e2e/common/traits/master_test.go
+++ b/e2e/common/traits/master_test.go
@@ -35,41 +35,43 @@ import (
 )
 
 func TestMasterTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("master works", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/Master.java").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "master"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, "master"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Master.java").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "master"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, "master"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("only one integration with master runs", func(t *testing.T) {
 			nameFirst := RandomizedSuffixName("first")
-			Expect(KamelRunWithID(operatorID, ns, "files/Master.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Master.java",
 				"--name", nameFirst,
 				"--label", "leader-group=same",
 				"-t", "master.label-key=leader-group",
 				"-t", "master.label-value=same",
 				"-t", "owner.target-labels=leader-group").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, nameFirst), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, nameFirst), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, nameFirst), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, nameFirst), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 			// Start a second integration with the same lock (it should not start the route)
 			nameSecond := RandomizedSuffixName("second")
-			Expect(KamelRunWithID(operatorID, ns, "files/Master.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Master.java",
 				"--name", nameSecond,
 				"--label", "leader-group=same",
 				"-t", "master.label-key=leader-group",
 				"-t", "master.label-value=same",
 				"-t", "master.resource-name=first-lock",
 				"-t", "owner.target-labels=leader-group").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, nameSecond), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, nameSecond), TestTimeoutShort).Should(ContainSubstring("started in"))
-			Eventually(IntegrationLogs(ns, nameSecond), 30*time.Second).ShouldNot(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, nameSecond), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, nameSecond), TestTimeoutShort).Should(ContainSubstring("started in"))
+			Eventually(IntegrationLogs(t, ns, nameSecond), 30*time.Second).ShouldNot(ContainSubstring("Magicstring!"))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, nameFirst)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, nameFirst)()
+			Eventually(UnstructuredIntegration(t, ns, nameFirst)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, nameFirst)()
 			builderTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "addons", "master")
 			Expect(builderTrait).ToNot(BeNil())
 			Expect(len(builderTrait)).To(Equal(2))
@@ -77,6 +79,6 @@ func TestMasterTrait(t *testing.T) {
 			Expect(builderTrait["labelValue"]).To(Equal("same"))
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/openapi_test.go b/e2e/common/traits/openapi_test.go
index 10f321e88..8036058a8 100644
--- a/e2e/common/traits/openapi_test.go
+++ b/e2e/common/traits/openapi_test.go
@@ -35,32 +35,34 @@ import (
 )
 
 func TestOpenAPI(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		openapiContent, err := ioutil.ReadFile("./files/openapi/petstore-api.yaml")
 		require.NoError(t, err)
 		var cmDataProps = make(map[string]string)
 		cmDataProps["petstore-api.yaml"] = string(openapiContent)
-		CreatePlainTextConfigmap(ns, "my-openapi", cmDataProps)
+		CreatePlainTextConfigmap(t, ns, "my-openapi", cmDataProps)
 
-		Expect(KamelRunWithID(operatorID, ns,
+		Expect(KamelRunWithID(t, operatorID, ns,
 			"--name", "petstore",
 			"--open-api", "configmap:my-openapi",
 			"files/openapi/petstore.groovy",
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, "petstore"), TestTimeoutLong).
+		Eventually(IntegrationPodPhase(t, ns, "petstore"), TestTimeoutLong).
 			Should(Equal(corev1.PodRunning))
-		Eventually(DeploymentWithIntegrationLabel(ns, "petstore"), TestTimeoutLong).
+		Eventually(DeploymentWithIntegrationLabel(t, ns, "petstore"), TestTimeoutLong).
 			Should(Not(BeNil()))
 
-		Eventually(IntegrationLogs(ns, "petstore"), TestTimeoutMedium).
+		Eventually(IntegrationLogs(t, ns, "petstore"), TestTimeoutMedium).
 			Should(ContainSubstring("Started listPets (rest://get:/v1:/pets)"))
-		Eventually(IntegrationLogs(ns, "petstore"), TestTimeoutMedium).
+		Eventually(IntegrationLogs(t, ns, "petstore"), TestTimeoutMedium).
 			Should(ContainSubstring("Started createPets (rest://post:/v1:/pets)"))
-		Eventually(IntegrationLogs(ns, "petstore"), TestTimeoutMedium).
+		Eventually(IntegrationLogs(t, ns, "petstore"), TestTimeoutMedium).
 			Should(ContainSubstring("Started showPetById (rest://get:/v1:/pets/%7BpetId%7D)"))
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/pdb_test.go b/e2e/common/traits/pdb_test.go
index 6c4c0083e..d8d0a7759 100644
--- a/e2e/common/traits/pdb_test.go
+++ b/e2e/common/traits/pdb_test.go
@@ -43,22 +43,24 @@ import (
 )
 
 func TestPodDisruptionBudgetTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"--name", name,
 			"-t", "pdb.enabled=true",
 			"-t", "pdb.min-available=2",
 		).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 		// check integration schema does not contains unwanted default trait value.
-		Eventually(UnstructuredIntegration(ns, name)).ShouldNot(BeNil())
-		unstructuredIntegration := UnstructuredIntegration(ns, name)()
+		Eventually(UnstructuredIntegration(t, ns, name)).ShouldNot(BeNil())
+		unstructuredIntegration := UnstructuredIntegration(t, ns, name)()
 		pdbTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "pdb")
 		Expect(pdbTrait).ToNot(BeNil())
 		Expect(len(pdbTrait)).To(Equal(2))
@@ -66,12 +68,12 @@ func TestPodDisruptionBudgetTrait(t *testing.T) {
 		Expect(pdbTrait["minAvailable"]).To(Equal("2"))
 
 		// Check PodDisruptionBudget
-		Eventually(podDisruptionBudget(ns, name), TestTimeoutShort).ShouldNot(BeNil())
-		pdb := podDisruptionBudget(ns, name)()
+		Eventually(podDisruptionBudget(t, ns, name), TestTimeoutShort).ShouldNot(BeNil())
+		pdb := podDisruptionBudget(t, ns, name)()
 		// Assert PDB Spec
 		Expect(pdb.Spec.MinAvailable).To(PointTo(Equal(intstr.FromInt(2))))
 		// Assert PDB Status
-		Eventually(podDisruptionBudget(ns, name), TestTimeoutShort).
+		Eventually(podDisruptionBudget(t, ns, name), TestTimeoutShort).
 			Should(MatchFieldsP(IgnoreExtras, Fields{
 				"Status": MatchFields(IgnoreExtras, Fields{
 					"ObservedGeneration": BeNumerically("==", 1),
@@ -83,17 +85,17 @@ func TestPodDisruptionBudgetTrait(t *testing.T) {
 			}))
 
 		// Scale Integration
-		Expect(ScaleIntegration(ns, name, 2)).To(Succeed())
-		Eventually(IntegrationPods(ns, name), TestTimeoutMedium).Should(HaveLen(2))
-		Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+		Expect(ScaleIntegration(t, ns, name, 2)).To(Succeed())
+		Eventually(IntegrationPods(t, ns, name), TestTimeoutMedium).Should(HaveLen(2))
+		Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 			Should(PointTo(BeNumerically("==", 2)))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 
 		// Check PodDisruptionBudget
-		pdb = podDisruptionBudget(ns, name)()
+		pdb = podDisruptionBudget(t, ns, name)()
 		Expect(pdb).NotTo(BeNil())
 		// Assert PDB Status according to the scale change
-		Eventually(podDisruptionBudget(ns, name), TestTimeoutShort).
+		Eventually(podDisruptionBudget(t, ns, name), TestTimeoutShort).
 			Should(MatchFieldsP(IgnoreExtras, Fields{
 				"Status": MatchFields(IgnoreExtras, Fields{
 					"ObservedGeneration": BeNumerically("==", 1),
@@ -105,9 +107,9 @@ func TestPodDisruptionBudgetTrait(t *testing.T) {
 			}))
 
 		// Eviction attempt
-		pods := IntegrationPods(ns, name)()
+		pods := IntegrationPods(t, ns, name)()
 		Expect(pods).To(HaveLen(2))
-		err := TestClient().CoreV1().Pods(ns).EvictV1(TestContext, &policyv1.Eviction{
+		err := TestClient(t).CoreV1().Pods(ns).EvictV1(TestContext, &policyv1.Eviction{
 			ObjectMeta: metav1.ObjectMeta{
 				Name: pods[0].Name,
 			},
@@ -131,26 +133,26 @@ func TestPodDisruptionBudgetTrait(t *testing.T) {
 
 		// Scale Integration to Scale > PodDisruptionBudgetSpec.MinAvailable
 		// for the eviction request to succeed once replicas are ready
-		Expect(ScaleIntegration(ns, name, 3)).To(Succeed())
-		Eventually(IntegrationPods(ns, name), TestTimeoutMedium).Should(HaveLen(3))
-		Eventually(IntegrationStatusReplicas(ns, name), TestTimeoutShort).
+		Expect(ScaleIntegration(t, ns, name, 3)).To(Succeed())
+		Eventually(IntegrationPods(t, ns, name), TestTimeoutMedium).Should(HaveLen(3))
+		Eventually(IntegrationStatusReplicas(t, ns, name), TestTimeoutShort).
 			Should(PointTo(BeNumerically("==", 3)))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 
-		pods = IntegrationPods(ns, name)()
+		pods = IntegrationPods(t, ns, name)()
 		Expect(pods).To(HaveLen(3))
-		Expect(TestClient().CoreV1().Pods(ns).EvictV1(TestContext, &policyv1.Eviction{
+		Expect(TestClient(t).CoreV1().Pods(ns).EvictV1(TestContext, &policyv1.Eviction{
 			ObjectMeta: metav1.ObjectMeta{
 				Name: pods[0].Name,
 			},
 		})).To(Succeed())
 
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
-func podDisruptionBudget(ns string, name string) func() *policyv1.PodDisruptionBudget {
+func podDisruptionBudget(t *testing.T, ns string, name string) func() *policyv1.PodDisruptionBudget {
 	return func() *policyv1.PodDisruptionBudget {
 		pdb := policyv1.PodDisruptionBudget{
 			TypeMeta: metav1.TypeMeta{
@@ -162,7 +164,7 @@ func podDisruptionBudget(ns string, name string) func() *policyv1.PodDisruptionB
 				Name:      name,
 			},
 		}
-		err := TestClient().Get(TestContext, ctrl.ObjectKeyFromObject(&pdb), &pdb)
+		err := TestClient(t).Get(TestContext, ctrl.ObjectKeyFromObject(&pdb), &pdb)
 		if err != nil && k8serrors.IsNotFound(err) {
 			return nil
 		} else if err != nil {
diff --git a/e2e/common/traits/pod_test.go b/e2e/common/traits/pod_test.go
index bfc679655..a8f0d6b99 100644
--- a/e2e/common/traits/pod_test.go
+++ b/e2e/common/traits/pod_test.go
@@ -34,6 +34,8 @@ import (
 )
 
 func TestPodTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		tc := []struct {
@@ -47,10 +49,10 @@ func TestPodTrait(t *testing.T) {
 				//nolint: thelper
 				assertions: func(t *testing.T, ns string, name string) {
 					// check that integrations is working and reading data created by sidecar container
-					Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Content from the sidecar container"))
+					Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Content from the sidecar container"))
 					// check that env var is injected
-					Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("hello from the template"))
-					pod := IntegrationPod(ns, name)()
+					Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("hello from the template"))
+					pod := IntegrationPod(t, ns, name)()
 
 					// check if ENV variable is applied
 					envValue := getEnvVar("TEST_VARIABLE", pod.Spec)
@@ -62,7 +64,7 @@ func TestPodTrait(t *testing.T) {
 				templateName: "files/template-with-supplemental-groups.yaml",
 				//nolint: thelper
 				assertions: func(t *testing.T, ns string, name string) {
-					Eventually(IntegrationPodHas(ns, name, func(pod *corev1.Pod) bool {
+					Eventually(IntegrationPodHas(t, ns, name, func(pod *corev1.Pod) bool {
 						if pod.Spec.SecurityContext == nil {
 							return false
 						}
@@ -83,23 +85,23 @@ func TestPodTrait(t *testing.T) {
 			test := tc[i]
 
 			t.Run(test.name, func(t *testing.T) {
-				Expect(KamelRunWithID(operatorID, ns, "files/PodTest.groovy",
+				Expect(KamelRunWithID(t, operatorID, ns, "files/PodTest.groovy",
 					"--name", name,
 					"--pod-template", test.templateName,
 				).Execute()).To(Succeed())
 
 				// check integration is deployed
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 
 				test.assertions(t, ns, name)
 
 				// Clean up
-				Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+				Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 			})
 		}
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
diff --git a/e2e/common/traits/prometheus_test.go b/e2e/common/traits/prometheus_test.go
index 5a1bb4f1e..aa359e0bc 100644
--- a/e2e/common/traits/prometheus_test.go
+++ b/e2e/common/traits/prometheus_test.go
@@ -44,30 +44,31 @@ import (
 )
 
 func TestPrometheusTrait(t *testing.T) {
+	// test not able to run in parallel
 	WithNewTestNamespace(t, func(ns string) {
 
-		ocp, err := openshift.IsOpenShift(TestClient())
+		ocp, err := openshift.IsOpenShift(TestClient(t))
 		require.NoError(t, err)
 		// Do not create PodMonitor for the time being as CI test runs on OCP 3.11
 		createPodMonitor := false
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 			"-t", "prometheus.enabled=true",
 			"-t", fmt.Sprintf("prometheus.pod-monitor=%v", createPodMonitor)).Execute()).To(Succeed())
-		Eventually(IntegrationPodPhase(ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, "java", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+		Eventually(IntegrationPodPhase(t, ns, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, "java", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 		// check integration schema does not contains unwanted default trait value.
-		Eventually(UnstructuredIntegration(ns, "java")).ShouldNot(BeNil())
-		unstructuredIntegration := UnstructuredIntegration(ns, "java")()
+		Eventually(UnstructuredIntegration(t, ns, "java")).ShouldNot(BeNil())
+		unstructuredIntegration := UnstructuredIntegration(t, ns, "java")()
 		prometheusTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "prometheus")
 		Expect(prometheusTrait).ToNot(BeNil())
 		Expect(len(prometheusTrait)).To(Equal(2))
 		Expect(prometheusTrait["enabled"]).To(Equal(true))
 		Expect(prometheusTrait["podMonitor"]).ToNot(BeNil())
 		t.Run("Metrics endpoint works", func(t *testing.T) {
-			pod := IntegrationPod(ns, "java")
-			response, err := TestClient().CoreV1().RESTClient().Get().
+			pod := IntegrationPod(t, ns, "java")
+			response, err := TestClient(t).CoreV1().RESTClient().Get().
 				AbsPath(fmt.Sprintf("/api/v1/namespaces/%s/pods/%s/proxy/q/metrics", ns, pod().Name)).DoRaw(TestContext)
 			if err != nil {
 				assert.Fail(t, err.Error())
@@ -77,23 +78,23 @@ func TestPrometheusTrait(t *testing.T) {
 
 		if ocp && createPodMonitor {
 			t.Run("PodMonitor is created", func(t *testing.T) {
-				sm := podMonitor(ns, "java")
+				sm := podMonitor(t, ns, "java")
 				Eventually(sm, TestTimeoutShort).ShouldNot(BeNil())
 			})
 		}
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
-func podMonitor(ns string, name string) func() *monitoringv1.PodMonitor {
+func podMonitor(t *testing.T, ns string, name string) func() *monitoringv1.PodMonitor {
 	return func() *monitoringv1.PodMonitor {
 		pm := monitoringv1.PodMonitor{}
 		key := ctrl.ObjectKey{
 			Namespace: ns,
 			Name:      name,
 		}
-		err := TestClient().Get(TestContext, key, &pm)
+		err := TestClient(t).Get(TestContext, key, &pm)
 		if err != nil && k8serrors.IsNotFound(err) {
 			return nil
 		} else if err != nil {
diff --git a/e2e/common/traits/pull_secret_test.go b/e2e/common/traits/pull_secret_test.go
index 61563bc39..a2e2f5499 100644
--- a/e2e/common/traits/pull_secret_test.go
+++ b/e2e/common/traits/pull_secret_test.go
@@ -36,41 +36,43 @@ import (
 )
 
 func TestPullSecretTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
-		ocp, err := openshift.IsOpenShift(TestClient())
+		ocp, err := openshift.IsOpenShift(TestClient(t))
 		Expect(err).To(BeNil())
 
 		t.Run("Image pull secret is set on pod", func(t *testing.T) {
 			name := RandomizedSuffixName("java1")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name,
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name,
 				"-t", "pull-secret.enabled=true",
 				"-t", "pull-secret.secret-name=dummy-secret").Execute()).To(Succeed())
 			// pod may not run because the pull secret is dummy
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Or(Equal(corev1.PodRunning), Equal(corev1.PodPending)))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Or(Equal(corev1.PodRunning), Equal(corev1.PodPending)))
 
-			pod := IntegrationPod(ns, name)()
+			pod := IntegrationPod(t, ns, name)()
 			Expect(pod.Spec.ImagePullSecrets).NotTo(BeEmpty())
 			Expect(pod.Spec.ImagePullSecrets[0].Name).To(Equal("dummy-secret"))
 		})
 
 		t.Run("Explicitly disable image pull secret", func(t *testing.T) {
 			name := RandomizedSuffixName("java2")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name,
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name,
 				"-t", "pull-secret.enabled=false").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, name)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, name)()
+			Eventually(UnstructuredIntegration(t, ns, name)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, name)()
 			pullSecretTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "pull-secret")
 			Expect(pullSecretTrait).ToNot(BeNil())
 			Expect(len(pullSecretTrait)).To(Equal(1))
 			Expect(pullSecretTrait["enabled"]).To(Equal(false))
 
-			pod := IntegrationPod(ns, name)()
+			pod := IntegrationPod(t, ns, name)()
 			if ocp {
 				// OpenShift `default` service account has imagePullSecrets so it's always set
 				Expect(pod.Spec.ImagePullSecrets).NotTo(BeEmpty())
@@ -83,18 +85,18 @@ func TestPullSecretTrait(t *testing.T) {
 			// OpenShift always has an internal registry so image pull secret is set by default
 			t.Run("Image pull secret is automatically set by default", func(t *testing.T) {
 				name := RandomizedSuffixName("java3")
-				Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-				Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+				Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+				Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-				pod := IntegrationPod(ns, name)()
+				pod := IntegrationPod(t, ns, name)()
 				Expect(pod.Spec.ImagePullSecrets).NotTo(BeEmpty())
 				Expect(pod.Spec.ImagePullSecrets[0].Name).To(HavePrefix("default-dockercfg-"))
 			})
 		}
 
 		// Clean-up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/route_test.go b/e2e/common/traits/route_test.go
index 33f5a1dc3..c192aae1f 100644
--- a/e2e/common/traits/route_test.go
+++ b/e2e/common/traits/route_test.go
@@ -71,9 +71,11 @@ var certPem []byte
 var skipClientTLSVerification = true
 
 func TestRunRoutes(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
-		ocp, err := openshift.IsOpenShift(TestClient())
+		ocp, err := openshift.IsOpenShift(TestClient(t))
 		if !ocp {
 			t.Skip("This test requires route object which is available on OpenShift only.")
 			return
@@ -81,11 +83,11 @@ func TestRunRoutes(t *testing.T) {
 		require.NoError(t, err)
 
 		operatorID := "camel-k-trait-route"
-		Expect(KamelInstallWithID(operatorID, ns, "--trait-profile=openshift").Execute()).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--trait-profile=openshift").Execute()).To(Succeed())
 
 		// create a test secret of type tls with certificates
 		// this secret is used to setupt the route TLS object across diferent tests
-		secret, err := createSecret(ns)
+		secret, err := createSecret(t, ns)
 		require.NoError(t, err)
 
 		// they refer to the certificates create in the secret and are reused the different tests
@@ -96,45 +98,45 @@ func TestRunRoutes(t *testing.T) {
 		// Insecure Route / No TLS
 		// =============================
 		t.Run("Route unsecure http works", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			route := Route(ns, integrationName)
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			route := Route(t, ns, integrationName)
 			Eventually(route, TestTimeoutMedium).ShouldNot(BeNil())
 			// must wait a little time after route is created, before doing an http request,
 			// otherwise the route is unavailable and the http request will fail
 			time.Sleep(waitBeforeHttpRequest)
 			url := fmt.Sprintf("http://%s/hello?name=Simple", route().Spec.Host)
 			Eventually(httpRequest(url, false), TestTimeoutShort).Should(Equal("Hello Simple"))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).Should(BeNil())
 		})
 
 		// =============================
 		// TLS Route Edge
 		// =============================
 		t.Run("Route Edge https works", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java", "-t", "route.tls-termination=edge").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			route := Route(ns, integrationName)
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java", "-t", "route.tls-termination=edge").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			route := Route(t, ns, integrationName)
 			Eventually(route, TestTimeoutMedium).ShouldNot(BeNil())
 			// must wait a little time after route is created, before an http request,
 			// otherwise the route is unavailable and the http request will fail
 			time.Sleep(waitBeforeHttpRequest)
 			url := fmt.Sprintf("https://%s/hello?name=TLS_Edge", route().Spec.Host)
 			Eventually(httpRequest(url, true), TestTimeoutShort).Should(Equal("Hello TLS_Edge"))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).Should(BeNil())
 		})
 
 		// =============================
 		// TLS Route Edge with custom certificate
 		// =============================
 		t.Run("Route Edge (custom certificate) https works", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java",
 				"-t", "route.tls-termination=edge",
 				"-t", "route.tls-certificate-secret="+refCert,
 				"-t", "route.tls-key-secret="+refKey,
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			route := Route(ns, integrationName)
+			Eventually(IntegrationPodPhase(t, ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			route := Route(t, ns, integrationName)
 			Eventually(route, TestTimeoutMedium).ShouldNot(BeNil())
 			// must wait a little time after route is created, before an http request,
 			// otherwise the route is unavailable and the http request will fail
@@ -142,14 +144,14 @@ func TestRunRoutes(t *testing.T) {
 			code := "TLS_EdgeCustomCertificate"
 			url := fmt.Sprintf("https://%s/hello?name=%s", route().Spec.Host, code)
 			Eventually(httpRequest(url, true), TestTimeoutShort).Should(Equal("Hello " + code))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).Should(BeNil())
 		})
 
 		// =============================
 		// TLS Route Passthrough
 		// =============================
 		t.Run("Route passthrough https works", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java",
 				// the --resource mounts the certificates inside secret as files in the integration pod
 				"--resource", "secret:"+secretName+"@/etc/ssl/"+secretName,
 				// quarkus platform-http uses these two properties to setup the HTTP endpoint with TLS support
@@ -158,8 +160,8 @@ func TestRunRoutes(t *testing.T) {
 				"-t", "route.tls-termination=passthrough",
 				"-t", "container.port=8443",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			route := Route(ns, integrationName)
+			Eventually(IntegrationPodPhase(t, ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			route := Route(t, ns, integrationName)
 			Eventually(route, TestTimeoutMedium).ShouldNot(BeNil())
 			// must wait a little time after route is created, before an http request,
 			// otherwise the route is unavailable and the http request will fail
@@ -167,14 +169,14 @@ func TestRunRoutes(t *testing.T) {
 			code := "TLS_Passthrough"
 			url := fmt.Sprintf("https://%s/hello?name=%s", route().Spec.Host, code)
 			Eventually(httpRequest(url, true), TestTimeoutShort).Should(Equal("Hello " + code))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).Should(BeNil())
 		})
 
 		// =============================
 		// TLS Route Reencrypt
 		// =============================
 		t.Run("Route Reencrypt https works", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java",
 				// the --resource mounts the certificates inside secret as files in the integration pod
 				"--resource", "secret:"+secretName+"@/etc/ssl/"+secretName,
 				// quarkus platform-http uses these two properties to setup the HTTP endpoint with TLS support
@@ -187,9 +189,9 @@ func TestRunRoutes(t *testing.T) {
 				"-t", "route.tls-key-secret="+refKey,
 				"-t", "container.port=8443",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPodPhase(t, ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 
-			route := Route(ns, integrationName)
+			route := Route(t, ns, integrationName)
 			Eventually(route, TestTimeoutMedium).ShouldNot(BeNil())
 			// must wait a little time after route is created, before an http request,
 			// otherwise the route is unavailable and the http request will fail
@@ -197,14 +199,14 @@ func TestRunRoutes(t *testing.T) {
 			code := "TLS_Reencrypt"
 			url := fmt.Sprintf("https://%s/hello?name=%s", route().Spec.Host, code)
 			Eventually(httpRequest(url, true), TestTimeoutShort).Should(Equal("Hello " + code))
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).Should(BeNil())
 		})
 
 		t.Run("Route annotations added", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java",
 				"-t", "route.annotations.'haproxy.router.openshift.io/balance'=roundrobin").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			route := RouteFull(ns, integrationName)()
+			Eventually(IntegrationPodPhase(t, ns, integrationName), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			route := RouteFull(t, ns, integrationName)()
 			Eventually(route, TestTimeoutMedium).ShouldNot(BeNil())
 			// must wait a little time after route is created, before an http request,
 			// otherwise the route is unavailable and the http request will fail
@@ -213,16 +215,16 @@ func TestRunRoutes(t *testing.T) {
 			Expect(annotations["haproxy.router.openshift.io/balance"]).To(Equal("roundrobin"))
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, integrationName)).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, integrationName)()
+			Eventually(UnstructuredIntegration(t, ns, integrationName)).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, integrationName)()
 			routeTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "route")
 			Expect(routeTrait).ToNot(BeNil())
 			Expect(len(routeTrait)).To(Equal(1))
 			Expect(routeTrait["enabled"]).To(Equal(true))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).Should(BeNil())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).Should(BeNil())
 		})
-		Expect(TestClient().Delete(TestContext, &secret)).To(Succeed())
+		Expect(TestClient(t).Delete(TestContext, &secret)).To(Succeed())
 	})
 }
 
@@ -274,8 +276,8 @@ func httpClient(tlsEnabled bool, timeout time.Duration) (*http.Client, error) {
 	return &client, nil
 }
 
-func createSecret(ns string) (corev1.Secret, error) {
-	keyCertPair := generateSampleKeyAndCertificate(ns)
+func createSecret(t *testing.T, ns string) (corev1.Secret, error) {
+	keyCertPair := generateSampleKeyAndCertificate(t, ns)
 	sec := corev1.Secret{
 		TypeMeta: metav1.TypeMeta{
 			Kind:       "Secret",
@@ -291,12 +293,12 @@ func createSecret(ns string) (corev1.Secret, error) {
 			corev1.TLSCertKey:       keyCertPair.Certificate,
 		},
 	}
-	return sec, TestClient().Create(TestContext, &sec)
+	return sec, TestClient(t).Create(TestContext, &sec)
 }
 
-func generateSampleKeyAndCertificate(ns string) keyCertificatePair {
+func generateSampleKeyAndCertificate(t *testing.T, ns string) keyCertificatePair {
 	serialNumber := big.NewInt(util.RandomInt63())
-	domainName, err := ClusterDomainName()
+	domainName, err := ClusterDomainName(t)
 	if err != nil {
 		fmt.Printf("Error retrieving cluster domain object, then the http client request will skip TLS validation: %s\n", err)
 		skipClientTLSVerification = true
diff --git a/e2e/common/traits/service_binding_test.go b/e2e/common/traits/service_binding_test.go
index 306529892..45ddeae49 100644
--- a/e2e/common/traits/service_binding_test.go
+++ b/e2e/common/traits/service_binding_test.go
@@ -36,6 +36,8 @@ import (
 )
 
 func TestServiceBindingTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Integration Service Binding", func(t *testing.T) {
@@ -61,17 +63,17 @@ func TestServiceBindingTrait(t *testing.T) {
 				},
 			}
 			serviceRef := fmt.Sprintf("%s:%s/%s", service.TypeMeta.Kind, ns, service.ObjectMeta.Name)
-			Expect(TestClient().Create(TestContext, service)).To(Succeed())
+			Expect(TestClient(t).Create(TestContext, service)).To(Succeed())
 			// Create integration and bind it to our service
 			name := RandomizedSuffixName("service-binding")
-			Expect(KamelRunWithID(operatorID, ns, "files/ServiceBinding.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/ServiceBinding.java",
 				"--name", name,
 				"--connect", serviceRef,
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring(fmt.Sprintf("%s:%s", host, port)))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring(fmt.Sprintf("%s:%s", host, port)))
 		})
 
 		t.Run("Binding Service Binding", func(t *testing.T) {
@@ -94,16 +96,16 @@ func TestServiceBindingTrait(t *testing.T) {
 				},
 			}
 			serviceRef := fmt.Sprintf("%s:%s/%s", service.TypeMeta.Kind, ns, service.ObjectMeta.Name)
-			Expect(TestClient().Create(TestContext, service)).To(Succeed())
-			Expect(CreateTimerKamelet(ns, "my-timer-source")()).To(Succeed())
-			Expect(KamelBindWithID(operatorID, ns, "my-timer-source", "log:info",
+			Expect(TestClient(t).Create(TestContext, service)).To(Succeed())
+			Expect(CreateTimerKamelet(t, ns, "my-timer-source")()).To(Succeed())
+			Expect(KamelBindWithID(t, operatorID, ns, "my-timer-source", "log:info",
 				"-p", "source.message=Hello+world",
 				"--connect", serviceRef).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "my-timer-source-to-log"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, "my-timer-source-to-log")).Should(ContainSubstring("Body: Hello+world"))
+			Eventually(IntegrationPodPhase(t, ns, "my-timer-source-to-log"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, "my-timer-source-to-log")).Should(ContainSubstring("Body: Hello+world"))
 		})
 
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/common/traits/service_test.go b/e2e/common/traits/service_test.go
index 27df68325..ad40c9783 100644
--- a/e2e/common/traits/service_test.go
+++ b/e2e/common/traits/service_test.go
@@ -34,89 +34,91 @@ import (
 )
 
 func TestServiceTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("NodePort service", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java",
 				"-t", "service.enabled=true",
 				"-t", "service.node-port=true").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPodPhase(t, ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 
 			//
 			// Service names can vary with the ExternalName Service
 			// sometimes being created first and being given the root name
 			//
-			Eventually(ServicesByType(ns, corev1.ServiceTypeNodePort), TestTimeoutLong).ShouldNot(BeEmpty())
+			Eventually(ServicesByType(t, ns, corev1.ServiceTypeNodePort), TestTimeoutLong).ShouldNot(BeEmpty())
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("Default service (ClusterIP)", func(t *testing.T) {
 			// Service trait is enabled by default
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 
 			//
 			// Service names can vary with the ExternalName Service
 			// sometimes being created first and being given the root name
 			//
-			Eventually(ServicesByType(ns, corev1.ServiceTypeClusterIP), TestTimeoutLong).ShouldNot(BeEmpty())
+			Eventually(ServicesByType(t, ns, corev1.ServiceTypeClusterIP), TestTimeoutLong).ShouldNot(BeEmpty())
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("NodePort service from Type", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java",
 				"-t", "service.enabled=true",
 				"-t", "service.type=NodePort").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPodPhase(t, ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 
 			//
 			// Service names can vary with the ExternalName Service
 			// sometimes being created first and being given the root name
 			//
-			Eventually(ServicesByType(ns, corev1.ServiceTypeNodePort), TestTimeoutLong).ShouldNot(BeEmpty())
+			Eventually(ServicesByType(t, ns, corev1.ServiceTypeNodePort), TestTimeoutLong).ShouldNot(BeEmpty())
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("ClusterIP service from Type", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java",
 				"-t", "service.enabled=true",
 				"-t", "service.type=ClusterIP").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPodPhase(t, ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 
 			//
 			// Service names can vary with the ExternalName Service
 			// sometimes being created first and being given the root name
 			//
-			Eventually(ServicesByType(ns, corev1.ServiceTypeClusterIP), TestTimeoutLong).ShouldNot(BeEmpty())
+			Eventually(ServicesByType(t, ns, corev1.ServiceTypeClusterIP), TestTimeoutLong).ShouldNot(BeEmpty())
 
 			// check integration schema does not contains unwanted default trait value.
-			Eventually(UnstructuredIntegration(ns, "platform-http-server")).ShouldNot(BeNil())
-			unstructuredIntegration := UnstructuredIntegration(ns, "platform-http-server")()
+			Eventually(UnstructuredIntegration(t, ns, "platform-http-server")).ShouldNot(BeNil())
+			unstructuredIntegration := UnstructuredIntegration(t, ns, "platform-http-server")()
 			serviceTrait, _, _ := unstructured.NestedMap(unstructuredIntegration.Object, "spec", "traits", "service")
 			Expect(serviceTrait).ToNot(BeNil())
 			Expect(len(serviceTrait)).To(Equal(2))
 			Expect(serviceTrait["enabled"]).To(Equal(true))
 			Expect(serviceTrait["type"]).To(Equal("ClusterIP"))
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 
 		t.Run("LoadBalancer service from Type", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/PlatformHttpServer.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/PlatformHttpServer.java",
 				"-t", "service.enabled=true",
 				"-t", "service.type=LoadBalancer").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationPodPhase(t, ns, "platform-http-server"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
 
 			//
 			// Service names can vary with the ExternalName Service
 			// sometimes being created first and being given the root name
 			//
-			Eventually(ServicesByType(ns, corev1.ServiceTypeLoadBalancer), TestTimeoutLong).ShouldNot(BeEmpty())
+			Eventually(ServicesByType(t, ns, corev1.ServiceTypeLoadBalancer), TestTimeoutLong).ShouldNot(BeEmpty())
 
-			Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+			Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 		})
 	})
 }
diff --git a/e2e/common/traits/toleration_test.go b/e2e/common/traits/toleration_test.go
index 9f5818d4c..c57eb4544 100644
--- a/e2e/common/traits/toleration_test.go
+++ b/e2e/common/traits/toleration_test.go
@@ -36,20 +36,22 @@ import (
 )
 
 func TestTolerationTrait(t *testing.T) {
+	t.Parallel()
+
 	WithNewTestNamespace(t, func(ns string) {
 
 		t.Run("Run Java with node toleration operation exists", func(t *testing.T) {
 			name := RandomizedSuffixName("java1")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "toleration.enabled=true",
 				"-t", "toleration.taints=camel.apache.org/master:NoExecute:300",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			pod := IntegrationPod(ns, name)()
+			pod := IntegrationPod(t, ns, name)()
 			Expect(pod.Spec.Tolerations).NotTo(BeNil())
 
 			Expect(pod.Spec.Tolerations).To(ContainElement(corev1.Toleration{
@@ -62,16 +64,16 @@ func TestTolerationTrait(t *testing.T) {
 
 		t.Run("Run Java with node toleration operation equals", func(t *testing.T) {
 			name := RandomizedSuffixName("java2")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				"-t", "toleration.enabled=true",
 				"-t", "toleration.taints=camel.apache.org/master=test:NoExecute:300",
 			).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			pod := IntegrationPod(ns, name)()
+			pod := IntegrationPod(t, ns, name)()
 			Expect(pod.Spec.Tolerations).NotTo(BeNil())
 
 			Expect(pod.Spec.Tolerations).To(ContainElement(corev1.Toleration{
@@ -83,12 +85,12 @@ func TestTolerationTrait(t *testing.T) {
 		})
 
 		t.Run("Run Java with master node toleration", func(t *testing.T) {
-			if len(Nodes()()) == 1 {
+			if len(Nodes(t)()) == 1 {
 				t.Skip("Skip master node toleration test on single-node cluster")
 			}
 
 			name := RandomizedSuffixName("java3")
-			Expect(KamelRunWithID(operatorID, ns, "files/Java.java",
+			Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
 				"--name", name,
 				// Use the affinity trait to force the scheduling of the Integration pod onto a master node
 				"-t", "affinity.enabled=true",
@@ -98,11 +100,11 @@ func TestTolerationTrait(t *testing.T) {
 				"-t", "toleration.taints=node-role.kubernetes.io/master:NoSchedule",
 			).Execute()).To(Succeed())
 
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
-			pod := IntegrationPod(ns, name)()
+			pod := IntegrationPod(t, ns, name)()
 			Expect(pod).NotTo(BeNil())
 
 			// Check the Integration pod contains the toleration
@@ -113,8 +115,8 @@ func TestTolerationTrait(t *testing.T) {
 			}))
 
 			// Check the Integration pod is running on a master node
-			Expect(Node(pod.Spec.NodeName)()).NotTo(BeNil())
-			Expect(Node(pod.Spec.NodeName)()).To(PointTo(MatchFields(IgnoreExtras, Fields{
+			Expect(Node(t, pod.Spec.NodeName)()).NotTo(BeNil())
+			Expect(Node(t, pod.Spec.NodeName)()).To(PointTo(MatchFields(IgnoreExtras, Fields{
 				"Spec": MatchFields(IgnoreExtras, Fields{
 					"Taints": ContainElement(corev1.Taint{
 						Key:    "node-role.kubernetes.io/master",
@@ -125,6 +127,6 @@ func TestTolerationTrait(t *testing.T) {
 		})
 
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
diff --git a/e2e/install/cli/global_kamelet_test.go b/e2e/install/cli/global_kamelet_test.go
index 62fe11134..e01ce9d3f 100644
--- a/e2e/install/cli/global_kamelet_test.go
+++ b/e2e/install/cli/global_kamelet_test.go
@@ -34,40 +34,40 @@ import (
 func TestRunGlobalKamelet(t *testing.T) {
 	WithGlobalOperatorNamespace(t, func(operatorNamespace string) {
 		operatorID := "camel-k-global-kamelet"
-		Expect(KamelInstallWithID(operatorID, operatorNamespace, "--global", "--force").Execute()).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, operatorNamespace, "--global", "--force").Execute()).To(Succeed())
 
 		t.Run("Global operator + namespaced kamelet test", func(t *testing.T) {
 
 			// NS2: namespace without operator
 			WithNewTestNamespace(t, func(ns2 string) {
-				Expect(CreateTimerKamelet(ns2, "my-own-timer-source")()).To(Succeed())
+				Expect(CreateTimerKamelet(t, ns2, "my-own-timer-source")()).To(Succeed())
 
-				Expect(KamelInstallWithID(operatorID, ns2, "--skip-operator-setup", "--olm=false").Execute()).To(Succeed())
+				Expect(KamelInstallWithID(t, operatorID, ns2, "--skip-operator-setup", "--olm=false").Execute()).To(Succeed())
 
-				Expect(KamelRunWithID(operatorID, ns2, "files/timer-kamelet-usage.groovy").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns2, "timer-kamelet-usage"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns2, "timer-kamelet-usage"), TestTimeoutShort).Should(ContainSubstring("Hello world"))
-				Expect(Kamel("delete", "--all", "-n", ns2).Execute()).To(Succeed())
+				Expect(KamelRunWithID(t, operatorID, ns2, "files/timer-kamelet-usage.groovy").Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns2, "timer-kamelet-usage"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns2, "timer-kamelet-usage"), TestTimeoutShort).Should(ContainSubstring("Hello world"))
+				Expect(Kamel(t, "delete", "--all", "-n", ns2).Execute()).To(Succeed())
 			})
 		})
 
 		t.Run("Global operator + global kamelet test", func(t *testing.T) {
 
-			Expect(CreateTimerKamelet(operatorNamespace, "my-own-timer-source")()).To(Succeed())
+			Expect(CreateTimerKamelet(t, operatorNamespace, "my-own-timer-source")()).To(Succeed())
 
 			// NS3: namespace without operator
 			WithNewTestNamespace(t, func(ns3 string) {
-				Expect(KamelInstallWithID(operatorID, ns3, "--skip-operator-setup", "--olm=false").Execute()).To(Succeed())
+				Expect(KamelInstallWithID(t, operatorID, ns3, "--skip-operator-setup", "--olm=false").Execute()).To(Succeed())
 
-				Expect(KamelRunWithID(operatorID, ns3, "files/timer-kamelet-usage.groovy").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns3, "timer-kamelet-usage"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns3, "timer-kamelet-usage"), TestTimeoutShort).Should(ContainSubstring("Hello world"))
-				Expect(Kamel("delete", "--all", "-n", ns3).Execute()).To(Succeed())
-				Expect(TestClient().Delete(TestContext, Kamelet("my-own-timer-source", operatorNamespace)())).To(Succeed())
+				Expect(KamelRunWithID(t, operatorID, ns3, "files/timer-kamelet-usage.groovy").Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns3, "timer-kamelet-usage"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns3, "timer-kamelet-usage"), TestTimeoutShort).Should(ContainSubstring("Hello world"))
+				Expect(Kamel(t, "delete", "--all", "-n", ns3).Execute()).To(Succeed())
+				Expect(TestClient(t).Delete(TestContext, Kamelet(t, "my-own-timer-source", operatorNamespace)())).To(Succeed())
 			})
 		})
 
-		Expect(Kamel("uninstall", "-n", operatorNamespace, "--skip-crd", "--skip-cluster-roles=false", "--skip-cluster-role-bindings=false").Execute()).To(Succeed())
+		Expect(Kamel(t, "uninstall", "-n", operatorNamespace, "--skip-crd", "--skip-cluster-roles=false", "--skip-cluster-role-bindings=false").Execute()).To(Succeed())
 	})
 
 }
diff --git a/e2e/install/cli/global_test.go b/e2e/install/cli/global_test.go
index 8ec5e60e2..76d1cb396 100644
--- a/e2e/install/cli/global_test.go
+++ b/e2e/install/cli/global_test.go
@@ -43,35 +43,35 @@ func TestRunGlobalInstall(t *testing.T) {
 	RegisterTestingT(t)
 
 	WithGlobalOperatorNamespace(t, func(operatorNamespace string) {
-		Expect(KamelInstall(operatorNamespace, "--global", "--force").Execute()).To(Succeed())
-		Eventually(OperatorPodPhase(operatorNamespace), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+		Expect(KamelInstall(t, operatorNamespace, "--global", "--force").Execute()).To(Succeed())
+		Eventually(OperatorPodPhase(t, operatorNamespace), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 
 		t.Run("Global CamelCatalog reconciliation", func(t *testing.T) {
-			Eventually(Platform(operatorNamespace)).ShouldNot(BeNil())
-			Eventually(PlatformConditionStatus(operatorNamespace, v1.IntegrationPlatformConditionTypeCreated), TestTimeoutShort).
+			Eventually(Platform(t, operatorNamespace)).ShouldNot(BeNil())
+			Eventually(PlatformConditionStatus(t, operatorNamespace, v1.IntegrationPlatformConditionTypeCreated), TestTimeoutShort).
 				Should(Equal(corev1.ConditionTrue))
 			catalogName := fmt.Sprintf("camel-catalog-%s", strings.ToLower(defaults.DefaultRuntimeVersion))
-			Eventually(CamelCatalog(operatorNamespace, catalogName)).ShouldNot(BeNil())
-			Eventually(CamelCatalogPhase(operatorNamespace, catalogName), TestTimeoutMedium).Should(Equal(v1.CamelCatalogPhaseReady))
+			Eventually(CamelCatalog(t, operatorNamespace, catalogName)).ShouldNot(BeNil())
+			Eventually(CamelCatalogPhase(t, operatorNamespace, catalogName), TestTimeoutMedium).Should(Equal(v1.CamelCatalogPhaseReady))
 		})
 
 		t.Run("Global test on namespace with platform", func(t *testing.T) {
 			WithNewTestNamespace(t, func(ns2 string) {
 				// Creating namespace local platform
-				Expect(KamelInstall(ns2, "--skip-operator-setup", "--olm=false").Execute()).To(Succeed())
-				Eventually(Platform(ns2)).ShouldNot(BeNil())
+				Expect(KamelInstall(t, ns2, "--skip-operator-setup", "--olm=false").Execute()).To(Succeed())
+				Eventually(Platform(t, ns2)).ShouldNot(BeNil())
 
 				// Run with global operator id
-				Expect(KamelRun(ns2, "files/Java.java").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns2, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns2, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-				Expect(IntegrationConditionMessage(IntegrationCondition(ns2, "java", v1.IntegrationConditionPlatformAvailable)())).To(MatchRegexp(ns2 + "\\/.*"))
-				kit := IntegrationKit(ns2, "java")()
-				Expect(Kamel("delete", "--all", "-n", ns2).Execute()).To(Succeed())
-				Expect(Kits(ns2)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement(kit)))
-				Expect(Kits(operatorNamespace)()).Should(WithTransform(integrationKitsToNamesTransform(), Not(ContainElement(kit))))
-
-				Expect(Lease(ns2, platform.DefaultPlatformName)()).To(BeNil(), "No locking Leases expected")
+				Expect(KamelRun(t, ns2, "files/Java.java").Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns2, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns2, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+				Expect(IntegrationConditionMessage(IntegrationCondition(t, ns2, "java", v1.IntegrationConditionPlatformAvailable)())).To(MatchRegexp(ns2 + "\\/.*"))
+				kit := IntegrationKit(t, ns2, "java")()
+				Expect(Kamel(t, "delete", "--all", "-n", ns2).Execute()).To(Succeed())
+				Expect(Kits(t, ns2)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement(kit)))
+				Expect(Kits(t, operatorNamespace)()).Should(WithTransform(integrationKitsToNamesTransform(), Not(ContainElement(kit))))
+
+				Expect(Lease(t, ns2, platform.DefaultPlatformName)()).To(BeNil(), "No locking Leases expected")
 			})
 		})
 
@@ -79,21 +79,21 @@ func TestRunGlobalInstall(t *testing.T) {
 			WithNewTestNamespace(t, func(ns3 string) {
 				operatorID := "camel-k-local-ns3"
 				if NoOlmOperatorImage != "" {
-					Expect(KamelInstallWithID(operatorID, ns3, "--olm=false", "--operator-image", NoOlmOperatorImage).Execute()).To(Succeed())
+					Expect(KamelInstallWithID(t, operatorID, ns3, "--olm=false", "--operator-image", NoOlmOperatorImage).Execute()).To(Succeed())
 				} else {
-					Expect(KamelInstallWithID(operatorID, ns3, "--olm=false").Execute()).To(Succeed())
+					Expect(KamelInstallWithID(t, operatorID, ns3, "--olm=false").Execute()).To(Succeed())
 				}
-				Eventually(OperatorPodPhase(ns3), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-				Expect(KamelRunWithID(operatorID, ns3, "files/Java.java").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns3, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns3, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-				Expect(IntegrationConditionMessage(IntegrationCondition(ns3, "java", v1.IntegrationConditionPlatformAvailable)())).To(MatchRegexp(ns3 + "\\/.*"))
-				kit := IntegrationKit(ns3, "java")()
-				Expect(Kits(ns3)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement(kit)))
-				Expect(Kamel("delete", "--all", "-n", ns3).Execute()).To(Succeed())
-
-				Expect(Lease(ns3, platform.OperatorLockName)()).To(BeNil(), "No locking Leases expected")
-				Expect(Lease(ns3, platform.GetOperatorLockName(operatorID))()).ShouldNot(BeNil(),
+				Eventually(OperatorPodPhase(t, ns3), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+				Expect(KamelRunWithID(t, operatorID, ns3, "files/Java.java").Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns3, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns3, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+				Expect(IntegrationConditionMessage(IntegrationCondition(t, ns3, "java", v1.IntegrationConditionPlatformAvailable)())).To(MatchRegexp(ns3 + "\\/.*"))
+				kit := IntegrationKit(t, ns3, "java")()
+				Expect(Kits(t, ns3)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement(kit)))
+				Expect(Kamel(t, "delete", "--all", "-n", ns3).Execute()).To(Succeed())
+
+				Expect(Lease(t, ns3, platform.OperatorLockName)()).To(BeNil(), "No locking Leases expected")
+				Expect(Lease(t, ns3, platform.GetOperatorLockName(operatorID))()).ShouldNot(BeNil(),
 					"Controller Runtime is expected to use Leases for leader election: if this changes we should update our locking logic",
 				)
 			})
@@ -101,29 +101,29 @@ func TestRunGlobalInstall(t *testing.T) {
 
 		t.Run("Global test on namespace without platform", func(t *testing.T) {
 			WithNewTestNamespace(t, func(ns4 string) {
-				Expect(KamelRun(ns4, "files/Java.java").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns4, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns4, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-				Expect(IntegrationConditionMessage(IntegrationCondition(ns4, "java", v1.IntegrationConditionPlatformAvailable)())).To(MatchRegexp(operatorNamespace + "\\/.*"))
-				kit := IntegrationKit(ns4, "java")()
-				Expect(Kamel("delete", "--all", "-n", ns4).Execute()).To(Succeed())
-				Expect(Kits(ns4)()).Should(WithTransform(integrationKitsToNamesTransform(), Not(ContainElement(kit))))
-				Expect(Kits(operatorNamespace)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement(kit))) // Kit built globally
-
-				Expect(Lease(ns4, platform.OperatorLockName)()).To(BeNil(), "No locking Leases expected")
+				Expect(KamelRun(t, ns4, "files/Java.java").Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns4, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns4, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+				Expect(IntegrationConditionMessage(IntegrationCondition(t, ns4, "java", v1.IntegrationConditionPlatformAvailable)())).To(MatchRegexp(operatorNamespace + "\\/.*"))
+				kit := IntegrationKit(t, ns4, "java")()
+				Expect(Kamel(t, "delete", "--all", "-n", ns4).Execute()).To(Succeed())
+				Expect(Kits(t, ns4)()).Should(WithTransform(integrationKitsToNamesTransform(), Not(ContainElement(kit))))
+				Expect(Kits(t, operatorNamespace)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement(kit))) // Kit built globally
+
+				Expect(Lease(t, ns4, platform.OperatorLockName)()).To(BeNil(), "No locking Leases expected")
 			})
 		})
 
 		t.Run("Global test on namespace without platform with external kit", func(t *testing.T) {
 			WithNewTestNamespace(t, func(ns5 string) {
-				Expect(KamelRun(ns5, "files/Java.java").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns5, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns5, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-				Expect(IntegrationConditionMessage(IntegrationCondition(ns5, "java", v1.IntegrationConditionPlatformAvailable)())).To(MatchRegexp(operatorNamespace + "\\/.*"))
-				kit := IntegrationKit(ns5, "java")()
-				Expect(Kamel("delete", "--all", "-n", ns5).Execute()).To(Succeed())
-				Expect(Kits(ns5)()).Should(WithTransform(integrationKitsToNamesTransform(), Not(ContainElement(kit))))
-				globalKits := Kits(operatorNamespace)()
+				Expect(KamelRun(t, ns5, "files/Java.java").Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns5, "java"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns5, "java"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+				Expect(IntegrationConditionMessage(IntegrationCondition(t, ns5, "java", v1.IntegrationConditionPlatformAvailable)())).To(MatchRegexp(operatorNamespace + "\\/.*"))
+				kit := IntegrationKit(t, ns5, "java")()
+				Expect(Kamel(t, "delete", "--all", "-n", ns5).Execute()).To(Succeed())
+				Expect(Kits(t, ns5)()).Should(WithTransform(integrationKitsToNamesTransform(), Not(ContainElement(kit))))
+				globalKits := Kits(t, operatorNamespace)()
 				Expect(globalKits).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement(kit))) // Reusing the same global kit
 
 				// external kit mirroring the global one
@@ -136,24 +136,24 @@ func TestRunGlobalInstall(t *testing.T) {
 						},
 					},
 					Spec: v1.IntegrationKitSpec{
-						Image: getKitImage(operatorNamespace, kit),
+						Image: getKitImage(t, operatorNamespace, kit),
 					},
 				}
-				Expect(TestClient().Create(TestContext, &externalKit)).Should(BeNil())
+				Expect(TestClient(t).Create(TestContext, &externalKit)).Should(BeNil())
 
-				Expect(KamelRun(ns5, "files/Java.java", "--name", "ext", "--kit", "external", "-t", "jvm.enabled=true").Execute()).To(Succeed())
-				Eventually(IntegrationPodPhase(ns5, "ext"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-				Eventually(IntegrationLogs(ns5, "ext"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
-				Expect(IntegrationKit(ns5, "ext")()).Should(Equal("external"))
-				Expect(Kamel("delete", "--all", "-n", ns5).Execute()).To(Succeed())
-				Expect(Kits(ns5)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement("external")))        // the external one
-				Expect(Kits(operatorNamespace)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement(kit))) // the global one
+				Expect(KamelRun(t, ns5, "files/Java.java", "--name", "ext", "--kit", "external", "-t", "jvm.enabled=true").Execute()).To(Succeed())
+				Eventually(IntegrationPodPhase(t, ns5, "ext"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+				Eventually(IntegrationLogs(t, ns5, "ext"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+				Expect(IntegrationKit(t, ns5, "ext")()).Should(Equal("external"))
+				Expect(Kamel(t, "delete", "--all", "-n", ns5).Execute()).To(Succeed())
+				Expect(Kits(t, ns5)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement("external")))        // the external one
+				Expect(Kits(t, operatorNamespace)()).Should(WithTransform(integrationKitsToNamesTransform(), ContainElement(kit))) // the global one
 
-				Expect(Lease(ns5, platform.OperatorLockName)()).To(BeNil(), "No locking Leases expected")
+				Expect(Lease(t, ns5, platform.OperatorLockName)()).To(BeNil(), "No locking Leases expected")
 			})
 		})
 
-		Expect(Kamel("uninstall", "-n", operatorNamespace, "--skip-crd", "--skip-cluster-roles").Execute()).To(Succeed())
+		Expect(Kamel(t, "uninstall", "-n", operatorNamespace, "--skip-crd", "--skip-cluster-roles").Execute()).To(Succeed())
 	})
 }
 
@@ -167,7 +167,7 @@ func integrationKitsToNamesTransform() func([]v1.IntegrationKit) []string {
 	}
 }
 
-func getKitImage(ns string, name string) string {
+func getKitImage(t *testing.T, ns string, name string) string {
 	get := v1.IntegrationKit{
 		TypeMeta: metav1.TypeMeta{
 			Kind:       "IntegrationKit",
@@ -182,7 +182,7 @@ func getKitImage(ns string, name string) string {
 		Namespace: ns,
 		Name:      name,
 	}
-	if err := TestClient().Get(TestContext, key, &get); err != nil {
+	if err := TestClient(t).Get(TestContext, key, &get); err != nil {
 		return ""
 	}
 	return get.Status.Image
diff --git a/e2e/install/cli/install_test.go b/e2e/install/cli/install_test.go
index ba7dc3a4c..2cf087e7a 100644
--- a/e2e/install/cli/install_test.go
+++ b/e2e/install/cli/install_test.go
@@ -49,38 +49,38 @@ import (
 func TestBasicInstallation(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Eventually(Platform(ns)).ShouldNot(BeNil())
-		Eventually(PlatformConditionStatus(ns, v1.IntegrationPlatformConditionTypeCreated), TestTimeoutShort).
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Eventually(Platform(t, ns)).ShouldNot(BeNil())
+		Eventually(PlatformConditionStatus(t, ns, v1.IntegrationPlatformConditionTypeCreated), TestTimeoutShort).
 			Should(Equal(corev1.ConditionTrue))
 
 		// Check if restricted security context has been applyed
-		operatorPod := OperatorPod(ns)()
+		operatorPod := OperatorPod(t, ns)()
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.RunAsNonRoot).To(Equal(kubernetes.DefaultOperatorSecurityContext().RunAsNonRoot))
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.Capabilities).To(Equal(kubernetes.DefaultOperatorSecurityContext().Capabilities))
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.SeccompProfile).To(Equal(kubernetes.DefaultOperatorSecurityContext().SeccompProfile))
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.AllowPrivilegeEscalation).To(Equal(kubernetes.DefaultOperatorSecurityContext().AllowPrivilegeEscalation))
 
 		t.Run("run yaml", func(t *testing.T) {
-			Expect(KamelRunWithID(operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationConditionStatus(ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-			Eventually(IntegrationLogs(ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRunWithID(t, operatorID, ns, "files/yaml.yaml").Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, "yaml"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationConditionStatus(t, ns, "yaml", v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+			Eventually(IntegrationLogs(t, ns, "yaml"), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 
 			// Check if file exists in operator pod
-			Expect(OperatorPod(ns)().Name).NotTo(Equal(""))
-			Expect(OperatorPod(ns)().Spec.Containers[0].Name).NotTo(Equal(""))
+			Expect(OperatorPod(t, ns)().Name).NotTo(Equal(""))
+			Expect(OperatorPod(t, ns)().Spec.Containers[0].Name).NotTo(Equal(""))
 
-			req := TestClient().CoreV1().RESTClient().Post().
+			req := TestClient(t).CoreV1().RESTClient().Post().
 				Resource("pods").
-				Name(OperatorPod(ns)().Name).
+				Name(OperatorPod(t, ns)().Name).
 				Namespace(ns).
 				SubResource("exec").
-				Param("container", OperatorPod(ns)().Spec.Containers[0].Name)
+				Param("container", OperatorPod(t, ns)().Spec.Containers[0].Name)
 
 			req.VersionedParams(&corev1.PodExecOptions{
-				Container: OperatorPod(ns)().Spec.Containers[0].Name,
+				Container: OperatorPod(t, ns)().Spec.Containers[0].Name,
 				Command:   []string{"test", "-e", defaults.LocalRepository + "/org/apache/camel/k"},
 				Stdin:     false,
 				Stdout:    true,
@@ -88,7 +88,7 @@ func TestBasicInstallation(t *testing.T) {
 				TTY:       false,
 			}, scheme.ParameterCodec)
 
-			exec, err := remotecommand.NewSPDYExecutor(TestClient().GetConfig(), "POST", req.URL())
+			exec, err := remotecommand.NewSPDYExecutor(TestClient(t).GetConfig(), "POST", req.URL())
 			Expect(err).To(BeNil())
 
 			// returns an error if file does not exists
@@ -101,35 +101,35 @@ func TestBasicInstallation(t *testing.T) {
 
 		})
 
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
 	})
 }
 
 func TestAlternativeImageInstallation(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns, "--olm=false", "--operator-image", "x/y:latest").Execute()).To(Succeed())
-		Eventually(OperatorImage(ns)).Should(Equal("x/y:latest"))
+		Expect(KamelInstallWithID(t, operatorID, ns, "--olm=false", "--operator-image", "x/y:latest").Execute()).To(Succeed())
+		Eventually(OperatorImage(t, ns)).Should(Equal("x/y:latest"))
 	})
 }
 
 func TestKitMainInstallation(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Expect(Kamel("kit", "create", "timer", "-d", "camel:timer", "-x", operatorID, "-n", ns).Execute()).To(Succeed())
-		Eventually(Build(ns, "timer"), TestTimeoutMedium).ShouldNot(BeNil())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "kit", "create", "timer", "-d", "camel:timer", "-x", operatorID, "-n", ns).Execute()).To(Succeed())
+		Eventually(Build(t, ns, "timer"), TestTimeoutMedium).ShouldNot(BeNil())
 	})
 }
 
 func TestMavenRepositoryInstallation(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns, "--maven-repository", "https://my.repo.org/public/").Execute()).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--maven-repository", "https://my.repo.org/public/").Execute()).To(Succeed())
 		configmapName := fmt.Sprintf("%s-maven-settings", operatorID)
-		Eventually(Configmap(ns, configmapName)).Should(Not(BeNil()))
+		Eventually(Configmap(t, ns, configmapName)).Should(Not(BeNil()))
 		Eventually(func() string {
-			return Configmap(ns, configmapName)().Data["settings.xml"]
+			return Configmap(t, ns, configmapName)().Data["settings.xml"]
 		}).Should(ContainSubstring("https://my.repo.org/public/"))
 	})
 }
@@ -141,10 +141,10 @@ func TestMavenRepositoryInstallation(t *testing.T) {
 func TestSkipRegistryInstallation(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns, "--skip-registry-setup").Execute()).To(Succeed())
-		Eventually(Platform(ns)).ShouldNot(BeNil())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--skip-registry-setup").Execute()).To(Succeed())
+		Eventually(Platform(t, ns)).ShouldNot(BeNil())
 		Eventually(func() v1.RegistrySpec {
-			return Platform(ns)().Spec.Build.Registry
+			return Platform(t, ns)().Spec.Build.Registry
 		}, TestTimeoutMedium).Should(Equal(v1.RegistrySpec{}))
 	})
 }
@@ -155,10 +155,10 @@ type templateArgs struct {
 }
 
 func TestConsoleCliDownload(t *testing.T) {
-	ocp, err := openshift.IsOpenShift(TestClient())
+	ocp, err := openshift.IsOpenShift(TestClient(t))
 	require.NoError(t, err)
 
-	ok, err := kubernetes.IsAPIResourceInstalled(TestClient(), "console.openshift.io/v1", reflect.TypeOf(consolev1.ConsoleCLIDownload{}).Name())
+	ok, err := kubernetes.IsAPIResourceInstalled(TestClient(t), "console.openshift.io/v1", reflect.TypeOf(consolev1.ConsoleCLIDownload{}).Name())
 	require.NoError(t, err)
 
 	if !ocp || !ok {
@@ -175,16 +175,16 @@ func TestConsoleCliDownload(t *testing.T) {
 
 	WithNewTestNamespace(t, func(ns string) {
 		// make sure there is no preinstalled CliDownload resource
-		cliDownload := ConsoleCLIDownload(name)()
+		cliDownload := ConsoleCLIDownload(t, name)()
 		if cliDownload != nil {
-			Expect(TestClient().Delete(TestContext, cliDownload)).To(Succeed())
+			Expect(TestClient(t).Delete(TestContext, cliDownload)).To(Succeed())
 		}
 
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(ConsoleCLIDownload(name), TestTimeoutMedium).Should(Not(BeNil()))
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(ConsoleCLIDownload(t, name), TestTimeoutMedium).Should(Not(BeNil()))
 
-		cliDownload = ConsoleCLIDownload(name)()
+		cliDownload = ConsoleCLIDownload(t, name)()
 		links := cliDownload.Spec.Links
 
 		for _, link := range links {
@@ -206,17 +206,17 @@ func TestConsoleCliDownload(t *testing.T) {
 func TestInstallSkipDefaultKameletsInstallation(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithIDAndKameletCatalog(operatorID, ns, "--skip-default-kamelets-setup").Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Expect(KameletList(ns)()).Should(BeEmpty())
+		Expect(KamelInstallWithIDAndKameletCatalog(t, operatorID, ns, "--skip-default-kamelets-setup").Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Expect(KameletList(t, ns)()).Should(BeEmpty())
 	})
 }
 
 func TestInstallDebugLogging(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns, "-z", "debug").Execute()).To(Succeed())
+		Expect(KamelInstallWithID(t, operatorID, ns, "-z", "debug").Execute()).To(Succeed())
 
-		Eventually(OperatorEnvVarValue(ns, "LOG_LEVEL"), TestTimeoutLong).Should(Equal("debug"))
+		Eventually(OperatorEnvVarValue(t, ns, "LOG_LEVEL"), TestTimeoutLong).Should(Equal("debug"))
 	})
 }
diff --git a/e2e/install/cli/maven_ca_secret_test.go b/e2e/install/cli/maven_ca_secret_test.go
index b23f78e1d..337cc3c52 100644
--- a/e2e/install/cli/maven_ca_secret_test.go
+++ b/e2e/install/cli/maven_ca_secret_test.go
@@ -111,7 +111,7 @@ func TestMavenCASecret(t *testing.T) {
 				corev1.TLSPrivateKeyKey: privateKeyPem,
 			},
 		}
-		Expect(TestClient().Create(TestContext, secret)).To(Succeed())
+		Expect(TestClient(t).Create(TestContext, secret)).To(Succeed())
 
 		// HTTPD configuration
 		config := &corev1.ConfigMap{
@@ -179,7 +179,7 @@ ProxyPreserveHost On
 				),
 			},
 		}
-		Expect(TestClient().Create(TestContext, config)).To(Succeed())
+		Expect(TestClient(t).Create(TestContext, config)).To(Succeed())
 
 		// Deploy Nexus
 		// https://help.sonatype.com/repomanager3/installation/run-behind-a-reverse-proxy
@@ -296,7 +296,7 @@ ProxyPreserveHost On
 				},
 			},
 		}
-		Expect(TestClient().Create(TestContext, deployment)).To(Succeed())
+		Expect(TestClient(t).Create(TestContext, deployment)).To(Succeed())
 
 		service := &corev1.Service{
 			TypeMeta: metav1.TypeMeta{
@@ -318,10 +318,10 @@ ProxyPreserveHost On
 				},
 			},
 		}
-		Expect(TestClient().Create(TestContext, service)).To(Succeed())
+		Expect(TestClient(t).Create(TestContext, service)).To(Succeed())
 
 		// Wait for the Deployment to become ready
-		Eventually(Deployment(ns, deployment.Name), TestTimeoutMedium).Should(PointTo(MatchFields(IgnoreExtras,
+		Eventually(Deployment(t, ns, deployment.Name), TestTimeoutMedium).Should(PointTo(MatchFields(IgnoreExtras,
 			Fields{
 				"Status": MatchFields(IgnoreExtras,
 					Fields{
@@ -337,14 +337,14 @@ ProxyPreserveHost On
 				APIVersion: corev1.SchemeGroupVersion.String(),
 			},
 		}
-		Expect(TestClient().List(TestContext, pods,
+		Expect(TestClient(t).List(TestContext, pods,
 			ctrl.InNamespace(ns),
 			ctrl.MatchingLabels{"camel-k": "maven-test-nexus"},
 		)).To(Succeed())
 		Expect(pods.Items).To(HaveLen(1))
 
 		// Retrieve the Nexus admin password
-		req := TestClient().CoreV1().RESTClient().Post().
+		req := TestClient(t).CoreV1().RESTClient().Post().
 			Resource("pods").
 			Name(pods.Items[0].Name).
 			Namespace(ns).
@@ -359,7 +359,7 @@ ProxyPreserveHost On
 			TTY:       false,
 		}, scheme.ParameterCodec)
 
-		exec, err := remotecommand.NewSPDYExecutor(TestClient().GetConfig(), "POST", req.URL())
+		exec, err := remotecommand.NewSPDYExecutor(TestClient(t).GetConfig(), "POST", req.URL())
 		Expect(err).To(BeNil())
 
 		var password bytes.Buffer
@@ -370,7 +370,7 @@ ProxyPreserveHost On
 		})).To(Succeed())
 
 		// Create the Apache Snapshot proxy repository using the Nexus REST API
-		req = TestClient().CoreV1().RESTClient().Post().
+		req = TestClient(t).CoreV1().RESTClient().Post().
 			Resource("pods").
 			Name(pods.Items[0].Name).
 			Namespace(ns).
@@ -410,7 +410,7 @@ ProxyPreserveHost On
 			TTY:    false,
 		}, scheme.ParameterCodec)
 
-		exec, err = remotecommand.NewSPDYExecutor(TestClient().GetConfig(), "POST", req.URL())
+		exec, err = remotecommand.NewSPDYExecutor(TestClient(t).GetConfig(), "POST", req.URL())
 		Expect(err).To(BeNil())
 
 		Expect(exec.Stream(remotecommand.StreamOptions{
@@ -421,7 +421,7 @@ ProxyPreserveHost On
 
 		// Install Camel K with the Maven Central Nexus proxy and the corresponding Maven CA secret
 		operatorID := "camel-k-maven-ca-secret"
-		Expect(KamelInstallWithID(operatorID, ns,
+		Expect(KamelInstallWithID(t, operatorID, ns,
 			"--maven-repository", fmt.Sprintf(`https://%s/repository/maven-public/@id=central-internal@mirrorOf=central`, hostname),
 			"--maven-repository", fmt.Sprintf(`https://%s/repository/%s/%s`, hostname, stagingRepository.ID, strings.Join(getRepositoryAttributes(stagingRepository), "")),
 			"--maven-ca-secret", secret.Name+"/"+corev1.TLSCertKey,
@@ -429,32 +429,32 @@ ProxyPreserveHost On
 			"--maven-cli-option", "--batch-mode",
 		).Execute()).To(Succeed())
 
-		Eventually(PlatformPhase(ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+		Eventually(PlatformPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
 		// Run the Integration
 		name := RandomizedSuffixName("java")
-		Expect(KamelRunWithID(operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
+		Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", "--name", name).Execute()).To(Succeed())
 
-		Eventually(IntegrationPodPhase(ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
-		Eventually(IntegrationConditionStatus(ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-		Eventually(IntegrationLogs(ns, name), TestTimeoutLong).Should(ContainSubstring("Magicstring!"))
+		Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutLong).Should(Equal(corev1.PodRunning))
+		Eventually(IntegrationConditionStatus(t, ns, name, v1.IntegrationConditionReady), TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+		Eventually(IntegrationLogs(t, ns, name), TestTimeoutLong).Should(ContainSubstring("Magicstring!"))
 
 		// Assert no dependencies have been downloaded from the Maven central repository
 		// Note: this should be adapted for the Pod build strategy
-		pod := OperatorPod(ns)()
+		pod := OperatorPod(t, ns)()
 		Expect(pod).NotTo(BeNil())
 
 		// pod.Namespace could be different from ns if using global operator
-		logs := Logs(pod.Namespace, pod.Name, corev1.PodLogOptions{})()
+		logs := Logs(t, pod.Namespace, pod.Name, corev1.PodLogOptions{})()
 		Expect(logs).NotTo(BeEmpty())
 		Expect(logs).NotTo(ContainSubstring("Downloaded from central:"))
 
 		// Clean up
-		Expect(Kamel("delete", "--all", "-n", ns).Execute()).To(Succeed())
-		Expect(TestClient().Delete(TestContext, deployment)).To(Succeed())
-		Expect(TestClient().Delete(TestContext, service)).To(Succeed())
-		Expect(TestClient().Delete(TestContext, secret)).To(Succeed())
-		Expect(TestClient().Delete(TestContext, config)).To(Succeed())
+		Expect(Kamel(t, "delete", "--all", "-n", ns).Execute()).To(Succeed())
+		Expect(TestClient(t).Delete(TestContext, deployment)).To(Succeed())
+		Expect(TestClient(t).Delete(TestContext, service)).To(Succeed())
+		Expect(TestClient(t).Delete(TestContext, secret)).To(Succeed())
+		Expect(TestClient(t).Delete(TestContext, config)).To(Succeed())
 	})
 }
 
diff --git a/e2e/install/cli/uninstall_test.go b/e2e/install/cli/uninstall_test.go
index 7bda494eb..ea6e20a44 100644
--- a/e2e/install/cli/uninstall_test.go
+++ b/e2e/install/cli/uninstall_test.go
@@ -36,34 +36,34 @@ func TestBasicUninstall(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		// a successful new installation
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Eventually(DefaultCamelCatalogPhase(ns), TestTimeoutMedium).Should(Equal(v1.CamelCatalogPhaseReady))
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Eventually(DefaultCamelCatalogPhase(t, ns), TestTimeoutMedium).Should(Equal(v1.CamelCatalogPhaseReady))
 
 		// should be completely removed on uninstall
-		Expect(Kamel("uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles").Execute()).To(Succeed())
+		Expect(Kamel(t, "uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles").Execute()).To(Succeed())
 
 		// Roles only removed in non-olm use-case
 		uninstallViaOLM := false
 		var err error
-		if uninstallViaOLM, err = olm.IsAPIAvailable(TestClient()); err != nil {
+		if uninstallViaOLM, err = olm.IsAPIAvailable(TestClient(t)); err != nil {
 			t.Error(err)
 			t.FailNow()
 		}
 
 		if !uninstallViaOLM {
-			Eventually(Role(ns)).Should(BeNil())
-			Eventually(RoleBinding(ns)).Should(BeNil())
-			Eventually(ServiceAccount(ns, "camel-k-operator")).Should(BeNil())
+			Eventually(Role(t, ns)).Should(BeNil())
+			Eventually(RoleBinding(t, ns)).Should(BeNil())
+			Eventually(ServiceAccount(t, ns, "camel-k-operator")).Should(BeNil())
 		} else {
-			Eventually(Role(ns)).ShouldNot(BeNil())
-			Eventually(RoleBinding(ns)).ShouldNot(BeNil())
+			Eventually(Role(t, ns)).ShouldNot(BeNil())
+			Eventually(RoleBinding(t, ns)).ShouldNot(BeNil())
 		}
 
-		Eventually(Configmap(ns, "camel-k-maven-settings")).Should(BeNil())
-		Eventually(OperatorPod(ns), TestTimeoutMedium).Should(BeNil())
-		Eventually(KameletList(ns), TestTimeoutMedium).Should(BeEmpty())
-		Eventually(CamelCatalogList(ns), TestTimeoutMedium).Should(BeEmpty())
+		Eventually(Configmap(t, ns, "camel-k-maven-settings")).Should(BeNil())
+		Eventually(OperatorPod(t, ns), TestTimeoutMedium).Should(BeNil())
+		Eventually(KameletList(t, ns), TestTimeoutMedium).Should(BeEmpty())
+		Eventually(CamelCatalogList(t, ns), TestTimeoutMedium).Should(BeEmpty())
 	})
 }
 
@@ -71,11 +71,11 @@ func TestUninstallSkipOperator(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		// a successful new installation
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
 		// on uninstall it should remove everything except operator
-		Expect(Kamel("uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-operator").Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Expect(Kamel(t, "uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-operator").Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
 	})
 }
 
@@ -83,11 +83,11 @@ func TestUninstallSkipRole(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		// a successful new installation
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns, "--olm=false").Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--olm=false").Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
 		// on uninstall it should remove everything except roles
-		Expect(Kamel("uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-roles").Execute()).To(Succeed())
-		Eventually(Role(ns)).ShouldNot(BeNil())
+		Expect(Kamel(t, "uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-roles").Execute()).To(Succeed())
+		Eventually(Role(t, ns)).ShouldNot(BeNil())
 	})
 }
 
@@ -95,11 +95,11 @@ func TestUninstallSkipRoleBinding(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		// a successful new installation
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns, "--olm=false").Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--olm=false").Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
 		// on uninstall it should remove everything except role-bindings
-		Expect(Kamel("uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-role-bindings").Execute()).To(Succeed())
-		Eventually(RoleBinding(ns)).ShouldNot(BeNil())
+		Expect(Kamel(t, "uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-role-bindings").Execute()).To(Succeed())
+		Eventually(RoleBinding(t, ns)).ShouldNot(BeNil())
 	})
 }
 
@@ -107,11 +107,11 @@ func TestUninstallSkipServiceAccounts(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		// a successful new installation
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns, "--olm=false").Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Expect(KamelInstallWithID(t, operatorID, ns, "--olm=false").Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
 		// on uninstall it should remove everything except cluster-roles
-		Expect(Kamel("uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-service-accounts").Execute()).To(Succeed())
-		Eventually(ServiceAccount(ns, "camel-k-operator")).ShouldNot(BeNil())
+		Expect(Kamel(t, "uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-service-accounts").Execute()).To(Succeed())
+		Eventually(ServiceAccount(t, ns, "camel-k-operator")).ShouldNot(BeNil())
 	})
 }
 
@@ -119,12 +119,12 @@ func TestUninstallSkipIntegrationPlatform(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		// a successful new installation
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
 		// on uninstall it should remove everything except cluster-roles
 		// NOTE: skip CRDs is also required in addition to skip integration platform
-		Expect(Kamel("uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-integration-platform").Execute()).To(Succeed())
-		Eventually(Platform(ns)).ShouldNot(BeNil())
+		Expect(Kamel(t, "uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-integration-platform").Execute()).To(Succeed())
+		Eventually(Platform(t, ns)).ShouldNot(BeNil())
 	})
 }
 
@@ -132,12 +132,12 @@ func TestUninstallSkipKamelets(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		// a successful new installation
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithIDAndKameletCatalog(operatorID, ns).Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Eventually(KameletList(ns)).ShouldNot(BeEmpty())
+		Expect(KamelInstallWithIDAndKameletCatalog(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Eventually(KameletList(t, ns)).ShouldNot(BeEmpty())
 		// on uninstall it should remove everything except kamelets
-		Expect(Kamel("uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-kamelets").Execute()).To(Succeed())
-		Eventually(KameletList(ns)).ShouldNot(BeEmpty())
+		Expect(Kamel(t, "uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-kamelets").Execute()).To(Succeed())
+		Eventually(KameletList(t, ns)).ShouldNot(BeEmpty())
 	})
 }
 
@@ -145,12 +145,12 @@ func TestUninstallSkipCamelCatalogs(t *testing.T) {
 	WithNewTestNamespace(t, func(ns string) {
 		// a successful new installation
 		operatorID := fmt.Sprintf("camel-k-%s", ns)
-		Expect(KamelInstallWithID(operatorID, ns).Execute()).To(Succeed())
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Eventually(CamelCatalogList(ns)).ShouldNot(BeEmpty())
+		Expect(KamelInstallWithID(t, operatorID, ns).Execute()).To(Succeed())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Eventually(CamelCatalogList(t, ns)).ShouldNot(BeEmpty())
 		// on uninstall it should remove everything except camel catalogs
-		Expect(Kamel("uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-camel-catalogs").Execute()).To(Succeed())
-		Eventually(CamelCatalogList(ns)).ShouldNot(BeEmpty())
+		Expect(Kamel(t, "uninstall", "-n", ns, "--skip-crd", "--skip-cluster-roles", "--skip-camel-catalogs").Execute()).To(Succeed())
+		Eventually(CamelCatalogList(t, ns)).ShouldNot(BeEmpty())
 
 	})
 }
diff --git a/e2e/install/helm/setup_test.go b/e2e/install/helm/setup_test.go
index 139dc9b42..05c6f89ef 100644
--- a/e2e/install/helm/setup_test.go
+++ b/e2e/install/helm/setup_test.go
@@ -45,8 +45,8 @@ func TestHelmInstallRunUninstall(t *testing.T) {
 	os.Setenv("CAMEL_K_TEST_MAKE_DIR", "../../../")
 
 	WithNewTestNamespace(t, func(ns string) {
-		ExpectExecSucceed(t, Make(fmt.Sprintf("CUSTOM_IMAGE=%s", customImage), "set-version"))
-		ExpectExecSucceed(t, Make("release-helm"))
+		ExpectExecSucceed(t, Make(t, fmt.Sprintf("CUSTOM_IMAGE=%s", customImage), "set-version"))
+		ExpectExecSucceed(t, Make(t, "release-helm"))
 		ExpectExecSucceed(t,
 			exec.Command(
 				"helm",
@@ -62,10 +62,10 @@ func TestHelmInstallRunUninstall(t *testing.T) {
 			),
 		)
 
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
 
 		// Check if restricted security context has been applyed
-		operatorPod := OperatorPod(ns)()
+		operatorPod := OperatorPod(t, ns)()
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.RunAsNonRoot).To(Equal(kubernetes.DefaultOperatorSecurityContext().RunAsNonRoot))
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.Capabilities).To(Equal(kubernetes.DefaultOperatorSecurityContext().Capabilities))
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.SeccompProfile).To(Equal(kubernetes.DefaultOperatorSecurityContext().SeccompProfile))
@@ -74,9 +74,9 @@ func TestHelmInstallRunUninstall(t *testing.T) {
 		//Test a simple route
 		t.Run("simple route", func(t *testing.T) {
 			name := RandomizedSuffixName("yaml")
-			Expect(KamelRun(ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
-			Eventually(IntegrationPodPhase(ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
-			Eventually(IntegrationLogs(ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
+			Expect(KamelRun(t, ns, "files/yaml.yaml", "--name", name).Execute()).To(Succeed())
+			Eventually(IntegrationPodPhase(t, ns, name), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+			Eventually(IntegrationLogs(t, ns, name), TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
 		})
 
 		ExpectExecSucceed(t,
@@ -89,6 +89,6 @@ func TestHelmInstallRunUninstall(t *testing.T) {
 			),
 		)
 
-		Eventually(OperatorPod(ns)).Should(BeNil())
+		Eventually(OperatorPod(t, ns)).Should(BeNil())
 	})
 }
diff --git a/e2e/install/kustomize/operator_test.go b/e2e/install/kustomize/operator_test.go
index bf5b67064..a2fb78f99 100644
--- a/e2e/install/kustomize/operator_test.go
+++ b/e2e/install/kustomize/operator_test.go
@@ -42,37 +42,37 @@ func TestOperatorBasic(t *testing.T) {
 
 	// Ensure no CRDs are already installed
 	RegisterTestingT(t)
-	Expect(UninstallAll()).To(Succeed())
+	Expect(UninstallAll(t)).To(Succeed())
 
 	// Return the cluster to previous state
-	defer Cleanup()
+	defer Cleanup(t)
 
 	WithNewTestNamespace(t, func(ns string) {
 		namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
-		ExpectExecSucceed(t, Make("setup-cluster", namespaceArg))
-		ExpectExecSucceed(t, Make("setup", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup-cluster", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup", namespaceArg))
 		// Skip default kamelets installation for faster test runs
-		ExpectExecSucceed(t, Make("operator",
+		ExpectExecSucceed(t, Make(t, "operator",
 			namespaceArg,
 			"INSTALL_DEFAULT_KAMELETS=false"))
 
 		// Refresh the test client to account for the newly installed CRDs
-		SyncClient()
+		RefreshClient(t)
 
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Eventually(OperatorPodPhase(ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Eventually(OperatorPodPhase(t, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 
 		// Check if restricted security context has been applyed
-		operatorPod := OperatorPod(ns)()
+		operatorPod := OperatorPod(t, ns)()
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.RunAsNonRoot).To(Equal(kubernetes.DefaultOperatorSecurityContext().RunAsNonRoot))
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.Capabilities).To(Equal(kubernetes.DefaultOperatorSecurityContext().Capabilities))
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.SeccompProfile).To(Equal(kubernetes.DefaultOperatorSecurityContext().SeccompProfile))
 		Expect(operatorPod.Spec.Containers[0].SecurityContext.AllowPrivilegeEscalation).To(Equal(kubernetes.DefaultOperatorSecurityContext().AllowPrivilegeEscalation))
 
-		Eventually(Platform(ns)).ShouldNot(BeNil())
+		Eventually(Platform(t, ns)).ShouldNot(BeNil())
 		registry := os.Getenv("KIND_REGISTRY")
 		if registry != "" {
-			platform := Platform(ns)()
+			platform := Platform(t, ns)()
 			Expect(platform.Status.Build.Registry).ShouldNot(BeNil())
 			Expect(platform.Status.Build.Registry.Address).To(Equal(registry))
 		}
@@ -86,29 +86,29 @@ func TestOperatorKustomizeAlternativeImage(t *testing.T) {
 
 	// Ensure no CRDs are already installed
 	RegisterTestingT(t)
-	Expect(UninstallAll()).To(Succeed())
+	Expect(UninstallAll(t)).To(Succeed())
 
 	// Return the cluster to previous state
-	defer Cleanup()
+	defer Cleanup(t)
 
 	WithNewTestNamespace(t, func(ns string) {
 		namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
-		ExpectExecSucceed(t, Make("setup-cluster", namespaceArg))
-		ExpectExecSucceed(t, Make("setup", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup-cluster", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup", namespaceArg))
 
 		// Skip default kamelets installation for faster test runs
 		newImage := "quay.io/kameltest/kamel-operator"
 		newTag := "1.1.1"
-		ExpectExecSucceed(t, Make("operator",
+		ExpectExecSucceed(t, Make(t, "operator",
 			fmt.Sprintf("CUSTOM_IMAGE=%s", newImage),
 			fmt.Sprintf("CUSTOM_VERSION=%s", newTag),
 			namespaceArg,
 			"INSTALL_DEFAULT_KAMELETS=false"))
 
 		// Refresh the test client to account for the newly installed CRDs
-		SyncClient()
+		RefreshClient(t)
 
-		Eventually(OperatorImage(ns)).Should(Equal(fmt.Sprintf("%s:%s", newImage, newTag)))
+		Eventually(OperatorImage(t, ns)).Should(Equal(fmt.Sprintf("%s:%s", newImage, newTag)))
 	})
 }
 
@@ -118,28 +118,28 @@ func TestOperatorKustomizeGlobal(t *testing.T) {
 
 	// Ensure no CRDs are already installed
 	RegisterTestingT(t)
-	Expect(UninstallAll()).To(Succeed())
+	Expect(UninstallAll(t)).To(Succeed())
 
 	// Return the cluster to previous state
-	defer Cleanup()
+	defer Cleanup(t)
 
 	WithNewTestNamespace(t, func(ns string) {
 		namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
-		ExpectExecSucceed(t, Make("setup-cluster", namespaceArg))
-		ExpectExecSucceed(t, Make("setup", namespaceArg, "GLOBAL=true"))
+		ExpectExecSucceed(t, Make(t, "setup-cluster", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup", namespaceArg, "GLOBAL=true"))
 
 		// Skip default kamelets installation for faster test runs
-		ExpectExecSucceed(t, Make("operator",
+		ExpectExecSucceed(t, Make(t, "operator",
 			namespaceArg,
 			"GLOBAL=true",
 			"INSTALL_DEFAULT_KAMELETS=false"))
 
 		// Refresh the test client to account for the newly installed CRDs
-		SyncClient()
+		RefreshClient(t)
 
-		podFunc := OperatorPod(ns)
+		podFunc := OperatorPod(t, ns)
 		Eventually(podFunc).ShouldNot(BeNil())
-		Eventually(OperatorPodPhase(ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+		Eventually(OperatorPodPhase(t, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 		pod := podFunc()
 
 		containers := pod.Spec.Containers
@@ -158,6 +158,6 @@ func TestOperatorKustomizeGlobal(t *testing.T) {
 		}
 		Expect(found).To(BeTrue())
 
-		Eventually(Platform(ns)).ShouldNot(BeNil())
+		Eventually(Platform(t, ns)).ShouldNot(BeNil())
 	})
 }
diff --git a/e2e/install/kustomize/setup_test.go b/e2e/install/kustomize/setup_test.go
index 9434e17f4..bcde0f9d6 100644
--- a/e2e/install/kustomize/setup_test.go
+++ b/e2e/install/kustomize/setup_test.go
@@ -39,29 +39,29 @@ func TestSetupKustomizeBasic(t *testing.T) {
 	os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
 
 	// Ensure no CRDs are already installed
-	Expect(UninstallAll()).To(Succeed())
-	Eventually(CRDs()).Should(HaveLen(0))
+	Expect(UninstallAll(t)).To(Succeed())
+	Eventually(CRDs(t)).Should(HaveLen(0))
 
 	// Return the cluster to previous state
-	defer Cleanup()
+	defer Cleanup(t)
 
 	WithNewTestNamespace(t, func(ns string) {
 		namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
-		ExpectExecSucceed(t, Make("setup-cluster", namespaceArg))
-		Eventually(CRDs()).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
+		ExpectExecSucceed(t, Make(t, "setup-cluster", namespaceArg))
+		Eventually(CRDs(t)).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
 
-		ExpectExecSucceed(t, Make("setup", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup", namespaceArg))
 
 		kpRoles := ExpectedKubePromoteRoles
 		opRoles := kpRoles + ExpectedOSPromoteRoles
-		Eventually(Role(ns)).Should(Or(HaveLen(kpRoles), HaveLen(opRoles)))
+		Eventually(Role(t, ns)).Should(Or(HaveLen(kpRoles), HaveLen(opRoles)))
 
 		kcRoles := ExpectedKubeClusterRoles
 		ocRoles := kcRoles + ExpectedOSClusterRoles
-		Eventually(ClusterRole()).Should(Or(HaveLen(kcRoles), HaveLen(ocRoles)))
+		Eventually(ClusterRole(t)).Should(Or(HaveLen(kcRoles), HaveLen(ocRoles)))
 
 		// Tidy up to ensure next test works
-		Expect(Kamel("uninstall", "-n", ns).Execute()).To(Succeed())
+		Expect(Kamel(t, "uninstall", "-n", ns).Execute()).To(Succeed())
 	})
 
 }
@@ -72,23 +72,23 @@ func TestSetupKustomizeGlobal(t *testing.T) {
 
 	// Ensure no CRDs are already installed
 	RegisterTestingT(t)
-	Expect(UninstallAll()).To(Succeed())
-	Eventually(CRDs()).Should(HaveLen(0))
+	Expect(UninstallAll(t)).To(Succeed())
+	Eventually(CRDs(t)).Should(HaveLen(0))
 
 	// Return the cluster to previous state
-	defer Cleanup()
+	defer Cleanup(t)
 
 	WithNewTestNamespace(t, func(ns string) {
 		namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
-		ExpectExecSucceed(t, Make("setup-cluster", namespaceArg))
-		Eventually(CRDs()).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
+		ExpectExecSucceed(t, Make(t, "setup-cluster", namespaceArg))
+		Eventually(CRDs(t)).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
 
-		ExpectExecSucceed(t, Make("setup", "GLOBAL=true", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup", "GLOBAL=true", namespaceArg))
 
-		Eventually(Role(ns)).Should(HaveLen(0))
+		Eventually(Role(t, ns)).Should(HaveLen(0))
 
 		kcpRoles := ExpectedKubeClusterRoles + ExpectedKubePromoteRoles
 		ocpRoles := kcpRoles + ExpectedOSClusterRoles + ExpectedOSPromoteRoles
-		Eventually(ClusterRole()).Should(Or(HaveLen(kcpRoles), HaveLen(ocpRoles)))
+		Eventually(ClusterRole(t)).Should(Or(HaveLen(kcpRoles), HaveLen(ocpRoles)))
 	})
 }
diff --git a/e2e/install/kustomize/uninstall_test.go b/e2e/install/kustomize/uninstall_test.go
index 7c8e93c35..5915e77a5 100644
--- a/e2e/install/kustomize/uninstall_test.go
+++ b/e2e/install/kustomize/uninstall_test.go
@@ -41,41 +41,41 @@ func TestKustomizeUninstallBasic(t *testing.T) {
 	os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
 
 	// Ensure no CRDs are already installed
-	Expect(UninstallAll()).To(Succeed())
-	Eventually(CRDs()).Should(HaveLen(0))
+	Expect(UninstallAll(t)).To(Succeed())
+	Eventually(CRDs(t)).Should(HaveLen(0))
 
 	// Return the cluster to previous state
-	defer Cleanup()
+	defer Cleanup(t)
 
 	WithNewTestNamespace(t, func(ns string) {
 		namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
-		ExpectExecSucceed(t, Make("setup-cluster", namespaceArg))
-		ExpectExecSucceed(t, Make("setup", namespaceArg))
-		ExpectExecSucceed(t, Make("platform", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup-cluster", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "platform", namespaceArg))
 		// Skip default kamelets installation for faster test runs
-		ExpectExecSucceed(t, Make("operator", namespaceArg, "INSTALL_DEFAULT_KAMELETS=false"))
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Eventually(OperatorPodPhase(ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+		ExpectExecSucceed(t, Make(t, "operator", namespaceArg, "INSTALL_DEFAULT_KAMELETS=false"))
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Eventually(OperatorPodPhase(t, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 
 		// Do uninstall
-		ExpectExecSucceed(t, Make("uninstall", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "uninstall", namespaceArg))
 
 		// Refresh the test client to account for the newly installed CRDs
-		SyncClient()
+		RefreshClient(t)
 
-		Eventually(OperatorPod(ns)).Should(BeNil())
-		Eventually(Platform(ns)).Should(BeNil())
+		Eventually(OperatorPod(t, ns)).Should(BeNil())
+		Eventually(Platform(t, ns)).Should(BeNil())
 		// The operator can dynamically create a for its builders
 		// so, in case there is a build strategy "pod", expect this to have 1 role
-		Eventually(Role(ns)).Should(BeNil())
-		Eventually(ClusterRole()).Should(BeNil())
+		Eventually(Role(t, ns)).Should(BeNil())
+		Eventually(ClusterRole(t)).Should(BeNil())
 		// CRDs should be still there
-		Eventually(CRDs()).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
+		Eventually(CRDs(t)).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
 
 		// Do uninstall all
-		ExpectExecSucceed(t, Make("uninstall", namespaceArg, "UNINSTALL_ALL=true"))
+		ExpectExecSucceed(t, Make(t, "uninstall", namespaceArg, "UNINSTALL_ALL=true"))
 
-		Eventually(CRDs()).Should(BeNil())
+		Eventually(CRDs(t)).Should(BeNil())
 	})
 
 }
@@ -86,38 +86,38 @@ func TestUninstallGlobal(t *testing.T) {
 	os.Setenv("CAMEL_K_TEST_MAKE_DIR", makeDir)
 
 	// Ensure no CRDs are already installed
-	Expect(UninstallAll()).To(Succeed())
-	Eventually(CRDs()).Should(HaveLen(0))
+	Expect(UninstallAll(t)).To(Succeed())
+	Eventually(CRDs(t)).Should(HaveLen(0))
 
 	// Return the cluster to previous state
-	defer Cleanup()
+	defer Cleanup(t)
 
 	WithNewTestNamespace(t, func(ns string) {
 		namespaceArg := fmt.Sprintf("NAMESPACE=%s", ns)
-		ExpectExecSucceed(t, Make("setup-cluster", namespaceArg))
-		ExpectExecSucceed(t, Make("setup", namespaceArg, "GLOBAL=true"))
-		ExpectExecSucceed(t, Make("platform", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup-cluster", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "setup", namespaceArg, "GLOBAL=true"))
+		ExpectExecSucceed(t, Make(t, "platform", namespaceArg))
 		// Skip default kamelets installation for faster test runs
-		ExpectExecSucceed(t, Make("operator", namespaceArg, "GLOBAL=true", "INSTALL_DEFAULT_KAMELETS=false"))
-		Eventually(OperatorPod(ns)).ShouldNot(BeNil())
-		Eventually(OperatorPodPhase(ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
+		ExpectExecSucceed(t, Make(t, "operator", namespaceArg, "GLOBAL=true", "INSTALL_DEFAULT_KAMELETS=false"))
+		Eventually(OperatorPod(t, ns)).ShouldNot(BeNil())
+		Eventually(OperatorPodPhase(t, ns), TestTimeoutMedium).Should(Equal(corev1.PodRunning))
 
 		// Do uninstall
-		ExpectExecSucceed(t, Make("uninstall", namespaceArg))
+		ExpectExecSucceed(t, Make(t, "uninstall", namespaceArg))
 
 		// Refresh the test client to account for the newly installed CRDs
-		SyncClient()
+		RefreshClient(t)
 
-		Eventually(OperatorPod(ns)).Should(BeNil())
-		Eventually(Platform(ns)).Should(BeNil())
-		Eventually(Role(ns)).Should(BeNil())
-		Eventually(ClusterRole()).Should(BeNil())
+		Eventually(OperatorPod(t, ns)).Should(BeNil())
+		Eventually(Platform(t, ns)).Should(BeNil())
+		Eventually(Role(t, ns)).Should(BeNil())
+		Eventually(ClusterRole(t)).Should(BeNil())
 		// CRDs should be still there
-		Eventually(CRDs()).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
+		Eventually(CRDs(t)).Should(HaveLen(GetExpectedCRDs(defaults.Version)))
 
 		// Do uninstall all
-		ExpectExecSucceed(t, Make("uninstall", namespaceArg, "UNINSTALL_ALL=true"))
+		ExpectExecSucceed(t, Make(t, "uninstall", namespaceArg, "UNINSTALL_ALL=true"))
 
-		Eventually(CRDs()).Should(BeNil())
+		Eventually(CRDs(t)).Should(BeNil())
 	})
 }
diff --git a/e2e/install/olm/olm_install_test.go b/e2e/install/olm/olm_install_test.go
index 9f06d1a5b..73a1a67a0 100644
--- a/e2e/install/olm/olm_install_test.go
+++ b/e2e/install/olm/olm_install_test.go
@@ -54,20 +54,20 @@ func TestOLMInstallation(t *testing.T) {
 	}
 
 	WithNewTestNamespace(t, func(ns string) {
-		Expect(CreateOrUpdateCatalogSource(ns, installCatalogSourceName, newIIB)).To(Succeed())
+		Expect(CreateOrUpdateCatalogSource(t, ns, installCatalogSourceName, newIIB)).To(Succeed())
 
-		ocp, err := openshift.IsOpenShift(TestClient())
+		ocp, err := openshift.IsOpenShift(TestClient(t))
 		require.NoError(t, err)
 
 		if ocp {
 			// Wait for pull secret to be created in namespace
 			// eg. test-camel-k-source-dockercfg-zlltn
 			secretPrefix := fmt.Sprintf("%s-dockercfg-", installCatalogSourceName)
-			Eventually(SecretByName(ns, secretPrefix), TestTimeoutLong).Should(Not(BeNil()))
+			Eventually(SecretByName(t, ns, secretPrefix), TestTimeoutLong).Should(Not(BeNil()))
 		}
 
-		Eventually(CatalogSourcePodRunning(ns, installCatalogSourceName), TestTimeoutMedium).Should(BeNil())
-		Eventually(CatalogSourcePhase(ns, installCatalogSourceName), TestTimeoutLong).Should(Equal("READY"))
+		Eventually(CatalogSourcePodRunning(t, ns, installCatalogSourceName), TestTimeoutMedium).Should(BeNil())
+		Eventually(CatalogSourcePhase(t, ns, installCatalogSourceName), TestTimeoutLong).Should(Equal("READY"))
 
 		args := []string{"install", "-n", ns, "--olm=true", "--olm-source", installCatalogSourceName, "--olm-source-namespace", ns}
 
@@ -75,39 +75,39 @@ func TestOLMInstallation(t *testing.T) {
 			args = append(args, "--olm-channel", newUpdateChannel)
 		}
 
-		Expect(Kamel(args...).Execute()).To(Succeed())
+		Expect(Kamel(t, args...).Execute()).To(Succeed())
 
 		// Find the only one Camel K CSV
 		noAdditionalConditions := func(csv olm.ClusterServiceVersion) bool {
 			return true
 		}
-		Eventually(ClusterServiceVersionPhase(noAdditionalConditions, ns), TestTimeoutMedium).Should(Equal(olm.CSVPhaseSucceeded))
+		Eventually(ClusterServiceVersionPhase(t, noAdditionalConditions, ns), TestTimeoutMedium).Should(Equal(olm.CSVPhaseSucceeded))
 
 		// Refresh the test client to account for the newly installed CRDs
-		SyncClient()
+		RefreshClient(t)
 
-		csvVersion := ClusterServiceVersion(noAdditionalConditions, ns)().Spec.Version
+		csvVersion := ClusterServiceVersion(t, noAdditionalConditions, ns)().Spec.Version
... 4285 lines suppressed ...