Hi Pubudu, That's a good idea, however, we can't exactly map `environment` with the `platform` concept. How about using a new level on top of the profile specific level mapping to `platform`?
:hierarchy: - "node/%{::clientcert}" * - "wso2/%{::product_name}/%{::product_version}/%{::product_profile}-%{::platform}"* - "wso2/%{::product_name}/%{::product_version}/%{::product_profile}" - "wso2/%{::product_name}/%{::product_version}/default" - "osfamily/%{::osfamily}" - "vm_type/%{::vm_type}" - wso2/common - common This will allow us to extract the platform specific data only to one layer up. An example would be, puppet-modules/hieradata/dev/wso2/wso2am/1.10.0/default-kubernetes.yaml WDYT? Regards, Chamila de Alwis Committer and PMC Member - Apache Stratos Software Engineer | WSO2 | +94772207163 Blog: code.chamiladealwis.com On Mon, Apr 11, 2016 at 1:36 PM, Pubudu Gunatilaka <pubu...@wso2.com> wrote: > Hi Isuru, > > Without duplicating files and adding new files, I would rather prefer to > use the following hierarchy. For each and every different environment we > can have product profiles and include the environment specific values. For > Kubernetes, we can include the clustering section only in manager.yaml file > which resides under environment Kubernetes. And the rest of the other > configurations can be included in the generic file folder, i.e " > wso2/%{::product_name}/%{::product_version}/%{::product_profile}". > > > :hierarchy: > - "node/%{::clientcert}" - - " > wso2/%{::product_name}/%{::product_version}/%{::environment} > /%{::product_profile}" > - "wso2/%{::product_name}/%{::product_version}/%{::product_profile}" > - "wso2/%{::product_name}/%{::product_version}/default" > - "osfamily/%{::osfamily}" > - "vm_type/%{::vm_type}" > - wso2/common > - common > > > Thank you! > > On Mon, Apr 11, 2016 at 1:07 PM, Isuru Haththotuwa <isu...@wso2.com> > wrote: > >> >> >> On Mon, Apr 11, 2016 at 12:47 PM, Gayan Gunarathne <gay...@wso2.com> >> wrote: >> >>> >>> >>> On Mon, Apr 11, 2016 at 12:39 PM, Lakmal Warusawithana <lak...@wso2.com> >>> wrote: >>> >>>> >>>> >>>> On Mon, Apr 11, 2016 at 12:22 PM, Imesh Gunaratne <im...@wso2.com> >>>> wrote: >>>> >>>>> Hi Chamila, >>>>> >>>>> On Mon, Apr 11, 2016 at 7:19 AM, Chamila De Alwis <chami...@wso2.com> >>>>> wrote: >>>>> >>>>>> Hi Isuru, Imesh, >>>>>> >>>>>> IMO we shouldn't have any platform specific restructuring in >>>>>> wso2/puppet-modules. This should be done at the end user's setup. Another >>>>>> point is that we have now decoupled wso2/puppet-modules from >>>>>> wso2/dockerfiles and users are not required to incorporate puppet-modules >>>>>> in their container setup. >>>>>> >>>>> >>>>> A very good concern! The way I see this is little different. Let's >>>>> evaluate the options we have: >>>>> >>>>> 1. Ship generic product/profile Hiera YAML files and let the users >>>>> configure them according to their platform (VM, AWS, Azure, OpenStack, >>>>> K8S, >>>>> Mesos, OpenShift, CF, etc) >>>>> 2. Ship product/profile/platform Hiera YAML files and let users >>>>> use them OOB with very few changes. >>>>> >>>>> +1 for 2nd option. Yes, it has some duplication on configurations, but >>>> customer POV, it is very easy to look at single place to do the minimum >>>> changes. (rather looking for many files in deferent folders to do the >>>> changes) >>>> >>>> >>>> >>>> >>>>> Which one would be the best option? IMO 2nd option would provide a >>>>> much better user experience compared to 1 as it provides platform specific >>>>> values such as clustering configuration & port mappings OOB. User will >>>>> only >>>>> need to provide values such as database hosts, passwords, identity >>>>> management, etc which are user specific. >>>>> >>>>> The whole idea of this effort is to provide a better user experience. >>>>> >>>>> Thanks >>>>> >>>>>> >>>>>> IMO Docker images will not be able to run OOB on Kubernetes using >>>>>> wso2/puppet-modules and wso2/kubernetes-artifacts. There will anyway be >>>>>> changes related to the Kubernetes Membership Scheme in >>>>>> wso2/puppet-modules >>>>>> and in wso2/kubernetes-artifacts where environment dependent changes such >>>>>> as image names, SecureVault passwords, etc. need to be adjusted. >>>>>> >>>>>> >>>>>> Regards, >>>>>> Chamila de Alwis >>>>>> Committer and PMC Member - Apache Stratos >>>>>> Software Engineer | WSO2 | +94772207163 >>>>>> Blog: code.chamiladealwis.com >>>>>> >>>>>> >>>>>> >>>>>> On Mon, Apr 11, 2016 at 1:36 AM, Imesh Gunaratne <im...@wso2.com> >>>>>> wrote: >>>>>> >>>>>>> Hi Gayan, >>>>>>> >>>>>>> On Sun, Apr 10, 2016 at 5:02 PM, Gayan Gunarathne <gay...@wso2.com> >>>>>>> wrote: >>>>>>> >>>>>>>> IMO this will create maintainability issue. We need to maintain all >>>>>>>> the separate hieradata structure for each scenarios.For the one >>>>>>>> particular >>>>>>>> alternation we need to change whole set of files. >>>>>>>> >>>>>>> >>>>>>> In this scenario user experience is much more important than the >>>>>>> maintainability of few yaml files. If we do not do this, users will not >>>>>>> be >>>>>>> able to use puppet modules OOB until they manually update configuration >>>>>>> values in above files. The whole idea of this effort is to let users do >>>>>>> following: >>>>>>> >>>>>>> - Setup a K8S cluster >>>>>>> - Download puppet modules zip file(s). >>>>>>> - Download docker files >>>>>>> - Build docker images using puppet for different product profiles >>>>>>> - Deploy WSO2 product on K8S using K8S artifacts >>>>>>> >>>>>>> The above process will allow users to deploy any WSO2 product (with >>>>>>> mutlitple deployment patterns) on K8S with zero configurations. This >>>>>>> will >>>>>>> be true for any VM based platform or any other container cluster >>>>>>> management >>>>>>> system. >>>>>>> >>>>>> >>> Mainly the target users group of the puppet/hiera files will be system >>> administrators/Dev Ops. So those guys will be consider the fact the >>> maintainability of puppet/hiera files. So if this is a maintainability >>> issue, it will become bad experience for the end user in end of the day. >>> >>> >>>> >>>>>>>> Why can't we do this by using defined types in Hiera and lookup >>>>>>>> parameters for a given instance? Based on the identify keys we set >>>>>>>> for each vm, docker, K8S etc we can select the appropriate data >>>>>>>> set from Hiera file. >>>>>>>> >>>>>>> >>>>>>> Will you be able to provide a sample? >>>>>>> >>>>>> >>> >>> I think we can make this with with Defined Types[1][2] without creating >>> duplicate set of YAML files for each platform. We can do the same as the >>> example given in the document. >>> >> I do not think we need to duplicate the yaml files here. Sorry that the >> sample in the first reply sent by me implied so. What we can do is refactor >> out the hiera data so that data which is changing according to the platform >> (ex.: clustering section) can be moved to a different yaml file(s). For an >> example, clustering for kubernetes scenario can be included in >> *puppet-modules/hieradata/dev/wso2/kubernetes/clustering.yaml*. Here, >> 'kubernetes' is the value of the facter which is used to identify the >> environment. Similarly, other such data can be refactored out. >> >>> >>> [1] >>> https://docs.puppet.com/puppet/latest/reference/lang_defined_types.html >>> [2]http://puppetlunch.com/puppet/hiera.html >>> >>> >>>> >>>>>>> Thanks >>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Gayan >>>>>>>> >>>>>>>> >>>>>>>> On Sat, Apr 9, 2016 at 8:28 AM, Imesh Gunaratne <im...@wso2.com> >>>>>>>> wrote: >>>>>>>> >>>>>>>>> >>>>>>>>> On Fri, Apr 8, 2016 at 7:48 PM, Isuru Haththotuwa <isu...@wso2.com >>>>>>>>> > wrote: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> hieradata >>>>>>>>>> |--- dev >>>>>>>>>> |--- wso2 >>>>>>>>>> |---- <product_name> >>>>>>>>>> |--- <product_version> >>>>>>>>>> |-- *vm* >>>>>>>>>> |-- >>>>>>>>>> default.yaml >>>>>>>>>> |-- >>>>>>>>>> manager.yaml >>>>>>>>>> |-- >>>>>>>>>> worker.yaml >>>>>>>>>> |--* >>>>>>>>>> docker* >>>>>>>>>> |-- >>>>>>>>>> default.yaml >>>>>>>>>> |-- >>>>>>>>>> manager.yaml >>>>>>>>>> |-- >>>>>>>>>> worker.yaml >>>>>>>>>> |-- >>>>>>>>>> *kubernetes* >>>>>>>>>> |-- >>>>>>>>>> default.yaml >>>>>>>>>> |-- >>>>>>>>>> manager.yaml >>>>>>>>>> |-- >>>>>>>>>> worker.yaml >>>>>>>>>> >>>>>>>>>> >>>>>>>>> +1 for the suggestion Isuru, will proceed with this. We can add >>>>>>>>> other platforms such as OpenShift, Mesos, Cloud Foundry on the same >>>>>>>>> level. >>>>>>>>> >>>>>>>>> Thanks >>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> *Imesh Gunaratne* >>>>>>>>>>> Senior Technical Lead >>>>>>>>>>> WSO2 Inc: http://wso2.com >>>>>>>>>>> T: +94 11 214 5345 M: +94 77 374 2057 >>>>>>>>>>> W: http://imesh.io >>>>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Thanks and Regards, >>>>>>>>>> >>>>>>>>>> Isuru H. >>>>>>>>>> +94 716 358 048* <http://wso2.com/>* >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> *Imesh Gunaratne* >>>>>>>>> Senior Technical Lead >>>>>>>>> WSO2 Inc: http://wso2.com >>>>>>>>> T: +94 11 214 5345 M: +94 77 374 2057 >>>>>>>>> W: http://imesh.io >>>>>>>>> Lean . Enterprise . Middleware >>>>>>>>> >>>>>>>>> >>>>>>>>> _______________________________________________ >>>>>>>>> Dev mailing list >>>>>>>>> Dev@wso2.org >>>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> Gayan Gunarathne >>>>>>>> Technical Lead, WSO2 Inc. (http://wso2.com) >>>>>>>> Committer & PMC Member, Apache Stratos >>>>>>>> email : gay...@wso2.com | mobile : +94 775030545 >>>>>>>> <%2B94%20766819985> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Dev mailing list >>>>>>>> Dev@wso2.org >>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> *Imesh Gunaratne* >>>>>>> Senior Technical Lead >>>>>>> WSO2 Inc: http://wso2.com >>>>>>> T: +94 11 214 5345 M: +94 77 374 2057 >>>>>>> W: http://imesh.io >>>>>>> Lean . Enterprise . Middleware >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> Dev mailing list >>>>>>> Dev@wso2.org >>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Imesh Gunaratne* >>>>> Senior Technical Lead >>>>> WSO2 Inc: http://wso2.com >>>>> T: +94 11 214 5345 M: +94 77 374 2057 >>>>> W: http://imesh.io >>>>> Lean . Enterprise . Middleware >>>>> >>>>> >>>>> _______________________________________________ >>>>> Dev mailing list >>>>> Dev@wso2.org >>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>>> >>>>> >>>> >>>> >>>> -- >>>> Lakmal Warusawithana >>>> Director - Cloud Architecture; WSO2 Inc. >>>> Mobile : +94714289692 >>>> Blog : http://lakmalsview.blogspot.com/ >>>> >>>> >>>> _______________________________________________ >>>> Dev mailing list >>>> Dev@wso2.org >>>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>>> >>>> >>> >>> >>> -- >>> >>> Gayan Gunarathne >>> Technical Lead, WSO2 Inc. (http://wso2.com) >>> Committer & PMC Member, Apache Stratos >>> email : gay...@wso2.com | mobile : +94 775030545 <%2B94%20766819985> >>> >>> >>> >>> _______________________________________________ >>> Dev mailing list >>> Dev@wso2.org >>> http://wso2.org/cgi-bin/mailman/listinfo/dev >>> >>> >> >> >> -- >> 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 >> >> > > > -- > *Pubudu Gunatilaka* > Committer and PMC Member - Apache Stratos > Software Engineer > WSO2, Inc.: http://wso2.com > mobile : +94774078049 <%2B94772207163> > > > _______________________________________________ > Dev mailing list > Dev@wso2.org > http://wso2.org/cgi-bin/mailman/listinfo/dev > >
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev