Chapter 4. Camel K release notes
Camel K is a lightweight integration framework built from Apache Camel K that runs natively in the cloud on OpenShift. Camel K is specifically designed for serverless and microservice architectures. You can use Camel K to instantly run integration code written in Camel Domain Specific Language (DSL) directly on OpenShift.
Using Camel K with OpenShift Serverless and Knative, containers are automatically created only as needed and are autoscaled under load up and down to zero. This removes the overhead of server provisioning and maintenance and enables you to focus instead on application development.
Using Camel K with OpenShift Serverless and Knative Eventing, you can manage how components in your system communicate in an event-driven architecture for serverless applications. This provides flexibility and creates efficiencies using a publish/subscribe or event-streaming model with decoupled relationships between event producers and consumers.
4.1. New Camel K features Copy linkLink copied to clipboard!
The Camel K provides cloud-native integration with the following main features:
- Knative Serving for autoscaling and scale-to-zero
- Knative Eventing for event-driven architectures
- Performance optimizations using Quarkus runtime by default
- Camel integrations written in Java or YAML DSL
- Monitoring of integrations using Prometheus in OpenShift
- Quickstart tutorials
- Kamelet Catalog for connectors to external systems such as AWS, Jira, and Salesforce
- Support for Timer and Log Kamelets
- Metering for Camel K Operator and pods
4.2. Supported Configurations Copy linkLink copied to clipboard!
For information about Camel K supported configurations, standards, and components, see the following Customer Portal articles:
4.2.1. Camel K Operator metadata Copy linkLink copied to clipboard!
The Camel K includes updated Operator metadata used to install Camel K from the OpenShift OperatorHub. This Operator metadata includes the Operator bundle format for release packaging, which is designed for use with OpenShift Container Platform 4.6 or later.
4.3. Important notes Copy linkLink copied to clipboard!
Important notes for the Red Hat Integration - Camel K release:
- CVE-2022-22965 spring-framework: RCE via Data Binding on JDK 9+
- A patched version of Camel K (version 1.6.5) has been released to address the spring-framwork security issue, CVE-2022-22965. To update your Camel K deployments and application projects to pick up this patched version, follow the upgrade instructions in Chapter 4. Upgrading Camel K from the Getting Started with Camel K guide.
- CVE-2021-44228 log4j-core: Remote code execution in Log4j 2.x
-
A patched version of Camel K (version 1.6.0-1) has been released to address the Log4j 2.x security issue, CVE-2021-44228 (popularly known as Log4Shell). To update your Camel K deployments and application projects to pick up this patched version, follow the upgrade instructions in Chapter 4. Upgrading Camel K from the Getting Started with Camel K guide. The patched version of Camel K is delivered through the
latestOperator channel. - Supported Enterprise Integration Patterns (EIP) in Camel K
All Camel 3 EIP patterns, except the following, are fully supported for Camel K:
- Circuit Breaker
- Saga
- Change Data Capture
- YAML DSL Limitations
- YAML DSL integrations are supported in Camel K 1.6.5, but the error messaging for incorrect YAML DSL code is still in development.
- JAVA DSL Limitations
- Java DSL in Camel K 1.6.5 is limited to a single class/configure method and any utility must be provided in third party JARS. The endpoint URIs must be defined directly in the endpoint strings for the Camel K automatic dependency support, otherwise you must specify the dependencies in modeline.
- XML DSL is not supported
- XML DSL is not supported in Camel K 1.6.5.
- Camel K 1.6.5 runtime can only access Maven repos that support HTTPS
- You can only use the Maven repositories that are secured by HTTPS. The insecure HTTP protocol is no longer be supported.
4.4. Supported Camel Quarkus extensions Copy linkLink copied to clipboard!
This section lists the Camel Quarkus extensions that are supported for this release of Camel K (only when used inside a Camel K application).
These Camel Quarkus extensions are supported only when used inside a Camel K application. These Camel Quarkus extensions are not supported for use in standalone mode (without Camel K).
4.4.1. Supported Camel Quarkus connector extensions Copy linkLink copied to clipboard!
The following table shows the Camel Quarkus connector extensions that are supported for this release of Camel K (only when used inside a Camel K application).
| Name | Package |
|---|---|
| AWS 2 Kinesis |
|
| AWS 2 Lambda |
|
| AWS 2 S3 Storage Service |
|
| AWS 2 Simple Notification System (SNS) |
|
| AWS 2 Simple Queue Service (SQS) |
|
| File |
|
| FTP |
|
| FTPS |
|
| SFTP |
|
| HTTP |
|
| JMS |
|
| Kafka |
|
| Kamelets |
|
| Metrics |
|
| MongoDB |
|
| Salesforce |
|
| SQL |
|
| Timer |
|
4.4.2. Supported Camel Quarkus dataformat extensions Copy linkLink copied to clipboard!
The following table shows the Camel Quarkus dataformat extensions that are supported for this release of Camel K (only when used inside a Camel K application).
| Name | Package |
|---|---|
| Avro |
|
| Bindy (for CSV) |
|
| JSON Jackson |
|
| Jackson Avro |
|
4.4.3. Supported Camel Quarkus language extensions Copy linkLink copied to clipboard!
In this release, Camel K supports the following Camel Quarkus language extensions (for use in Camel expressions and predicates):
- Constant
- ExchangeProperty
- File
- Header
- Ref
- Simple
- Tokenize
- JsonPath
4.4.4. Supported Camel K traits Copy linkLink copied to clipboard!
In this release, Camel K supports the following Camel K traits:
- Builder trait
- Camel trait
- Container trait
- Dependencies trait
- Deployer trait
- Deployment trait
- Environment trait
- Jvm trait
- Kamelets trait
- Owner trait
- Platform trait
- Pull Secret trait
- Prometheus trait
- Quarkus trait
- Route trait
- Service trait
- Error Handler trait
4.5. Supported Kamelets Copy linkLink copied to clipboard!
The following table lists the kamelets that are provided as OpenShift resources when you install the Camel K operator.
For details about these kamelets, go to: https://github.com/openshift-integration/kamelet-catalog/tree/kamelet-catalog-1.6
For information about how to use kamelets to connect applications and services, see https://access.redhat.com/documentation/en-us/red_hat_integration/2021.q4/html-single/integrating_applications_with_kamelets.
Kamelets marked with an asterisk (*) are Technology Preview features only. Technology Preview features are not supported with Red Hat production service level agreements (SLAs) and might not be functionally complete. Red Hat does not recommend using them in production.
These features provide early access to upcoming product features, enabling customers to test functionality and provide feedback during the development process. For more information about the support scope of Red Hat Technology Preview features, see https://access.redhat.com/support/offerings/techpreview.
| Kamelet | File name | Type (Sink, Source, Action) |
|---|---|---|
| Avro Deserialize action |
| Action (data conversion) |
| Avro Serialize action |
| Action (data conversion) |
| AWS 2 S3 sink |
| Sink |
| AWS 2 S3 source |
| Source |
| AWS 2 S3 Streaming Upload sink |
| Sink |
| AWS 2 Kinesis sink |
| Sink |
| AWS 2 Kinesis source |
| Source |
| AWS 2 Lambda sink |
| Sink |
| AWS 2 Simple Notification System sink |
| Sink |
| AWS 2 Simple Queue Service sink |
| Sink |
| AWS 2 Simple Queue Service source |
| Source |
| AWS SQS FIFO sink |
| Sink |
| Cassandra sink* |
| Sink |
| Cassandra source* |
| Source |
| Elasticsearch Index sink* |
| Sink |
| Extract Field action |
| Action |
| FTP sink |
| Sink |
| FTP source |
| Source |
| Has Header Key Filter action |
| Action (data transformation) |
| Hoist Field action |
| Action |
| HTTP sink |
| Sink |
| Insert Field action |
| Action (data transformation) |
| Insert Header action |
| Action (data transformation) |
| Is Tombstone Filter action |
| Action (data transformation) |
| Jira source* |
| Source |
| JMS sink |
| Sink |
| JMS source |
| Source |
| JSON Deserialize action |
| Action (data conversion) |
| JSON Serialize action |
| Action (data conversion) |
| Kafka sink |
| Sink |
| Kafka source |
| Source |
| Kafka Topic Name Filter action |
| Action (data transformation) |
| Log sink |
| Sink (for development and testing purposes) |
| Mask Fields action |
| Action (data transformation) |
| Message TimeStamp Router action |
| Action (router) |
| MongoDB sink |
| Sink |
| MongoDB source |
| Source |
| MySQL sink |
| Sink |
| PostgreSQL sink |
| Sink |
| Predicate filter action |
| Action (router/filter) |
| Protobuf Deserialize action |
| Action (data conversion) |
| Protobuf Serialize action |
| Action (data conversion) |
| Regex Router action |
| Action (router) |
| Replace Field action |
| Action |
| Salesforce source |
| Source |
| SFTP sink |
| Sink |
| SFTP source |
| Source |
| Slack source |
| Source |
| SQL Server Database sink |
| Sink |
| Telegram source* |
| Source |
| Timer source |
| Source (for development and testing purposes) |
| TimeStamp Router action |
| Action (router) |
| Value to Key action |
| Action (data transformation) |
4.6. Camel K known issues Copy linkLink copied to clipboard!
The following known issues apply to the Camel K 1.6.5:
ENTESB-15306 - CRD conflicts between Camel K and Fuse Online
If an older version of Camel K has ever been installed in the same OpenShift cluster, installing Camel K from the OperatorHub fails due to conflicts with custom resource definitions. For example, this includes older versions of Camel K previously available in Fuse Online.
For a workaround, you can install Camel K in a different OpenShift cluster, or enter the following command before installing Camel K:
$ oc get crds -l app=camel-k -o json | oc delete -f -
ENTESB-15858 - Added ability to package and run Camel integrations locally or as container images
Packaging and running Camel integrations locally or as container images is not currently included in the Camel K and has community-only support.
For more details, see the Apache Camel K community.
ENTESB-16477 - Unable to download jira client dependency with productized build
When using Camel K operator, the integration is unable to find dependencies for jira client. The work around is to add the atlassian repo manually.
apiVersion: camel.apache.org/v1
kind: IntegrationPlatform
metadata:
labels:
app: camel-k
name: camel-k
spec:
configuration:
- type: repository
value: <atlassian repo here>
ENTESB-17033 - Camel-K ElasticsearchComponent options ignored
When configuring the Elasticsearch component, the Camel K ElasticsearchComponent options are ignored. The work around is to add getContext().setAutowiredEnabled(false) when using the Elasticsearch component.
ENTESB-17061 - Can’t run mongo-db-source kamelet route with non-admin user - Failed to start route mongodb-source-1 because of null
It is not possible to run mongo-db-source kamelet route with non-admin user credentials. Some part of the component require admin credentials hence it is not possible run the route as a non-admin user.
4.7. Camel K Fixed Issues Copy linkLink copied to clipboard!
The following sections list the issues that have been fixed in Camel K 1.6.4.
4.7.1. Enhancements in Camel K 1.6.4 Copy linkLink copied to clipboard!
The following table lists the enhancements in Camel K 1.6.4.
| Issue | Description |
|---|---|
| Provide metering labels for Camel K Operator and deployed pods | |
| Bom in Kamelets Catalog | |
|
Kamelet Catalog to use |
4.7.2. Bugs resolved in Camel K 1.6.4 Copy linkLink copied to clipboard!
The following table lists the resolved bugs in Camel K 1.6.4.
| Issue | Description |
|---|---|
| Respect cluster-wide proxy settings in Camel K | |
| CVE-2020-27218 jetty: buffer not correctly recycled in Gzip Request inflation [rhint-camel-k-1] | |
| CVE-2020-8908 guava: local information disclosure via temporary directory created with unsafe permissions [rhint-camel-k-1] | |
| CVE-2021-20293 resteasy-core: RESTEasy: PathParam in RESTEasy can lead to a reflected XSS attack [rhint-camel-k-1] | |
| CVE-2021-21349 xstream: SSRF can be activated unmarshalling with XStream to access data streams from an arbitrary URL referencing a resource in an intranet or the local host [rhint-camel-k-1] | |
| CVE-2021-28168 jersey-common: jersey: Local information disclosure via system temporary directory [rhint-camel-k-1] | |
| CVE-2021-26291 maven-core: maven: Block repositories using http by default [rhint-camel-k-1] | |
| CVE-2020-15522 bouncycastle: Timing issue within the EC math library [rhint-camel-k-1] | |
| CVE-2021-28170 jakarta.el: jakarta-el: ELParserTokenManager enables invalid EL expressions to be evaluate [rhint-camel-k-1] | |
| CVE-2021-33813 jdom: XXE allows attackers to cause a DoS via a crafted HTTP request [rhint-camel-k-1] | |
| CVE-2021-33813 jdom2: jdom: XXE allows attackers to cause a DoS via a crafted HTTP request [rhint-camel-k-1] | |
| CVE-2021-3690 undertow: buffer leak on incoming websocket PONG message may lead to DoS [rhint-camel-k-1] | |
| [Camel K] Allow to specify HTTP Proxy settings | |
| Deserialize custom headers in Kafka Kamelet source | |
| Unable to produce knative event to custom broker | |
| Front-end "FailedMount" in quickstart Camel K: Event Streaming Example | |
| Jitpack dependency in quickstart refers to main-SNAPSHOT in 1.6.x branch | |
| Remove flawed library from mrcc repo for Camel K | |
| kamel binaries present in the Camel-K MRRC | |
| Missing camel-kamelets-utils-1.0.0.fuse-800050-redhat-00002.jar | |
| Camel K runtime tests are failing for version 1.9.0.fuse-800037-redhat-00001 | |
| Some kamelets are missing camel-k-kamelet-reify 1.9.0.fuse-800037-redhat-00001 dependency | |
| CVE respin: cyrus-sasl security update RHSA :88692 Important Due: 03/25/2022 | |
|
Can’t upgrade Camel-K operator from 1.6.3 | |
| Salesforce-source kamelet doesnt work in CK3 |