Hi, I think we have to think about how we are going to push Puppet changes to existing cartridge instances. Currently, cartridge instances will disable the Puppet agent after init.sh is executed [1]. This prevent any further Puppet configurations from being applied.
We will need to introduce a new instance notifier event to signal the cartridge agent to enable Puppet agent and get the latest configuration from Puppet master. [1] https://github.com/apache/stratos/blob/master/tools/puppet3-agent/init.sh#L136 On Thu, Jul 24, 2014 at 11:12 AM, Udara Liyanage <ud...@wso2.com> wrote: > Hi Dinesh, > > This is what I have understood, please correct me if I am wrong. > > A new API is provided where we can specify a particular cluster need to be > patched. So the process would be like below? > > Update the puppet master with relevant changes. > Call the API to patch a cluster x > AS will select a non patched member per a time from the cluster x > Terminate the instance > Spawn another instance for replacement > > If there are large number of instances say 100, then it will take long time > to patch the whole cluster. WDYT letting the devop specify the the number of > instances that is patched for a time? So if there are large number of > instances, he can say like patch 5 members per time? > > > > On Thu, Jul 24, 2014 at 11:03 AM, Dinesh Bandara <dine...@wso2.com> wrote: >> >> >> >> >> On Thu, Jul 24, 2014 at 10:47 AM, Nirmal Fernando <nirmal070...@gmail.com> >> wrote: >>> >>> >>> >>> >>> On Mon, Jun 30, 2014 at 5:11 PM, Dinesh Bandara <dine...@wso2.com> wrote: >>>> >>>> Hi all, >>>> >>>> I have faced in to a situation that need to update existing cartridge >>>> instances without interrupt the process. AFAIU there are two types of >>>> updates that need to be applied. >>>> >>>> OS level/ Security updates >>>> Application level updates (Load balancer, PHP, MySQL) >>>> >>>> >>>> Patching OS level/ Security updates >>>> >>>> Since this is a mandatory update we have to shutdown the server and then >>>> need to restart it after successfully update the patch. But this will >>>> interrupt the whole process. >>>> Cartridge agent related updates can be consider as OS level update. >>> >>> >>> I don't think we need to. IMO Cartridge agent related updates can be >>> applied using the same process of marking the state of the member to >>> maintenance mode (before agent restarts). >>>> >>>> Solution >>>> >>>> Spawn a new instance and apply the updates. >>>> Terminate exiting instance >>>> Repeat the above steps until spawn new instances on behalf of existing >>>> instances >>> >>> >>> We can't spawn new instances manually. We should let stratos do that. To >>> do an OS level update etc. we should terminate the instance from the IaaS >>> level and let Stratos spin a replacement instance (with the new updates). >>> >>> Preferably, we need a Stratos API to automate the manual process involved >>> here. >> >> Yes, the above solution need to implement through Startos. sorry I have >> missed that line in the first mail >>>> >>>> Patching Application level updates >>>> >>>> Status of the cartridge instance set into 'Maintenance' mode, apply >>>> updates and then set again as an 'Active' instance >>>> >>>> Expose to user >>>> >>>> Introduce new rest endpoint via SM which will provide the access to >>>> patch selected cluster. >>> >>> >>> Selected member of a cluster rather. >> >> >> Assume we have 100 members in the cluster, if so user has to do it for 100 >> times >> >>>> >>>> >>>> As the first step I would like to start with the "patching OS level >>>> updates". >>>> >>>> Highly appreciate your thoughts on this. >>>> >>>> Thanks, >>>> -- >>>> Dinesh Bandara >>>> Software Engineer >>>> WSO2 Inc.; http://wso2.com >>>> lean.enterprise.middleware >>>> >>> >>> >>> >>> -- >>> Best Regards, >>> Nirmal >>> >>> Nirmal Fernando. >>> PPMC Member & Committer of Apache Stratos, >>> Senior Software Engineer, WSO2 Inc. >>> >>> Blog: http://nirmalfdo.blogspot.com/ >> >> >> >> >> -- >> Dinesh Bandara >> Software Engineer >> WSO2 Inc.; http://wso2.com >> lean.enterprise.middleware >> > > > > -- > > Udara Liyanage > Software Engineer > WSO2, Inc.: http://wso2.com > lean. enterprise. middleware > > web: http://udaraliyanage.wordpress.com > phone: +94 71 443 6897 -- Akila Ravihansa Perera Software Engineer WSO2 Inc. http://wso2.com Phone: +94 77 64 154 38 Blog: http://ravihansa3000.blogspot.com