heat/contrib/rackspace/README.md
Miguel Grinberg e7d9c4dfe2 Move the heat_keystoneclient_v2 contrib package
As discussed in the Vancouver summit, the only known user of the
heat_keystoneclient_v2 contrib package is Rackspace, so it was agreed to
merge it with contrib/rackspace package.

Change-Id: I8a069275d5ea3f3913b6f8ae8c6fc48b69861551
2015-06-09 17:57:28 -07:00

59 lines
2.0 KiB
Markdown

# Heat resources for working with the Rackspace Cloud
The resources and configuration in this module are for using Heat with the Rackspace Cloud. These resources either
allow using Rackspace services that don't have equivalent services in OpenStack or account for differences between
a generic OpenStack deployment and Rackspace Cloud.
This package also includes a Keystone V2 compatible client plugin, that can be used in place of the default client
for clouds running older versions of Keystone.
## Installation
### 1. Install the Rackspace plugins in Heat
NOTE: These instructions assume the value of heat.conf plugin_dirs includes the
default directory /usr/lib/heat.
- To install the plugin, from this directory run:
sudo python ./setup.py install
- (Optional) If you want to enable the Keystone V2 client plugin, set the `keystone_backend` option to
`heat.engine.plugins.heat_keystoneclient_v2.client.KeystoneClientV2`
### 2. Restart heat
Only the process "heat-engine" needs to be restarted to load the newly installed
plugin.
## Resources
The following resources are provided for compatibility:
* `Rackspace::Cloud::Server`:
>Provide compatibility with `OS::Nova::Server` and allow for working `user_data` and `Metadata`. This is deprecated and should be replaced with `OS::Nova::Server` once service compatibility is implemented by Rackspace.
* `Rackspace::Cloud::LoadBalancer`:
>Use the Rackspace Cloud Loadbalancer service; not compatible with `OS::Neutron::LoadBalancer`.
### Usage
#### Templates
#### Configuration
## Heat Keystone V2
Note that some forward compatibility decisions had to be made for the Keystone V2 client plugin:
* Stack domain users are created as users on the stack owner's tenant
rather than the stack's domain
* Trusts are not supported
### How it works
By setting the `keystone_backend` option, the KeystoneBackend class in
`heat/common/heat_keystoneclient.py` will instantiate the plugin
KeystoneClientV2 class and use that instead of the default client in
`heat/common/heat_keystoneclient.py`.