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 92ea86144ab6f6d8024c1116896a4bf1797e285e
Author: Christoph Deppisch <cdeppi...@redhat.com>
AuthorDate: Tue Mar 5 11:44:28 2024 +0100

    chore(e2e): Use separate operator instances for trait e2e tests
---
 e2e/advanced/synthetic_test.go                   |   8 +-
 e2e/common/cli/bind_test.go                      |   3 +-
 e2e/common/cli/default.go                        |   4 +-
 e2e/common/cli/describe_test.go                  |   5 +-
 e2e/common/{misc => cli}/main_test.go            |   7 +-
 e2e/common/config/config_reload_test.go          |  25 +++
 e2e/common/config/config_test.go                 |   6 +
 e2e/common/config/default.go                     |  29 ---
 e2e/common/config/kamelet_config_test.go         | 260 ++++++++++++++++-------
 e2e/common/config/pipe_config_test.go            |   8 +
 e2e/common/languages/default.go                  |  29 ---
 e2e/common/languages/groovy_test.go              |  14 +-
 e2e/common/languages/java_test.go                |  14 +-
 e2e/common/languages/js_test.go                  |  14 +-
 e2e/common/languages/kotlin_test.go              |  14 +-
 e2e/common/languages/main_test.go                |  62 ------
 e2e/common/languages/polyglot_test.go            |  14 +-
 e2e/common/languages/xml_test.go                 |  14 +-
 e2e/common/languages/yaml_test.go                |  14 +-
 e2e/common/{config => }/main_test.go             |  29 +--
 e2e/common/misc/cron_test.go                     |   6 +
 e2e/common/misc/default.go                       |  29 ---
 e2e/common/misc/integration_fail_test.go         |   6 +
 e2e/common/misc/integration_trait_update_test.go |   6 +
 e2e/common/misc/kamelet_test.go                  |   7 +
 e2e/common/misc/kamelet_update_test.go           |   6 +
 e2e/common/misc/maven_repository_test.go         |   7 +
 e2e/common/misc/pipe_test.go                     |   6 +
 e2e/common/misc/pipe_with_image_test.go          |   7 +
 e2e/common/misc/registry_maven_wagon_test.go     | 194 +++++++++--------
 e2e/common/misc/rest_test.go                     |   7 +
 e2e/common/misc/scale_binding_test.go            |   6 +
 e2e/common/misc/scale_integration_test.go        |   6 +
 e2e/common/misc/structured_logs_test.go          |   8 +-
 e2e/common/runtimes/default.go                   |  28 ---
 e2e/common/runtimes/runtimes_test.go             |   7 +
 e2e/common/traits/affinity_test.go               |   6 +
 e2e/common/traits/builder_test.go                |  13 +-
 e2e/common/traits/camel_test.go                  |   6 +
 e2e/common/traits/container_test.go              |   6 +
 e2e/common/traits/default.go                     |  29 ---
 e2e/common/traits/deployment_test.go             |  13 +-
 e2e/common/traits/error_handler_test.go          |   6 +
 e2e/common/traits/errored_trait_test.go          |   6 +
 e2e/common/traits/health_test.go                 |   6 +
 e2e/common/traits/istio_test.go                  |   3 +-
 e2e/common/traits/jolokia_test.go                |   6 +
 e2e/common/traits/jvm_test.go                    |   6 +
 e2e/common/traits/kamelet_test.go                |   6 +
 e2e/common/traits/main_test.go                   |  62 ------
 e2e/common/traits/master_test.go                 |   7 +
 e2e/common/traits/openapi_test.go                |   7 +
 e2e/common/traits/pdb_test.go                    |   6 +
 e2e/common/traits/pod_test.go                    |   6 +
 e2e/common/traits/prometheus_test.go             |   9 +-
 e2e/common/traits/pull_secret_test.go            |   6 +
 e2e/common/traits/route_test.go                  |  10 +-
 e2e/common/traits/service_binding_test.go        |   6 +
 e2e/common/traits/service_test.go                |   7 +
 e2e/common/traits/toleration_test.go             |   6 +
 script/Makefile                                  |   1 +
 61 files changed, 652 insertions(+), 502 deletions(-)

