To use kamel inside other architecture like arm64 you must build it and use Buildah as builder strategy.
|For now only arm64 is supported as other architectures|
Build and Publish Kamel
As first step it’s necessary to build kamel project
https://github.com/apache/camel-k manually and push image to own docker repository.
I suggest to create a free docker image repository with
make build images-arch images-push
|The base image of kamel operator is graalvm because multi architecture quarkus-mandrel image not published yet|
Proceed with installation of kamel inside kubernetes cluster with the below command
./kamel install --build-publish-strategy=Buildah --registry YOUR_REGISTRY --registry-auth-username YOUR_USERNAME --registry-auth-password YOUR_PASSWORD
Build and run an integration
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, 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|