You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@karaf.apache.org by ku...@gmail.com, ku...@gmail.com on 2019/05/03 15:27:52 UTC

Optimal way to deploy osgi bundles in karaf cellar (without artifact repository)

Hi:

In my Karaf Cellar setup, I am not able to make use of the features provided by cellar, especially for bundle/feature synchronization.

I have the following configuration and it is intentional to set it disabled.
default.bundle.sync=disabled
default.config.sync=disabled
default.feature.sync=disabled
default.obr.urls.sync=disabled
default.balanced.servlet.sync=disabled

The nodes are allocated in a different group called workers. The sync policies of all components for this group are disabled as well. But, for the bundle, I have set it to `cluster`.

workers.bundle.sync = cluster

Ideally, when a bundle is deployed manually to Node A(copied jars into deploy folder), I was expecting it to broadcast this event to the cluster, and Node B to automatically receive the event and install the bundle. Although this behaviour is available with the local bundle listener, instructions as seen in the cellar manual made me aware that I cannot strongly rely on it.

Thus, I tried cluster:sync command. First on the producer node, and then executed it on the consumer node. The command is itself confusing that ended up deleting my deployed bundles time and again.

I do not have an artifact repository for my deployment. Rather, I have set of osgi bundle jars, which I can deploy to the deploy folder.

How would I be able to deploy my osgi jar bundles, and broadcast it to specific member nodes (e.g. a group), and without artfact repository?

Thanks,
Cooshal.

Re: Optimal way to deploy osgi bundles in karaf cellar (without artifact repository)

Posted by Kushal Gautam <ku...@gmail.com>.
Hi JB,
thank you for this tip. Just tried this out, and it works for me, as I had
expected.

 Regards,
Cooshal.

On Sat, May 4, 2019 at 8:16 AM Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:

> Hi,
>
> If you have all nodes on same host, you can simply do:
>
> cluster:bundle-install file://...
>
> Then, the file location will be spread on the cluster.
>
> Regards
> JB
>
> On 04/05/2019 07:57, Kushal Gautam wrote:
> > Hi JB,
> >
> > thank you for the response.
> >
> > But, ideally, this should work if all the nodes are on the same host,
> > right? Currently, I have all the nodes on the same host.
> >
> > I will try this out with Cave once.
> >
> > Regards,
> > Cooshal.
> >
> > On Sat, May 4, 2019 at 6:45 AM Jean-Baptiste Onofré <jb@nanthrax.net
> > <ma...@nanthrax.net>> wrote:
> >
> >     Hi,
> >
> >     Cellar doesn't transport the artifact (bundle) itself, just the
> location
> >     of the artifact.
> >
> >     That's why the artifact has to be available between the cluster
> nodes.
> >
> >     You need a share location between the nodes (NFS, http server, Karaf
> >     cave, ...).
> >
> >     cluster:bundle-install will the take the location and spread the
> >     deployment on all nodes.
> >
> >     Using cluster:sync is not require (sync is to force the resync of the
> >     cluster). I would use cluster:bundle-install with Cave for instance.
> >
> >     The deploy folder don't work as it is, or it has to be on a shared
> >     filesystem.
> >
> >     Regards
> >     JB
> >
> >     On 03/05/2019 17:27, kushal.gautam@gmail.com
> >     <ma...@gmail.com> wrote:
> >     > Hi:
> >     >
> >     > In my Karaf Cellar setup, I am not able to make use of the
> >     features provided by cellar, especially for bundle/feature
> >     synchronization.
> >     >
> >     > I have the following configuration and it is intentional to set it
> >     disabled.
> >     > default.bundle.sync=disabled
> >     > default.config.sync=disabled
> >     > default.feature.sync=disabled
> >     > default.obr.urls.sync=disabled
> >     > default.balanced.servlet.sync=disabled
> >     >
> >     > The nodes are allocated in a different group called workers. The
> >     sync policies of all components for this group are disabled as well.
> >     But, for the bundle, I have set it to `cluster`.
> >     >
> >     > workers.bundle.sync = cluster
> >     >
> >     > Ideally, when a bundle is deployed manually to Node A(copied jars
> >     into deploy folder), I was expecting it to broadcast this event to
> >     the cluster, and Node B to automatically receive the event and
> >     install the bundle. Although this behaviour is available with the
> >     local bundle listener, instructions as seen in the cellar manual
> >     made me aware that I cannot strongly rely on it.
> >     >
> >     > Thus, I tried cluster:sync command. First on the producer node,
> >     and then executed it on the consumer node. The command is itself
> >     confusing that ended up deleting my deployed bundles time and again.
> >     >
> >     > I do not have an artifact repository for my deployment. Rather, I
> >     have set of osgi bundle jars, which I can deploy to the deploy
> folder.
> >     >
> >     > How would I be able to deploy my osgi jar bundles, and broadcast
> >     it to specific member nodes (e.g. a group), and without artfact
> >     repository?
> >     >
> >     > Thanks,
> >     > Cooshal.
> >     >
> >
> >     --
> >     Jean-Baptiste Onofré
> >     jbonofre@apache.org <ma...@apache.org>
> >     http://blog.nanthrax.net
> >     Talend - http://www.talend.com
> >
>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Re: Optimal way to deploy osgi bundles in karaf cellar (without artifact repository)

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi,

