gansheer commented on issue #1656:
URL: https://github.com/apache/camel-k/issues/1656#issuecomment-1431047647

   I spent some time getting to know the existing JIB plugins available. 
   
   The ones I found and tested are:
   * [Quarkus Container Extension 
Jib](https://quarkus.io/guides/container-image) (camel-k quarkus version) 
   * [Jkube Kubernetes 
Plugin](https://www.eclipse.org/jkube/docs/kubernetes-maven-plugin/) (version 
1.10.1)
   * [Jib maven 
plugin](https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin)
 (version 3.3.1)
   * [Fabric8 docker plugin](https://dmp.fabric8.io/) (version 0.41.0)
   
   I did some build test using the following requirements :
   * build a container image containing the content from the 
/tmp/kit-xxxxxx-yyyyy/context instead of the default target folder ( 
/tmp/kit-xxxxxx-yyyyy/maven/target)
   * build incrementally the container images between multiple integration kits 
by having some influence on layer build
   * build the container image for different architectures (linux/am64, 
linux/arm64, etc)
   * producing a container image the most 
   
   The native build still needs to be tested but in the context of container 
image build is it also about a runner being made available in 
/tmp/kit-xxxxxx-yyyyy/context after the build phase, so it should be covered 
but the requirements.
   
   I put all my data here : https://github.com/gansheer/jib-work
   
   **Only two of the tested plugins validate all the requirements** : **Jib 
maven plugin** and **Fabric8 docker plugin**. Seeing the **Fabric8 docker 
plugin**'s version is 0.41.0, I feel the **Jib maven plugin** is the best 
choice.
   
   The **Jkube Kubernetes Plugin** is still a good candidate if it can add the 
multi-architecture support. I found it offers a lot of flexibility and also 
come with an Jkube Openshift Plugin built on top of Kubernetes Plugin that has 
s2i features.
   
   What I see as an implementation roadmap for the addition of a jib publish 
strategy would be:
   * implement a first version using the **Jib maven plugin** while discussing 
with the jkube projet to see if the multi-architecture can be added 
   * if (and hopefully when) the **Jkube Kubernetes Plugin** provides the 
multi-architecure feature, plan a migration to the JKuve plugin
   
   Last notes:
   * Java native build still need to be tested, particularly [the java native 
build PR](https://github.com/apache/camel-k/pull/4021).  
   * I didn't see anything incompatible with [the build decoupling 
discussions](https://github.com/apache/camel-k/issues/3831)
   
   Please don't hesitate to tell me your opinions on this and any additional 
inputs.
   
   cc @lburgazzoli @astefanutti @oscerd @claudio4j @christophd @tadayosi
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@camel.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to