Image (c): Camel Vectors by Vecteezy
Although we’re already in Camel K 2.0 mode, we had not forgotten to bring new fresh features on version 1. Camel K 1.12.0 has just been released and it brings a lot of new interesting upgrades and features. This may be the last release of Camel K 1 major version as we aim to have a release of Camel K 2 during half of this year.
As usual let’s start by acknowledging the tech stack on top of Camel K and the new exciting versions our fellows have baked:
- Apache Camel K Runtime 1.17.0
- Apache Camel Quarkus 2.16.0
- Apache Camel 3.20.1
- Apache Camel Kamelets 188.8.131.52
Thanks to Apache Camel, Camel Quarkus and Kamelet Catalog contributors for the great efforts they’ve put in those new releases. You may notice a slight change compared to the previous releases. It’s about Kamelets versioning which is now aligned to the framework version (yes, it will be easier to remember from now on!).
Java, Groovy and Kotlin Quarkus native support
The most interesting feature coming in this release is the extension of Quarkus Native mode to Java, Groovy and Kotlin DSLs. This feature was available only on YAML and XML so far, but since version 1.12.0 you may enjoy the capability of resource shrinking also on other DSLs. Just mark your Integration as Quarkus Native and let the operator to do the heavy lift.
kamel promote dry run
kamel promote command has simplified the promotion of an Integration to a higher environment.
kamel promote -o yaml is doing the very same stuff, but, instead of publishing the Integration in the new namespace, it returns the yaml (or JSON if you prefer) specification. It’s a little step towards GitOps and will allow you to perform already some integration with external pipeline tools.
Generate apply configurations
This is something not immediately user-facing, as it enables API types to be used with server-side apply. Still worth mentioning to let know Camel K developers around the world this is now available.
Support Hashicorp Vault
If you’re developing a super secret Integration mission then you can now use Hashicorp Vault trait to use your credentials safely.
Support secret refresh
Still on the same mission and you got a new token!? No problem, just use
-t aws-secrets-manager.refresh-enabled=true (example for AWS Secret Manager) to support automatic refresh.
Enable Integration Service Account
When you run an integration we use a default Service Account. Changing it to something different was a bit cumbersome, as you had to manually change the Kubernetes specs. From now on you can use
kamel run --service-account my-sa to do it in a simpler way.
Camel K Java CRDs dependency
If you’re developing some tool on top of Camel K with Java language you know it was a bit difficult to get the very last changes in CRDs reflected in a Java API. You either had your own conversion or you leveraged Fabric8 Camel K client. From now on we are going to support a Java dependency which is based on Fabric8 technology that will automatically turn any change released in Camel K CRD in a new dependency named camel-k-crds. We will use the same version used for Camel K release and we will support a snapshot (published nightly) and a release version that will be hosted in Apache repository:
- https://repository.apache.org/content/repositories/releases/org/apache/camel/k/camel-k-crds/ (release)
- https://repository.apache.org/content/repositories/snapshots/org/apache/camel/k/camel-k-crds/ (snapshot)
We’re now looking forward to see a ton of new tools based on Camel K!
Distributed Tracing support moving to OpenTelemetry
If you are already using Distributed Tracing tools then you might already know that the CNCF announced that they were archiving the OpenTracing project in favor of the OpenTelemetry project. In this new release we decided to introduce the
telemetry trait based on OpenTelemetry and deprecate the
tracing trait based on OpenTracing.
In this new release you’ll see a series of interesting upgrades for Golang, Kubernetes and other main dependencies:
- Golang to
- Upgrade k8s to
- Upgrade Knative to
- Prometheus to
By the way, the matrix of version dependencies is now autogenerated and more explicitly discoverable in the Camel K compatibility documentation page