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-cartridge-on-apache-stratos.html 4. https://github.com/apache/stratos/pull/9 Thanks. -- Rajkumar Rajaratnam Software Engineer | WSO2, Inc. Mobile +94777568639 | +94783498120