If you have all nodes on same host, you can simply do:

cluster:bundle-install file://...

Then, the file location will be spread on the cluster.

Regards
JB

On 04/05/2019 07:57, Kushal Gautam wrote:
> Hi JB,
> 
> thank you for the response.
> 
> But, ideally, this should work if all the nodes are on the same host,
> right? Currently, I have all the nodes on the same host.
> 
> I will try this out with Cave once.
> 
> Regards,
> Cooshal.
> 
> On Sat, May 4, 2019 at 6:45 AM Jean-Baptiste Onofré <jb@nanthrax.net
> <ma...@nanthrax.net>> wrote:
> 
>     Hi,
> 
>     Cellar doesn't transport the artifact (bundle) itself, just the location
>     of the artifact.
> 
>     That's why the artifact has to be available between the cluster nodes.
> 
>     You need a share location between the nodes (NFS, http server, Karaf
>     cave, ...).
> 
>     cluster:bundle-install will the take the location and spread the
>     deployment on all nodes.
> 
>     Using cluster:sync is not require (sync is to force the resync of the
>     cluster). I would use cluster:bundle-install with Cave for instance.
> 
>     The deploy folder don't work as it is, or it has to be on a shared
>     filesystem.
> 
>     Regards
>     JB
> 
>     On 03/05/2019 17:27, kushal.gautam@gmail.com
>     <ma...@gmail.com> wrote:
>     > Hi:
>     >
>     > In my Karaf Cellar setup, I am not able to make use of the
>     features provided by cellar, especially for bundle/feature
>     synchronization.
>     >
>     > I have the following configuration and it is intentional to set it
>     disabled.
>     > default.bundle.sync=disabled
>     > default.config.sync=disabled
>     > default.feature.sync=disabled
>     > default.obr.urls.sync=disabled
>     > default.balanced.servlet.sync=disabled
>     >
>     > The nodes are allocated in a different group called workers. The
>     sync policies of all components for this group are disabled as well.
>     But, for the bundle, I have set it to `cluster`.
>     >
>     > workers.bundle.sync = cluster
>     >
>     > Ideally, when a bundle is deployed manually to Node A(copied jars
>     into deploy folder), I was expecting it to broadcast this event to
>     the cluster, and Node B to automatically receive the event and
>     install the bundle. Although this behaviour is available with the
>     local bundle listener, instructions as seen in the cellar manual
>     made me aware that I cannot strongly rely on it.
>     >
>     > Thus, I tried cluster:sync command. First on the producer node,
>     and then executed it on the consumer node. The command is itself
>     confusing that ended up deleting my deployed bundles time and again.
>     >
>     > I do not have an artifact repository for my deployment. Rather, I
>     have set of osgi bundle jars, which I can deploy to the deploy folder.
>     >
>     > How would I be able to deploy my osgi jar bundles, and broadcast
>     it to specific member nodes (e.g. a group), and without artfact
>     repository?
>     >
>     > Thanks,
>     > Cooshal.
>     >
> 
>     -- 
>     Jean-Baptiste Onofré
>     jbonofre@apache.org <ma...@apache.org>
>     http://blog.nanthrax.net
>     Talend - http://www.talend.com
> 

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Re: Optimal way to deploy osgi bundles in karaf cellar (without artifact repository)

Posted by Kushal Gautam <ku...@gmail.com>.
Hi JB,

thank you for the response.

