Hi guys, As we now have released Karaf runtime 4.2.3 and started 4.3.x, I think it's time to discuss and move forward "concretely" about the "kloud" (Karaf for the Cloud) initiative.
I think the first approach is focused on the developers and devops. I created the following Jira: https://issues.apache.org/jira/browse/KARAF-5923 https://issues.apache.org/jira/browse/KARAF-6148 https://issues.apache.org/jira/browse/KARAF-6149 https://issues.apache.org/jira/browse/KARAF-6150 The idea is really to simplify the features generation and distribution packaging. For the features generation, I'm thinking on annotations directly in the code (in package-info.java for instance) describing the features needed by the application. The annotations scanner could then create the features XML using the code itself and the annotations. That would allow us to not relay on Maven and be able to support CLI/Gradle/Maven. In the case where the user uses Maven, we could better leverage Maven to get some details. The idea is to especially easily create features XML to build "static" runtime (that make sense for the cloud). After the features XML generation, we should have a easier way to build a distribution. We also have to provide multiple "packaging output" like archives (zip/tar.gz), uber jar (embedding karaf and user application), docker image, openimage, kubernetes meta, ... The idea is to have a ready to go packaging for the cloud. For the cloud perspective, the distribution should be "immutable/static". Currently, the resolver we have is great for "dynamic" deployment but could be painful for static one (dealing with refresh, multiple versions resolution, etc). I'm proposing to create kind of "static" resolver (https://issues.apache.org/jira/browse/KARAF-6147) directly taking boot features and installing straight forward what's defined in the features. It should result with a more "predictable" behavior, really helpful from a cloud perspective. Finally, I created some Jira about general improvements for the cloud and docker: https://issues.apache.org/jira/browse/KARAF-6111 https://issues.apache.org/jira/browse/KARAF-4609 I think you got the overall idea: dramatically simplify creation of distribution packaging karaf with user application (for developer), simplify the packaging outputs and bootstrapping on cloud (for devops). If you think it could be helpful to have a doc on confluence about that, please let me know I will create it. We all know that Karaf is an amazing runtime. To convince more and more users and give a new dimension to Karaf, I really think that the "kloud initiative" is a must have. We will have a runtime that can address both static and dynamic bootstrapping approach, one runtime for multiple services or one runtime per service, etc. Thoughts ? Regards JB -- Jean-Baptiste Onofré [email protected] http://blog.nanthrax.net Talend - http://www.talend.com
