Unable to specify any CloudEvent attributes or extensions, except for `type`
Requirement
Creating a Pipe that is reading from a Knative Broker, requires to set the type attribute of the CloudEvent, see #5529 for reference. This is than used when Camel-K creates a Knative Trigger and passed to the spec.filter.attribues of that Trigger
However it is not possible to provide any other CE metadata (e.g. defined attributes or extensions), such as:
apiVersion: camel.apache.org/v1
kind: Pipe
metadata:
name: log-sink-pipe
spec:
source:
ref:
kind: Broker
apiVersion: eventing.knative.dev/v1
name: test-broker-2
properties:
type: com.corp.my.beer.source
source: /bar
sink:
ref:
kind: Kamelet
apiVersion: camel.apache.org/v1
name: log-sink
It would be nice if there would be a better support for any CE attribute/extension, and than being applied down to the Trigger, perhaps has as a custom propertie? So that Camel-k could create as flexible/powerful Triggers
Problem
Camel-K seems to not support creating Knative Triggers with filter attributes, other than the type of the CloudEvent message.
On the pod of the pipe, I see this log:
2024-05-22 12:24:27,542 INFO [org.apa.cam.k.Runtime] (main) Apache Camel K Runtime 3.8.1
2024-05-22 12:24:27,547 INFO [org.apa.cam.qua.cor.CamelBootstrapRecorder] (main) Bootstrap runtime: org.apache.camel.quarkus.main.CamelMainRuntime
2024-05-22 12:24:27,552 INFO [org.apa.cam.mai.MainSupport] (main) Apache Camel (Main) 4.4.1 is starting
2024-05-22 12:24:27,610 INFO [org.apa.cam.k.sup.SourcesSupport] (main) Loading routes from: SourceDefinition{name='camel-k-embedded-flow', language='yaml', type='source', location='file:/etc/camel/sources/camel-k-embedded-flow.yaml', }
2024-05-22 12:24:27,937 ERROR [org.apa.cam.qua.mai.CamelMainRuntime] (main) Failed to start application: org.apache.camel.FailedToCreateRouteException: Failed to create route binding: Route(binding)[From[knative:event/com.corp.my.beer.source?ap... because of Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{source=/bar}]
at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:85)
at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:728)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:594)
at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2385)
at org.apache.camel.quarkus.core.FastCamelContext.doInit(FastCamelContext.java:194)
at org.apache.camel.support.service.BaseService.init(BaseService.java:78)
at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2021)
at org.apache.camel.support.service.BaseService.start(BaseService.java:105)
at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2040)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:212)
at org.apache.camel.quarkus.main.CamelMain.doStart(CamelMain.java:94)
at org.apache.camel.support.service.BaseService.start(BaseService.java:113)
at org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:140)
at org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49)
at org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45)
at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy_0(Unknown Source)
at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy(Unknown Source)
at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
at io.quarkus.runtime.Application.start(Application.java:101)
at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:111)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
at io.quarkus.runner.GeneratedMain.main(Unknown Source)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:62)
at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:33)
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{source=/bar}]
at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:830)
at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:730)
at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:61)
at org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:195)
at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:99)
at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:79)
... 30 more
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{source=/bar}]
at org.apache.camel.support.DefaultComponent.validateParameters(DefaultComponent.java:302)
at org.apache.camel.support.DefaultComponent.createEndpoint(DefaultComponent.java:191)
at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:796)
... 35 more
2024-05-22 12:24:27,998 ERROR [io.qua.run.Application] (main) Failed to start application (with profile [prod]): java.lang.RuntimeException: Failed to start quarkus
at io.quarkus.runner.ApplicationImpl.doStart(Unknown Source)
at io.quarkus.runtime.Application.start(Application.java:101)
at io.quarkus.runtime.ApplicationLifecycleManager.run(ApplicationLifecycleManager.java:111)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:71)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:44)
at io.quarkus.runtime.Quarkus.run(Quarkus.java:124)
at io.quarkus.runner.GeneratedMain.main(Unknown Source)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at io.quarkus.bootstrap.runner.QuarkusEntryPoint.doRun(QuarkusEntryPoint.java:62)
at io.quarkus.bootstrap.runner.QuarkusEntryPoint.main(QuarkusEntryPoint.java:33)
Caused by: java.lang.RuntimeException: java.lang.RuntimeException: org.apache.camel.FailedToCreateRouteException: Failed to create route binding: Route(binding)[From[knative:event/com.corp.my.beer.source?ap... because of Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{source=/bar}]
at org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:47)
at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy_0(Unknown Source)
at io.quarkus.deployment.steps.CamelBootstrapProcessor$boot173480958.deploy(Unknown Source)
... 13 more
Caused by: java.lang.RuntimeException: org.apache.camel.FailedToCreateRouteException: Failed to create route binding: Route(binding)[From[knative:event/com.corp.my.beer.source?ap... because of Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{source=/bar}]
at org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:65)
at org.apache.camel.quarkus.core.CamelBootstrapRecorder.start(CamelBootstrapRecorder.java:45)
... 15 more
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create route binding: Route(binding)[From[knative:event/com.corp.my.beer.source?ap... because of Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{source=/bar}]
at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:85)
at org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:728)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:594)
at org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2385)
at org.apache.camel.quarkus.core.FastCamelContext.doInit(FastCamelContext.java:194)
at org.apache.camel.support.service.BaseService.init(BaseService.java:78)
at org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2021)
at org.apache.camel.support.service.BaseService.start(BaseService.java:105)
at org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2040)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:212)
at org.apache.camel.quarkus.main.CamelMain.doStart(CamelMain.java:94)
at org.apache.camel.support.service.BaseService.start(BaseService.java:113)
at org.apache.camel.quarkus.main.CamelMain.startEngine(CamelMain.java:140)
at org.apache.camel.quarkus.main.CamelMainRuntime.start(CamelMainRuntime.java:49)
... 16 more
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{source=/bar}]
at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:830)
at org.apache.camel.impl.engine.AbstractCamelContext.getEndpoint(AbstractCamelContext.java:730)
at org.apache.camel.support.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:61)
at org.apache.camel.reifier.AbstractReifier.resolveEndpoint(AbstractReifier.java:195)
at org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:99)
at org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:79)
... 30 more
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: knative://event/com.corp.my.beer.source?apiVersion=eventing.knative.dev%2Fv1&kind=Broker&name=test-broker-2&source=%2Fbar due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{source=/bar}]
at org.apache.camel.support.DefaultComponent.validateParameters(DefaultComponent.java:302)
at org.apache.camel.support.DefaultComponent.createEndpoint(DefaultComponent.java:191)
at org.apache.camel.impl.engine.AbstractCamelContext.doGetEndpoint(AbstractCamelContext.java:796)
... 35 more
Proposal
No response
Open questions
No response