But, ideally, this should work if all the nodes are on the same host,
right? Currently, I have all the nodes on the same host.

I will try this out with Cave once.

Regards,
Cooshal.

On Sat, May 4, 2019 at 6:45 AM Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:

> Hi,
>
> Cellar doesn't transport the artifact (bundle) itself, just the location
> of the artifact.
>
> That's why the artifact has to be available between the cluster nodes.
>
> You need a share location between the nodes (NFS, http server, Karaf
> cave, ...).
>
> cluster:bundle-install will the take the location and spread the
> deployment on all nodes.
>
> Using cluster:sync is not require (sync is to force the resync of the
> cluster). I would use cluster:bundle-install with Cave for instance.
>
> The deploy folder don't work as it is, or it has to be on a shared
> filesystem.
>
> Regards
> JB
>
> On 03/05/2019 17:27, kushal.gautam@gmail.com wrote:
> > Hi:
> >
> > In my Karaf Cellar setup, I am not able to make use of the features
> provided by cellar, especially for bundle/feature synchronization.
> >
> > I have the following configuration and it is intentional to set it
> disabled.
> > default.bundle.sync=disabled
> > default.config.sync=disabled
> > default.feature.sync=disabled
> > default.obr.urls.sync=disabled
> > default.balanced.servlet.sync=disabled
> >
> > The nodes are allocated in a different group called workers. The sync
> policies of all components for this group are disabled as well. But, for
> the bundle, I have set it to `cluster`.
> >
> > workers.bundle.sync = cluster
> >
> > Ideally, when a bundle is deployed manually to Node A(copied jars into
> deploy folder), I was expecting it to broadcast this event to the cluster,
> and Node B to automatically receive the event and install the bundle.
> Although this behaviour is available with the local bundle listener,
> instructions as seen in the cellar manual made me aware that I cannot
> strongly rely on it.
> >
> > Thus, I tried cluster:sync command. First on the producer node, and then
> executed it on the consumer node. The command is itself confusing that
> ended up deleting my deployed bundles time and again.
> >
> > I do not have an artifact repository for my deployment. Rather, I have
> set of osgi bundle jars, which I can deploy to the deploy folder.
> >
> > How would I be able to deploy my osgi jar bundles, and broadcast it to
> specific member nodes (e.g. a group), and without artfact repository?
> >
> > Thanks,
> > Cooshal.
> >
>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Re: Optimal way to deploy osgi bundles in karaf cellar (without artifact repository)

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi,

Cellar doesn't transport the artifact (bundle) itself, just the location
of the artifact.

That's why the artifact has to be available between the cluster nodes.

You need a share location between the nodes (NFS, http server, Karaf
cave, ...).

cluster:bundle-install will the take the location and spread the
deployment on all nodes.

Using cluster:sync is not require (sync is to force the resync of the
cluster). I would use cluster:bundle-install with Cave for instance.

The deploy folder don't work as it is, or it has to be on a shared
filesystem.

Regards
JB

On 03/05/2019 17:27, kushal.gautam@gmail.com wrote:
> Hi:
> 
> In my Karaf Cellar setup, I am not able to make use of the features provided by cellar, especially for bundle/feature synchronization.
> 
> I have the following configuration and it is intentional to set it disabled.
> default.bundle.sync=disabled
> default.config.sync=disabled
> default.feature.sync=disabled
> default.obr.urls.sync=disabled
> default.balanced.servlet.sync=disabled
> 
> The nodes are allocated in a different group called workers. The sync policies of all components for this group are disabled as well. But, for the bundle, I have set it to `cluster`.
> 
> workers.bundle.sync = cluster
> 
> Ideally, when a bundle is deployed manually to Node A(copied jars into deploy folder), I was expecting it to broadcast this event to the cluster, and Node B to automatically receive the event and install the bundle. Although this behaviour is available with the local bundle listener, instructions as seen in the cellar manual made me aware that I cannot strongly rely on it.
> 
> Thus, I tried cluster:sync command. First on the producer node, and then executed it on the consumer node. The command is itself confusing that ended up deleting my deployed bundles time and again.
> 
> I do not have an artifact repository for my deployment. Rather, I have set of osgi bundle jars, which I can deploy to the deploy folder.
> 
> How would I be able to deploy my osgi jar bundles, and broadcast it to specific member nodes (e.g. a group), and without artfact repository?
> 
> Thanks,
> Cooshal.
> 

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com