Blog post featured image

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 3.20.1.1

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

The 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:

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.

Dependencies upgrade

In this new release you’ll see a series of interesting upgrades for Golang, Kubernetes and other main dependencies:

  • Golang to 1.18
  • Upgrade k8s to 1.25.2
  • Upgrade Knative to 1.8.3
  • Prometheus to 0.60.0

By the way, the matrix of version dependencies is now autogenerated and more explicitly discoverable in the Camel K compatibility documentation page

Thanks

Thanks to all contributors who made this possible. We’re happy to receive feedback on this version through our mailing list, our official chat or filing an issue on Camel K Github repository.