[Crowbar] postgresql support
rhafer at suse.de
Wed Mar 28 09:12:17 CDT 2012
I am currently trying to figure out ways for adding support to deploy
openstack with PostgreSQL used as the database for keystone, glance etc.
For that I created a basic PostgreSQL barclamp (based on the postgresql
cookbook in https://github.com/opscode/cookbooks).
However, I'd like to avoid bloating the barclamps that currently use the
mysql_database chef-resource for e.g. creating databases (such as
keystone, glance, nove and dashboard) with too many
if node[:keystone][:sql_engine] == "postgresql"
branches to call the new postgresql_database chef-resource I created.
One way to achieve that seems to be to create a new resource say
"openstack_database" that provides the needed actions (e.g. create_db,
create_user) and create two separate providers for that resource
(openstack_postgresqldb and openstack_mysqldb), which would just map to
the specific resources from the mysql and postgresql cookbooks. That way
it should be possible to make large parts of the current mysql specific
code independent of the actually used database implementation by
replacing the mysql_database invocations with calls to openstack_database
(+ setting the "provider" attribute to the correct implementation). Does
that make sense? Are there better ways to achieve this?
More information about the Crowbar