Keep it decoupled as suggested below has its advantages. -----Original Message----- From: chris snow [mailto:[email protected]] Sent: Tuesday, August 05, 2014 9:39 AM To: dev Subject: Re: PostgreSQL Cartridge for Apache Stratos
Hi Devs - does anyone else have a view on this approach? On Tue, Aug 5, 2014 at 2:37 PM, Rajkumar Rajaratnam <[email protected]> wrote: > Hi Chris, > > I will come up with a solution using puppet module tool. > > Thanks. > > > On Tue, Aug 5, 2014 at 6:47 PM, chris snow <[email protected]> wrote: >> >> Hi Rajkumar - using the puppet module tool makes more sense to me. >> >> On Tue, Aug 5, 2014 at 10:46 AM, Rajkumar Rajaratnam >> <[email protected]> >> wrote: >> > Hi Chris, >> > >> > Yes, it is maintained in git repo too. >> > >> > What if we do like this. >> > >> > Let's not include any of the puppet forge modules in Apache Stratos. >> > >> > There is something called "puppet module tool" [1] in puppet. We >> > can use this to download puppet forge modules. >> > >> > While we install puppet master, we can use this "puppet module >> > tool" to download whatever puppet forge modules we need, and put >> > them into modules directory automatically. >> > >> > This way, we don't need to include any of the puppet forge modules >> > in stratos code base and we are guarantee to have the latest puppet >> > forge modules too. >> > >> > 1. >> > >> > https://docs.puppetlabs.com/puppet/latest/reference/modules_install >> > ing.html >> > >> > Thanks. >> > >> > >> > >> > On Tue, Aug 5, 2014 at 2:53 PM, chris snow <[email protected]> wrote: >> >> >> >> Hi Rajkumar, that is still quite a lot of files for the team to >> >> keep in sync with upstream. Are the upstream files in a git repo? >> >> Are the upstream files modified for stratos or just copied without >> >> any change? >> >> >> >> On Tue, Aug 5, 2014 at 9:55 AM, Rajkumar Rajaratnam >> >> <[email protected]> >> >> wrote: >> >> > Hi, >> >> > >> >> > I have removed all test files and meta data files that we don't need. >> >> > Number >> >> > of files are 200 now. >> >> > >> >> > These are the basic/utility modules from Puppet Laps. >> >> > >> >> > puppetlabs/stdlib >> >> > puppetlabs/apt >> >> > puppetlabs/concat >> >> > >> >> > Almost every single puppet module in puppet forge has >> >> > dependencies to one or more of these utility modules. >> >> > >> >> > PostgreSQL also depends on these utility modules. >> >> > >> >> > We may not need to include any additional modules if we are >> >> > utilizing any other modules in future. >> >> > >> >> > For example, if we are using their nodejs module, it also has >> >> > these dependencies. Hence, IMO, it is worth to have these modules. >> >> > >> >> > Pull request is updated now. >> >> > >> >> > https://github.com/apache/stratos/pull/10 >> >> > >> >> > Someone may review it. >> >> > >> >> > If this is not the right way of doing, lets discuss for an >> >> > alternative. >> >> > >> >> > Thanks. >> >> > >> >> > >> >> > On Mon, Aug 4, 2014 at 11:15 PM, Rajkumar Rajaratnam >> >> > <[email protected]> >> >> > wrote: >> >> >> >> >> >> And, >> >> >> >> >> >> 672 files are new files. Changed only nodes.pp >> >> >> >> >> >> Thanks. >> >> >> >> >> >> >> >> >> On Mon, Aug 4, 2014 at 11:09 PM, Rajkumar Rajaratnam >> >> >> <[email protected]> >> >> >> wrote: >> >> >>> >> >> >>> Hi Akila, >> >> >>> >> >> >>> I am using PostgreSQL puppet module from Puppet Laps. This >> >> >>> module has dependency to another 4 modules of them. We need to >> >> >>> have all. We can edit their modules and remove unwanted files. >> >> >>> But it will be very hard to sync with their libraries in >> >> >>> future (for example, if we want to update their modules, we >> >> >>> may have to do it manually again). >> >> >>> >> >> >>> Actually 664 files are coming from their libraries. What >> >> >>> should I do? >> >> >>> >> >> >>> Thanks. >> >> >>> >> >> >>> >> >> >>> On Mon, Aug 4, 2014 at 10:58 PM, Akila Ravihansa Perera >> >> >>> <[email protected]> wrote: >> >> >>>> >> >> >>>> Hi Rajkumar, >> >> >>>> >> >> >>>> Nice work. >> >> >>>> >> >> >>>> But there are 673 files changed in your PR. Something is not >> >> >>>> right. >> >> >>>> Can you create a JIRA for this and attach the patch? >> >> >>>> >> >> >>>> Thanks. >> >> >>>> >> >> >>>> On Mon, Aug 4, 2014 at 10:39 PM, Rajkumar Rajaratnam >> >> >>>> <[email protected]> wrote: >> >> >>>> > Hi, >> >> >>>> > >> >> >>>> > Pull request link is >> >> >>>> > https://github.com/apache/stratos/pull/10 >> >> >>>> > >> >> >>>> > Thanks. >> >> >>>> > >> >> >>>> > >> >> >>>> > On Mon, Aug 4, 2014 at 10:35 PM, Rajkumar Rajaratnam >> >> >>>> > <[email protected]> >> >> >>>> > wrote: >> >> >>>> >> >> >> >>>> >> Hi Devs, >> >> >>>> >> >> >> >>>> >> I have created a PostgreSQL cartridge [3] for Apache Stratos. >> >> >>>> >> It >> >> >>>> >> consists >> >> >>>> >> of 2 modules. >> >> >>>> >> >> >> >>>> >> PostgreSQL server >> >> >>>> >> phpPgAdmin web interface >> >> >>>> >> >> >> >>>> >> >> >> >>>> >> PostgreSQL server >> >> >>>> >> >> >> >>>> >> I have utilized PostgreSQL puppet module [1] from puppet >> >> >>>> >> laps and plugged in my phpPgAdmin module[2] to come up >> >> >>>> >> with a PostgreSQL cartridge. >> >> >>>> >> >> >> >>>> >> Puppet laps' PostgreSQL module has several great features. >> >> >>>> >> Some of them are, >> >> >>>> >> >> >> >>>> >> configure and manage PostgreSQL server (for example, who >> >> >>>> >> can access and/or from where) creating and managing >> >> >>>> >> databases managing users, roles and permissions install >> >> >>>> >> PostgreSQL bindings for languages such as java (JDBC), >> >> >>>> >> Perl and Python. >> >> >>>> >> >> >> >>>> >> There are more, you may refer [1] for the complete >> >> >>>> >> documentation. >> >> >>>> >> >> >> >>>> >> phpPgAdmin Web Interface >> >> >>>> >> >> >> >>>> >> I have developed a phpPgAdmin puppet module [2] for >> >> >>>> >> PostgreSQL server management through browsers. >> >> >>>> >> >> >> >>>> >> Usage >> >> >>>> >> >> >> >>>> >> Everything is documented in more detail here [3]. >> >> >>>> >> >> >> >>>> >> Sample cartridge deployment would looks like below in an >> >> >>>> >> openstack environment, >> >> >>>> >> >> >> >>>> >> { >> >> >>>> >> "type": "postgresql", >> >> >>>> >> "provider": "data", >> >> >>>> >> "host": "stratos.com", >> >> >>>> >> "displayName": "postgresql", >> >> >>>> >> "description": "postgresql Cartridge", >> >> >>>> >> "version": "9.1", >> >> >>>> >> "multiTenant": "false", >> >> >>>> >> "portMapping": [ >> >> >>>> >> { >> >> >>>> >> "protocol": "http", >> >> >>>> >> "port": "5432", >> >> >>>> >> "proxyPort": "80" >> >> >>>> >> } >> >> >>>> >> ], >> >> >>>> >> "deployment": {}, >> >> >>>> >> "iaasProvider": [ >> >> >>>> >> { >> >> >>>> >> "type": "openstack", >> >> >>>> >> "imageId": >> >> >>>> >> "RegionOne/f2ddf72a-4e76-4893-a9fa-e5f4352f1a86", >> >> >>>> >> "property": [ >> >> >>>> >> { >> >> >>>> >> "name": "instanceType", >> >> >>>> >> "value": "RegionOne/3" >> >> >>>> >> }, >> >> >>>> >> { >> >> >>>> >> "name": "keyPair", >> >> >>>> >> "value": "raj-openstack" >> >> >>>> >> }, >> >> >>>> >> { >> >> >>>> >> "name": "securityGroups", >> >> >>>> >> "value": "all-open" >> >> >>>> >> } >> >> >>>> >> ] >> >> >>>> >> } >> >> >>>> >> ] >> >> >>>> >> } >> >> >>>> >> >> >> >>>> >> Sample node definition (in nodes.pp) would looks like, >> >> >>>> >> >> >> >>>> >> # postgresql cartridge node node /postgresql/ inherits >> >> >>>> >> base { require java class {'agent':} >> >> >>>> >> >> >> >>>> >> class { 'postgresql::server': >> >> >>>> >> ip_mask_deny_postgres_user => '0.0.0.0/32', >> >> >>>> >> ip_mask_allow_all_users => '0.0.0.0/0', listen_addresses >> >> >>>> >> => '*', manage_firewall => true, postgres_password => >> >> >>>> >> 'postgres' >> >> >>>> >> } >> >> >>>> >> >> >> >>>> >> postgresql::server::db { 'stratos-postgres-sample': >> >> >>>> >> user => 'root', >> >> >>>> >> password => postgresql_password('root', 'root'), } >> >> >>>> >> >> >> >>>> >> class {'phppgadmin': >> >> >>>> >> db_host => 'localhost', >> >> >>>> >> db_port => '5432', >> >> >>>> >> owned_only => false, >> >> >>>> >> extra_login_security => false } >> >> >>>> >> >> >> >>>> >> Class['postgresql::server']->Class['phppgadmin']~> >> >> >>>> >> Class['agent'] >> >> >>>> >> } >> >> >>>> >> >> >> >>>> >> I have sent pull request 4.0.0 >> >> >>>> >> >> >> >>>> >> Can someone review and merge the pull request [4]? >> >> >>>> >> >> >> >>>> >> 1. https://forge.puppetlabs.com/puppetlabs/postgresql >> >> >>>> >> 2. https://github.com/R-Rajkumar/phppgadmin.git >> >> >>>> >> 3. >> >> >>>> >> >> >> >>>> >> >> >> >>>> >> >> >> >>>> >> http://blog.rajkumarr.com/2014/08/using-postgresql-cartrid >> >> >>>> >> ge-on-apache-stratos.html 4. >> >> >>>> >> https://github.com/apache/stratos/pull/9 >> >> >>>> >> >> >> >>>> >> Thanks. >> >> >>>> >> >> >> >>>> >> -- >> >> >>>> >> Rajkumar Rajaratnam >> >> >>>> >> Software Engineer | WSO2, Inc. >> >> >>>> >> Mobile +94777568639 | +94783498120 >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> > -- >> >> >>>> > Rajkumar Rajaratnam >> >> >>>> > Software Engineer | WSO2, Inc. >> >> >>>> > Mobile +94777568639 | +94783498120 >> >> >>>> >> >> >>>> >> >> >>>> >> >> >>>> -- >> >> >>>> Akila Ravihansa Perera >> >> >>>> Software Engineer >> >> >>>> WSO2 Inc. >> >> >>>> http://wso2.com >> >> >>>> >> >> >>>> Phone: +94 77 64 154 38 >> >> >>>> Blog: http://ravihansa3000.blogspot.com >> >> >>> >> >> >>> >> >> >>> >> >> >>> >> >> >>> -- >> >> >>> Rajkumar Rajaratnam >> >> >>> Software Engineer | WSO2, Inc. >> >> >>> Mobile +94777568639 | +94783498120 >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> Rajkumar Rajaratnam >> >> >> Software Engineer | WSO2, Inc. >> >> >> Mobile +94777568639 | +94783498120 >> >> > >> >> > >> >> > >> >> > >> >> > -- >> >> > Rajkumar Rajaratnam >> >> > Software Engineer | WSO2, Inc. >> >> > Mobile +94777568639 | +94783498120 >> > >> > >> > >> > >> > -- >> > Rajkumar Rajaratnam >> > Software Engineer | WSO2, Inc. >> > Mobile +94777568639 | +94783498120 > > > > > -- > Rajkumar Rajaratnam > Software Engineer | WSO2, Inc. > Mobile +94777568639 | +94783498120
