Hi All, Thanks for the suggestions !!! As Isuru suggested, the best approach would be to use an extension point to update thriftServerHost with container ip. Will go with this approach.
Thanks. On Mon, May 9, 2016 at 2:01 PM, Akila Ravihansa Perera <raviha...@wso2.com> wrote: > Hi Pumudu, > > We can't use "%{::ipaddress}" in kubernetes platform since Puppet is only > used to build the Docker images. The ipaddress is assigned when the > Kubernetes pods/services are deployed. > > I think best method would be to use the extension point as explained by > Isuru. This should be similar to how we replace the localMemberHost section > in axis2.xml. > > Thanks. > > On Mon, May 9, 2016 at 1:34 PM, Pumudu Ruhunage <pum...@wso2.com> wrote: > >> Hi, >> AFAIU, Thrift hostname should be changed to IP from puppet modules when >> configuring hiera data[1]. Following line[2] should added to >> default.yaml[3] to get the IP when initializing. >> >> [1] >> https://github.com/wso2/puppet-modules/wiki/Creating-a-Puppet-Module-for-a-WSO2-Product#create-the-hiera-configuration-data-set >> [2] wso2::mb_thrift_hostname : "%{::ipaddress}" >> [3] >> https://github.com/wso2/puppet-modules/blob/master/hieradata/dev/wso2/wso2mb/3.1.0/kubernetes/default.yaml >> >> Thanks, >> Pumudu >> >> On Mon, May 9, 2016 at 12:08 PM, Akalanka Pagoda Arachchi < >> darsha...@wso2.com> wrote: >> >>> Hi Thanuja, >>> >>> As you have mentioned, the MB needs the IP address instead of the host >>> name to configure the Thrift server. So you will have to correct the thrift >>> server connection details mentioned in "wso2mb-default/ >>> 10.100.186.164:7611". >>> >>> Thanks, >>> Akalanka. >>> >>> On Mon, May 9, 2016 at 11:31 AM, Isuru Haththotuwa <isu...@wso2.com> >>> wrote: >>> >>>> Hi Thanuja, >>>> >>>> There is an extension point [1] in the startup script for Dockerfiles, >>>> where is looks for another script with a particular name format to execute >>>> before starting the server. You should b able to use that to do a find >>>> replace in the broker.xml with the container IP. >>>> >>>> [1]. >>>> https://github.com/wso2/dockerfiles/blob/master/common/scripts/entrypoint.sh#L87 >>>> >>>> [2]. docker-<product_name>-<profile_name>-init.sh >>>> >>>> On Mon, May 9, 2016 at 11:15 AM, Thanuja Uruththirakodeeswaran < >>>> thanu...@wso2.com> wrote: >>>> >>>>> Hi All, >>>>> >>>>> When we try to run WSO2 MB docker image build using puppet >>>>> provisioning with clustering enabled in kubernetes, I'm getting the below >>>>> error at the server startup: >>>>> >>>>> TID: [-1234] [] [2016-05-09 05:39:06,811] ERROR >>>>> {org.wso2.andes.server.Main} - Exception during startup. Triggering >>>>> shutdown {org.wso2.andes.server.Main} >>>>> org.wso2.andes.kernel.AndesException: Unable to initialise application >>>>> registry >>>>> at org.wso2.andes.server.Broker.startupImpl(Broker.java:308) >>>>> at org.wso2.andes.server.Broker.startup(Broker.java:110) >>>>> at org.wso2.andes.server.Main.startBroker(Main.java:217) >>>>> at org.wso2.andes.server.Main.execute(Main.java:206) >>>>> at org.wso2.andes.server.Main.<init>(Main.java:54) >>>>> at org.wso2.andes.server.Main.main(Main.java:47) >>>>> at >>>>> org.wso2.carbon.andes.internal.QpidServiceComponent.startAndesBroker(QpidServiceComponent.java:391) >>>>> at >>>>> org.wso2.carbon.andes.internal.QpidServiceComponent.setHazelcastInstance(QpidServiceComponent.java:250) >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>> at >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>>> at >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>> at java.lang.reflect.Method.invoke(Method.java:606) >>>>> at >>>>> org.eclipse.equinox.internal.ds.model.ComponentReference.bind(ComponentReference.java:376) >>>>> at >>>>> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.bindReference(ServiceComponentProp.java:430) >>>>> at >>>>> org.eclipse.equinox.internal.ds.InstanceProcess.dynamicBind(InstanceProcess.java:416) >>>>> at >>>>> org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:334) >>>>> at >>>>> org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) >>>>> at >>>>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) >>>>> at >>>>> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:950) >>>>> at >>>>> org.wso2.carbon.core.clustering.hazelcast.HazelcastClusteringAgent.init(HazelcastClusteringAgent.java:258) >>>>> at >>>>> org.wso2.carbon.core.util.ClusteringUtil.enableClustering(ClusteringUtil.java:38) >>>>> at >>>>> org.wso2.carbon.core.internal.StartupFinalizerServiceComponent.completeInitialization(StartupFinalizerServiceComponent.java:177) >>>>> at >>>>> org.wso2.carbon.core.internal.StartupFinalizerServiceComponent.serviceChanged(StartupFinalizerServiceComponent.java:288) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) >>>>> at >>>>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) >>>>> at >>>>> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451) >>>>> at >>>>> org.wso2.carbon.throttling.agent.internal.ThrottlingAgentServiceComponent.registerThrottlingAgent(ThrottlingAgentServiceComponent.java:123) >>>>> at >>>>> org.wso2.carbon.throttling.agent.internal.ThrottlingAgentServiceComponent.activate(ThrottlingAgentServiceComponent.java:100) >>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>> at >>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>>>> at >>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>>>> at java.lang.reflect.Method.invoke(Method.java:606) >>>>> at >>>>> org.eclipse.equinox.internal.ds.model.ServiceComponent.activate(ServiceComponent.java:260) >>>>> at >>>>> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.activate(ServiceComponentProp.java:146) >>>>> at >>>>> org.eclipse.equinox.internal.ds.model.ServiceComponentProp.build(ServiceComponentProp.java:345) >>>>> at >>>>> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponent(InstanceProcess.java:620) >>>>> at >>>>> org.eclipse.equinox.internal.ds.InstanceProcess.buildComponents(InstanceProcess.java:197) >>>>> at >>>>> org.eclipse.equinox.internal.ds.Resolver.getEligible(Resolver.java:343) >>>>> at >>>>> org.eclipse.equinox.internal.ds.SCRManager.serviceChanged(SCRManager.java:222) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.FilteredServiceListener.serviceChanged(FilteredServiceListener.java:107) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:861) >>>>> at >>>>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) >>>>> at >>>>> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEventPrivileged(ServiceRegistry.java:819) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.publishServiceEvent(ServiceRegistry.java:771) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.register(ServiceRegistrationImpl.java:130) >>>>> at >>>>> org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.registerService(ServiceRegistry.java:214) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:433) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.registerService(BundleContextImpl.java:451) >>>>> at >>>>> org.wso2.carbon.core.init.CarbonServerManager.initializeCarbon(CarbonServerManager.java:514) >>>>> at >>>>> org.wso2.carbon.core.init.CarbonServerManager.removePendingItem(CarbonServerManager.java:290) >>>>> at >>>>> org.wso2.carbon.core.init.PreAxis2ConfigItemListener.bundleChanged(PreAxis2ConfigItemListener.java:118) >>>>> at >>>>> org.eclipse.osgi.framework.internal.core.BundleContextImpl.dispatchEvent(BundleContextImpl.java:847) >>>>> at >>>>> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) >>>>> at >>>>> org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340) >>>>> Caused by: org.wso2.andes.kernel.AndesException: Cannot start Thrift >>>>> server on port 7611 on host wso2mb-default >>>>> at org.wso2.andes.thrift.MBThriftServer.start(MBThriftServer.java:87) >>>>> at >>>>> org.wso2.andes.kernel.AndesKernelBoot.startThriftServer(AndesKernelBoot.java:440) >>>>> at >>>>> org.wso2.andes.kernel.AndesKernelBoot.initializeComponents(AndesKernelBoot.java:93) >>>>> at org.wso2.andes.server.Broker.startupImpl(Broker.java:293) >>>>> ... 70 more >>>>> Caused by: org.apache.thrift.transport.TTransportException: Could not >>>>> create ServerSocket on address wso2mb-default/10.100.186.164:7611. >>>>> at >>>>> org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:109) >>>>> at >>>>> org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:91) >>>>> at >>>>> org.apache.thrift.transport.TServerSocket.<init>(TServerSocket.java:87) >>>>> at org.wso2.andes.thrift.MBThriftServer.start(MBThriftServer.java:75) >>>>> ... 73 more >>>>> TID: [-1234] [] [2016-05-09 05:39:06,816] INFO >>>>> {org.wso2.andes.server.registry.ApplicationRegistry} - Shutting down >>>>> ApplicationRegistry(org.wso2.andes.server.registry.ConfigurationFileApplicationRegistry@70194966) >>>>> {org.wso2.andes.server.registry.ApplicationRegistry} >>>>> >>>>> >>>>> It's because currently 'thriftServerHost' is set to hostname in >>>>> broker.xml [1] and according to MB clustering guide [2] , this should be >>>>> set to MB node (docker container) IP which hosts the Thrift Server. >>>>> >>>>> If it's correct, what will be the best approach to update the >>>>> 'thriftServerHost' value with container IP? >>>>> >>>>> Please give your suggestions. >>>>> >>>>> [1]. >>>>> https://github.com/wso2/puppet-modules/blob/master/modules/wso2mb/templates/3.1.0/repository/conf/broker.xml.erb#L37 >>>>> [2]. >>>>> https://docs.wso2.com/display/CLUSTER44x/Configuring+the+Broker+Nodes >>>>> >>>>> >>>>> Thanks. >>>>> >>>>> -- >>>>> Thanuja Uruththirakodeeswaran >>>>> Software Engineer >>>>> WSO2 Inc.;http://wso2.com >>>>> lean.enterprise.middleware >>>>> >>>>> mobile: +94 774363167 >>>>> >>>> >>>> >>>> >>>> -- >>>> Thanks and Regards, >>>> >>>> Isuru H. >>>> +94 716 358 048* <http://wso2.com/>* >>>> >>>> >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> Dev@wso2.org >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> *Darshana Akalanka Pagoda Arachchi,* >>> *Software Engineer, WSO2* >>> *+94777118016 <%2B94777118016>* >>> >>> _______________________________________________ >>> Dev mailing list >>> Dev@wso2.org >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> Pumudu Ruhunage >> Associate Software Engineer | WSO2 Inc >> M: +94 779 664493 | http://wso2.com >> >> _______________________________________________ >> Dev mailing list >> Dev@wso2.org >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > Akila Ravihansa Perera > WSO2 Inc.; http://wso2.com/ > > Blog: http://ravihansa3000.blogspot.com > -- Thanuja Uruththirakodeeswaran Software Engineer WSO2 Inc.;http://wso2.com lean.enterprise.middleware mobile: +94 774363167
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev