You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@karaf.apache.org by Jean-Baptiste Onofré <jb...@nanthrax.net> on 2018/12/20 05:57:38 UTC

Roadmap for Q1 19, Karaf 4.3 and kloud project (was: [PROPOSAL] Simplify the karaf-maven-plugin to easily create custom distribution)

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é
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Roadmap for Q1 19, Karaf 4.3 and kloud project (was: [PROPOSAL] Simplify the karaf-maven-plugin to easily create custom distribution)

Posted by Francois Papon <fr...@openobject.fr>.
Hi JB,

Thanks for the update and the roadmap!

It's very nice to see the cloud initiative about Karaf and it really
make sense for end users ;)

I also very like the idea about simplify the way for creating custom
distribution, this can be very helpfull for the Kloud initiative!

Let's move forward on it and I would be very happy to help ;)

I think the next ApacheCon will be great around Karaf!!

Thanks,

François Papon
fpapon@apache.org

Le 20/12/2018 à 09:57, Jean-Baptiste Onofré a écrit :
> 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
>>