Ceph project is a powerful distributed storage system. It contains object store and provides a RADOS Gateway Swift API which is compatible with OpenStack Swift API. These two APIs use different formats for their temporary URLs.
Ironic added support for RADOS Gateway temporary URL in the Mitaka release.
Install Ceph storage with RADOS Gateway. See Ceph documentation.
Create RADOS Gateway credentials for Glance by executing the following commands on the RADOS Gateway admin host:
sudo radosgw-admin user create --uid="GLANCE_USERNAME" --display-name="User for Glance"
sudo radosgw-admin subuser create --uid=GLANCE_USERNAME --subuser=GLANCE_USERNAME:swift --access=full
sudo radosgw-admin key create --subuser=GLANCE_USERNAME:swift --key-type=swift --secret=STORE_KEY
sudo radosgw-admin user modify --uid=GLANCE_USERNAME --temp-url-key=TEMP_URL_KEY
Replace GLANCE_USERNAME with a user name for Glance access, and replace STORE_KEY and TEMP_URL_KEY with suitable keys.
Note: Do not use “–gen-secret” CLI parameter because it will cause the “radosgw-admin” utility to generate keys with slash symbols which do not work with Glance.
Configure Glance API service for RADOS Swift API as backend. Edit the
configuration file for the Glance API service (is typically located at
/etc/glance/glance-api.conf
). Replace RADOS_IP and PORT with the IP/port
of the RADOS Gateway API service:
[glance_store]
stores = file, http, swift
default_store = swift
swift_store_auth_version = 1
swift_store_auth_address = http://RADOS_IP:PORT/auth/1.0
swift_store_user = GLANCE_USERNAME:swift
swift_store_key = STORE_KEY
swift_store_container = glance
swift_store_create_container_on_put = True
Note: RADOS Gateway uses FastCGI protocol for interacting with HTTP server. Read your HTTP server documentation if you want to enable HTTPS support.
Restart Glance API service and upload all needed images.
Change Ironic configuration file on the conductor host(s) as follows:
[glance]
swift_container = glance
swift_api_version = v1
swift_endpoint_url = http://RADOS_IP:PORT
swift_temp_url_key = TEMP_URL_KEY
[deploy]
object_store_endpoint_type = radosgw
Restart Ironic conductor service(s).
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.