Trove Charm¶
To add a service to Openstack to provide on-demand databases.
Problem Description¶
As a cloud user I need be able to deploy a database that is scalable and reliable quickly and easily without the burden of handling complex administrative tasks.
Proposed Change¶
One new charm - Trove with corresponding tests and QA CI/setup.
The new Trove charm should include, as a minimum, the following features:
Deployable in a highly available configuration
Allow clients and services to interact using SSL encryption
Charm progress displayed via workload status
Alternatives¶
juju deploy {mysql,percona-cluster,cassandra,etc}
Implementation¶
Assignee(s)¶
- Primary assignee:
unknown
Gerrit Topic¶
Use Gerrit topic “trove” for all patches related to this spec.
git-review -t trove
Work Items¶
Provide Trove charm¶
Create skeleton charm layer based on OpenStack base layer and available interface layers to deploy Trove.
Add support for upgrading Trove
Add config option and accompanying support for upgrades via action-managed-upgrade.
Add support for deploying Trove in a highly available configuration
Add support for the Trove to display workload status
Add support SSL endpoints
Charm should have unit and functional tests.
Mojo specification deploying and testing Trove¶
Write Mojo spec for deploying Trove in an HA configuration and testing creation of databases.
Repositories¶
A new git repository will be required for the Trove charm:
https://git.openstack.org/openstack/charm-trove
Documentation¶
The Trove charm should contain a README with instructions on deploying the charm. A blog post is optional but would be a useful addition.
Security¶
No additional security concerns.
Testing¶
Code changes will be covered by unit tests; functional testing will be done using a combination of Amulet, Bundle tester and Mojo specification.
Dependencies¶
Provide rabbitmq interface layer
Provide mysql-shared interface layer
Provide pgsql interface layer
Provide keystone interface layer
Provide hacluster interface layer
Provide nrpe-external-master interface layer
Provide OpenStack base layer with all common hook code that is not already covered by an interface layer.
Provide OpenStack base layer with support for HA deployments
Provide OpenStack base layer with support for SSL communication
Provide OpenStack base layer with support for workload status