3.2 KiB
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