Multi Architecture

this part is evolving quickly during development of version 2 so it may be slightly inaccurate.

To use Camel K operator with any architecture like arm64 you must use Buildah as builder strategy.

Since version 2, Camel K is publishing an ARM64 architecture beside the default AMD64 architecture. You need to reference this as apache/camel-k:<version>-arm64. You can build your particular architecture from source, following the guidelines in Local development.

Install Camel K ARM64 operator

Proceed with installation of kamel inside kubernetes cluster with the below command:

kamel install --operator-image=apache/camel-k:<version>-arm64 --build-publish-strategy Buildah --build-publish-strategy-option BuildahPlatform=linux/arm/v8 --registry ...

Test an integration

Build and run an integration

hello.groovy
from('timer:tick?period=3000')
  .setBody().constant('Hello world from Camel K')
  .to('log:info')

Send the groovy file to kamel operator to build, publish and run it

kamel run hello.groovy

Optional Buildah Configuration

If you want change the default architecture of Buildah build strategy once this is installed, you must edit integration platform manually.

kubectl edit ip

This command will open the editor with the yaml of IntegrationPlatform, to change the architecture you can fill inside spec.pipeline.PublishStrategyOptions as below

spec:
  pipeline:
    PublishStrategyOptions:
      BuildahPlatform: linux/arm/v8

After few seconds the yaml will be updated and that field is imported inside status

status:
  pipeline:
    PublishStrategyOptions:
      BuildahPlatform: linux/arm/v8
It’s important to know Buidah supports only amd64 and arm64