diff --git a/e2e/advanced/synthetic_test.go b/e2e/advanced/synthetic_test.go
index 972036019..5d8382984 100644
--- a/e2e/advanced/synthetic_test.go
+++ b/e2e/advanced/synthetic_test.go
@@ -80,14 +80,14 @@ func TestSyntheticIntegrationFromDeployment(t *testing.T) {
 
                // Label the deployment --> Verify the Integration is created 
(cannot still monitor)
                ExpectExecSucceed(t, g, Kubectl("label", "deploy", 
"my-camel-sb-svc", "camel.apache.org/integration=my-it", "-n", ns))
-               g.Eventually(IntegrationPhase(t, ns, "my-it"), 
TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+               g.Eventually(IntegrationPhase(t, ns, "my-it"), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
                g.Eventually(IntegrationConditionStatus(t, ns, "my-it", 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionFalse))
                g.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, g, Kubectl("patch", "deployment", 
"my-camel-sb-svc", "--patch", `{"spec": {"template": {"metadata": {"labels": 
{"camel.apache.org/integration": "my-it"}}}}}`, "-n", ns))
-               g.Eventually(IntegrationPhase(t, ns, "my-it"), 
TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+               g.Eventually(IntegrationPhase(t, ns, "my-it"), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
                g.Eventually(IntegrationConditionStatus(t, ns, "my-it", 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
                one := int32(1)
                g.Eventually(IntegrationStatusReplicas(t, ns, "my-it"), 
TestTimeoutShort).Should(Equal(&one))
@@ -100,7 +100,7 @@ func TestSyntheticIntegrationFromDeployment(t *testing.T) {
                ExpectExecSucceed(t, g, Kubectl("apply", "-f", 
"files/deploy.yaml", "-n", ns))
                ExpectExecSucceed(t, g, Kubectl("label", "deploy", 
"my-camel-sb-svc", "camel.apache.org/integration=my-it", "-n", ns))
                ExpectExecSucceed(t, g, Kubectl("patch", "deployment", 
"my-camel-sb-svc", "--patch", `{"spec": {"template": {"metadata": {"labels": 
{"camel.apache.org/integration": "my-it"}}}}}`, "-n", ns))
-               g.Eventually(IntegrationPhase(t, ns, "my-it"), 
TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+               g.Eventually(IntegrationPhase(t, ns, "my-it"), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
                g.Eventually(IntegrationConditionStatus(t, ns, "my-it", 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
                g.Eventually(IntegrationStatusReplicas(t, ns, "my-it"), 
TestTimeoutShort).Should(Equal(&one))
 
@@ -110,7 +110,7 @@ func TestSyntheticIntegrationFromDeployment(t *testing.T) {
 
                // Add label back to the deployment --> Verify the Integration 
is created
                ExpectExecSucceed(t, g, Kubectl("label", "deploy", 
"my-camel-sb-svc", "camel.apache.org/integration=my-it", "-n", ns))
-               g.Eventually(IntegrationPhase(t, ns, "my-it"), 
TestTimeoutShort).Should(Equal(v1.IntegrationPhaseRunning))
+               g.Eventually(IntegrationPhase(t, ns, "my-it"), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPhaseRunning))
                g.Eventually(IntegrationConditionStatus(t, ns, "my-it", 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
                g.Eventually(IntegrationStatusReplicas(t, ns, "my-it"), 
TestTimeoutShort).Should(Equal(&one))
                // Scale the deployment --> verify replicas are correctly set
diff --git a/e2e/common/cli/bind_test.go b/e2e/common/cli/bind_test.go
index 40e1afe09..a03c984c6 100644
--- a/e2e/common/cli/bind_test.go
+++ b/e2e/common/cli/bind_test.go
@@ -46,8 +46,7 @@ func TestKamelCLIBind(t *testing.T) {
                })
 
                t.Run("unsuccessful binding, no property", func(t *testing.T) {
-                       opns := GetEnvOrDefault("CAMEL_K_GLOBAL_OPERATOR_NS", 
TestDefaultNamespace)
-                       g.Expect(KamelBindWithID(t, operatorID, ns, 
opns+"/timer-source", "log:info").Execute()).NotTo(Succeed())
+                       g.Expect(KamelBindWithID(t, operatorID, ns, 
"timer-source", "log:info").Execute()).NotTo(Succeed())
                })
 
                t.Run("bind uris", func(t *testing.T) {
diff --git a/e2e/common/cli/default.go b/e2e/common/cli/default.go
index 74e73354d..c6174d79c 100644
--- a/e2e/common/cli/default.go
+++ b/e2e/common/cli/default.go
@@ -25,5 +25,5 @@ import (
        "github.com/apache/camel-k/v2/pkg/platform"
 )
 
-var ns = support.GetEnvOrDefault("CAMEL_K_TEST_NAMESPACE", 
support.TestDefaultNamespace)
-var operatorID = support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID", 
platform.DefaultPlatformName)
+var operatorNS = support.TestDefaultNamespace + "-cli"
+var operatorID = platform.DefaultPlatformName + "-cli"
diff --git a/e2e/common/cli/describe_test.go b/e2e/common/cli/describe_test.go
index 4e175c679..656b14d98 100644
--- a/e2e/common/cli/describe_test.go
+++ b/e2e/common/cli/describe_test.go
@@ -71,11 +71,10 @@ 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(t, "describe", 
"platform", operatorID, "-n", opns))
+                       platform := GetOutputString(Kamel(t, "describe", 
"platform", operatorID, "-n", ns))
                        
g.Expect(platform).To(ContainSubstring(fmt.Sprintf("Name:       %s", 
operatorID)))
 
-                       r, _ := regexp.Compile("(?sm).*Namespace:\\s+" + opns + 
".*")
+                       r, _ := regexp.Compile("(?sm).*Namespace:\\s+" + ns + 
".*")
                        g.Expect(platform).To(MatchRegexp(r.String()))
 
                        r, _ = regexp.Compile("(?sm).*Runtime Version:\\s+" + 
defaults.DefaultRuntimeVersion + ".*")
diff --git a/e2e/common/misc/main_test.go b/e2e/common/cli/main_test.go
similarity index 93%
rename from e2e/common/misc/main_test.go
rename to e2e/common/cli/main_test.go
index bf4aea736..fa9e31452 100644
--- a/e2e/common/misc/main_test.go
+++ b/e2e/common/cli/main_test.go
@@ -20,17 +20,17 @@ See the License for the specific language governing 
permissions and
 limitations under the License.
 */
 
-package misc
+package cli
 
 import (
        "fmt"
-       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "os"
        "testing"
 
        . "github.com/onsi/gomega"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestMain(m *testing.M) {
@@ -47,10 +47,9 @@ func TestMain(m *testing.M) {
 
        g.Expect(TestClient(t)).ShouldNot(BeNil())
 
-       // Install global operator for tests in this package, all tests must 
use this operatorID so tests can run in parallel and gain execution speed
+       // Install global operator for tests in this package, all tests must 
use this operatorID
        g.Expect(NewNamedTestNamespace(t, operatorNS, false)).ShouldNot(BeNil())
        g.Expect(CopyCamelCatalog(t, operatorNS, operatorID)).To(Succeed())
-       // Need Kamelet catalog for pipe bind tests
        g.Expect(KamelInstallWithIDAndKameletCatalog(t, operatorID, operatorNS, 
"--global", "--force").Execute()).To(Succeed())
        g.Eventually(SelectedPlatformPhase(t, operatorNS, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
diff --git a/e2e/common/config/config_reload_test.go 
b/e2e/common/config/config_reload_test.go
index a40361f6d..cf12faa24 100644
--- a/e2e/common/config/config_reload_test.go
+++ b/e2e/common/config/config_reload_test.go
@@ -23,6 +23,7 @@ limitations under the License.
 package config
 
 import (
+       "fmt"
        "strconv"
        "testing"
 
@@ -38,6 +39,12 @@ func TestConfigmapHotReload(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-hot-reload"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                name := RandomizedSuffixName("config-configmap-route")
 
@@ -68,6 +75,12 @@ func TestConfigmapHotReload(t *testing.T) {
 
 func TestConfigmapHotReloadDefault(t *testing.T) {
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-hot-reload-default"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                name := RandomizedSuffixName("config-configmap-route")
 
@@ -95,6 +108,12 @@ func TestConfigmapHotReloadDefault(t *testing.T) {
 
 func TestSecretHotReload(t *testing.T) {
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-secret-hot-reload"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                name := RandomizedSuffixName("config-secret-route")
 
@@ -132,6 +151,12 @@ func TestConfigmapWithOwnerRefHotReload(t *testing.T) {
 
 func CheckConfigmapWithOwnerRef(t *testing.T, hotreload bool) {
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := fmt.Sprintf("camel-k-config-owner-ref-%s", 
strconv.FormatBool(hotreload))
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                name := RandomizedSuffixName("config-configmap-route")
                cmName := RandomizedSuffixName("my-hot-cm-")
diff --git a/e2e/common/config/config_test.go b/e2e/common/config/config_test.go
index 30fb00f3a..f8978f2bb 100644
--- a/e2e/common/config/config_test.go
+++ b/e2e/common/config/config_test.go
@@ -38,6 +38,12 @@ func TestRunConfigExamples(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Simple property", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"./files/property-route.groovy", "-p", 
"my.message=test-property").Execute()).To(Succeed())
diff --git a/e2e/common/config/default.go b/e2e/common/config/default.go
deleted file mode 100644
index d92514a52..000000000
--- a/e2e/common/config/default.go
+++ /dev/null
@@ -1,29 +0,0 @@
-//go:build integration
-// +build integration
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package config
-
-import (
-       "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/platform"
-)
-
-var operatorNS = support.TestDefaultNamespace + "-config"
-var operatorID = platform.DefaultPlatformName + "-config"
diff --git a/e2e/common/config/kamelet_config_test.go 
b/e2e/common/config/kamelet_config_test.go
index 8cc946cb9..e40d0f4c4 100644
--- a/e2e/common/config/kamelet_config_test.go
+++ b/e2e/common/config/kamelet_config_test.go
@@ -29,15 +29,23 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 // Tests on integrations with kamelets containing configuration from 
properties and secrets
 //
 //     without having to change the integration code.
-func TestKameletImplicitConfigDefaultUserPropery(t *testing.T) {
+func TestKameletImplicitConfigDefaultUserProperty(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-user-property"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                t.Run("run test default config using properties", func(t 
*testing.T) {
 
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"iconfig01-timer-source")()).To(Succeed())
@@ -59,10 +67,17 @@ func TestKameletImplicitConfigDefaultUserPropery(t 
*testing.T) {
 }
 
 func TestKameletImplicitConfigDefaultMountedSecret(t *testing.T) {
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-secret-mount"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
 
-               t.Run("run test default config using mounted secret", func(t 
*testing.T) {
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
+               t.Run("run test default config using mounted secret", func(t 
*testing.T) {
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"iconfig03-timer-source")()).To(Succeed())
 
                        name := 
RandomizedSuffixName("iconfig-test-timer-source-int3")
@@ -91,10 +106,17 @@ func TestKameletImplicitConfigDefaultMountedSecret(t 
*testing.T) {
 }
 
 func TestKameletImplicitConfigDefaultMountedConfigmap(t *testing.T) {
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-configmap-mount"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
 
-               t.Run("run test default config using mounted configmap", func(t 
*testing.T) {
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
+               t.Run("run test default config using mounted configmap", func(t 
*testing.T) {
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"iconfig04-timer-source")()).To(Succeed())
 
                        name := 
RandomizedSuffixName("iconfig-test-timer-source-int4")
@@ -120,8 +142,17 @@ func TestKameletImplicitConfigDefaultMountedConfigmap(t 
*testing.T) {
        })
 }
 
-func TestKameletImplicitConfigNamedUserPropery(t *testing.T) {
+func TestKameletImplicitConfigNamedUserProperty(t *testing.T) {
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-named-property"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                t.Run("run test named config using properties", func(t 
*testing.T) {
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"iconfig05-timer-source")()).To(Succeed())
 
@@ -143,7 +174,16 @@ func TestKameletImplicitConfigNamedUserPropery(t 
*testing.T) {
 }
 
 func TestKameletImplicitConfigNamedLabeledSecret(t *testing.T) {
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-secret-labeled-named"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                t.Run("run test named config using labeled secret", func(t 
*testing.T) {
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"iconfig06-timer-source")()).To(Succeed())
 
@@ -176,7 +216,16 @@ func TestKameletImplicitConfigNamedLabeledSecret(t 
*testing.T) {
 }
 
 func TestKameletImplicitConfigNamedMountedSecret(t *testing.T) {
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-secret-mount-named"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                t.Run("run test named config using mounted secret", func(t 
*testing.T) {
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"iconfig07-timer-source")()).To(Succeed())
 
@@ -207,7 +256,16 @@ func TestKameletImplicitConfigNamedMountedSecret(t 
*testing.T) {
 }
 
 func TestKameletImplicitConfigNamedMountedConfigmap(t *testing.T) {
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-configmap-mount-named"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                t.Run("run test named config using mounted configmap", func(t 
*testing.T) {
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"iconfig08-timer-source")()).To(Succeed())
 
@@ -236,7 +294,16 @@ func TestKameletImplicitConfigNamedMountedConfigmap(t 
*testing.T) {
 }
 
 func TestKameletImplicitConfigDefaultLabeledSecret(t *testing.T) {
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-secret-labeled"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                t.Run("run test default config using labeled secret", func(t 
*testing.T) {
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"iconfig09-timer-source")()).To(Succeed())
 
@@ -268,8 +335,17 @@ func TestKameletImplicitConfigDefaultLabeledSecret(t 
*testing.T) {
 
 // Tests on integration with kamelets containing configuration from properties 
and secrets with parameters inside the integration.
 
-func TestKameletConfigInlinedUserPropery(t *testing.T) {
+func TestKameletConfigInlinedUserProperty(t *testing.T) {
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-user-property-inlined"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                t.Run("run test default config inlined properties", func(t 
*testing.T) {
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"config01-timer-source")()).To(Succeed())
                        g.Expect(CreateLogKamelet(t, operatorID, ns, 
"config01-log-sink")()).To(Succeed())
@@ -292,86 +368,122 @@ func TestKameletConfigInlinedUserPropery(t *testing.T) {
        })
 }
 
-func TestKameletConfigDefaultParamUserPropery(t *testing.T) {
-       g := NewWithT(t)
-       t.Run("run test default config parameters properties", func(t 
*testing.T) {
+func TestKameletConfigDefaultParamUserProperty(t *testing.T) {
+       t.Parallel()
+
+       WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-user-property-param"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
+               t.Run("run test default config parameters properties", func(t 
*testing.T) {
 
-               g.Expect(CreateTimerKamelet(t, operatorID, operatorNS, 
"config02-timer-source")()).To(Succeed())
-               g.Expect(CreateLogKamelet(t, operatorID, operatorNS, 
"config02-log-sink")()).To(Succeed())
+                       g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"config02-timer-source")()).To(Succeed())
+                       g.Expect(CreateLogKamelet(t, operatorID, ns, 
"config02-log-sink")()).To(Succeed())
 
-               name := RandomizedSuffixName("config-test-timer-source-int2")
+                       name := 
RandomizedSuffixName("config-test-timer-source-int2")
 
-               g.Expect(KamelRunWithID(t, operatorID, operatorNS, 
"files/timer-kamelet-integration-parameters-configuration-02.yaml",
-                       "-p", "my-message='My parameter message 02'",
-                       "-p", "my-logger='myIntegrationLogger02'",
-                       "--name", name).Execute()).To(Succeed())
-               g.Eventually(IntegrationPodPhase(t, operatorNS, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-               g.Eventually(IntegrationLogs(t, operatorNS, 
name)).Should(ContainSubstring("My parameter message 02"))
-               g.Eventually(IntegrationLogs(t, operatorNS, 
name)).Should(ContainSubstring("myIntegrationLogger02"))
+                       g.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())
+                       g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationLogs(t, ns, 
name)).Should(ContainSubstring("My parameter message 02"))
+                       g.Eventually(IntegrationLogs(t, ns, 
name)).Should(ContainSubstring("myIntegrationLogger02"))
+
+                       g.Expect(Kamel(t, "delete", name, "-n", 
ns).Execute()).To(Succeed())
+                       g.Eventually(Integration(t, ns, name), 
TestTimeoutLong).Should(BeNil())
+                       g.Expect(DeleteKamelet(t, ns, 
"config02-timer-source")).To(Succeed())
+                       g.Expect(DeleteKamelet(t, ns, 
"config02-log-sink")).To(Succeed())
+               })
 
-               g.Expect(Kamel(t, "delete", name, "-n", 
operatorNS).Execute()).To(Succeed())
-               g.Eventually(Integration(t, operatorNS, name), 
TestTimeoutLong).Should(BeNil())
-               g.Expect(DeleteKamelet(t, operatorNS, 
"config02-timer-source")).To(Succeed())
-               g.Expect(DeleteKamelet(t, operatorNS, 
"config02-log-sink")).To(Succeed())
+               g.Expect(Kamel(t, "delete", "--all", "-n", 
ns).Execute()).To(Succeed())
        })
 }
 
 func TestKameletConfigDefaultParamMountedSecret(t *testing.T) {
-       g := NewWithT(t)
-       t.Run("run test default config secret properties", func(t *testing.T) {
-
-               g.Expect(CreateTimerKamelet(t, operatorID, operatorNS, 
"config03-timer-source")()).To(Succeed())
-               g.Expect(CreateLogKamelet(t, operatorID, operatorNS, 
"config03-log-sink")()).To(Succeed())
-
-               name := RandomizedSuffixName("config-test-timer-source-int3")
-               secretName := "my-config-int3-secret"
-
-               var secData = make(map[string]string)
-               secData["my-message"] = "My secret message 03"
-               secData["my-logger"] = "mySecretIntegrationLogger03"
-               g.Expect(CreatePlainTextSecret(t, operatorNS, secretName, 
secData)).To(Succeed())
-
-               g.Expect(KamelRunWithID(t, operatorID, operatorNS, 
"files/timer-kamelet-integration-parameters-configuration-03.yaml",
-                       "-t", "mount.configs=secret:"+secretName,
-                       "--name", name).Execute()).To(Succeed())
-               g.Eventually(IntegrationPodPhase(t, operatorNS, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-               g.Eventually(IntegrationLogs(t, operatorNS, 
name)).Should(ContainSubstring("My secret message 03"))
-               g.Eventually(IntegrationLogs(t, operatorNS, 
name)).Should(ContainSubstring("mySecretIntegrationLogger03"))
-
-               g.Expect(Kamel(t, "delete", name, "-n", 
operatorNS).Execute()).To(Succeed())
-               g.Eventually(Integration(t, operatorNS, name), 
TestTimeoutLong).Should(BeNil())
-               g.Expect(DeleteSecret(t, operatorNS, secretName)).To(Succeed())
-               g.Expect(DeleteKamelet(t, operatorNS, 
"config03-timer-source")).To(Succeed())
-               g.Expect(DeleteKamelet(t, operatorNS, 
"config03-log-sink")).To(Succeed())
+       t.Parallel()
+
+       WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-secret-mount-param"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
+               t.Run("run test default config secret properties", func(t 
*testing.T) {
+
+                       g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"config03-timer-source")()).To(Succeed())
+                       g.Expect(CreateLogKamelet(t, operatorID, ns, 
"config03-log-sink")()).To(Succeed())
+
+                       name := 
RandomizedSuffixName("config-test-timer-source-int3")
+                       secretName := "my-config-int3-secret"
+
+                       var secData = make(map[string]string)
+                       secData["my-message"] = "My secret message 03"
+                       secData["my-logger"] = "mySecretIntegrationLogger03"
+                       g.Expect(CreatePlainTextSecret(t, ns, secretName, 
secData)).To(Succeed())
+
+                       g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/timer-kamelet-integration-parameters-configuration-03.yaml",
+                               "-t", "mount.configs=secret:"+secretName,
+                               "--name", name).Execute()).To(Succeed())
+                       g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationLogs(t, ns, 
name)).Should(ContainSubstring("My secret message 03"))
+                       g.Eventually(IntegrationLogs(t, ns, 
name)).Should(ContainSubstring("mySecretIntegrationLogger03"))
+
+                       g.Expect(Kamel(t, "delete", name, "-n", 
ns).Execute()).To(Succeed())
+                       g.Eventually(Integration(t, ns, name), 
TestTimeoutLong).Should(BeNil())
+                       g.Expect(DeleteSecret(t, ns, secretName)).To(Succeed())
+                       g.Expect(DeleteKamelet(t, ns, 
"config03-timer-source")).To(Succeed())
+                       g.Expect(DeleteKamelet(t, ns, 
"config03-log-sink")).To(Succeed())
+               })
+
+               g.Expect(Kamel(t, "delete", "--all", "-n", 
ns).Execute()).To(Succeed())
        })
 }
 
 func TestKameletConfigDefaultParamMountedConfigmap(t *testing.T) {
-       g := NewWithT(t)
-       t.Run("run test default config configmap properties", func(t 
*testing.T) {
-
-               g.Expect(CreateTimerKamelet(t, operatorID, operatorNS, 
"config04-timer-source")()).To(Succeed())
-               g.Expect(CreateLogKamelet(t, operatorID, operatorNS, 
"config04-log-sink")()).To(Succeed())
-
-               name := RandomizedSuffixName("config-test-timer-source-int4")
-               cmName := "my-config-int4-configmap"
-
-               var cmData = make(map[string]string)
-               cmData["my-message"] = "My configmap message 04"
-               cmData["my-logger"] = "myConfigmapIntegrationLogger04"
-               g.Expect(CreatePlainTextConfigmap(t, operatorNS, cmName, 
cmData)).To(Succeed())
-
-               g.Expect(KamelRunWithID(t, operatorID, operatorNS, 
"files/timer-kamelet-integration-parameters-configuration-04.yaml",
-                       "-t", "mount.configs=configmap:"+cmName,
-                       "--name", name).Execute()).To(Succeed())
-               g.Eventually(IntegrationPodPhase(t, operatorNS, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-               g.Eventually(IntegrationLogs(t, operatorNS, 
name)).Should(ContainSubstring("My configmap message 04"))
-               g.Eventually(IntegrationLogs(t, operatorNS, 
name)).Should(ContainSubstring("myConfigmapIntegrationLogger04"))
-
-               g.Expect(Kamel(t, "delete", name, "-n", 
operatorNS).Execute()).To(Succeed())
-               g.Eventually(Integration(t, operatorNS, name), 
TestTimeoutLong).Should(BeNil())
-               g.Expect(DeleteConfigmap(t, operatorNS, cmName)).To(Succeed())
-               g.Expect(DeleteKamelet(t, operatorNS, 
"config04-timer-source")).To(Succeed())
-               g.Expect(DeleteKamelet(t, operatorNS, 
"config04-log-sink")).To(Succeed())
+       t.Parallel()
+
+       WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config-kamelet-configmap-mount-param"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
+               t.Run("run test default config configmap properties", func(t 
*testing.T) {
+
+                       g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"config04-timer-source")()).To(Succeed())
+                       g.Expect(CreateLogKamelet(t, operatorID, ns, 
"config04-log-sink")()).To(Succeed())
+
+                       name := 
RandomizedSuffixName("config-test-timer-source-int4")
+                       cmName := "my-config-int4-configmap"
+
+                       var cmData = make(map[string]string)
+                       cmData["my-message"] = "My configmap message 04"
+                       cmData["my-logger"] = "myConfigmapIntegrationLogger04"
+                       g.Expect(CreatePlainTextConfigmap(t, ns, cmName, 
cmData)).To(Succeed())
+
+                       g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/timer-kamelet-integration-parameters-configuration-04.yaml",
+                               "-t", "mount.configs=configmap:"+cmName,
+                               "--name", name).Execute()).To(Succeed())
+                       g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationLogs(t, ns, 
name)).Should(ContainSubstring("My configmap message 04"))
+                       g.Eventually(IntegrationLogs(t, ns, 
name)).Should(ContainSubstring("myConfigmapIntegrationLogger04"))
+
+                       g.Expect(Kamel(t, "delete", name, "-n", 
ns).Execute()).To(Succeed())
+                       g.Eventually(Integration(t, ns, name), 
TestTimeoutLong).Should(BeNil())
+                       g.Expect(DeleteConfigmap(t, ns, cmName)).To(Succeed())
+                       g.Expect(DeleteKamelet(t, ns, 
"config04-timer-source")).To(Succeed())
+                       g.Expect(DeleteKamelet(t, ns, 
"config04-log-sink")).To(Succeed())
+               })
+
+               g.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 272ed84de..220b7cf53 100644
--- a/e2e/common/config/pipe_config_test.go
+++ b/e2e/common/config/pipe_config_test.go
@@ -29,6 +29,7 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 // Tests on pipe with kamelets containing configuration from properties and 
secrets.
@@ -36,6 +37,13 @@ func TestPipeConfig(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-config"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                t.Run("test custom source/sink pipe", func(t *testing.T) {
                        g.Expect(CreateTimerKamelet(t, operatorID, ns, 
"my-pipe-timer-source")()).To(Succeed())
                        g.Expect(CreateLogKamelet(t, operatorID, ns, 
"my-pipe-log-sink")()).To(Succeed())
diff --git a/e2e/common/languages/default.go b/e2e/common/languages/default.go
deleted file mode 100644
index 2a7e2e176..000000000
--- a/e2e/common/languages/default.go
+++ /dev/null
@@ -1,29 +0,0 @@
-//go:build integration
-// +build integration
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package languages
-
-import (
-       "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/platform"
-)
-
-var operatorNS = support.TestDefaultNamespace + "-languages"
-var operatorID = platform.DefaultPlatformName + "-languages"
diff --git a/e2e/common/languages/groovy_test.go 
b/e2e/common/languages/groovy_test.go
index 896a1c563..02bcf7253 100644
--- a/e2e/common/languages/groovy_test.go
+++ b/e2e/common/languages/groovy_test.go
@@ -27,21 +27,27 @@ import (
 
        . "github.com/onsi/gomega"
 
-       v1 "k8s.io/api/core/v1"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestRunSimpleGroovyExamples(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-runtimes-groovy"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("run groovy", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/groovy.groovy").Execute()).To(Succeed())
-                       g.Eventually(IntegrationPodPhase(t, ns, "groovy"), 
TestTimeoutLong).Should(Equal(v1.PodRunning))
-                       g.Eventually(IntegrationConditionStatus(t, ns, 
"groovy", camelv1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+                       g.Eventually(IntegrationPodPhase(t, ns, "groovy"), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, 
"groovy", v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
                        g.Eventually(IntegrationLogs(t, ns, "groovy"), 
TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
                })
 
diff --git a/e2e/common/languages/java_test.go 
b/e2e/common/languages/java_test.go
index f631b985c..9e2ee0e4d 100644
--- a/e2e/common/languages/java_test.go
+++ b/e2e/common/languages/java_test.go
@@ -27,21 +27,27 @@ import (
 
        . "github.com/onsi/gomega"
 
-       v1 "k8s.io/api/core/v1"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestRunSimpleJavaExamples(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-runtimes-java"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("run java", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/Java.java").Execute()).To(Succeed())
-                       g.Eventually(IntegrationPodPhase(t, ns, "java"), 
TestTimeoutLong).Should(Equal(v1.PodRunning))
-                       g.Eventually(IntegrationConditionStatus(t, ns, "java", 
camelv1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+                       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!"))
                })
 
diff --git a/e2e/common/languages/js_test.go b/e2e/common/languages/js_test.go
index ccdcbc465..4a0218156 100644
--- a/e2e/common/languages/js_test.go
+++ b/e2e/common/languages/js_test.go
@@ -27,21 +27,27 @@ import (
 
        . "github.com/onsi/gomega"
 
-       v1 "k8s.io/api/core/v1"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestRunSimpleJavaScriptExamples(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-runtimes-js"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("run js", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/js.js").Execute()).To(Succeed())
-                       g.Eventually(IntegrationPodPhase(t, ns, "js"), 
TestTimeoutLong).Should(Equal(v1.PodRunning))
-                       g.Eventually(IntegrationConditionStatus(t, ns, "js", 
camelv1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+                       g.Eventually(IntegrationPodPhase(t, ns, "js"), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, "js", 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
                        g.Eventually(IntegrationLogs(t, ns, "js"), 
TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
                })
 
diff --git a/e2e/common/languages/kotlin_test.go 
b/e2e/common/languages/kotlin_test.go
index 5999058d6..190d76cde 100644
--- a/e2e/common/languages/kotlin_test.go
+++ b/e2e/common/languages/kotlin_test.go
@@ -27,21 +27,27 @@ import (
 
        . "github.com/onsi/gomega"
 
-       v1 "k8s.io/api/core/v1"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestRunSimpleKotlinExamples(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-runtimes-kotlin"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("run kotlin", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/kotlin.kts").Execute()).To(Succeed())
-                       g.Eventually(IntegrationPodPhase(t, ns, "kotlin"), 
TestTimeoutLong).Should(Equal(v1.PodRunning))
-                       g.Eventually(IntegrationConditionStatus(t, ns, 
"kotlin", camelv1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+                       g.Eventually(IntegrationPodPhase(t, ns, "kotlin"), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, 
"kotlin", v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
                        g.Eventually(IntegrationLogs(t, ns, "kotlin"), 
TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
                })
 
diff --git a/e2e/common/languages/main_test.go 
b/e2e/common/languages/main_test.go
deleted file mode 100644
index 10800b385..000000000
--- a/e2e/common/languages/main_test.go
+++ /dev/null
@@ -1,62 +0,0 @@
-//go:build integration
-// +build integration
-
-// To enable compilation of this file in Goland, go to "Settings -> Go -> 
Vendoring & Build Tags -> Custom Tags" and add "integration"
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package languages
-
-import (
-       "fmt"
-       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-       "os"
-       "testing"
-
-       . "github.com/onsi/gomega"
-
-       . "github.com/apache/camel-k/v2/e2e/support"
-)
-
-func TestMain(m *testing.M) {
-       justCompile := GetEnvOrDefault("CAMEL_K_E2E_JUST_COMPILE", "false")
-       if justCompile == "true" {
-               os.Exit(m.Run())
-       }
-
-       g := NewGomega(func(message string, callerSkip ...int) {
-               fmt.Printf("Test setup failed! - %s\n", message)
-       })
-
-       var t *testing.T
-
-       g.Expect(TestClient(t)).ShouldNot(BeNil())
-
-       // Install global operator for tests in this package, all tests must 
use this operatorID so tests can run in parallel and gain execution speed
-       g.Expect(NewNamedTestNamespace(t, operatorNS, false)).ShouldNot(BeNil())
-       g.Expect(CopyCamelCatalog(t, operatorNS, operatorID)).To(Succeed())
-       g.Expect(KamelInstallWithID(t, operatorID, operatorNS, "--global", 
"--force").Execute()).To(Succeed())
-       g.Eventually(SelectedPlatformPhase(t, operatorNS, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
-
-       exitCode := m.Run()
-
-       g.Expect(UninstallFromNamespace(t, operatorNS))
-       g.Expect(DeleteNamespace(t, operatorNS)).To(Succeed())
-
-       os.Exit(exitCode)
-}
diff --git a/e2e/common/languages/polyglot_test.go 
b/e2e/common/languages/polyglot_test.go
index 0b4c52084..d52f79c4c 100644
--- a/e2e/common/languages/polyglot_test.go
+++ b/e2e/common/languages/polyglot_test.go
@@ -27,21 +27,27 @@ import (
 
        . "github.com/onsi/gomega"
 
-       v1 "k8s.io/api/core/v1"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestRunPolyglotExamples(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-runtimes-polyglot"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("run polyglot", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, "--name", 
"polyglot", "files/js-polyglot.js", 
"files/yaml-polyglot.yaml").Execute()).To(Succeed())
-                       g.Eventually(IntegrationPodPhase(t, ns, "polyglot"), 
TestTimeoutLong).Should(Equal(v1.PodRunning))
-                       g.Eventually(IntegrationConditionStatus(t, ns, 
"polyglot", camelv1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+                       g.Eventually(IntegrationPodPhase(t, ns, "polyglot"), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, 
"polyglot", v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
                        g.Eventually(IntegrationLogs(t, ns, "polyglot"), 
TestTimeoutShort).Should(ContainSubstring("Magicpolyglot-yaml"))
                        g.Eventually(IntegrationLogs(t, ns, "polyglot"), 
TestTimeoutShort).Should(ContainSubstring("Magicpolyglot-js"))
                })
diff --git a/e2e/common/languages/xml_test.go b/e2e/common/languages/xml_test.go
index a4f9accd4..53ee19bbe 100644
--- a/e2e/common/languages/xml_test.go
+++ b/e2e/common/languages/xml_test.go
@@ -27,21 +27,27 @@ import (
 
        . "github.com/onsi/gomega"
 
-       v1 "k8s.io/api/core/v1"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestRunSimpleXmlExamples(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-runtimes-xml"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("run xml", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/xml.xml").Execute()).To(Succeed())
-                       g.Eventually(IntegrationPodPhase(t, ns, "xml"), 
TestTimeoutLong).Should(Equal(v1.PodRunning))
-                       g.Eventually(IntegrationConditionStatus(t, ns, "xml", 
camelv1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+                       g.Eventually(IntegrationPodPhase(t, ns, "xml"), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, "xml", 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
                        g.Eventually(IntegrationLogs(t, ns, "xml"), 
TestTimeoutShort).Should(ContainSubstring("Magicstring!"))
                })
 
diff --git a/e2e/common/languages/yaml_test.go 
b/e2e/common/languages/yaml_test.go
index 107e32209..a78465c6e 100644
--- a/e2e/common/languages/yaml_test.go
+++ b/e2e/common/languages/yaml_test.go
@@ -27,21 +27,27 @@ import (
 
        . "github.com/onsi/gomega"
 
-       v1 "k8s.io/api/core/v1"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
-       camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestRunSimpleYamlExamples(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-runtimes-yaml"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("run yaml", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/yaml.yaml").Execute()).To(Succeed())
-                       g.Eventually(IntegrationPodPhase(t, ns, "yaml"), 
TestTimeoutLong).Should(Equal(v1.PodRunning))
-                       g.Eventually(IntegrationConditionStatus(t, ns, "yaml", 
camelv1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(v1.ConditionTrue))
+                       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!"))
                })
 
diff --git a/e2e/common/config/main_test.go b/e2e/common/main_test.go
similarity index 56%
rename from e2e/common/config/main_test.go
rename to e2e/common/main_test.go
index 1f977eab9..ff84d996c 100644
--- a/e2e/common/config/main_test.go
+++ b/e2e/common/main_test.go
@@ -20,17 +20,19 @@ See the License for the specific language governing 
permissions and
 limitations under the License.
 */
 
-package config
+package common
 
 import (
        "fmt"
-       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "os"
        "testing"
 
        . "github.com/onsi/gomega"
+       corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
+       "github.com/apache/camel-k/v2/pkg/platform"
 )
 
 func TestMain(m *testing.M) {
@@ -39,6 +41,9 @@ func TestMain(m *testing.M) {
                os.Exit(m.Run())
        }
 
+       operatorID := platform.DefaultPlatformName
+       ns := GetEnvOrDefault("CAMEL_K_GLOBAL_OPERATOR_NS", 
TestDefaultNamespace)
+
        g := NewGomega(func(message string, callerSkip ...int) {
                fmt.Printf("Test setup failed! - %s\n", message)
        })
@@ -46,17 +51,15 @@ func TestMain(m *testing.M) {
        var t *testing.T
 
        g.Expect(TestClient(t)).ShouldNot(BeNil())
+       g.Expect(KamelRunWithID(t, operatorID, ns, 
"languages/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!"))
 
-       // Install global operator for tests in this package, all tests must 
use this operatorID so tests can run in parallel and gain execution speed
-       g.Expect(NewNamedTestNamespace(t, operatorNS, false)).ShouldNot(BeNil())
-       g.Expect(CopyCamelCatalog(t, operatorNS, operatorID)).To(Succeed())
-       g.Expect(KamelInstallWithID(t, operatorID, operatorNS, "--global", 
"--force").Execute()).To(Succeed())
-       g.Eventually(SelectedPlatformPhase(t, operatorNS, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
-
-       exitCode := m.Run()
-
-       g.Expect(UninstallFromNamespace(t, operatorNS))
-       g.Expect(DeleteNamespace(t, operatorNS)).To(Succeed())
+       g.Expect(KamelRunWithID(t, operatorID, ns, 
"languages/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!"))
 
-       os.Exit(exitCode)
+       os.Exit(m.Run())
 }
diff --git a/e2e/common/misc/cron_test.go b/e2e/common/misc/cron_test.go
index fea57d999..de2abf7ef 100644
--- a/e2e/common/misc/cron_test.go
+++ b/e2e/common/misc/cron_test.go
@@ -37,6 +37,12 @@ func TestRunCronExample(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-cron"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("cron", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/cron.yaml").Execute()).To(Succeed())
diff --git a/e2e/common/misc/default.go b/e2e/common/misc/default.go
deleted file mode 100644
index 9e677ac69..000000000
--- a/e2e/common/misc/default.go
+++ /dev/null
@@ -1,29 +0,0 @@
-//go:build integration
-// +build integration
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package misc
-
-import (
-       "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/platform"
-)
-
-var operatorNS = support.TestDefaultNamespace + "-misc"
-var operatorID = platform.DefaultPlatformName + "-misc"
diff --git a/e2e/common/misc/integration_fail_test.go 
b/e2e/common/misc/integration_fail_test.go
index 8b8b03df2..73f2223d1 100644
--- a/e2e/common/misc/integration_fail_test.go
+++ b/e2e/common/misc/integration_fail_test.go
@@ -38,6 +38,12 @@ func TestBadRouteIntegration(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-bad-route"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("run bad java route", func(t *testing.T) {
                        name := RandomizedSuffixName("bad-route")
diff --git a/e2e/common/misc/integration_trait_update_test.go 
b/e2e/common/misc/integration_trait_update_test.go
index 4a8b7a374..5a4be2dfe 100644
--- a/e2e/common/misc/integration_trait_update_test.go
+++ b/e2e/common/misc/integration_trait_update_test.go
@@ -37,6 +37,12 @@ func TestTraitUpdates(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-trait-update"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("run and update trait", func(t *testing.T) {
                        name := RandomizedSuffixName("yaml-route")
diff --git a/e2e/common/misc/kamelet_test.go b/e2e/common/misc/kamelet_test.go
index dcad2be56..a71b60a10 100644
--- a/e2e/common/misc/kamelet_test.go
+++ b/e2e/common/misc/kamelet_test.go
@@ -30,12 +30,19 @@ import (
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestKameletClasspathLoading(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-kamelet-loading"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                // Store a configmap on the cluster
                var cmData = make(map[string]string)
diff --git a/e2e/common/misc/kamelet_update_test.go 
b/e2e/common/misc/kamelet_update_test.go
index faf251b42..10d9ec9f7 100644
--- a/e2e/common/misc/kamelet_update_test.go
+++ b/e2e/common/misc/kamelet_update_test.go
@@ -38,6 +38,12 @@ func TestBundleKameletUpdate(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-kamelet-bundle"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                g.Expect(createBundleKamelet(t, operatorID, ns, 
"my-http-sink")()).To(Succeed()) // Going to be replaced
                g.Expect(createUserKamelet(t, operatorID, ns, 
"user-sink")()).To(Succeed())      // Left intact by the operator
diff --git a/e2e/common/misc/maven_repository_test.go 
b/e2e/common/misc/maven_repository_test.go
index c51e629bb..9f57b9efb 100644
--- a/e2e/common/misc/maven_repository_test.go
+++ b/e2e/common/misc/maven_repository_test.go
@@ -37,6 +37,13 @@ func TestRunExtraRepository(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-extra-repository"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                name := RandomizedSuffixName("java")
                g.Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
                        "--maven-repository", 
"https://maven.repository.redhat.com/ga@id=redhat";,
diff --git a/e2e/common/misc/pipe_test.go b/e2e/common/misc/pipe_test.go
index ab143b47f..5d97ed3a3 100644
--- a/e2e/common/misc/pipe_test.go
+++ b/e2e/common/misc/pipe_test.go
@@ -38,6 +38,12 @@ func TestPipe(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-pipe"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                // Error Handler testing
                t.Run("test error handler", func(t *testing.T) {
diff --git a/e2e/common/misc/pipe_with_image_test.go 
b/e2e/common/misc/pipe_with_image_test.go
index aaf58b571..59bbe2277 100644
--- a/e2e/common/misc/pipe_with_image_test.go
+++ b/e2e/common/misc/pipe_with_image_test.go
@@ -31,12 +31,19 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestPipeWithImage(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-pipe-image"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                bindingID := "with-image-binding"
 
diff --git a/e2e/common/misc/registry_maven_wagon_test.go 
b/e2e/common/misc/registry_maven_wagon_test.go
index 6a13787c3..2d93ce51e 100644
--- a/e2e/common/misc/registry_maven_wagon_test.go
+++ b/e2e/common/misc/registry_maven_wagon_test.go
@@ -39,7 +39,6 @@ import (
 
 func TestImageRegistryIsAMavenRepository(t *testing.T) {
        t.Parallel()
-       g := NewWithT(t)
 
        ocp, err := openshift.IsOpenShift(TestClient(t))
        require.NoError(t, err)
@@ -48,97 +47,106 @@ func TestImageRegistryIsAMavenRepository(t *testing.T) {
                return
        }
 
-       t.Run("image registry is a maven repository", func(t *testing.T) {
-               // Create integration that should decrypt an encrypted message 
to "foobar" and log it
-               name := RandomizedSuffixName("foobar-decryption")
-               jar, err := 
filepath.Abs("files/registry/sample-decryption-1.0.jar?skipPOM=true")
-               require.NoError(t, err)
-               pom, err := 
filepath.Abs("files/registry/sample-decryption-1.0.pom")
-               require.NoError(t, err)
-
-               g.Expect(KamelRunWithID(t, operatorID, operatorNS, 
"files/registry/FoobarDecryption.java",
-                       "--name", name,
-                       "-d", fmt.Sprintf("file://%s", jar),
-                       "-d", fmt.Sprintf("file://%s", pom),
-               ).Execute()).To(Succeed())
-
-               g.Eventually(IntegrationPodPhase(t, operatorNS, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-               g.Eventually(IntegrationConditionStatus(t, operatorNS, name, 
v1.IntegrationConditionReady), 
TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
-               g.Eventually(IntegrationLogs(t, operatorNS, name), 
TestTimeoutShort).Should(ContainSubstring("foobar"))
+       WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-rest"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
+               t.Run("image registry is a maven repository", func(t 
*testing.T) {
+                       // Create integration that should decrypt an encrypted 
message to "foobar" and log it
+                       name := RandomizedSuffixName("foobar-decryption")
+                       jar, err := 
filepath.Abs("files/registry/sample-decryption-1.0.jar?skipPOM=true")
+                       require.NoError(t, err)
+                       pom, err := 
filepath.Abs("files/registry/sample-decryption-1.0.pom")
+                       require.NoError(t, err)
+
+                       g.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())
+
+                       g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+                       g.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")
+
+                       g.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())
+
+                       g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+                       g.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/"
+
+                       g.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())
+
+                       g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+                       g.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")
+
+                       g.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())
+
+                       g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+                       g.Eventually(IntegrationLogs(t, ns, name), 
TestTimeoutShort).Should(ContainSubstring("haha"))
+                       g.Eventually(IntegrationLogs(t, ns, name), 
TestTimeoutShort).Should(ContainSubstring("hehe"))
+               })
+
+               t.Run("pom file is extracted from JAR", func(t *testing.T) {
+                       // Create integration that should decrypt foobar and 
log it
+                       name := 
RandomizedSuffixName("foobar-decryption-pom-extraction")
+                       jar, err := 
filepath.Abs("files/registry/sample-decryption-1.0.jar")
+                       require.NoError(t, err)
+
+                       g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/registry/FoobarDecryption.java",
+                               "--name", name,
+                               "-d", fmt.Sprintf("file://%s", jar),
+                       ).Execute()).To(Succeed())
+
+                       g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
+                       g.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 a Xslt 
transformation whose template needs to be present at build time
+                       name := RandomizedSuffixName("xslt")
+                       g.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())
+
+                       g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
+                       g.Eventually(IntegrationConditionStatus(t, ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
+                       g.Eventually(IntegrationLogs(t, ns, name), 
TestTimeoutShort).Should(ContainSubstring("<cheese><item>A</item></cheese>"))
+               })
+
+               // Clean up
+               g.Expect(Kamel(t, "delete", "--all", "-n", 
ns).Execute()).To(Succeed())
        })
-
-       t.Run("local files are mounted in the integration container at the 
default path", func(t *testing.T) {
-               name := RandomizedSuffixName("laughing-route-default-path")
-
-               g.Expect(KamelRunWithID(t, operatorID, operatorNS, 
"files/registry/LaughingRoute.java",
-                       "--name", name,
-                       "-p", "location=/deployments/?filename=laugh.txt",
-                       "-d", "file://files/registry/laugh.txt",
-               ).Execute()).To(Succeed())
-
-               g.Eventually(IntegrationPodPhase(t, operatorNS, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-               g.Eventually(IntegrationConditionStatus(t, operatorNS, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-               g.Eventually(IntegrationLogs(t, operatorNS, 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/"
-
-               g.Expect(KamelRunWithID(t, operatorID, operatorNS, 
"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())
-
-               g.Eventually(IntegrationPodPhase(t, operatorNS, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-               g.Eventually(IntegrationConditionStatus(t, operatorNS, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-               g.Eventually(IntegrationLogs(t, operatorNS, name), 
TestTimeoutShort).Should(ContainSubstring("haha"))
-       })
-
-       t.Run("local directory is mounted in the integration container", func(t 
*testing.T) {
-               name := RandomizedSuffixName("laughing-route-directory")
-
-               g.Expect(KamelRunWithID(t, operatorID, operatorNS, 
"files/registry/LaughingRoute.java",
-                       "--name", name,
-                       "-p", "location=files/registry/",
-                       "-d", 
fmt.Sprintf("file://files/registry/laughs/?targetPath=files/registry/"),
-               ).Execute()).To(Succeed())
-
-               g.Eventually(IntegrationPodPhase(t, operatorNS, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-               g.Eventually(IntegrationConditionStatus(t, operatorNS, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-               g.Eventually(IntegrationLogs(t, operatorNS, name), 
TestTimeoutShort).Should(ContainSubstring("haha"))
-               g.Eventually(IntegrationLogs(t, operatorNS, name), 
TestTimeoutShort).Should(ContainSubstring("hehe"))
-       })
-
-       t.Run("pom file is extracted from JAR", func(t *testing.T) {
-               // Create integration that should decrypt foobar and log it
-               name := RandomizedSuffixName("foobar-decryption-pom-extraction")
-               jar, err := 
filepath.Abs("files/registry/sample-decryption-1.0.jar")
-               require.NoError(t, err)
-
-               g.Expect(KamelRunWithID(t, operatorID, operatorNS, 
"files/registry/FoobarDecryption.java",
-                       "--name", name,
-                       "-d", fmt.Sprintf("file://%s", jar),
-               ).Execute()).To(Succeed())
-
-               g.Eventually(IntegrationPodPhase(t, operatorNS, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-               g.Eventually(IntegrationConditionStatus(t, operatorNS, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
-               g.Eventually(IntegrationLogs(t, operatorNS, 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")
-               g.Expect(KamelRunWithID(t, operatorID, operatorNS, 
"files/registry/classpath/Xslt.java", "--name", name,
-                       "-d", 
"file://files/registry/classpath/cheese.xsl?targetPath=xslt/cheese.xsl&classpath=true",
-               ).Execute()).To(Succeed())
-
-               g.Eventually(IntegrationPodPhase(t, operatorNS, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
-               g.Eventually(IntegrationConditionStatus(t, operatorNS, name, 
v1.IntegrationConditionReady), 
TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
-               g.Eventually(IntegrationLogs(t, operatorNS, name), 
TestTimeoutShort).Should(ContainSubstring("<cheese><item>A</item></cheese>"))
-       })
-
-       // Clean up
-       g.Expect(Kamel(t, "delete", "--all", "-n", 
operatorNS).Execute()).To(Succeed())
 }
diff --git a/e2e/common/misc/rest_test.go b/e2e/common/misc/rest_test.go
index 9a89ab154..1a4f30492 100644
--- a/e2e/common/misc/rest_test.go
+++ b/e2e/common/misc/rest_test.go
@@ -34,6 +34,7 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util/openshift"
 )
 
@@ -41,6 +42,12 @@ func TestRunRest(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-rest"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                ocp, err := openshift.IsOpenShift(TestClient(t))
                require.NoError(t, err)
diff --git a/e2e/common/misc/scale_binding_test.go 
b/e2e/common/misc/scale_binding_test.go
index 141839953..f9dae8451 100644
--- a/e2e/common/misc/scale_binding_test.go
+++ b/e2e/common/misc/scale_binding_test.go
@@ -43,6 +43,12 @@ func TestPipeScale(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-pipe-scale"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                ocp, err := openshift.IsOpenShift(TestClient(t))
                require.NoError(t, err)
diff --git a/e2e/common/misc/scale_integration_test.go 
b/e2e/common/misc/scale_integration_test.go
index 3ba99050b..bad583991 100644
--- a/e2e/common/misc/scale_integration_test.go
+++ b/e2e/common/misc/scale_integration_test.go
@@ -42,6 +42,12 @@ func TestIntegrationScale(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-integration-scale"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                name := RandomizedSuffixName("java")
                g.Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java", 
"--name", name).Execute()).To(Succeed())
diff --git a/e2e/common/misc/structured_logs_test.go 
b/e2e/common/misc/structured_logs_test.go
index 9bb03c8c3..5214aaeb9 100644
--- a/e2e/common/misc/structured_logs_test.go
+++ b/e2e/common/misc/structured_logs_test.go
@@ -38,6 +38,12 @@ func TestStructuredLogs(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-structured-logs"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                name := RandomizedSuffixName("java")
                g.Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
@@ -46,7 +52,7 @@ func TestStructuredLogs(t *testing.T) {
                g.Eventually(IntegrationPodPhase(t, ns, name), 
TestTimeoutLong).Should(Equal(corev1.PodRunning))
                g.Eventually(IntegrationConditionStatus(t, ns, name, 
v1.IntegrationConditionReady), 
TestTimeoutShort).Should(Equal(corev1.ConditionTrue))
 
-               pod := OperatorPod(t, operatorNS)()
+               pod := OperatorPod(t, ns)()
                g.Expect(pod).NotTo(BeNil())
 
                // pod.Namespace could be different from ns if using global 
operator
diff --git a/e2e/common/runtimes/default.go b/e2e/common/runtimes/default.go
deleted file mode 100644
index 7191aee4f..000000000
--- a/e2e/common/runtimes/default.go
+++ /dev/null
@@ -1,28 +0,0 @@
-//go:build integration
-// +build integration
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package runtimes
-
-import (
-       "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/platform"
-)
-
-var operatorID = support.GetEnvOrDefault("CAMEL_K_OPERATOR_ID", 
platform.DefaultPlatformName)
diff --git a/e2e/common/runtimes/runtimes_test.go 
b/e2e/common/runtimes/runtimes_test.go
index af9b9bd22..81ed54642 100644
--- a/e2e/common/runtimes/runtimes_test.go
+++ b/e2e/common/runtimes/runtimes_test.go
@@ -37,6 +37,13 @@ func TestSourceLessIntegrations(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-runtimes"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
+
                var cmData = make(map[string]string)
                cmData["my-file.txt"] = "Hello World!"
                CreatePlainTextConfigmap(t, ns, "my-cm-sourceless", cmData)
diff --git a/e2e/common/traits/affinity_test.go 
b/e2e/common/traits/affinity_test.go
index c61cf6cb3..73a75b94d 100644
--- a/e2e/common/traits/affinity_test.go
+++ b/e2e/common/traits/affinity_test.go
@@ -40,6 +40,12 @@ func TestAffinityTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-affinity"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                var hostname string
                if node, err := selectSchedulableNode(t); err == nil {
diff --git a/e2e/common/traits/builder_test.go 
b/e2e/common/traits/builder_test.go
index e9be79107..6f8d8f860 100644
--- a/e2e/common/traits/builder_test.go
+++ b/e2e/common/traits/builder_test.go
@@ -37,8 +37,15 @@ import (
 )
 
 func TestBuilderTrait(t *testing.T) {
-       // Test not able to run in parallel because of maven profile tests
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-builder"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Run build strategy routine", func(t *testing.T) {
                        name := RandomizedSuffixName("java")
@@ -237,9 +244,9 @@ func TestBuilderTrait(t *testing.T) {
                t.Run("Run maven profile", func(t *testing.T) {
                        name := RandomizedSuffixName("java-maven-profile")
 
-                       mavenProfile1Cm := newMavenProfileConfigMap(operatorNS, 
"maven-profile-owasp", "owasp-profile")
+                       mavenProfile1Cm := newMavenProfileConfigMap(ns, 
"maven-profile-owasp", "owasp-profile")
                        g.Expect(TestClient(t).Create(TestContext, 
mavenProfile1Cm)).To(Succeed())
-                       mavenProfile2Cm := newMavenProfileConfigMap(operatorNS, 
"maven-profile-dependency", "dependency-profile")
+                       mavenProfile2Cm := newMavenProfileConfigMap(ns, 
"maven-profile-dependency", "dependency-profile")
                        g.Expect(TestClient(t).Create(TestContext, 
mavenProfile2Cm)).To(Succeed())
 
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/Java.java",
diff --git a/e2e/common/traits/camel_test.go b/e2e/common/traits/camel_test.go
index eecb232bc..f9f6b4ab3 100644
--- a/e2e/common/traits/camel_test.go
+++ b/e2e/common/traits/camel_test.go
@@ -37,6 +37,12 @@ func TestCamelTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-camel"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("properties changes should not rebuild", func(t 
*testing.T) {
 
diff --git a/e2e/common/traits/container_test.go 
b/e2e/common/traits/container_test.go
index 3669b90b1..a5fd859d3 100644
--- a/e2e/common/traits/container_test.go
+++ b/e2e/common/traits/container_test.go
@@ -38,6 +38,12 @@ func TestContainerTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-container"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Container image pull policy and resources 
configuration", func(t *testing.T) {
                        name := RandomizedSuffixName("java1")
diff --git a/e2e/common/traits/default.go b/e2e/common/traits/default.go
deleted file mode 100644
index 4721ebd36..000000000
--- a/e2e/common/traits/default.go
+++ /dev/null
@@ -1,29 +0,0 @@
-//go:build integration
-// +build integration
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package traits
-
-import (
-       "github.com/apache/camel-k/v2/e2e/support"
-       "github.com/apache/camel-k/v2/pkg/platform"
-)
-
-var operatorNS = support.TestDefaultNamespace + "-traits"
-var operatorID = platform.DefaultPlatformName + "-traits"
diff --git a/e2e/common/traits/deployment_test.go 
b/e2e/common/traits/deployment_test.go
index 1ed16e07b..67fcf4bd5 100644
--- a/e2e/common/traits/deployment_test.go
+++ b/e2e/common/traits/deployment_test.go
@@ -41,6 +41,12 @@ func TestRecreateDeploymentStrategyTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-deployment"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Run with Recreate Deployment Strategy", func(t 
*testing.T) {
                        name := RandomizedSuffixName("java")
@@ -72,7 +78,6 @@ func TestRecreateDeploymentStrategyTrait(t *testing.T) {
                        g.Expect(deploymentTrait).ToNot(BeNil())
                        g.Expect(len(deploymentTrait)).To(Equal(1))
                        
g.Expect(deploymentTrait["strategy"]).To(Equal(string(appsv1.RecreateDeploymentStrategyType)))
-
                })
 
                g.Expect(Kamel(t, "delete", "--all", "-n", 
ns).Execute()).To(Succeed())
@@ -83,6 +88,12 @@ func TestRollingUpdateDeploymentStrategyTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-deployment-rolling"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Run with RollingUpdate Deployment Strategy", func(t 
*testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/Java.java",
diff --git a/e2e/common/traits/error_handler_test.go 
b/e2e/common/traits/error_handler_test.go
index 59d3bf530..73a102375 100644
--- a/e2e/common/traits/error_handler_test.go
+++ b/e2e/common/traits/error_handler_test.go
@@ -37,6 +37,12 @@ func TestErrorHandlerTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-errorhandler"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Run errored integration with error handler", func(t 
*testing.T) {
                        name := RandomizedSuffixName("error-handler")
diff --git a/e2e/common/traits/errored_trait_test.go 
b/e2e/common/traits/errored_trait_test.go
index 4f127df88..6b807221d 100644
--- a/e2e/common/traits/errored_trait_test.go
+++ b/e2e/common/traits/errored_trait_test.go
@@ -37,6 +37,12 @@ func TestErroredTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-error"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Integration trait should fail", func(t *testing.T) {
                        name := RandomizedSuffixName("it-errored")
diff --git a/e2e/common/traits/health_test.go b/e2e/common/traits/health_test.go
index 87bca537f..13914cc6e 100644
--- a/e2e/common/traits/health_test.go
+++ b/e2e/common/traits/health_test.go
@@ -46,6 +46,12 @@ func TestHealthTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-health"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Readiness condition with stopped route scaled", func(t 
*testing.T) {
                        name := RandomizedSuffixName("java")
diff --git a/e2e/common/traits/istio_test.go b/e2e/common/traits/istio_test.go
index 95c3323c8..0fd149802 100644
--- a/e2e/common/traits/istio_test.go
+++ b/e2e/common/traits/istio_test.go
@@ -23,7 +23,6 @@ limitations under the License.
 package traits
 
 import (
-       "fmt"
        "testing"
 
        . "github.com/onsi/gomega"
@@ -39,7 +38,7 @@ func TestIstioTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
-               operatorID := fmt.Sprintf("camel-k-%s", ns)
+               operatorID := "camel-k-traits-istio"
                g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
                g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
                g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
diff --git a/e2e/common/traits/jolokia_test.go 
b/e2e/common/traits/jolokia_test.go
index 97dd558a7..419b9f880 100644
--- a/e2e/common/traits/jolokia_test.go
+++ b/e2e/common/traits/jolokia_test.go
@@ -39,6 +39,12 @@ func TestJolokiaTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-jolokia"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Run Java with Jolokia", func(t *testing.T) {
                        name := RandomizedSuffixName("java")
diff --git a/e2e/common/traits/jvm_test.go b/e2e/common/traits/jvm_test.go
index 87fc90cdd..5f220a587 100644
--- a/e2e/common/traits/jvm_test.go
+++ b/e2e/common/traits/jvm_test.go
@@ -40,6 +40,12 @@ func TestJVMTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-jvm"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                // Store a configmap holding a jar
                var cmData = make(map[string][]byte)
diff --git a/e2e/common/traits/kamelet_test.go 
b/e2e/common/traits/kamelet_test.go
index b79870091..2d2516f2d 100644
--- a/e2e/common/traits/kamelet_test.go
+++ b/e2e/common/traits/kamelet_test.go
@@ -37,6 +37,12 @@ func TestKameletTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-kamelet"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("discover kamelet capabilities", func(t *testing.T) {
                        template := map[string]interface{}{
diff --git a/e2e/common/traits/main_test.go b/e2e/common/traits/main_test.go
deleted file mode 100644
index f7f835f6a..000000000
--- a/e2e/common/traits/main_test.go
+++ /dev/null
@@ -1,62 +0,0 @@
-//go:build integration
-// +build integration
-
-// To enable compilation of this file in Goland, go to "Settings -> Go -> 
Vendoring & Build Tags -> Custom Tags" and add "integration"
-
-/*
-Licensed to the Apache Software Foundation (ASF) under one or more
-contributor license agreements.  See the NOTICE file distributed with
-this work for additional information regarding copyright ownership.
-The ASF licenses this file to You under the Apache License, Version 2.0
-(the "License"); you may not use this file except in compliance with
-the License.  You may obtain a copy of the License at
-
-   http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-*/
-
-package traits
-
-import (
-       "fmt"
-       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-       "os"
-       "testing"
-
-       . "github.com/onsi/gomega"
-
-       . "github.com/apache/camel-k/v2/e2e/support"
-)
-
-func TestMain(m *testing.M) {
-       justCompile := GetEnvOrDefault("CAMEL_K_E2E_JUST_COMPILE", "false")
-       if justCompile == "true" {
-               os.Exit(m.Run())
-       }
-
-       g := NewGomega(func(message string, callerSkip ...int) {
-               fmt.Printf("Test setup failed! - %s\n", message)
-       })
-
-       var t *testing.T
-
-       g.Expect(TestClient(t)).ShouldNot(BeNil())
-
-       // Install global operator for tests in this package, all tests must 
use this operatorID so tests can run in parallel and gain execution speed
-       g.Expect(NewNamedTestNamespace(t, operatorNS, false)).ShouldNot(BeNil())
-       g.Expect(CopyCamelCatalog(t, operatorNS, operatorID)).To(Succeed())
-       g.Expect(KamelInstallWithID(t, operatorID, operatorNS, "--global", 
"--force").Execute()).To(Succeed())
-       g.Eventually(SelectedPlatformPhase(t, operatorNS, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
-
-       exitCode := m.Run()
-
-       g.Expect(UninstallFromNamespace(t, operatorNS))
-       g.Expect(DeleteNamespace(t, operatorNS)).To(Succeed())
-
-       os.Exit(exitCode)
-}
diff --git a/e2e/common/traits/master_test.go b/e2e/common/traits/master_test.go
index ce52fb46c..65713e2bd 100644
--- a/e2e/common/traits/master_test.go
+++ b/e2e/common/traits/master_test.go
@@ -32,12 +32,19 @@ import (
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestMasterTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-master"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("master works", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/Master.java").Execute()).To(Succeed())
diff --git a/e2e/common/traits/openapi_test.go 
b/e2e/common/traits/openapi_test.go
index afd60051a..2ac84e4d2 100644
--- a/e2e/common/traits/openapi_test.go
+++ b/e2e/common/traits/openapi_test.go
@@ -32,12 +32,19 @@ import (
        corev1 "k8s.io/api/core/v1"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestOpenAPI(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-openapi"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                openapiContent, err := 
ioutil.ReadFile("./files/openapi/petstore-api.yaml")
                require.NoError(t, err)
diff --git a/e2e/common/traits/pdb_test.go b/e2e/common/traits/pdb_test.go
index a3cb8e803..b6b355121 100644
--- a/e2e/common/traits/pdb_test.go
+++ b/e2e/common/traits/pdb_test.go
@@ -46,6 +46,12 @@ func TestPodDisruptionBudgetTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-pdb"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                name := RandomizedSuffixName("java")
                g.Expect(KamelRunWithID(t, operatorID, ns, "files/Java.java",
diff --git a/e2e/common/traits/pod_test.go b/e2e/common/traits/pod_test.go
index 66360f55f..28b05cae8 100644
--- a/e2e/common/traits/pod_test.go
+++ b/e2e/common/traits/pod_test.go
@@ -37,6 +37,12 @@ func TestPodTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-pod"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                tc := []struct {
                        name         string
diff --git a/e2e/common/traits/prometheus_test.go 
b/e2e/common/traits/prometheus_test.go
index b2ad103f5..6d11d9df2 100644
--- a/e2e/common/traits/prometheus_test.go
+++ b/e2e/common/traits/prometheus_test.go
@@ -44,8 +44,15 @@ import (
 )
 
 func TestPrometheusTrait(t *testing.T) {
-       // test not able to run in parallel
+       t.Parallel()
+
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-prometheus"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                ocp, err := openshift.IsOpenShift(TestClient(t))
                require.NoError(t, err)
diff --git a/e2e/common/traits/pull_secret_test.go 
b/e2e/common/traits/pull_secret_test.go
index d8ec4fb20..1267e9fa6 100644
--- a/e2e/common/traits/pull_secret_test.go
+++ b/e2e/common/traits/pull_secret_test.go
@@ -39,6 +39,12 @@ func TestPullSecretTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-pull-secret"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                ocp, err := openshift.IsOpenShift(TestClient(t))
                g.Expect(err).To(BeNil())
diff --git a/e2e/common/traits/route_test.go b/e2e/common/traits/route_test.go
index 52807a0b8..b8b031c4b 100644
--- a/e2e/common/traits/route_test.go
+++ b/e2e/common/traits/route_test.go
@@ -43,6 +43,7 @@ import (
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
        "github.com/apache/camel-k/v2/pkg/util"
        "github.com/apache/camel-k/v2/pkg/util/openshift"
 )
@@ -74,6 +75,12 @@ func TestRunRoutes(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-route"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, ns, 
"--trait-profile=openshift").Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                ocp, err := openshift.IsOpenShift(TestClient(t))
                if !ocp {
@@ -82,9 +89,6 @@ func TestRunRoutes(t *testing.T) {
                }
                require.NoError(t, err)
 
-               operatorID := "camel-k-trait-route"
-               g.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(t, ns)
diff --git a/e2e/common/traits/service_binding_test.go 
b/e2e/common/traits/service_binding_test.go
index a6b66ef87..6f07f0f12 100644
--- a/e2e/common/traits/service_binding_test.go
+++ b/e2e/common/traits/service_binding_test.go
@@ -39,6 +39,12 @@ func TestServiceBindingTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-service-binding"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Integration Service Binding", func(t *testing.T) {
                        // Create our mock service config
diff --git a/e2e/common/traits/service_test.go 
b/e2e/common/traits/service_test.go
index 02f486610..def097354 100644
--- a/e2e/common/traits/service_test.go
+++ b/e2e/common/traits/service_test.go
@@ -31,12 +31,19 @@ import (
        "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
 
        . "github.com/apache/camel-k/v2/e2e/support"
+       v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
 )
 
 func TestServiceTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-service"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("NodePort service", func(t *testing.T) {
                        g.Expect(KamelRunWithID(t, operatorID, ns, 
"files/PlatformHttpServer.java",
diff --git a/e2e/common/traits/toleration_test.go 
b/e2e/common/traits/toleration_test.go
index 2bd3050a8..64491bdb1 100644
--- a/e2e/common/traits/toleration_test.go
+++ b/e2e/common/traits/toleration_test.go
@@ -39,6 +39,12 @@ func TestTolerationTrait(t *testing.T) {
        t.Parallel()
 
        WithNewTestNamespace(t, func(g *WithT, ns string) {
+               operatorID := "camel-k-traits-toleration"
+               g.Expect(CopyCamelCatalog(t, ns, operatorID)).To(Succeed())
+               g.Expect(CopyIntegrationKits(t, ns, operatorID)).To(Succeed())
+               g.Expect(KamelInstallWithID(t, operatorID, 
ns).Execute()).To(Succeed())
+
+               g.Eventually(SelectedPlatformPhase(t, ns, operatorID), 
TestTimeoutMedium).Should(Equal(v1.IntegrationPlatformPhaseReady))
 
                t.Run("Run Java with node toleration operation exists", func(t 
*testing.T) {
                        name := RandomizedSuffixName("java1")
diff --git a/script/Makefile b/script/Makefile
index 79f5beccc..f518b09e4 100644
--- a/script/Makefile
+++ b/script/Makefile
@@ -258,6 +258,7 @@ test-common: do-build
 #
 test-smoke: do-build
        FAILED=0; STAGING_RUNTIME_REPO="$(STAGING_RUNTIME_REPO)"; \
+       go test -timeout 30m -v ./e2e/common/main_test.go -tags=integration 
$(TEST_INTEGRATION_COMMON_LANG_RUN) $(GOTESTFMT) || FAILED=1; \
        go test -timeout 30m -v ./e2e/common/languages -tags=integration 
-parallel=$(TEST_COMMON_PARALLEL_COUNT) $(TEST_INTEGRATION_COMMON_LANG_RUN) 
$(GOTESTFMT) || FAILED=1; \
        go test -timeout 30m -v \
                ./e2e/common/misc/default.go \

Reply via email to