As per the weekly meeting today [1] we have agreed to add a new section to the spec template for changes that affect the IPA ramdisk. [1] http://eavesdrop.openstack.org/meetings/ironic/2016/ironic.2016-05-23-17.00.log.txt Change-Id: I0f62e233dc7f2ad3e9940439f8ad7740de5e65c9
3.5 KiB
Ceph Object Gateway Temp URL support
https://bugs.launchpad.net/ironic/+bug/1526395
This adds support of Ceph Object Gateway (RADOS Gateway) temporary URL format.
Problem description
Ceph project is a powerful distributed storage system. It contains object store with OpenStack Swift compatible API. Glance image service can use Ceph storage via RADOS Gateway Swift API. Ironic does not currently support deploy configuration with Glance and RADOS Gateway. The reason is different format of temporary URL. First part of temporary URL for RADOS Gateway with Glance frontend is "endpoint_url/api_version/container/object_id", where
- "endpoint_url" contains scheme, hostname, optional port and mandatory "/swift" suffix.
- "api_version" is "v1" currently.
- "container" is the name of Glance container.
- "object_id" is Glance object id.
Calculation of parameters "temp_url_sig" and "temp_url_expires" is mostly the same as in Swift, so full URL looks like
"https://radosgw.my.host/swift/v1/glance/22aee8e5-cba3-4554-92c4aadde5e38f28? temp_url_sig=e75d1d6facb53d795547b1fc60eca4e8836bd503 &temp_url_expires=1443518434"
"temp_url_sig" calculation should not use "/swift" in the path.
OpenStack Swift temporary URL contains extra account parameter, it's account that Glance uses to communicate with Swift. "swift_account" parameter is mandatory for Ironic.
Note
Do not use Python code as reference from http://docs.ceph.com/docs/master/radosgw/swift/tempurl/ it does not create valid URL's, for Firefly release at least.
Proposed change
A new configuration parameter temp_url_endpoint_type
will be added to the glance
group. It can be set to values
"swift" or "radosgw", "swift" is default. Code of image service in
Ironic will be changed for supporting both of endpoints (parameters set,
mandatory suffix for RADOS Gateway).
Alternatives
None
Data model impact
None
State Machine Impact
None
REST API impact
None
Client (CLI) impact
None
RPC API impact
None
Driver API impact
None
Nova driver impact
None
Ramdisk impact
N/A
Security impact
None
Other end user impact
None
Scalability impact
None
Performance Impact
None
Other deployer impact
- A new config option
temp_url_endpoint_type
will be added inglance
group. - Deployer should configure Glance with RADOS Gateway beckend (via Swift API) and Ceph storage.
Developer impact
None
Implementation
Assignee(s)
- Primary assignee:
-
yuriyz
Work Items
- Implement Rados GW support.
- Add unit tests.
Dependencies
None
Testing
Unittests will be added.
Upgrades and Backwards Compatibility
None
Documentation Impact
Usage of Ironic with Rados Gateway as Glance backend will be documented.