Ceph RBD integration for openstack-block-storage

This allows using a Ceph cluster as cinder backend.  The necessary
dependencies are defined in platform_options['cinder_ceph_packages'] and
can be overridden.

Overall documentation on Ceph integration has to be added, I'd be glad
to help with that.

This changes the way secrets are handled:

openstack[block-storage][rbd_secret_name]  will fetch the secret uuid
shared between cinder and nova from the databag with that name and set the
openstack[block-storage][rbd_secret_uuid] attribute.

Besides that, the user is expected to provide the password for the cephx
user, `rbd_user`, used with the pool `rbd_pool`, in the data bag item
`rbd_key_name` in the service password data bag.

Implements: blueprint rbd-for-block-storage

Change-Id: Iafe2bdea0d6120bb08c027482c94d819a67aee4a
This commit is contained in:
Stephan Renatus
2014-01-31 11:34:03 +01:00
parent 1046b36710
commit c859d9fdcc
4 changed files with 99 additions and 10 deletions

View File

@@ -36,12 +36,18 @@ def block_storage_stubs # rubocop:disable MethodLength
::Chef::Recipe.any_instance.stub(:secret)
.with('secrets', 'openstack_identity_bootstrap_token')
.and_return('bootstrap-token')
::Chef::Recipe.any_instance.stub(:secret)
.with('secrets', 'rbd_secret_uuid')
.and_return('b0ff3bba-e07b-49b1-beed-09a45552b1ad')
::Chef::Recipe.any_instance.stub(:get_password)
.with('user', 'guest')
.and_return('rabbit-pass')
::Chef::Recipe.any_instance.stub(:get_password)
.with('service', 'openstack-block-storage')
.and_return('cinder-pass')
::Chef::Recipe.any_instance.stub(:get_password)
.with('service', 'openstack_image_cephx_key')
.and_return('cephx-key')
::Chef::Application.stub(:fatal!)
end