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