diff --git a/content/blog/2021/04/camel-k-140-Whatsnew/index.md b/content/blog/2021/04/camel-k-140-Whatsnew/index.md index bf9c19b3fe1..9b25fa14817 100644 --- a/content/blog/2021/04/camel-k-140-Whatsnew/index.md +++ b/content/blog/2021/04/camel-k-140-Whatsnew/index.md @@ -21,7 +21,7 @@ When installing the operator into a namespace (but also globally in the cluster) Or, you can use the new `kamel bind` command (see below). -**Note:** it's easy to write your own Kamelet and publish it to the Apache Catalog. Take a look at the [Kamelets developer guide](/camel-k/next/kamelets/kamelets-dev.html). +**Note:** it's easy to write your own Kamelet and publish it to the Apache Catalog. Take a look at the documentation online. ## Kamel bind command diff --git a/content/blog/2021/05/Camel310-Whatsnew/index.md b/content/blog/2021/05/Camel310-Whatsnew/index.md index e964560786b..27620292cb4 100644 --- a/content/blog/2021/05/Camel310-Whatsnew/index.md +++ b/content/blog/2021/05/Camel310-Whatsnew/index.md @@ -43,7 +43,7 @@ of problem. Then the XML dump is a _view_ of the routes from Camel point of view ### Kamelets -We have done significant work to [Kamelets](/camel-k/next/kamelets/kamelets-user.html) in this release. +We have done significant work to Kamelets in this release. Kamelets (route templates) are now more flexible and more isolated, which really helps to build more sophisticated Kamelets that are plug and play ready in any Camel runtime. diff --git a/content/blog/2021/05/KameletToolingSupportInCamelURI/index.md b/content/blog/2021/05/KameletToolingSupportInCamelURI/index.md index ca3576e0ede..b84c71e2faf 100644 --- a/content/blog/2021/05/KameletToolingSupportInCamelURI/index.md +++ b/content/blog/2021/05/KameletToolingSupportInCamelURI/index.md @@ -6,7 +6,7 @@ categories: ["Tooling","Camel K"] preview: "Kamelet tooling support for Camel URI" --- -[Kamelets](/camel-k/next/kamelets/kamelets-user.html) (Kamel route snippets) are a new concept introduced in Camel K that allow users to connect to external systems via a simplified interface, hiding all the low level details about how those connections are implemented. There are several ways to consume them. One of them is as [standard Camel Components](/camel-k/next/kamelets/kamelets-user.html#kamelets-usage-integration). In this case, completion is provided to fill the template id and the parameter names. It is currently based on a fixed set of Kamelets provided by a snapshot of the [kamelet catalog](https://github.com/apache/camel-kamelets). +Kamelets (Kamel route snippets) are a new concept introduced in Camel K that allow users to connect to external systems via a simplified interface, hiding all the low level details about how those connections are implemented. There are several ways to consume them. One of them is as standard Camel Components. In this case, completion is provided to fill the template id and the parameter names. It is currently based on a fixed set of Kamelets provided by a snapshot of the [kamelet catalog](https://github.com/apache/camel-kamelets). diff --git a/content/blog/2021/11/low-code-camel/index.md b/content/blog/2021/11/low-code-camel/index.md index a9afdbe6d9b..d067379c26e 100644 --- a/content/blog/2021/11/low-code-camel/index.md +++ b/content/blog/2021/11/low-code-camel/index.md @@ -61,20 +61,17 @@ We have now a wider [catalog of Kamelets](/camel-kamelets/next/) available upstr There's no doubt you'll find a use case which is not covered by a Kamelet. For example, what about moving data between parts of your organization? -In traditional Camel the approach you would have taken to address this problem is to create one or more ad hoc integrations to +In traditional Camel the approach you would have taken to address this problem is to create one or more ad hoc integrations to fullfill any of your needs. You'd develop a custom integration route for each use case you have in mind. The Kamelet approach is completely different. You develop a reusable Kamelet that is responsible of taking specific data out of your system (a **source**), or putting some data back into your system (a **sink**). Once you've done that, you can **treat it as a high level connector in the Karavan UI** and use it, whenever you need, in multiple scenarios where you need to move data around, without having to code everything from scratch each time. -Writing a Kamelet is easy, *much easier than writing a Camel component*, if you've ever tried doing so. We've written -an extended [Kamelet developer guide](/camel-k/next/kamelets/kamelets-dev.html) that covers -both easy and complex scenarios. +Writing a Kamelet is easy, *much easier than writing a Camel component*, if you've ever tried doing so. Check it out on the official documentation online. -We know that creating a source or a sink and also **doing it right** may be difficult (integration is hard, that's why we have Apache Camel) and involve multiple enterprise integration patterns. The -Kamelet developer guide contains a [section about an "Earthquake" source](/camel-k/next/kamelets/kamelets-dev.html#_step_5_wrap_it_into_a_kamelet) that is complicated on purpose, to mimic a Kamelet that may be developed for handling data inside an organization. +We know that creating a source or a sink and also **doing it right** may be difficult (integration is hard, that's why we have Apache Camel) and involve multiple enterprise integration patterns. -When writing a new Kamelet, you can use plain YAML to describe a route template, add Java (or Groovy, or ...) code snippets +When writing a new Kamelet, you can use plain YAML to describe a route template, add Java (or Groovy, or ...) code snippets if you need them, or also link an external Maven project in case you want to add a more complex behavior to it (we did it in the [camel-kamelets](https://github.com/apache/camel-kamelets/blob/1480bd372d42df0a185b4980b465ec245f2de0c5/avro-serialize-action.kamelet.yaml#L34) repository, where we build the default catalog of Kamelets). What does not change is that, once a Kamelet is written, the logic inside it is **well encapsulated** and you can treat it @@ -89,8 +86,6 @@ Check out the [Karavan repository](https://github.com/apache/camel-karavan), whe Then start playing with Karavan in combination with [Camel K](/camel-k/next/) and the [Kamelet catalog](/camel-kamelets/next/). -And finally look at how easy is to [create and use your own Kamelets](/camel-k/next/kamelets/kamelets-dev.html). - We'd love to hear your feedback! _This post originally appeared [in the author's blog](https://www.nicolaferraro.me/2021/11/03/low-code-camel/)_ diff --git a/content/blog/2022/01/camel-keda/index.md b/content/blog/2022/01/camel-keda/index.md index efff5fdd612..2d714e5fc52 100644 --- a/content/blog/2022/01/camel-keda/index.md +++ b/content/blog/2022/01/camel-keda/index.md @@ -17,12 +17,12 @@ This is what KEDA does by itself with scalers (Kafka is [one of the many scalers ## How does it work? -In Camel K 1.8.0 a new [KEDA trait](/camel-k/next/traits/keda.html) has been introduced. +In Camel K 1.8.0 a new [KEDA trait](/camel-k/next/traits/keda.html) has been introduced. The trait allows to manually tweak the KEDA configuration to make sure that some *ScaledObjects* (KEDA concept) are generated as part of the *Integration* reconciliation, but this is mostly an internal detail. The interesting part about the KEDA trait is that it can recognize special KEDA markers in Kamelets and automatically create a KEDA valid configuration when those Kamelets are used as sources. So users can just use Kamelets to create bindings as usual and, if they **enable a KEDA flag** via an annotation, they get an event driven autoscaler automatically configured. The Kamelet catalog embedded in next release ([v0.7.0](https://github.com/apache/camel-kamelets/tree/v0.7.0)) contains two Kamelets enhanced with KEDA metadata: `aws-sqs-source` and `kafka-source`. These are just two examples of the many Kamelets that can be augmented in the future. The metadata configuration system is open and Kamelets can be marked at any time to work with KEDA: this means that you don't need to wait for a new Camel K release to enable KEDA on a different source and, more importantly, that you can mark your own Kamelets with KEDA metadata to enable autoscaling from your internal organization components. -The Kamelet developer guide contains a new section on [how to mark a Kamelet with KEDA metadata](/camel-k/next/kamelets/kamelets-dev.html#_keda_integration), but essentially markers are used to map Kamelet properties into KEDA configuration options, so that when you provide a Kamelet configuration, the corresponding KEDA options can be generated from it (all the work is done under the cover by the Camel K operator). +The Kamelet developer guide contains a new section on how to mark a Kamelet with KEDA metadata, but essentially markers are used to map Kamelet properties into KEDA configuration options, so that when you provide a Kamelet configuration, the corresponding KEDA options can be generated from it (all the work is done under the cover by the Camel K operator). ## A binding example @@ -51,7 +51,7 @@ spec: # ... ``` -You can notice that the only difference from a standard binding is the presence of the `trait.camel.apache.org/keda.enabled=true` annotation that enables the +You can notice that the only difference from a standard binding is the presence of the `trait.camel.apache.org/keda.enabled=true` annotation that enables the KEDA trait in Camel K. The information about how to map Kamelet properties into KEDA options is encoded in the Kamelet definition. ## Demo diff --git a/content/blog/2023/07/camel-k-2-0/index.md b/content/blog/2023/07/camel-k-2-0/index.md index ae742fb149a..de8385bc6fa 100644 --- a/content/blog/2023/07/camel-k-2-0/index.md +++ b/content/blog/2023/07/camel-k-2-0/index.md @@ -157,7 +157,7 @@ In version 2 they won't be any longer available and the operator may fail if tho # Multiple data types and schemas in Kamelets -Kamelets are now able to expose supported input/output data types as part of the [Kamelet data type specification](/camel-k/next/kamelets/kamelets-dev.html#_kamelet_data_types) in order to increase the interoperability with other components. When referencing a Kamelet as a source or sink in a Pipe users may now choose an appropriate input/output data type that fits best for their individual use case. +Kamelets are now able to expose supported input/output data types as part of the Kamelet data type specification in order to increase the interoperability with other components. When referencing a Kamelet as a source or sink in a Pipe users may now choose an appropriate input/output data type that fits best for their individual use case. This feature leverages the [data types transformer concept](/manual/transformer.html) in Apache Camel 4 and reveals its full power once the new major version of Camel is available (we are all eagerly awaiting it).