|
| 1 | +--- |
| 2 | +title: "Camel K 2.8.0" |
| 3 | +date: 2025-09-22 |
| 4 | +draft: false |
| 5 | +authors: [squakez] |
| 6 | +categories: ["Releases", "Camel K", "Roadmap"] |
| 7 | +preview: "What's new in Camel K 2.8.0!" |
| 8 | +--- |
| 9 | + |
| 10 | +*© Paul Klee - Kunstsammlung Nordrhein-Westfalen* |
| 11 | + |
| 12 | +Here we are with **Camel K 2.8.0**. We are please to announce the general availability of a new Camel K version. There are a few new exciting features we want to share within this release. |
| 13 | + |
| 14 | +## Git branch/tag/commit |
| 15 | + |
| 16 | +In version 2.7.0 we announced the possibility to build a Camel application directly **from Git source**. We have worked in this release to include the possibility to specify a branch, tag or generically a commit to the configuration. This should improve your GitOps experience, or, more in general the deployment of Camel in Kubernetes via Git operations. |
| 17 | + |
| 18 | +## Init and sidecar containers |
| 19 | + |
| 20 | +From this version onward you'll be able to configure directly both [init containers](https://kubernetes.io/docs/concepts/workloads/pods/init-containers/) and [side containers](https://kubernetes.io/docs/concepts/workloads/pods/sidecar-containers/). This feature was available previously but it was a bit difficult to configure. With the new `init-containers` trait, you will be able to easily configure this important aspect of your Camel applications on Kubernetes. |
| 21 | + |
| 22 | +## Service ports |
| 23 | + |
| 24 | +Until now there was limited possibility for the integrations to expose a port, beside the managed HTTP port. Within version 2.8.0 we're introducing a new configuration on the service trait, `ports` which allow you to **expose any generic port** (even UDP ports, if needed) via a regular Kubernetes `Service`. |
| 25 | + |
| 26 | +## JVM agents |
| 27 | + |
| 28 | +Another limitation we suffered was the fact we did not have a direct way to tell the Camel application to run a given JVM agent. In 2.8.0 we're introducing the **agent trait**. This trait is in charge to get the agent (via a regular jar dependency) and make it available to your runtime application. You only need to configure it according to each agent specification. This is a great addition that will simplify the deployment and usage of the agents for your applications in the cloud. |
| 29 | + |
| 30 | +Take, as an example the Opentelemetry agent. From now on, you just need to run your application in the following fashion: |
| 31 | + |
| 32 | +```yaml |
| 33 | +apiVersion: camel.apache.org/v1 |
| 34 | +kind: Integration |
| 35 | +... |
| 36 | +spec: |
| 37 | +... |
| 38 | + traits: |
| 39 | + jvm: |
| 40 | + agent: otel;https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases/latest/download/opentelemetry-javaagent.jar |
| 41 | + options: |
| 42 | + - -Dotel.exporter.otlp.endpoint=http://otel-svc:4317 |
| 43 | + - -Dotel.metrics.exporter=none |
| 44 | +... |
| 45 | +``` |
| 46 | + |
| 47 | +Your application will be instrumented and executed with the agent you've configured. Bonus point: you can add as much as agents you need! |
| 48 | + |
| 49 | +## Pipe dependencies |
| 50 | + |
| 51 | +This one is some long time due feature. From now on you will be able to **configure dependencies directly in the Pipe specification** in the similar way you used to do for Integrations. This is very needed when, for instance, you need to provide an external JDBC driver to your Pipe. |
| 52 | + |
| 53 | +## Deprecations |
| 54 | + |
| 55 | +We're active on the deprecation side as well, in order to keep a clean codebase that can be easier to evolve and maintain. In this version we're deprecating the `pod` trait (mainly used for init and side containers, now, available through `init-container` trait). We're also deprecating `jolokia` trait, which agent can be now configured via `jvm.agents` property trait. |
| 56 | + |
| 57 | +## Removals |
| 58 | + |
| 59 | +It's also the turn of some removal from the code base. The `spectrum` publishing strategy (deprecate already some time ago) has been removed and won't be working any longer. Same for `kamel install/uninstall` subcommands. |
| 60 | + |
| 61 | +## Main dependencies |
| 62 | + |
| 63 | +The operator was built with Golang 1.24 and the Kubernetes API is aligned with version 1.33. We haven't changed the Camel K Runtime LTS version (3.15.3, based on Camel 4.8.5): this is for backward compatibility reasons. As mentioned already in version 2.7 as well, we're pushing to the usage of `plain-quarkus` provider, which would allow you to **use any released Camel Quarkus version**. |
| 64 | + |
| 65 | +## Full release notes |
| 66 | + |
| 67 | +Those were the most interesting features we have delivered in Camel K 2.8.0. We have more minor things, documentation and dependency updates that you can check in the [2.8.0 release notes](https://github.com/apache/camel-k/releases/tag/v2.8.0). |
| 68 | + |
| 69 | +## Stats |
| 70 | + |
| 71 | +Here some stats that may be useful for development team to track the health of the project: |
| 72 | + |
| 73 | +* Github project stars: 890 (+1 %) |
| 74 | +* [Docker pulls over time](https://hub.docker.com/v2/repositories/apache/camel-k/): 2391836 (+1,2 %) |
| 75 | +* Unit test coverage: 51.1 % (+3,8 %) |
| 76 | + |
| 77 | +# Thanks |
| 78 | + |
| 79 | +Thanks a lot to our contributors and the hard work happening in the community. Feel free to provide any feedback or comment using the Apache Camel available channels. |
0 commit comments