This is an automated email from the ASF dual-hosted git repository.
squakez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-k.git
The following commit(s) were added to refs/heads/main by this push:
new 97feaffe1 feat(trait): deprecate knative eventing
97feaffe1 is described below
commit 97feaffe11041d7f3ee96d480fac44364ef7a5c9
Author: Pasquale Congiusti <[email protected]>
AuthorDate: Fri Aug 21 08:26:20 2026 +0200
feat(trait): deprecate knative eventing
Closes #6648
---
docs/modules/ROOT/partials/apis/camel-k-crds.adoc | 4 +
docs/modules/traits/pages/knative.adoc | 6 +
e2e/install/kustomize/multi_namespace_test.go | 8 +-
e2e/install/kustomize/single_namespace_test.go | 6 +-
e2e/knative/files/PlatformHttpServer.java | 26 ----
e2e/knative/files/knative1.yaml | 37 ------
e2e/knative/files/knative2.yaml | 23 ----
e2e/knative/files/knative3.yaml | 23 ----
e2e/knative/files/knativech1.yaml | 24 ----
e2e/knative/files/knativech2.yaml | 22 ----
e2e/knative/files/knativeevt1.yaml | 31 -----
e2e/knative/files/knativeevt2.yaml | 27 ----
e2e/knative/files/knativegetpost1.yaml | 27 ----
e2e/knative/files/knativegetpost2.yaml | 22 ----
e2e/knative/files/knativemultihop1.yaml | 31 -----
e2e/knative/files/knativemultihop2.yaml | 25 ----
e2e/knative/files/knativemultihop3.yaml | 29 ----
e2e/knative/files/petstore.yaml | 39 ------
e2e/knative/files/podtest-knative1.yaml | 25 ----
e2e/knative/files/podtest-knative2.yaml | 23 ----
e2e/knative/files/template-knative.yaml | 22 ----
e2e/knative/files/test-kamelet-display.yaml | 22 ----
e2e/knative/files/yaml.yaml | 29 ----
e2e/knative/kamelet_test.go | 92 -------------
e2e/knative/knative_pipes_test.go | 154 ----------------------
e2e/knative/knative_platform_test.go | 45 -------
e2e/knative/knative_service_test.go | 20 +--
e2e/knative/pod_test.go | 47 -------
e2e/support/test_support.go | 101 ++------------
pkg/apis/camel/v1/trait/knative.go | 6 +
pkg/trait/knative.go | 11 +-
pkg/trait/knative_test.go | 24 ++--
32 files changed, 59 insertions(+), 972 deletions(-)
diff --git a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
index 9438fbd18..e7c6dc643 100644
--- a/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
+++ b/docs/modules/ROOT/partials/apis/camel-k-crds.adoc
@@ -8517,9 +8517,13 @@ running integration.
The Camel Knative component will then use the full configuration to configure
the routes.
+WARNING: The Knative trait is **deprecated** and will be removed in future
release versions:
+use Camel (Quarkus) Knative component instead.
+
The trait is enabled by default when the Knative profile is active.
+
[cols="2,2a",options="header"]
|===
|Field
diff --git a/docs/modules/traits/pages/knative.adoc
b/docs/modules/traits/pages/knative.adoc
index b9b6e8e32..19cb21718 100755
--- a/docs/modules/traits/pages/knative.adoc
+++ b/docs/modules/traits/pages/knative.adoc
@@ -1,6 +1,8 @@
= Knative Trait
// Start of autogenerated code - DO NOT EDIT! (badges)
+[.badges]
+[.badge-key]##Deprecated since##[.badge-unsupported]##2.11.0##
// End of autogenerated code - DO NOT EDIT! (badges)
// Start of autogenerated code - DO NOT EDIT! (description)
The Knative trait automatically discovers addresses of Knative resources and
inject them into the
@@ -8,9 +10,13 @@ running integration.
The Camel Knative component will then use the full configuration to configure
the routes.
+WARNING: The Knative trait is **deprecated** and will be removed in future
release versions:
+use Camel (Quarkus) Knative component instead.
+
The trait is enabled by default when the Knative profile is active.
+
This trait is available in the following profiles: **Knative**.
// End of autogenerated code - DO NOT EDIT! (description)
diff --git a/e2e/install/kustomize/multi_namespace_test.go
b/e2e/install/kustomize/multi_namespace_test.go
index 042a8d6e3..735d4b3e0 100644
--- a/e2e/install/kustomize/multi_namespace_test.go
+++ b/e2e/install/kustomize/multi_namespace_test.go
@@ -62,7 +62,7 @@ func TestKustomizeMultiNamespace(t *testing.T) {
// Test a simple integration in
"tenant-z" is not reconciled
g.Expect(KamelRun(t, ctx, tenantNs,
"files/yaml.yaml").Execute()).To(Succeed())
g.Consistently(IntegrationPhase(t, ctx,
tenantNs, "yaml"), 30*time.Second).Should(BeEmpty())
- }, "tenant-z", true)
+ }, "tenant-z")
// Test a simple integration in "tenant-a" is
reconciled and runs correctly
g.Expect(KamelRun(t, ctx, tenantANs,
"files/yaml.yaml").Execute()).To(Succeed())
@@ -92,7 +92,7 @@ func TestKustomizeMultiNamespace(t *testing.T) {
g.Eventually(OperatorPod(t, ctx,
operatorNs)).Should(BeNil())
g.Eventually(CRDs(t)).Should(BeNil())
- }, "tenant-b", true)
- }, "tenant-a", true)
- }, "operators", true)
+ }, "tenant-b")
+ }, "tenant-a")
+ }, "operators")
}
diff --git a/e2e/install/kustomize/single_namespace_test.go
b/e2e/install/kustomize/single_namespace_test.go
index 7a8ab9a1f..158401a6f 100644
--- a/e2e/install/kustomize/single_namespace_test.go
+++ b/e2e/install/kustomize/single_namespace_test.go
@@ -61,7 +61,7 @@ func TestKustomizeSingleNamespace(t *testing.T) {
// Test a simple integration in "tenant-b" is
not reconciled
g.Expect(KamelRun(t, ctx, tenantNs,
"files/yaml.yaml").Execute()).To(Succeed())
g.Consistently(IntegrationPhase(t, ctx,
tenantNs, "yaml"), 30*time.Second).Should(BeEmpty())
- }, "tenant-b", true)
+ }, "tenant-b")
// Test a simple integration in "tenant-a" is
reconciled and runs correctly
g.Expect(KamelRun(t, ctx, tenantNs,
"files/yaml.yaml").Execute()).To(Succeed())
@@ -82,6 +82,6 @@ func TestKustomizeSingleNamespace(t *testing.T) {
g.Eventually(OperatorPod(t, ctx,
operatorNs)).Should(BeNil())
g.Eventually(CRDs(t)).Should(BeNil())
- }, "tenant-a", true)
- }, "operators", true)
+ }, "tenant-a")
+ }, "operators")
}
diff --git a/e2e/knative/files/PlatformHttpServer.java
b/e2e/knative/files/PlatformHttpServer.java
deleted file mode 100644
index 31d8d19f3..000000000
--- a/e2e/knative/files/PlatformHttpServer.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.
- */
-
-import org.apache.camel.builder.RouteBuilder;
-
-public class PlatformHttpServer extends RouteBuilder {
- @Override
- public void configure() throws Exception {
- from("platform-http:/hello?httpMethodRestrict=GET")
- .setBody(simple("Hello ${header.name}"));
- }
-}
diff --git a/e2e/knative/files/knative1.yaml b/e2e/knative/files/knative1.yaml
deleted file mode 100644
index 7ee49eef9..000000000
--- a/e2e/knative/files/knative1.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "timer:tick"
- steps:
- - setBody:
- constant: ""
- - choice:
- when:
- - simple: "${random(0, 2)} == 0"
- steps:
- - to:
- uri: "knative:endpoint/knative2"
- - log: "Received from 2: ${body}"
- otherwise:
- steps:
- - to:
- uri: "knative:endpoint/knative3"
- - log: "Received from 3: ${body}"
-
-
diff --git a/e2e/knative/files/knative2.yaml b/e2e/knative/files/knative2.yaml
deleted file mode 100644
index a6a0b03ad..000000000
--- a/e2e/knative/files/knative2.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "knative:endpoint/knative2"
- steps:
- - setBody:
- constant: "Hello from knative2"
diff --git a/e2e/knative/files/knative3.yaml b/e2e/knative/files/knative3.yaml
deleted file mode 100644
index c80b7c47c..000000000
--- a/e2e/knative/files/knative3.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "knative:endpoint/knative3"
- steps:
- - setBody:
- constant: "Hello from knative3"
diff --git a/e2e/knative/files/knativech1.yaml
b/e2e/knative/files/knativech1.yaml
deleted file mode 100644
index 3c63e8240..000000000
--- a/e2e/knative/files/knativech1.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "timer:tick"
- steps:
- - setBody:
- constant: "Hello from knativech1"
- - to: "knative:channel/messages"
diff --git a/e2e/knative/files/knativech2.yaml
b/e2e/knative/files/knativech2.yaml
deleted file mode 100644
index ca9aa38bd..000000000
--- a/e2e/knative/files/knativech2.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "knative:channel/messages"
- steps:
- - log: "Received: ${body}"
diff --git a/e2e/knative/files/knativeevt1.yaml
b/e2e/knative/files/knativeevt1.yaml
deleted file mode 100644
index 395e0956d..000000000
--- a/e2e/knative/files/knativeevt1.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "timer:tick"
- steps:
- - setBody:
- constant: "Hello 1"
- - to: "knative:event/hello.1"
-
-- from:
- uri: "timer:tick"
- steps:
- - setBody:
- constant: "Hello 2"
- - to: "knative:event/hello.2"
diff --git a/e2e/knative/files/knativeevt2.yaml
b/e2e/knative/files/knativeevt2.yaml
deleted file mode 100644
index 8e91bb007..000000000
--- a/e2e/knative/files/knativeevt2.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "knative:event/hello.1"
- steps:
- - log: "Received 1: ${body}"
-
-- from:
- uri: "knative:event/hello.2"
- steps:
- - log: "Received 2: ${body}"
diff --git a/e2e/knative/files/knativegetpost1.yaml
b/e2e/knative/files/knativegetpost1.yaml
deleted file mode 100644
index da0c2dc18..000000000
--- a/e2e/knative/files/knativegetpost1.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "timer:tick"
- steps:
- - setBody:
- constant: ""
- - setHeader:
- name: "CamelHttpMethod"
- constant: "GET"
- - to: "knative:channel/messages"
diff --git a/e2e/knative/files/knativegetpost2.yaml
b/e2e/knative/files/knativegetpost2.yaml
deleted file mode 100644
index 2faf7ecd3..000000000
--- a/e2e/knative/files/knativegetpost2.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "knative:channel/messages"
- steps:
- - log: "Received: [${body}]"
diff --git a/e2e/knative/files/knativemultihop1.yaml
b/e2e/knative/files/knativemultihop1.yaml
deleted file mode 100644
index 78206859c..000000000
--- a/e2e/knative/files/knativemultihop1.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "timer:tick"
- steps:
- - setBody:
- constant: "message"
- - to: "knative:channel/messages"
-
-- from:
- uri: "timer:tick"
- steps:
- - setBody:
- constant: "word"
- - to: "knative:channel/words"
diff --git a/e2e/knative/files/knativemultihop2.yaml
b/e2e/knative/files/knativemultihop2.yaml
deleted file mode 100644
index c7723dc81..000000000
--- a/e2e/knative/files/knativemultihop2.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "knative:channel/messages"
- steps:
- - setBody:
- simple: "transformed ${body}"
- - log: "Forwarding: ${body}"
- - to: "knative:channel/words"
diff --git a/e2e/knative/files/knativemultihop3.yaml
b/e2e/knative/files/knativemultihop3.yaml
deleted file mode 100644
index 1e169880b..000000000
--- a/e2e/knative/files/knativemultihop3.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "knative:channel/messages"
- steps:
- - log: "From messages: ${body}"
- - to: "log:messages?showHeaders=true"
-
-- from:
- uri: "knative:channel/words"
- steps:
- - log: "From words: ${body}"
- - to: "log:words?showHeaders=true"
diff --git a/e2e/knative/files/petstore.yaml b/e2e/knative/files/petstore.yaml
deleted file mode 100644
index 72087814f..000000000
--- a/e2e/knative/files/petstore.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-# camel-k: language=yaml
-
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "direct:listPets"
- steps:
- - setBody:
- simple: "listPets"
- - to: "log:info"
-
-- from:
- uri: "direct:createPets"
- steps:
- - setBody:
- simple: "createPets"
- - to: "log:info"
-
-- from:
- uri: "direct:showPetById"
- steps:
- - setBody:
- simple: "showPetById"
- - to: "log:info"
diff --git a/e2e/knative/files/podtest-knative1.yaml
b/e2e/knative/files/podtest-knative1.yaml
deleted file mode 100644
index 348cf24fe..000000000
--- a/e2e/knative/files/podtest-knative1.yaml
+++ /dev/null
@@ -1,25 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "timer:tick"
- steps:
- - setBody:
- constant: ""
- - to: "knative:endpoint/podtest-knative2"
- - log: "Received: ${body}"
diff --git a/e2e/knative/files/podtest-knative2.yaml
b/e2e/knative/files/podtest-knative2.yaml
deleted file mode 100644
index 7950f0361..000000000
--- a/e2e/knative/files/podtest-knative2.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "knative:endpoint/podtest-knative2"
- steps:
- - setBody:
- constant: "{{TEST_ENV_VARIABLE}}"
diff --git a/e2e/knative/files/template-knative.yaml
b/e2e/knative/files/template-knative.yaml
deleted file mode 100644
index 2c7ac347a..000000000
--- a/e2e/knative/files/template-knative.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-containers:
- - name: integration
- env:
- - name: TEST_ENV_VARIABLE
- value: "hello from the template"
\ No newline at end of file
diff --git a/e2e/knative/files/test-kamelet-display.yaml
b/e2e/knative/files/test-kamelet-display.yaml
deleted file mode 100644
index 9dc85e2c4..000000000
--- a/e2e/knative/files/test-kamelet-display.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "knative:channel/test-kamelet-messages"
- steps:
- - to: "log:info?showAll=false"
diff --git a/e2e/knative/files/yaml.yaml b/e2e/knative/files/yaml.yaml
deleted file mode 100644
index e69c8db7a..000000000
--- a/e2e/knative/files/yaml.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-# camel-k: language=yaml
-# ---------------------------------------------------------------------------
-# 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.
-# ---------------------------------------------------------------------------
-
-- from:
- uri: "timer:yaml"
- parameters:
- period: "5000"
- steps:
- - setHeader:
- name: "m"
- constant: "string!"
- - setBody:
- simple: "Magic${header.m}"
- - to: "log:info"
diff --git a/e2e/knative/kamelet_test.go b/e2e/knative/kamelet_test.go
deleted file mode 100644
index bd5a71c0f..000000000
--- a/e2e/knative/kamelet_test.go
+++ /dev/null
@@ -1,92 +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 knative
-
-import (
- "context"
- "fmt"
- "testing"
-
- . "github.com/onsi/gomega"
-
- corev1 "k8s.io/api/core/v1"
-
- messaging "knative.dev/eventing/pkg/apis/messaging/v1"
-
- . "github.com/apache/camel-k/v2/e2e/support"
- v1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-)
-
-// Test that a Pipe can be changed and the changes are propagated to the
Integration
-func TestKameletChange(t *testing.T) {
- WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- timerPipe := "timer-binding"
-
- knChannel := "test-kamelet-messages"
- knChannelConf := fmt.Sprintf("%s:InMemoryChannel:%s",
messaging.SchemeGroupVersion.String(), knChannel)
- timerSource := "my-timer-source"
- g.Expect(CreateTimerKamelet(t, ctx, ns,
timerSource)()).To(Succeed())
- g.Expect(CreateKnativeChannel(t, ctx, ns,
knChannel)()).To(Succeed())
-
- // Consumer route that will read from the Knative channel
- g.Expect(KamelRun(t, ctx, ns,
"files/test-kamelet-display.yaml", "-w").Execute()).To(Succeed())
- g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"test-kamelet-display", v1.IntegrationConditionReady), TestTimeoutMedium).
- Should(Equal(corev1.ConditionTrue))
-
- // Create the Pipe
- g.Expect(KamelBind(t, ctx, ns, timerSource, knChannelConf,
- "-p", "source.message=HelloKnative!",
- "--name", timerPipe,
- ).Execute()).To(Succeed())
- g.Eventually(IntegrationConditionStatus(t, ctx, ns, timerPipe,
v1.IntegrationConditionReady), TestTimeoutMedium).
- Should(Equal(corev1.ConditionTrue))
-
- // Consume the message
- g.Eventually(IntegrationLogs(t, ctx, ns,
"test-kamelet-display"),
TestTimeoutShort).Should(ContainSubstring("HelloKnative!"))
-
- g.Eventually(PipeCondition(t, ctx, ns, timerPipe,
v1.PipeConditionReady), TestTimeoutMedium).Should(And(
- WithTransform(PipeConditionStatusExtract,
Equal(corev1.ConditionTrue)),
- WithTransform(PipeConditionReason,
Equal(v1.IntegrationConditionDeploymentReadyReason)),
- WithTransform(PipeConditionMessage,
Equal(fmt.Sprintf("1/1 ready replicas"))),
- ))
-
- // Update the Pipe
- g.Expect(KamelBind(t, ctx, ns, timerSource, knChannelConf,
- "-p", "source.message=message is Hi",
- "--name", timerPipe,
- ).Execute()).To(Succeed())
-
- g.Eventually(IntegrationConditionStatus(t, ctx, ns, timerPipe,
v1.IntegrationConditionReady), TestTimeoutMedium).
- Should(Equal(corev1.ConditionTrue))
- g.Eventually(IntegrationLogs(t, ctx, ns,
"test-kamelet-display"), TestTimeoutShort).Should(ContainSubstring("message is
Hi"))
-
- g.Eventually(PipeCondition(t, ctx, ns, timerPipe,
v1.PipeConditionReady), TestTimeoutMedium).
- Should(And(
- WithTransform(PipeConditionStatusExtract,
Equal(corev1.ConditionTrue)),
- WithTransform(PipeConditionReason,
Equal(v1.IntegrationConditionDeploymentReadyReason)),
- WithTransform(PipeConditionMessage, Equal("1/1
ready replicas")),
- ))
-
- g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
- })
-}
diff --git a/e2e/knative/knative_pipes_test.go
b/e2e/knative/knative_pipes_test.go
deleted file mode 100644
index 7880ca978..000000000
--- a/e2e/knative/knative_pipes_test.go
+++ /dev/null
@@ -1,154 +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 knative
-
-import (
- "context"
- "fmt"
- "testing"
- "time"
-
- . "github.com/onsi/gomega"
- v1 "k8s.io/api/core/v1"
-
- . "github.com/apache/camel-k/v2/e2e/support"
- camelv1 "github.com/apache/camel-k/v2/pkg/apis/camel/v1"
-)
-
-func TestKnativePipes(t *testing.T) {
- WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- knChannelMessages := "messages"
- knChannelWords := "words"
- g.Expect(CreateKnativeChannel(t, ctx, ns,
knChannelMessages)()).To(Succeed())
- g.Expect(CreateKnativeChannel(t, ctx, ns,
knChannelWords)()).To(Succeed())
-
- t.Run("Service combo", func(t *testing.T) {
- g.Expect(KamelRun(t, ctx, ns,
"files/knative2.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knative2"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"knative2", camelv1.IntegrationConditionReady),
TestTimeoutMedium).Should(Equal(v1.ConditionTrue))
- g.Expect(KamelRun(t, ctx, ns,
"files/knative3.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knative3"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"knative3", camelv1.IntegrationConditionReady),
TestTimeoutMedium).Should(Equal(v1.ConditionTrue))
- g.Expect(KamelRun(t, ctx, ns,
"files/knative1.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knative1"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"knative1", camelv1.IntegrationConditionReady),
TestTimeoutMedium).Should(Equal(v1.ConditionTrue))
- // Correct logs
- g.Eventually(IntegrationLogs(t, ctx, ns, "knative1"),
TestTimeoutMedium).Should(ContainSubstring("Received from 2: Hello from
knative2"))
- g.Eventually(IntegrationLogs(t, ctx, ns, "knative1"),
TestTimeoutMedium).Should(ContainSubstring("Received from 3: Hello from
knative3"))
- // Incorrect logs
- g.Consistently(IntegrationLogs(t, ctx, ns, "knative1"),
10*time.Second).ShouldNot(ContainSubstring("Received from 2: Hello from
knative3"))
- g.Consistently(IntegrationLogs(t, ctx, ns, "knative1"),
10*time.Second).ShouldNot(ContainSubstring("Received from 3: Hello from
knative2"))
- // Clean up
- g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
- })
-
- t.Run("Channel combo v1beta1", func(t *testing.T) {
- g.Expect(KamelRun(t, ctx, ns,
"files/knativech2.yaml").Execute()).To(Succeed())
- g.Expect(KamelRun(t, ctx, ns,
"files/knativech1.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativech2"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativech1"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationLogs(t, ctx, ns, "knativech2"),
TestTimeoutMedium).Should(ContainSubstring("Received: Hello from knativech1"))
- g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
- })
-
- t.Run("Channel combo get to post", func(t *testing.T) {
- g.Expect(KamelRun(t, ctx, ns,
"files/knativegetpost2.yaml").Execute()).To(Succeed())
- g.Expect(KamelRun(t, ctx, ns,
"files/knativegetpost1.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativegetpost2"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativegetpost1"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationLogs(t, ctx, ns,
"knativegetpost2"), TestTimeoutMedium).Should(ContainSubstring("Received: []"))
- g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
- })
-
- t.Run("Multi channel chain", func(t *testing.T) {
- g.Expect(KamelRun(t, ctx, ns,
"files/knativemultihop3.yaml").Execute()).To(Succeed())
- g.Expect(KamelRun(t, ctx, ns,
"files/knativemultihop2.yaml").Execute()).To(Succeed())
- g.Expect(KamelRun(t, ctx, ns,
"files/knativemultihop1.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativemultihop3"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativemultihop2"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativemultihop1"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationLogs(t, ctx, ns,
"knativemultihop3"), TestTimeoutMedium).Should(ContainSubstring(`From messages:
message`))
- g.Eventually(IntegrationLogs(t, ctx, ns,
"knativemultihop3"), TestTimeoutMedium).Should(ContainSubstring(`From words:
word`))
- g.Eventually(IntegrationLogs(t, ctx, ns,
"knativemultihop3"), TestTimeoutMedium).Should(ContainSubstring(`From words:
transformed message`))
- g.Eventually(IntegrationLogs(t, ctx, ns,
"knativemultihop3"), 10*time.Second).ShouldNot(ContainSubstring(`From messages:
word`))
- g.Eventually(IntegrationLogs(t, ctx, ns,
"knativemultihop3"), 10*time.Second).ShouldNot(ContainSubstring(`From words:
message`))
- g.Eventually(IntegrationLogs(t, ctx, ns,
"knativemultihop3"), 10*time.Second).ShouldNot(ContainSubstring(`From messages:
transformed message`))
- g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
- })
-
- t.Run("Flow", func(t *testing.T) {
- g.Expect(KamelRun(t, ctx, ns,
"files/flow.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns, "flow"),
TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"flow", camelv1.IntegrationConditionReady),
TestTimeoutLong).Should(Equal(v1.ConditionTrue))
-
- t.Run("Scale to zero", func(t *testing.T) {
- g.Eventually(IntegrationPod(t, ctx, ns,
"flow"), TestTimeoutLong).Should(BeNil())
- })
-
- g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
- })
-
- t.Run("Knative-service disabled", func(t *testing.T) {
- g.Expect(KamelRun(t, ctx, ns, "files/http_out.yaml",
"-t", "knative-service.enabled=false").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"http-out"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(Service(t, ctx, ns, "http-out"),
TestTimeoutShort).ShouldNot(BeNil())
- g.Consistently(KnativeService(t, ctx, ns, "http-out"),
TestTimeoutShort).Should(BeNil())
- g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
- })
-
- t.Run("Knative-service priority", func(t *testing.T) {
- g.Expect(KamelRun(t, ctx, ns,
"files/http_out.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"http-out"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(KnativeService(t, ctx, ns, "http-out"),
TestTimeoutShort).ShouldNot(BeNil())
- g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
- })
-
- t.Run("Knative-service annotation", func(t *testing.T) {
- g.Expect(KamelRun(t, ctx, ns, "files/knative2.yaml",
"-t",
"knative-service.annotations.'haproxy.router.openshift.io/balance'=roundrobin").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knative2"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(KnativeService(t, ctx, ns, "knative2"),
TestTimeoutShort).ShouldNot(BeNil())
- ks := KnativeService(t, ctx, ns, "knative2")()
- annotations := ks.ObjectMeta.Annotations
-
g.Expect(annotations["haproxy.router.openshift.io/balance"]).To(Equal("roundrobin"))
- g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
- })
- })
-}
-
-func TestRunBroker(t *testing.T) {
- t.Skip("This test is skipped as it will be removed by another incoming
PR.")
-
- WithNewTestNamespaceWithKnativeBroker(t, func(ctx context.Context, g
*WithT, ns string) {
- // This test require an adhoc operator to run properly
- operatorID := fmt.Sprintf("camel-k-%s", ns)
- InstallOperatorWithConf(t, ctx, g, ns, operatorID, false, nil)
-
- g.Expect(KamelRunWithID(t, ctx, operatorID, ns,
"files/knativeevt1.yaml").Execute()).To(Succeed())
- g.Expect(KamelRunWithID(t, ctx, operatorID, ns,
"files/knativeevt2.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns, "knativeevt1"),
TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationPodPhase(t, ctx, ns, "knativeevt2"),
TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationLogs(t, ctx, ns, "knativeevt2"),
TestTimeoutMedium).Should(ContainSubstring("Received 1: Hello 1"))
- g.Eventually(IntegrationLogs(t, ctx, ns, "knativeevt2"),
TestTimeoutMedium).Should(ContainSubstring("Received 2: Hello 2"))
- g.Eventually(IntegrationLogs(t, ctx, ns,
"knativeevt2")).ShouldNot(ContainSubstring("Received 1: Hello 2"))
- })
-}
diff --git a/e2e/knative/knative_platform_test.go
b/e2e/knative/knative_platform_test.go
deleted file mode 100644
index 7fdbb1c4f..000000000
--- a/e2e/knative/knative_platform_test.go
+++ /dev/null
@@ -1,45 +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 knative
-
-import (
- "context"
- "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"
-)
-
-func TestKnativePlatformDetection(t *testing.T) {
- WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- t.Run("run yaml on automatic profile", func(t *testing.T) {
- g.Expect(KamelRun(t, ctx, ns,
"files/yaml.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns, "yaml"),
TestTimeoutLong).Should(Equal(corev1.PodRunning))
- g.Eventually(IntegrationTraitProfile(t, ctx, ns,
"yaml"), TestTimeoutShort).Should(Equal(v1.TraitProfileKnative))
- })
- })
-}
diff --git a/e2e/knative/knative_service_test.go
b/e2e/knative/knative_service_test.go
index 79cf67420..bc62d54ea 100644
--- a/e2e/knative/knative_service_test.go
+++ b/e2e/knative/knative_service_test.go
@@ -38,22 +38,22 @@ func TestKnativeServiceURL(t *testing.T) {
t.Run("Service endpoint url check", func(t *testing.T) {
g.Expect(KamelRun(t, ctx, ns,
"files/knativeurl1.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativeurl1"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"knativeurl1", camelv1.IntegrationConditionReady),
TestTimeoutMedium).Should(Equal(v1.ConditionTrue))
- ks := KnativeService(t, ctx, ns, "knativeurl1")
- g.Eventually(ks, TestTimeoutShort).ShouldNot(BeNil())
+ g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"knativeurl1", camelv1.IntegrationConditionReady),
+
TestTimeoutMedium).Should(Equal(v1.ConditionTrue))
+ g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativeurl1")).Should(Equal(v1.PodRunning))
+ g.Eventually(KnativeService(t, ctx, ns,
"knativeurl1")).ShouldNot(BeNil())
url := "http://knativeurl1." + ns + ".svc.cluster.local"
-
g.Eventually(ks().Status.RouteStatusFields.URL.String(),
TestTimeoutShort).Should(Equal(url))
+ g.Eventually(KnativeService(t, ctx, ns,
"knativeurl1")().Status.RouteStatusFields.URL.String()).Should(Equal(url))
})
t.Run("Service multiple endpoint url check", func(t *testing.T)
{
g.Expect(KamelRun(t, ctx, ns,
"files/knativeurl2.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativeurl2"), TestTimeoutLong).Should(Equal(v1.PodRunning))
- g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"knativeurl2", camelv1.IntegrationConditionReady),
TestTimeoutMedium).Should(Equal(v1.ConditionTrue))
- ks := KnativeService(t, ctx, ns, "knativeurl2")
- g.Eventually(ks, TestTimeoutShort).ShouldNot(BeNil())
+ g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"knativeurl2", camelv1.IntegrationConditionReady),
+
TestTimeoutMedium).Should(Equal(v1.ConditionTrue))
+ g.Eventually(IntegrationPodPhase(t, ctx, ns,
"knativeurl2")).Should(Equal(v1.PodRunning))
+ g.Eventually(KnativeService(t, ctx, ns,
"knativeurl2")).ShouldNot(BeNil())
url := "http://knativeurl2." + ns + ".svc.cluster.local"
-
g.Eventually(ks().Status.RouteStatusFields.URL.String(),
TestTimeoutShort).Should(Equal(url))
+ g.Eventually(KnativeService(t, ctx, ns,
"knativeurl2")().Status.RouteStatusFields.URL.String()).Should(Equal(url))
})
g.Expect(Kamel(t, ctx, "delete", "--all", "-n",
ns).Execute()).To(Succeed())
})
diff --git a/e2e/knative/pod_test.go b/e2e/knative/pod_test.go
deleted file mode 100644
index d01434bef..000000000
--- a/e2e/knative/pod_test.go
+++ /dev/null
@@ -1,47 +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 knative
-
-import (
- "context"
- "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"
-)
-
-func TestPodTraitWithKnative(t *testing.T) {
- WithNewTestNamespace(t, func(ctx context.Context, g *WithT, ns string) {
- g.Expect(KamelRun(t, ctx, ns, "files/podtest-knative2.yaml",
"--pod-template", "files/template-knative.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"podtest-knative2"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
- g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"podtest-knative2", v1.IntegrationConditionReady),
TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
- g.Expect(KamelRun(t, ctx, ns,
"files/podtest-knative1.yaml").Execute()).To(Succeed())
- g.Eventually(IntegrationPodPhase(t, ctx, ns,
"podtest-knative1"), TestTimeoutLong).Should(Equal(corev1.PodRunning))
- g.Eventually(IntegrationConditionStatus(t, ctx, ns,
"podtest-knative1", v1.IntegrationConditionReady),
TestTimeoutMedium).Should(Equal(corev1.ConditionTrue))
- g.Eventually(IntegrationLogs(t, ctx, ns, "podtest-knative1"),
TestTimeoutShort).Should(ContainSubstring("hello from the template"))
- })
-}
diff --git a/e2e/support/test_support.go b/e2e/support/test_support.go
index d87b52649..4158b0a08 100644
--- a/e2e/support/test_support.go
+++ b/e2e/support/test_support.go
@@ -27,7 +27,6 @@ import (
"bytes"
"context"
"encoding/json"
- "errors"
"fmt"
"io"
"os"
@@ -61,8 +60,6 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client/apiutil"
"sigs.k8s.io/controller-runtime/pkg/log/zap"
- eventing "knative.dev/eventing/pkg/apis/eventing/v1"
- messaging "knative.dev/eventing/pkg/apis/messaging/v1"
servingv1 "knative.dev/serving/pkg/apis/serving/v1"
"github.com/apache/camel-k/v2/e2e/support/util"
@@ -1852,22 +1849,6 @@ func ClusterDomainName(t *testing.T, ctx
context.Context) (string, error) {
return dns.Spec.BaseDomain, nil
}
-func CreateKnativeChannel(t *testing.T, ctx context.Context, ns string, name
string) func() error {
- return func() error {
- channel := messaging.InMemoryChannel{
- TypeMeta: metav1.TypeMeta{
- Kind: "InMemoryChannel",
- APIVersion:
messaging.SchemeGroupVersion.String(),
- },
- ObjectMeta: metav1.ObjectMeta{
- Namespace: ns,
- Name: name,
- },
- }
- return TestClient(t).Create(ctx, &channel)
- }
-}
-
func CreateKamelet(t *testing.T, ctx context.Context, ns string, name string,
template map[string]interface{}, properties map[string]v1.JSONSchemaProp,
labels map[string]string) func() error {
return CreateKameletWithID(t, platform.DefaultPlatformName, ctx, ns,
name, template, properties, labels)
}
@@ -1954,17 +1935,15 @@ func Pods(t *testing.T, ctx context.Context, ns string)
func() []corev1.Pod {
}
func WithNewTestNamespace(t *testing.T, doRun func(context.Context,
*gomega.WithT, string)) {
- ns := NewTestNamespace(t, testContext, false)
+ ns := NewTestNamespace(t, testContext)
defer deleteTestNamespace(t, testContext, ns)
invokeUserTestCode(t, testContext, ns.GetName(), doRun)
}
-func WithNamedTestNamespace(t *testing.T, doRun func(context.Context,
*gomega.WithT, string), namespace string, deleteOnCompletion bool) {
- ns := NewNamedTestNamespace(t, testContext, namespace, false)
- if deleteOnCompletion {
- defer deleteTestNamespace(t, testContext, ns)
- }
+func WithNamedTestNamespace(t *testing.T, doRun func(context.Context,
*gomega.WithT, string), namespace string) {
+ ns := NewNamedTestNamespace(t, testContext, namespace)
+ defer deleteTestNamespace(t, testContext, ns)
invokeUserTestCode(t, testContext, ns.GetName(), doRun)
}
@@ -1983,14 +1962,6 @@ func WithExistingNamedTestNamespace(t *testing.T, doRun
func(context.Context, *g
invokeUserTestCode(t, testContext, namespace, doRun)
}
-func WithNewTestNamespaceWithKnativeBroker(t *testing.T, doRun
func(context.Context, *gomega.WithT, string)) {
- ns := NewTestNamespace(t, testContext, true)
- defer deleteTestNamespace(t, testContext, ns)
- defer deleteKnativeBroker(t, testContext, ns)
-
- invokeUserTestCode(t, testContext, ns.GetName(), doRun)
-}
-
func invokeUserTestCode(t *testing.T, ctx context.Context, ns string, doRun
func(context.Context, *gomega.WithT, string)) {
defer func() {
DumpNamespace(t, ctx, ns)
@@ -2002,40 +1973,6 @@ func invokeUserTestCode(t *testing.T, ctx
context.Context, ns string, doRun func
doRun(ctx, g, ns)
}
-func deleteKnativeBroker(t *testing.T, ctx context.Context, ns metav1.Object) {
- nsRef := corev1.Namespace{
- TypeMeta: metav1.TypeMeta{
- APIVersion: v1.SchemeGroupVersion.String(),
- Kind: "Namespace",
- },
- ObjectMeta: metav1.ObjectMeta{
- Name: ns.GetName(),
- },
- }
- nsKey := ctrl.ObjectKeyFromObject(&nsRef)
- if err := TestClient(t).Get(ctx, nsKey, &nsRef); err != nil {
- failTest(t, err)
- }
-
- nsRef.SetLabels(make(map[string]string, 0))
- if err := TestClient(t).Update(ctx, &nsRef); err != nil {
- failTest(t, err)
- }
- broker := eventing.Broker{
- TypeMeta: metav1.TypeMeta{
- APIVersion: eventing.SchemeGroupVersion.String(),
- Kind: "Broker",
- },
- ObjectMeta: metav1.ObjectMeta{
- Namespace: ns.GetName(),
- Name: TestDefaultNamespace,
- },
- }
- if err := TestClient(t).Delete(ctx, &broker); err != nil {
- failTest(t, err)
- }
-}
-
func deleteTestNamespace(t *testing.T, ctx context.Context, ns ctrl.Object) {
var oc bool
var err error
@@ -2100,7 +2037,7 @@ func DumpNamespace(t *testing.T, ctx context.Context, ns
string) {
}
}
-func NewTestNamespace(t *testing.T, ctx context.Context, injectKnativeBroker
bool) ctrl.Object {
+func NewTestNamespace(t *testing.T, ctx context.Context) ctrl.Object {
name := "test-" + uuid.New().String()
if exists, err := testNamespaceExists(t, ctx, name); err != nil {
@@ -2110,11 +2047,10 @@ func NewTestNamespace(t *testing.T, ctx
context.Context, injectKnativeBroker boo
name = fmt.Sprintf("%s-%d", name, time.Now().Second())
}
- return NewNamedTestNamespace(t, ctx, name, injectKnativeBroker)
+ return NewNamedTestNamespace(t, ctx, name)
}
-func NewNamedTestNamespace(t *testing.T, ctx context.Context, name string,
injectKnativeBroker bool) ctrl.Object {
- brokerLabel := "eventing.knative.dev/injection"
+func NewNamedTestNamespace(t *testing.T, ctx context.Context, name string)
ctrl.Object {
c := TestClient(t)
var namespaceOrProject ctrl.Object
@@ -2155,23 +2091,7 @@ func NewNamedTestNamespace(t *testing.T, ctx
context.Context, name string, injec
if err != nil {
failTest(t, err)
}
- // workaround https://github.com/openshift/origin/issues/3819
- if injectKnativeBroker {
- // use Kubernetes API -
https://access.redhat.com/solutions/2677921
- if namespace, err :=
TestClient(t).CoreV1().Namespaces().Get(ctx, name, metav1.GetOptions{}); err !=
nil {
- failTest(t, err)
- } else {
- if _, ok := namespace.GetLabels()[brokerLabel];
!ok {
- namespace.SetLabels(map[string]string{
- brokerLabel: "enabled",
- })
- if err = TestClient(t).Update(ctx,
namespace); err != nil {
- failTest(t, errors.New("Unable
to label project with knative-eventing-injection. This operation needs update
permission on the project."))
- }
- }
- }
- }
- namespaceOrProject = project
+ return project
} else {
namespace := &corev1.Namespace{
TypeMeta: metav1.TypeMeta{
@@ -2182,11 +2102,6 @@ func NewNamedTestNamespace(t *testing.T, ctx
context.Context, name string, injec
Name: name,
},
}
- if injectKnativeBroker {
- namespace.SetLabels(map[string]string{
- brokerLabel: "enabled",
- })
- }
if err := TestClient(t).Create(ctx, namespace); err != nil {
failTest(t, err)
}
diff --git a/pkg/apis/camel/v1/trait/knative.go
b/pkg/apis/camel/v1/trait/knative.go
index 55d939eec..eb3cc8395 100644
--- a/pkg/apis/camel/v1/trait/knative.go
+++ b/pkg/apis/camel/v1/trait/knative.go
@@ -22,10 +22,16 @@ package trait
//
// The Camel Knative component will then use the full configuration to
configure the routes.
//
+// WARNING: The Knative trait is **deprecated** and will be removed in future
release versions:
+// use Camel (Quarkus) Knative component instead.
+//
// The trait is enabled by default when the Knative profile is active.
//
// +camel-k:trait=knative.
//
+// +camel-k:trait=logging.
+// +camel-k:deprecated=2.11.0.
+//
//nolint:godoclint
type KnativeTrait struct {
Trait `json:",inline" property:",squash"`
diff --git a/pkg/trait/knative.go b/pkg/trait/knative.go
index f5175bba6..1c2cb0b69 100644
--- a/pkg/trait/knative.go
+++ b/pkg/trait/knative.go
@@ -140,7 +140,16 @@ func (t *knativeTrait) Configure(e *Environment) (bool,
*TraitCondition, error)
}
}
- return ptr.Deref(t.Enabled, false), nil, nil
+ condition := NewIntegrationCondition(
+ "Knative",
+ v1.IntegrationConditionTraitInfo,
+ corev1.ConditionTrue,
+ TraitConfigurationReason,
+ "Knative (eventing) trait is deprecated and may be removed in
future versions. "+
+ "Use Camel Knative component instead.",
+ )
+
+ return ptr.Deref(t.Enabled, false), condition, nil
}
func filterMetaItems(meta metadata.IntegrationMetadata, cst
knativeapi.CamelServiceType, uriType string) []string {
diff --git a/pkg/trait/knative_test.go b/pkg/trait/knative_test.go
index 18349ff96..cf53a1de6 100644
--- a/pkg/trait/knative_test.go
+++ b/pkg/trait/knative_test.go
@@ -108,10 +108,9 @@ func TestKnativeEnvConfigurationFromTrait(t *testing.T) {
require.NoError(t, err)
tr, _ := tc.GetTrait("knative").(*knativeTrait)
- ok, condition, err := tr.Configure(&environment)
+ ok, _, err := tr.Configure(&environment)
require.NoError(t, err)
assert.True(t, ok)
- assert.Nil(t, condition)
err = tr.Apply(&environment)
require.NoError(t, err)
@@ -226,10 +225,9 @@ func TestKnativeEnvConfigurationFromSource(t *testing.T) {
tr, _ := tc.GetTrait("knative").(*knativeTrait)
- ok, condition, err := tr.Configure(&environment)
+ ok, _, err := tr.Configure(&environment)
require.NoError(t, err)
assert.True(t, ok)
- assert.Nil(t, condition)
err = tr.Apply(&environment)
require.NoError(t, err)
@@ -1154,10 +1152,9 @@ func TestKnativeEnabled(t *testing.T) {
// configure the knative trait
knTrait, _ := newKnativeTrait().(*knativeTrait)
- ok, condition, err = knTrait.Configure(&environment)
+ ok, _, err = knTrait.Configure(&environment)
require.NoError(t, err)
assert.True(t, ok)
- assert.Nil(t, condition)
// apply the knative trait
require.NoError(t, knTrait.Apply(&environment))
@@ -1215,10 +1212,9 @@ func TestKnativeNotEnabled(t *testing.T) {
// configure the knative trait
knTrait, _ := newKnativeTrait().(*knativeTrait)
- ok, condition, err = knTrait.Configure(&environment)
+ ok, _, err = knTrait.Configure(&environment)
require.NoError(t, err)
assert.False(t, ok)
- assert.Nil(t, condition)
assert.NotContains(t, environment.Integration.Status.Capabilities,
v1.CapabilityKnative)
}
@@ -1520,20 +1516,18 @@ func fromCamelProperties(appProps map[string]string)
(*knativeapi.CamelEnvironme
func TestKnativeSyntheticKitDefault(t *testing.T) {
e := NewFakeEnvironmentForSyntheticKit(t)
knTrait, _ := newKnativeTrait().(*knativeTrait)
- ok, condition, err := knTrait.Configure(&e)
+ ok, _, err := knTrait.Configure(&e)
require.NoError(t, err)
assert.False(t, ok)
- assert.Nil(t, condition)
}
func TestKnativeSyntheticKitEnabled(t *testing.T) {
e := NewFakeEnvironmentForSyntheticKit(t)
knTrait, _ := newKnativeTrait().(*knativeTrait)
knTrait.Enabled = ptr.To(true)
- ok, condition, err := knTrait.Configure(&e)
+ ok, _, err := knTrait.Configure(&e)
require.NoError(t, err)
assert.True(t, ok)
- assert.Nil(t, condition)
}
func TestRunKnativeEndpointWithKnativeNotInstalled(t *testing.T) {
@@ -1578,9 +1572,8 @@ func TestRunNonKnativeEndpointWithKnativeNotInstalled(t
*testing.T) {
},
}
- configured, condition, err := trait.Configure(environment)
+ configured, _, err := trait.Configure(environment)
require.NoError(t, err)
- assert.Nil(t, condition)
assert.False(t, configured)
conditions := environment.Integration.Status.Conditions
assert.Empty(t, conditions)
@@ -1657,9 +1650,8 @@ func TestKnativeAutoConfiguration(t *testing.T) {
},
}
- configured, condition, err := trait.Configure(environment)
+ configured, _, err := trait.Configure(environment)
require.NoError(t, err)
- assert.Nil(t, condition)
assert.True(t, configured)
err = trait.Apply(environment)
require.NoError(t, err)