Mistral Charm

To add a service to Openstack to set up and manage on-schedule jobs for multiple machine.

Problem Description

As a cloud administrator I have maintenance jobs that I’d like to be run against the cloud. I want to ble to set up and manage on-schedule jobs for multiple machines. I’d like a single point of control over their schedule.

As a devops engineer I’d like to be able to specify workflows needed for deploying environments consisting of multiple VMs and applications.

As a business process enforcer I’d like to be able to make a request to run a complex multi-step business process and have it be fault-tolerant so that if the execution crashes at some point on one node then another active node of the system can automatically take on and continue from the exact same point where it stopped.

As a data analyst I need a tool for data crawling. Eg I’d like to be able to express as a graph the related tasks I need in order to prepare a financial report.

Proposed Change

One new charm - Mistral with corresponding tests and QA CI/setup.

The new Mistral 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

Jobs could scheduled manually via cron on each machine.

Implementation

Assignee(s)

Primary assignee:

unknown

Gerrit Topic

Use Gerrit topic “mistral” for all patches related to this spec.

git-review -t mistral

Work Items

Provide Mistral charm

  • Create skeleton charm layer based on OpenStack base layer and available interface layers to deploy Mistral.

  • Add support for upgrading Mistral

  • Add config option and accompanying support for upgrades via action-managed-upgrade.

  • Add support for deploying Mistral in a highly available configuration

  • Add support for the Mistral to display workload status

  • Add support SSL endpoints

  • Charm should have unit and functional tests.

Mojo specification deploying and testing Mistral

  • Write Mojo spec for deploying Mojo in an HA configuration and testing creation of jobs.

Repositories

A new git repository will be required for the Mistral charm:

https://git.openstack.org/openstack/charm-mistral

Documentation

The Mistral 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