Multi Architecture
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 docker-hub
or ghcr
.
make build images-arch images-push
The base image of kamel operator is graalvm because multi architecture quarkus-mandrel image not published yet |
Install Kamel
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
Use kamel
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.build.PublishStrategyOptions
as below
spec:
build:
PublishStrategyOptions:
BuildahPlatform: linux/arm/v8
After few seconds the yaml will be updated and that field is imported inside status
status:
build:
PublishStrategyOptions:
BuildahPlatform: linux/arm/v8
It’s important to know buidah supports only amd64 and arm64 |