sahara/doc/source/reference/plugins.rst
Luigi Toscano a70a74aa23 Restructure the documentation according the new spec
Group the existing pages in the new top-level categories; each
category can be seen as a separate document and it has its own
index file.
The content of the pages was not changed, with the obvious
exception of the links between pages.

The autogenerated configuration has not been added yet to
configuration/; it will be fixed in a future commit.

At the same time, as suggested by the doc team, consistently
use only one separator in file names (dash, '-') instead of a mix
of dashes, dots and underscores. This may break even more links on
the Internet, but we are breaking them anyway by moving files.
Redirects can be set, but not in this commit.

Closes-Bug: #1706184
Change-Id: I5a10378d9da2603d617ad4193ea8d90e2afc5104
2017-08-04 18:05:40 +02:00

1.2 KiB

Pluggable Provisioning Mechanism

Sahara can be integrated with 3rd party management tools like Apache Ambari and Cloudera Management Console. The integration is achieved using the plugin mechanism.

In short, responsibilities are divided between the Sahara core and a plugin as follows. Sahara interacts with the user and uses Heat to provision OpenStack resources (VMs, baremetal servers, security groups, etc.) The plugin installs and configures a Hadoop cluster on the provisioned instances. Optionally, a plugin can deploy management and monitoring tools for the cluster. Sahara provides plugins with utility methods to work with provisioned instances.

A plugin must extend the sahara.plugins.provisioning:ProvisioningPluginBase class and implement all the required methods. Read plugin-spi for details.

The instance objects provided by Sahara have a remote property which can be used to interact with instances. The remote is a context manager so you can use it in with instance.remote: statements. The list of available commands can be found in sahara.utils.remote.InstanceInteropHelper. See the source code of the Vanilla plugin for usage examples.