Camel Runtimes (aka "sourceless" Integrations)

Camel K can run any runtime available in Apache Camel. However, this is possible only when the Camel application was previously built and packaged into a container image. Also, if you run through this option, some of the features offered by the operator may not be available. For example, you won’t be able to discover Camel capabilities because the source is not available to the operator but embedded in the container image.

This option is quite interesting if in general you’re building your applications externally, ie, via a CICD technology, and you want to delegate the operator only the "operational" part, taking care on your own of the building and publishing part.

you may loose more features, such as incremental image and container kit reusability.

Build externally, run via Operator

Let’s see a very simple example in action.

You can have your own Camel application or just create a basic one for the purpose via Camel JBang (camel init test.yaml). Once your development is over, you can test locally via camel run test.yaml and export in the runtime of your choice via camel export test.yaml --runtime …​.

The step above is a very quick way to create a basic Camel application in any of the available runtime. Let’s imagine we’ve done this for Camel Main or we have already a Camel application as a Maven project. As the build part is something we want to take care on our own, we create a pipeline to build, containerize and push the container to a registry (see as a reference Camel K Tekton example).

At this stage we do have a container image with our Camel application. We can use the kamel CLI to run our Camel application via kamel run --image docker.io/my-org/my-app:1.0.0 tuning, if it’s the case, with any of the trait or configuration required. Mind that, when you run an Integration with this option, the operator will create a synthetic IntegrationKit.

certain traits (ie, JVM) won’t be available when running an application built externally.

If all is good, in a few seconds (there is no build involved) you should have your application up and running and you can monitor and operate with Camel K as usual.

Traits and dependencies

Certain Camel K operational aspect may be driven by traits. When you’re building the application outside the operator, some of those traits may not be executed as they are executed during the building phase that we are skipping when running sourceless Integrations. Here we provided a list of those traits that may not work when building the application outside the Camel K operator.

this is a best effort analysis taking as reference the work available in version 2.3.
  • Build column show those traits that affects the build (will be skipped for sourceless Integrations).

  • Dependencies column show those traits that will add some dependency (you may need to manually add those dependencies).

  • Runtime column show those traits that will influence the runtime, mostly via properties (you may need to manually add those properties to the bundled application.properties).

  • Deployment column show those traits that will be executed for the deployment (nothing should be required).

Trait

Build

Dependencies

Runtime

Deployment

Affinity

x

x

x

v

Builder

v

x

x

x

Camel

x

x

v

x

Container

x

x

x

v

Cron

x

v

v

x

Dependencies

v

v

x

x

Deployer

x

x

x

v

Deployment

x

x

x

v

Environment

x

x

x

v

Affinity

x

x

x

v

Error Handler

x

v

x

x

GC (Garbage Collector)

x

x

x

v

Health

x

v

v

v

Ingress

x

x

x

v

Istio

x

x

x

v

Jolokia

x

v

v

v

JVM

x

x

v

v

Kamelets

x

x

v

x

KNative Service

x

x

x

v

KNative

x

v

x

x

Logging

x

x

v

v

Mount

x

x

x

v

Openapi

x

v

v

v

Owner

x

x

x

v

PDB

x

x

x

v

Platform

x

x

x

v

Pod

x

x

x

v

Prometheus

v

v

x

x

Pull Secret

x

x

x

v

Quarkus

v

x

x

x

Service

x

x

x

v

Service Binding

x

x

v

v

Toleration

x

x

x

v

Keda

x

x

x

v

Master

v

v

v

x

Resume

v

v

x

x

Strimzi

x

x

x

v

Telemetry

x

x

v

x

Three Scale

x

x

x

v

Vaults

x

v

v

x