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:
[bash]
openstack user create ceph –password-prompt
openstack role add –user ceph –project admin admin
[/bash]
On ceph controller node, edit ceph.config file:
/etc/ceph/ceph.conf
[bash]
[client.rgw.radosgw1.domain.tld]
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
[/bash]
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:
[bash]
ceph-deploy install –rgw radosgw1.domain.tld
ceph-deploy rgw create radosgw1.domain.tld
[/bash]
On opestack utility node:
[bash]
openstack service create –name swift object-store
[/bash]
NOTE: ceph documentation is bit misleading. The command below:
[bash]
keystone endpoint-create –service-id <id> –publicurl http://radosgw.example.com/swift/v1 \
–internalurl http://radosgw.example.com/swift/v1 –adminurl http://radosgw.example.com/swift/v1
[/bash]
Fails with openstack endpoint create: error: argument <interface>: invalid choice: error.
The solution is to create endpoints one-by-one:
[bash]
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
[/bash]