Openstack object storage on ceph

This is mainly post for myself to not forget, what was done.

To configure Openstack to provide object storage service via Cpeh you need to create RadosGW server (or HA cluster).

On openstack utility node:

openstack user create ceph --password-prompt
openstack role add --user ceph --project admin admin

On ceph controller node, edit ceph.config file:

rgw_frontends = "civetweb port=80"
rgw keystone url = http://keystone_url:5000
rgw keystone admin user = ceph
rgw keystone admin password = secret
rgw keystone admin project = admin
rgw keystone admin domain = default
rgw keystone api version = 3
rgw keystone token cache size = 500
rgw keystone revocation interval = 500
rgw s3 auth use keystone = true
rgw keystone verify ssl = false
rgw keystone accepted roles =  admin, swift_admin

Note:swift_admin’ represents a additional role, which can be added to non-admin user for him to be able create containers in Object store.

Install radosGw:

ceph-deploy install --rgw radosgw1.domain.tld
ceph-deploy rgw create radosgw1.domain.tld

On opestack utility node:

openstack service create --name swift object-store

NOTE: ceph documentation is bit misleading. The command below:

keystone endpoint-create --service-id <id> --publicurl \
--internalurl --adminurl

Fails with openstack endpoint create: error: argument <interface>: invalid choice: error.
The solution is to create endpoints one-by-one:

openstack endpoint create --region RegionOne swift public http://radosgw1.domain.tld/swift/v1
openstack endpoint create --region RegionOne swift admin http://radosgw1.domain.tld/swift/v1
openstack endpoint create --region RegionOne swift internal http://radosgw1.domain.tld/swift/v1

About the Author

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.