Hi guys, Now that Karaf "runtime" 4.2.2 is in vote, I would like to share proposal about roadmap for end of this year and Q1 19.
I would like to call this the "kloud initiative", kloud for Karaf Cloud. Karaf is already ready for the cloud (see my blog about Karaf on Azure http://blog.nanthrax.net/?p=849). However, the idea is to simplify the cloud provisioning. About this, there's several main topics: 1. On the runtime, we are moving forward on R7 spec, resource repositories better support, ... I also would like to propose to have a lighter minimal distribution and include a kloud distribution focused on cloud packaging. 2. A large improvement/refactoring on the karaf-maven-plugin to simplify the creation of distribution, but also package docker images directly, and also provision cloud (via the jclouds provisioning service on which I'm working). The idea is to be able, on a "bundle" or "feature" project, to simply do karaf:archive, karaf:docker, karaf:cloud, etc. 3. Improve Cellar to better leverage some cloud features (like LB, auto scaling, ...) 4. Verify that all Karaf projects correctly leverage cloud features when available and are ready for that (it's related to the second point as well). I started to work on 1 & 2. Hopefully, I should have a PoC/Proposal for beginning of Jan. 3 & 4 will come later. I will give you an update (and donation proposal) about Karaf Vineyard and Winegrower very soon (maybe a Christmas gift ;)). By the way, I also started some cloud related features in third party projects (ActiveMQ with zookeeper and hazelcast discovery agent, replica storage tentative, Pax Web about LB, ...). All my tests and evaluation are performed on AWS and Azure, just to avoid to be locked on only one cloud provider. If you agree, I will propose a concrete plan, creating umbrella Jira and introduce the "kloud" tag in Jira. Thanks ! Regards JB On 13/09/2018 13:51, Jean-Baptiste Onofré wrote: > Hi guys, > > Recently, we received a lot of questions around how to create Karaf > custom distribution based on karaf-maven-plugin, and how to use the > static profile to create "standalone/static" distribution. > > If the plugin works fine, it's not easy to understand some "details", > like the dependency scope impact, or providing the set of default > features repos and features. I already helped users (in private > communication) to fix their custom distributions. > > Obviously, we should simplify the way of creating custom distribution, > especially with the new tooling & feature we now provide around Docker. > > I would like to propose the following: > > 1. Set the default behavior of the assembly goal to create a custom > distribution based on standard. For the user, instead of providing > (again) all framework, standard, enterprise features repos and all > standard boot features (shell, ...), it will just specify the tar.gz/zip > base and his own features repo/repos (or the goal will use the same > version of the goal plugin itself). All the rest will be done by the > plugin for him. Use the karaf packaging as default to define this. At > the end of the day, the user pom.xml will look like: > > <project> > <groupId>foo</groupId> > <artifactId>bar</artifactId> > <version>1.0-SNAPSHOT</version> > <packaging>karaf</packaging> > > <dependencies> > <dependency> > <groupId>org.apache.karaf</groupId> > <artifactId>apache-karaf</artifactId> > <version>4.2.1</version> > <type>tar.gz</type> > </dependency> > <dependency> > <groupId>foo</groupId> > <artifactId>my</artifactId> > <version>1.0-SNAPSHOT</version> > <classifier>features</classifier> > <type>xml</type> > </dependency> > </dependencies> > > <build> > <plugins> > <plugin> > <groupId>org.apache.karaf.tooling</groupId> > <artifactId>karaf-maven-plugin</artifactId> > <extensions>true</extensions> > <inherited>true</inherited> > <configuration> > <bootFeatures> > <feature>my</feature> > </bootFeatures> > <installedFeatures> > <feature>my-other</feature> > </installedFeatures> > </configuration> > </plugin> > </plugins> > </build> > > </project> > > The idea is to automatically execute install-kar + assembly for the > karaf packaging and let the user focus on its own resources (features, > config, ...) just providing the base Karaf archive. > The user will be able to use src/main/resources to provide any files in > etc, bin, or whatever in the resulting custom distribution. > > 2. Improve a bit the features XML generation > If the custom distribution is the highest priority, just after the > improvements on this area, I would like to improve the way of creating > features XML. > Now, to be honest, almost all of us write features repos XML by hand. It > gives us the maximum of flexibility. However, on the other hand, the > features XML and code contain should be sync. > I would like to improve the generate features MOJO, however leveraging > most of all functionalities around features (prerequisites, dependency > flag, inner features, ...). > > I have to dig a little bit around that, but if you want some ideas > already, please let me know. > > Thoughts ? > > Regards > JB > -- Jean-Baptiste Onofré [email protected] http://blog.nanthrax.net Talend - http://www.talend.com
