)]}'
{"specs/pike/approved/ironic-instance-raid-configuration.rst":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"335476bcdea0820edc150595fa5db85d761c8a38","unresolved":false,"context_lines":[{"line_number":48,"context_line":"users can configure a software RAID in the guest now)."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Compute API will define a common RAID configuration format to be used by virt"},{"line_number":51,"context_line":"drivers (similar to or based on `Ironic RAID configuration JSON schema`_)."},{"line_number":52,"context_line":"Validation of the given configuration will be performed on receiving a POST"},{"line_number":53,"context_line":"request to boot a new instance to check it\u0027s a valid JSON according to the"},{"line_number":54,"context_line":"defined schema."}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a71b18c_e9824f51","line":51,"range":{"start_line":51,"start_character":8,"end_line":51,"end_character":73},"updated":"2016-12-12 13:11:15.000000000","message":"I think it makes sense to not implement the whole Ironic schema. Particularly, I don\u0027t think we should implement driver-specific or node-specific fields like RAID controller and precise disk listing. In terms of properties listed in http://specs.openstack.org/openstack/ironic-specs/specs/5.0/ironic-generic-raid-interface.html#proposed-change, we implement groups 1-3, but not group 4 (\"Backing physical disks\").","commit_id":"b9467886e947a266a396eb6fdedb15e883feb2dc"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"e0d4e8db00f0e5e724678f88c9451982044cac2d","unresolved":false,"context_lines":[{"line_number":48,"context_line":"users can configure a software RAID in the guest now)."},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"Compute API will define a common RAID configuration format to be used by virt"},{"line_number":51,"context_line":"drivers (similar to or based on `Ironic RAID configuration JSON schema`_)."},{"line_number":52,"context_line":"Validation of the given configuration will be performed on receiving a POST"},{"line_number":53,"context_line":"request to boot a new instance to check it\u0027s a valid JSON according to the"},{"line_number":54,"context_line":"defined schema."}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a6eadb0_17bf19fc","line":51,"range":{"start_line":51,"start_character":8,"end_line":51,"end_character":73},"in_reply_to":"3a71b18c_e9824f51","updated":"2016-12-13 17:04:26.000000000","message":"That\u0027s an interesting point. I\u0027m all for keeping a reasonable level of flexibility, just wasn\u0027t sure if people are ok with  not being able to \"configure everything\" :P","commit_id":"b9467886e947a266a396eb6fdedb15e883feb2dc"},{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"335476bcdea0820edc150595fa5db85d761c8a38","unresolved":false,"context_lines":[{"line_number":248,"context_line":""},{"line_number":249,"context_line":"* add support for the new API microversion to python-novaclient"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"* add a new test case to Tempest to be executed in the Ironic runs, which will"},{"line_number":252,"context_line":"  boot a baremetal instance passing a RAID configuration"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"* update docs (see the Documentation Impact section below for details)"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"3a71b18c_0964ebb6","line":252,"range":{"start_line":251,"start_character":0,"end_line":252,"end_character":56},"updated":"2016-12-12 13:11:15.000000000","message":"unfortunately, this will probably not be possible. currently, RAID in ironic is vendor-specific, implemented only by a few vendors. there is no implementation for generic case (like virtual machines).","commit_id":"b9467886e947a266a396eb6fdedb15e883feb2dc"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"e0d4e8db00f0e5e724678f88c9451982044cac2d","unresolved":false,"context_lines":[{"line_number":248,"context_line":""},{"line_number":249,"context_line":"* add support for the new API microversion to python-novaclient"},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"* add a new test case to Tempest to be executed in the Ironic runs, which will"},{"line_number":252,"context_line":"  boot a baremetal instance passing a RAID configuration"},{"line_number":253,"context_line":""},{"line_number":254,"context_line":"* update docs (see the Documentation Impact section below for details)"},{"line_number":255,"context_line":""}],"source_content_type":"text/x-rst","patch_set":2,"id":"1a6eadb0_d772017c","line":252,"range":{"start_line":251,"start_character":0,"end_line":252,"end_character":56},"in_reply_to":"3a71b18c_0964ebb6","updated":"2016-12-13 17:04:26.000000000","message":"Ah, good to know, thanks! I\u0027ll keep this in mind. We\u0027ll see what we can do about it.","commit_id":"b9467886e947a266a396eb6fdedb15e883feb2dc"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"6fca4b7db661853bef990055848bd98d256801be","unresolved":false,"context_lines":[{"line_number":23,"context_line":"to be admin-only API and the one users face is actually OpenStack Compute API,"},{"line_number":24,"context_line":"thus, there should be a way for them to configure the very same thing via Nova."},{"line_number":25,"context_line":"Other virt drivers may or may not need this and are currently out of the scope"},{"line_number":26,"context_line":"of this spec (it\u0027s interesting that public cloud providers actually mention"},{"line_number":27,"context_line":"configuration of RAID for **virtual** machines in their docs"},{"line_number":28,"context_line":"(`RAID configuration in AWS EC2`_), but it\u0027s entirely a user concern:"},{"line_number":29,"context_line":"a software RAID is configured within the guest OS after an instance is booted)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa31d9ce_09080c91","line":26,"updated":"2017-02-16 20:02:52.000000000","message":"just some nits.\n\ns/spec (it\u0027s/spec. (It\u0027s/\n\nI would consider removing the parentheses because you have parens (L28) in parens.","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"18b0279ec931fc783f4e73055247fa33d0002429","unresolved":false,"context_lines":[{"line_number":23,"context_line":"to be admin-only API and the one users face is actually OpenStack Compute API,"},{"line_number":24,"context_line":"thus, there should be a way for them to configure the very same thing via Nova."},{"line_number":25,"context_line":"Other virt drivers may or may not need this and are currently out of the scope"},{"line_number":26,"context_line":"of this spec (it\u0027s interesting that public cloud providers actually mention"},{"line_number":27,"context_line":"configuration of RAID for **virtual** machines in their docs"},{"line_number":28,"context_line":"(`RAID configuration in AWS EC2`_), but it\u0027s entirely a user concern:"},{"line_number":29,"context_line":"a software RAID is configured within the guest OS after an instance is booted)."}],"source_content_type":"text/x-rst","patch_set":4,"id":"da36d5c6_226312de","line":26,"in_reply_to":"fa31d9ce_09080c91","updated":"2017-02-21 19:37:23.000000000","message":"Done","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"6fca4b7db661853bef990055848bd98d256801be","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    * existing BDM destination types (``local`` and ``volume``) are used to"},{"line_number":80,"context_line":"      describe instance ephemeral disks or attached volumes. In case of"},{"line_number":81,"context_line":"      baremetal instances we can\u0027t create such disks on demand - they are"},{"line_number":82,"context_line":"      either present on the node at the boot time or not, and as of now Nova"},{"line_number":83,"context_line":"      only knows about the node disk total size (``root_gb``), not about the"},{"line_number":84,"context_line":"      exact configuration of disks. Thus, an end user would need to pass a"},{"line_number":85,"context_line":"      dummy BDM destination to set a RAID tag upon, only so that this info can"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa31d9ce_693ee82a","line":82,"updated":"2017-02-16 20:02:52.000000000","message":"nit s/at the boot/at boot/","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"18b0279ec931fc783f4e73055247fa33d0002429","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    * existing BDM destination types (``local`` and ``volume``) are used to"},{"line_number":80,"context_line":"      describe instance ephemeral disks or attached volumes. In case of"},{"line_number":81,"context_line":"      baremetal instances we can\u0027t create such disks on demand - they are"},{"line_number":82,"context_line":"      either present on the node at the boot time or not, and as of now Nova"},{"line_number":83,"context_line":"      only knows about the node disk total size (``root_gb``), not about the"},{"line_number":84,"context_line":"      exact configuration of disks. Thus, an end user would need to pass a"},{"line_number":85,"context_line":"      dummy BDM destination to set a RAID tag upon, only so that this info can"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da36d5c6_a2a54205","line":82,"in_reply_to":"fa31d9ce_693ee82a","updated":"2017-02-21 19:37:23.000000000","message":"Done","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"6fca4b7db661853bef990055848bd98d256801be","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      exact configuration of disks. Thus, an end user would need to pass a"},{"line_number":85,"context_line":"      dummy BDM destination to set a RAID tag upon, only so that this info can"},{"line_number":86,"context_line":"      get through to the Ironic virt driver"},{"line_number":87,"context_line":"    * using of device tagging implies support of ``supports_device_tagging``"},{"line_number":88,"context_line":"      capability in Ironic virt driver, which effectively means we would also"},{"line_number":89,"context_line":"      need to implement support for NIC tagging (as the same capability flag is"},{"line_number":90,"context_line":"      currently used for both BDM and NIC tagging)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa31d9ce_09164ca7","line":87,"updated":"2017-02-16 20:02:52.000000000","message":"nit s/using/use/","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"18b0279ec931fc783f4e73055247fa33d0002429","unresolved":false,"context_lines":[{"line_number":84,"context_line":"      exact configuration of disks. Thus, an end user would need to pass a"},{"line_number":85,"context_line":"      dummy BDM destination to set a RAID tag upon, only so that this info can"},{"line_number":86,"context_line":"      get through to the Ironic virt driver"},{"line_number":87,"context_line":"    * using of device tagging implies support of ``supports_device_tagging``"},{"line_number":88,"context_line":"      capability in Ironic virt driver, which effectively means we would also"},{"line_number":89,"context_line":"      need to implement support for NIC tagging (as the same capability flag is"},{"line_number":90,"context_line":"      currently used for both BDM and NIC tagging)"}],"source_content_type":"text/x-rst","patch_set":4,"id":"da36d5c6_c2aa36d4","line":87,"in_reply_to":"fa31d9ce_09164ca7","updated":"2017-02-21 19:37:23.000000000","message":"Done","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":12356,"name":"Vladyslav Drok","email":"vdrok@mirantis.com","username":"vdrok"},"change_message_id":"f87237b8131e9cc75aed0e2ade2705739e040ed6","unresolved":false,"context_lines":[{"line_number":252,"context_line":"Performance Impact"},{"line_number":253,"context_line":"------------------"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"None."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"Other deployer impact"},{"line_number":258,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"3a461143_f1f9ccc9","line":255,"updated":"2017-01-26 12:12:29.000000000","message":"instance boot can take significantly longer time because of raid configuration.","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"cbf6de1b3ad11fa3767a62ae9538f57bf18946d7","unresolved":false,"context_lines":[{"line_number":252,"context_line":"Performance Impact"},{"line_number":253,"context_line":"------------------"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"None."},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"Other deployer impact"},{"line_number":258,"context_line":"---------------------"}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa31d9ce_ff2a922e","line":255,"in_reply_to":"3a461143_f1f9ccc9","updated":"2017-02-16 16:54:13.000000000","message":"Thanks, Vlad! Will fix this in the next update of the change.","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"6fca4b7db661853bef990055848bd98d256801be","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"* add a new capability to virt drivers - ``supports_raid_configuration``"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"* implement the new capability in Ironic virt driver"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"* add support for the new API microversion to python-novaclient"},{"line_number":304,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa31d9ce_89731ce7","line":301,"updated":"2017-02-16 20:02:52.000000000","message":"I don\u0027t know if you need to explicitly mention that the ironic API version will need to be bumped (after the ironic part is available)","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"18b0279ec931fc783f4e73055247fa33d0002429","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"* add a new capability to virt drivers - ``supports_raid_configuration``"},{"line_number":300,"context_line":""},{"line_number":301,"context_line":"* implement the new capability in Ironic virt driver"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"* add support for the new API microversion to python-novaclient"},{"line_number":304,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da36d5c6_e850d80c","line":301,"in_reply_to":"fa31d9ce_89731ce7","updated":"2017-02-21 19:37:23.000000000","message":"Hmm, that\u0027s a good one.\n\nBased on my understanding of https://review.openstack.org/#/c/382091/5/specs/approved/raid-configuration-during-deploy.rst we can already set `target_raid_config` property and no changes to Ironic REST API are needed (thus, we do not need min version bump either).\n\nHaving said that, it\u0027s not clear to me how an external user (like Nova) can discover whether this specific Ironic we are talking to performs configuration of a RAID as one of the deployment steps or not.\n\nI\u0027ll leave a comment in the spec we depend on. Good catch! Thanks!","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"6fca4b7db661853bef990055848bd98d256801be","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"* implement the new capability in Ironic virt driver"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"* add support for the new API microversion to python-novaclient"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"* update docs (see the Documentation Impact section below for details)"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa31d9ce_2e3a36e8","line":303,"updated":"2017-02-16 20:02:52.000000000","message":"out of curiosity, how does nova get their stuff into openstackclient?","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"18b0279ec931fc783f4e73055247fa33d0002429","unresolved":false,"context_lines":[{"line_number":300,"context_line":""},{"line_number":301,"context_line":"* implement the new capability in Ironic virt driver"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"* add support for the new API microversion to python-novaclient"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"* update docs (see the Documentation Impact section below for details)"},{"line_number":306,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da36d5c6_48b00444","line":303,"in_reply_to":"fa31d9ce_2e3a36e8","updated":"2017-02-21 19:37:23.000000000","message":"Heh, another good one :)\n\nThe specs I\u0027ve seen so far were only concerned about making python-novaclient support new features. I quickly glanced over http://git.openstack.org/cgit/openstack/python-openstackclient/tree/openstackclient/compute/v2/server.py and it seems that OSC only supports BDM v1, I\u0027d rather we keep this spec focused solely on python-novaclient and add support for BDM v2 to OSC separately.","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"6fca4b7db661853bef990055848bd98d256801be","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"A Tempest test case, that will check integration between Nova and Ironic,"},{"line_number":321,"context_line":"**might** be considered in the future, when we actually start testing RAID"},{"line_number":322,"context_line":"configurations done by the means of Ironic in the gate (currently, RAID in"},{"line_number":323,"context_line":"Ironic is vendor-specific and not implemented for a generic case, e.g. for"},{"line_number":324,"context_line":"virtual machines)."},{"line_number":325,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"fa31d9ce_09be4cd4","line":322,"updated":"2017-02-16 20:02:52.000000000","message":"nit s/the means/means/","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"18b0279ec931fc783f4e73055247fa33d0002429","unresolved":false,"context_lines":[{"line_number":319,"context_line":""},{"line_number":320,"context_line":"A Tempest test case, that will check integration between Nova and Ironic,"},{"line_number":321,"context_line":"**might** be considered in the future, when we actually start testing RAID"},{"line_number":322,"context_line":"configurations done by the means of Ironic in the gate (currently, RAID in"},{"line_number":323,"context_line":"Ironic is vendor-specific and not implemented for a generic case, e.g. for"},{"line_number":324,"context_line":"virtual machines)."},{"line_number":325,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"da36d5c6_48972490","line":322,"in_reply_to":"fa31d9ce_09be4cd4","updated":"2017-02-21 19:37:23.000000000","message":"Done","commit_id":"616809cc52dfa201c8ddd0fe56de37a9e8d42910"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"734af10472d2051951c379e2f0fca47af85375f1","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    * existing BDM destination types (``local`` and ``volume``) are used to"},{"line_number":80,"context_line":"      describe instance ephemeral disks or attached volumes. In case of"},{"line_number":81,"context_line":"      baremetal instances we can\u0027t create such disks on demand - they are"},{"line_number":82,"context_line":"      either present on the node at boot time or not, and as of now Nova"},{"line_number":83,"context_line":"      only knows about the node disk total size (``root_gb``), not about the"},{"line_number":84,"context_line":"      exact configuration of disks. Thus, an end user would need to pass a"},{"line_number":85,"context_line":"      dummy BDM destination to set a RAID tag upon, only so that this info can"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_7b62deae","line":82,"updated":"2017-02-22 11:56:32.000000000","message":"This isn\u0027t true in the case of attached volumes.","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"b87aa8de8c371cc228286ffaf8187721b22781cc","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    * existing BDM destination types (``local`` and ``volume``) are used to"},{"line_number":80,"context_line":"      describe instance ephemeral disks or attached volumes. In case of"},{"line_number":81,"context_line":"      baremetal instances we can\u0027t create such disks on demand - they are"},{"line_number":82,"context_line":"      either present on the node at boot time or not, and as of now Nova"},{"line_number":83,"context_line":"      only knows about the node disk total size (``root_gb``), not about the"},{"line_number":84,"context_line":"      exact configuration of disks. Thus, an end user would need to pass a"},{"line_number":85,"context_line":"      dummy BDM destination to set a RAID tag upon, only so that this info can"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a30ddce_92a41e58","line":82,"in_reply_to":"da36d5c6_7b62deae","updated":"2017-03-07 15:10:53.000000000","message":"Done","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"dc5129fa4e863b1658b35e4aff174619ec2a110c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    * existing BDM destination types (``local`` and ``volume``) are used to"},{"line_number":80,"context_line":"      describe instance ephemeral disks or attached volumes. In case of"},{"line_number":81,"context_line":"      baremetal instances we can\u0027t create such disks on demand - they are"},{"line_number":82,"context_line":"      either present on the node at boot time or not, and as of now Nova"},{"line_number":83,"context_line":"      only knows about the node disk total size (``root_gb``), not about the"},{"line_number":84,"context_line":"      exact configuration of disks. Thus, an end user would need to pass a"},{"line_number":85,"context_line":"      dummy BDM destination to set a RAID tag upon, only so that this info can"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_fe282035","line":82,"in_reply_to":"da36d5c6_7b62deae","updated":"2017-02-24 15:23:03.000000000","message":"Hmm, I did not know you can attach volumes to baremetal instances. I\u0027ll take a closer look and update the spec accordingly.","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"b87aa8de8c371cc228286ffaf8187721b22781cc","unresolved":false,"context_lines":[{"line_number":79,"context_line":"    * existing BDM destination types (``local`` and ``volume``) are used to"},{"line_number":80,"context_line":"      describe instance ephemeral disks or attached volumes. In case of"},{"line_number":81,"context_line":"      baremetal instances we can\u0027t create such disks on demand - they are"},{"line_number":82,"context_line":"      either present on the node at boot time or not, and as of now Nova"},{"line_number":83,"context_line":"      only knows about the node disk total size (``root_gb``), not about the"},{"line_number":84,"context_line":"      exact configuration of disks. Thus, an end user would need to pass a"},{"line_number":85,"context_line":"      dummy BDM destination to set a RAID tag upon, only so that this info can"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a30ddce_92733eb1","line":82,"in_reply_to":"da36d5c6_fe282035","updated":"2017-03-07 15:10:53.000000000","message":"Done","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"734af10472d2051951c379e2f0fca47af85375f1","unresolved":false,"context_lines":[{"line_number":102,"context_line":"specific to baremetal instances and not abstracted in any way by Nova. The"},{"line_number":103,"context_line":"obvious drawback is that metadata values supplied by end users are not"},{"line_number":104,"context_line":"constrained by any schema - the soonest we can report an error in this case is"},{"line_number":105,"context_line":"when a request reaches the virt driver on a compute node."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_5b2d1a45","line":105,"updated":"2017-02-22 11:56:32.000000000","message":"It also exposes the RAID configuration to the instance via the metadata service, which isn\u0027t very clean.","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"b87aa8de8c371cc228286ffaf8187721b22781cc","unresolved":false,"context_lines":[{"line_number":102,"context_line":"specific to baremetal instances and not abstracted in any way by Nova. The"},{"line_number":103,"context_line":"obvious drawback is that metadata values supplied by end users are not"},{"line_number":104,"context_line":"constrained by any schema - the soonest we can report an error in this case is"},{"line_number":105,"context_line":"when a request reaches the virt driver on a compute node."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a30ddce_d28696b8","line":105,"in_reply_to":"da36d5c6_5b2d1a45","updated":"2017-03-07 15:10:53.000000000","message":"Done","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"dc5129fa4e863b1658b35e4aff174619ec2a110c","unresolved":false,"context_lines":[{"line_number":102,"context_line":"specific to baremetal instances and not abstracted in any way by Nova. The"},{"line_number":103,"context_line":"obvious drawback is that metadata values supplied by end users are not"},{"line_number":104,"context_line":"constrained by any schema - the soonest we can report an error in this case is"},{"line_number":105,"context_line":"when a request reaches the virt driver on a compute node."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_5e1a0c18","line":105,"in_reply_to":"da36d5c6_5b2d1a45","updated":"2017-02-24 15:23:03.000000000","message":"Good point! Will mention this in the next revision.","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"b87aa8de8c371cc228286ffaf8187721b22781cc","unresolved":false,"context_lines":[{"line_number":102,"context_line":"specific to baremetal instances and not abstracted in any way by Nova. The"},{"line_number":103,"context_line":"obvious drawback is that metadata values supplied by end users are not"},{"line_number":104,"context_line":"constrained by any schema - the soonest we can report an error in this case is"},{"line_number":105,"context_line":"when a request reaches the virt driver on a compute node."},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"Data model impact"},{"line_number":108,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a30ddce_72416a0b","line":105,"in_reply_to":"da36d5c6_5e1a0c18","updated":"2017-03-07 15:10:53.000000000","message":"Done","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"734af10472d2051951c379e2f0fca47af85375f1","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"Request response codes are not changed. As expected, `400 Bad Request` will be"},{"line_number":195,"context_line":"returned, if the format of RAID configuration, constrained by the JSON schema"},{"line_number":196,"context_line":"described above, is violated."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"A request to boot a new instance with a RAID configured may look like:"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_bb9d365b","line":196,"updated":"2017-02-22 11:56:32.000000000","message":"Where and how will we constrain support of RAID volumes to the Ironic driver?","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"dc5129fa4e863b1658b35e4aff174619ec2a110c","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"Request response codes are not changed. As expected, `400 Bad Request` will be"},{"line_number":195,"context_line":"returned, if the format of RAID configuration, constrained by the JSON schema"},{"line_number":196,"context_line":"described above, is violated."},{"line_number":197,"context_line":""},{"line_number":198,"context_line":"A request to boot a new instance with a RAID configured may look like:"},{"line_number":199,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_fe9bc063","line":196,"in_reply_to":"da36d5c6_bb9d365b","updated":"2017-02-24 15:23:03.000000000","message":"So I imagined this to be a new driver capability, similar to what we have for device tagging, e.g.:\n\nhttps://github.com/openstack/nova/blob/master/nova/virt/libvirt/driver.py#L327\n\nThen we could check if this new RAID capability is supported by the virt driver somewhere in nova-compute manager. This is not ideal, of course, as it\u0027s not really failing early, but looks like it\u0027s the best we can do for now.","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"734af10472d2051951c379e2f0fca47af85375f1","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                \"min_count\": 1,"},{"line_number":222,"context_line":"                \"networks\": [ { \"uuid\": \"...\" } ]"},{"line_number":223,"context_line":"            }"},{"line_number":224,"context_line":"        }"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Security impact"},{"line_number":227,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_1ba1e2a3","line":224,"updated":"2017-02-22 11:56:32.000000000","message":"How about dynamic attachment \u0026 detachment of RAID volumes? If that is supported it should be covered here, otherwise we should say explicitly that it will not be supported (yet).","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"b87aa8de8c371cc228286ffaf8187721b22781cc","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                \"min_count\": 1,"},{"line_number":222,"context_line":"                \"networks\": [ { \"uuid\": \"...\" } ]"},{"line_number":223,"context_line":"            }"},{"line_number":224,"context_line":"        }"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Security impact"},{"line_number":227,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a30ddce_729faa03","line":224,"in_reply_to":"da36d5c6_1ba1e2a3","updated":"2017-03-07 15:10:53.000000000","message":"Done","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"dc5129fa4e863b1658b35e4aff174619ec2a110c","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                \"min_count\": 1,"},{"line_number":222,"context_line":"                \"networks\": [ { \"uuid\": \"...\" } ]"},{"line_number":223,"context_line":"            }"},{"line_number":224,"context_line":"        }"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Security impact"},{"line_number":227,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_3ec9d859","line":224,"in_reply_to":"da36d5c6_1ba1e2a3","updated":"2017-02-24 15:23:03.000000000","message":"That\u0027s a good one. I\u0027ll need to take a closer look. Will update the spec accordingly.","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"b87aa8de8c371cc228286ffaf8187721b22781cc","unresolved":false,"context_lines":[{"line_number":221,"context_line":"                \"min_count\": 1,"},{"line_number":222,"context_line":"                \"networks\": [ { \"uuid\": \"...\" } ]"},{"line_number":223,"context_line":"            }"},{"line_number":224,"context_line":"        }"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"Security impact"},{"line_number":227,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a30ddce_f2fc7a40","line":224,"in_reply_to":"da36d5c6_3ec9d859","updated":"2017-03-07 15:10:53.000000000","message":"Done","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":14826,"name":"Mark Goddard","email":"markgoddard86@gmail.com","username":"mgoddard"},"change_message_id":"734af10472d2051951c379e2f0fca47af85375f1","unresolved":false,"context_lines":[{"line_number":267,"context_line":"specifically for baremetal instances created by Ironic virt driver (as those"},{"line_number":268,"context_line":"instances benefit the most from having disks in a RAID). However, this is done"},{"line_number":269,"context_line":"in a generic way by defining a new virt driver capability"},{"line_number":270,"context_line":"``supports_raid_configuration``, so that we can properly signalize errors,"},{"line_number":271,"context_line":"should someone try to pass a BDM configuration with a defined RAID to a virt"},{"line_number":272,"context_line":"driver that does not support it (e.g. libvirt)."},{"line_number":273,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_bbeb76af","line":270,"updated":"2017-02-22 11:56:32.000000000","message":"Where does this get applied? Is it before or after scheduling?","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"dc5129fa4e863b1658b35e4aff174619ec2a110c","unresolved":false,"context_lines":[{"line_number":267,"context_line":"specifically for baremetal instances created by Ironic virt driver (as those"},{"line_number":268,"context_line":"instances benefit the most from having disks in a RAID). However, this is done"},{"line_number":269,"context_line":"in a generic way by defining a new virt driver capability"},{"line_number":270,"context_line":"``supports_raid_configuration``, so that we can properly signalize errors,"},{"line_number":271,"context_line":"should someone try to pass a BDM configuration with a defined RAID to a virt"},{"line_number":272,"context_line":"driver that does not support it (e.g. libvirt)."},{"line_number":273,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"da36d5c6_fee900b8","line":270,"in_reply_to":"da36d5c6_bbeb76af","updated":"2017-02-24 15:23:03.000000000","message":"It\u0027s going to be checked after scheduling in nova-compute manager.","commit_id":"9485d2896169ff4a5615bd2d868b5d5a07583c72"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9686dce463fc7c74538b165726420df2cd885e41","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of spec. It\u0027s interesting that public cloud providers actually mention"},{"line_number":27,"context_line":"configuration of RAID for **virtual** machines in their docs"},{"line_number":28,"context_line":"(`RAID configuration in AWS EC2`_), but it\u0027s entirely a user concern:"},{"line_number":29,"context_line":"a software RAID is configured within the guest OS after an instance is booted."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da36d5c6_577f6a65","line":29,"updated":"2017-02-23 21:54:57.000000000","message":"right. all EC2 knows about is that there are X number of EBS volumes attached to the guest instance.","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9686dce463fc7c74538b165726420df2cd885e41","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            \"share_physical_disks\": {"},{"line_number":141,"context_line":"                \"type\": \"boolean\","},{"line_number":142,"context_line":"                \"description\": \"Specifies whether other logical disks can share physical disks with this logical disk. By default, this is False. Optional.\""},{"line_number":143,"context_line":"            },"},{"line_number":144,"context_line":"            \"disk_type\": {"},{"line_number":145,"context_line":"                \"type\": \"string\","},{"line_number":146,"context_line":"                \"enum\": [\"hdd\", \"ssd\"],"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da36d5c6_bd4c05c9","line":143,"updated":"2017-02-23 21:54:57.000000000","message":"I\u0027m a little unclear on the above attribute and what it really signifies. Would this essentially be passed straight through to Ironic?","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"c71e42ddcb03ee1c8fa167c2d26c441034eb272d","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            \"share_physical_disks\": {"},{"line_number":141,"context_line":"                \"type\": \"boolean\","},{"line_number":142,"context_line":"                \"description\": \"Specifies whether other logical disks can share physical disks with this logical disk. By default, this is False. Optional.\""},{"line_number":143,"context_line":"            },"},{"line_number":144,"context_line":"            \"disk_type\": {"},{"line_number":145,"context_line":"                \"type\": \"string\","},{"line_number":146,"context_line":"                \"enum\": [\"hdd\", \"ssd\"],"}],"source_content_type":"text/x-rst","patch_set":6,"id":"9a30ddce_1d9d9f65","line":143,"in_reply_to":"da36d5c6_bd4c05c9","updated":"2017-03-07 15:15:02.000000000","message":"Done","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9686dce463fc7c74538b165726420df2cd885e41","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            \"disk_type\": {"},{"line_number":145,"context_line":"                \"type\": \"string\","},{"line_number":146,"context_line":"                \"enum\": [\"hdd\", \"ssd\"],"},{"line_number":147,"context_line":"                \"description\": \"The type of disk preferred. Valid values are \u0027hdd\u0027 and \u0027ssd\u0027. If this is not specified, disk type will not be a selection criterion for choosing backing physical disks. Optional.\""},{"line_number":148,"context_line":"            },"},{"line_number":149,"context_line":"            \"interface_type\": {"},{"line_number":150,"context_line":"                \"type\": \"string\","}],"source_content_type":"text/x-rst","patch_set":6,"id":"da36d5c6_ddf7f956","line":147,"updated":"2017-02-23 21:54:57.000000000","message":"This one seems to be introducing traits to the block device mapping concept that I don\u0027t think is useful initially. Perhaps we can consider leaving this off in the initial version of the spec/feature?","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"c71e42ddcb03ee1c8fa167c2d26c441034eb272d","unresolved":false,"context_lines":[{"line_number":144,"context_line":"            \"disk_type\": {"},{"line_number":145,"context_line":"                \"type\": \"string\","},{"line_number":146,"context_line":"                \"enum\": [\"hdd\", \"ssd\"],"},{"line_number":147,"context_line":"                \"description\": \"The type of disk preferred. Valid values are \u0027hdd\u0027 and \u0027ssd\u0027. If this is not specified, disk type will not be a selection criterion for choosing backing physical disks. Optional.\""},{"line_number":148,"context_line":"            },"},{"line_number":149,"context_line":"            \"interface_type\": {"},{"line_number":150,"context_line":"                \"type\": \"string\","}],"source_content_type":"text/x-rst","patch_set":6,"id":"9a30ddce_fd9feb5c","line":147,"in_reply_to":"da36d5c6_ddf7f956","updated":"2017-03-07 15:15:02.000000000","message":"Done","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9686dce463fc7c74538b165726420df2cd885e41","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            \"interface_type\": {"},{"line_number":150,"context_line":"                \"type\": \"string\","},{"line_number":151,"context_line":"                \"enum\": [\"sata\", \"scsi\", \"sas\"],"},{"line_number":152,"context_line":"                \"description\": \"The interface type of disk. Valid values are \u0027sata\u0027, \u0027scsi\u0027 and \u0027sas\u0027. If this is not specified, interface type will not be a selection criterion for choosing backing physical disks. Optional.\""},{"line_number":153,"context_line":"            },"},{"line_number":154,"context_line":"            \"number_of_physical_disks\": {"},{"line_number":155,"context_line":"                \"type\": \"integer\","}],"source_content_type":"text/x-rst","patch_set":6,"id":"da36d5c6_9d5d8149","line":152,"updated":"2017-02-23 21:54:57.000000000","message":"This is another one that is confusing. In what ways does the user have any *control over this with regards to the baremetal instance*? In other words, the Ironic node will *already* have a set of devices of a particular bus type (SCSI, SATA or SAS). It\u0027s not like the user would be able to influence what bus type will be in use on the baremetal instance, right?","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"321e6cce6e056ada783ef8ce27da065d3be07823","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            \"interface_type\": {"},{"line_number":150,"context_line":"                \"type\": \"string\","},{"line_number":151,"context_line":"                \"enum\": [\"sata\", \"scsi\", \"sas\"],"},{"line_number":152,"context_line":"                \"description\": \"The interface type of disk. Valid values are \u0027sata\u0027, \u0027scsi\u0027 and \u0027sas\u0027. If this is not specified, interface type will not be a selection criterion for choosing backing physical disks. Optional.\""},{"line_number":153,"context_line":"            },"},{"line_number":154,"context_line":"            \"number_of_physical_disks\": {"},{"line_number":155,"context_line":"                \"type\": \"integer\","}],"source_content_type":"text/x-rst","patch_set":6,"id":"da36d5c6_de40bc09","line":152,"in_reply_to":"da36d5c6_9d5d8149","updated":"2017-02-24 15:16:55.000000000","message":"(and the comments above)\n\nGood point!\n\nDmitry Tantsur had previously suggested that this config must be a subset of what Ironic allows and we already cut it a bit, but looks like we need to do another revision to only leave the properties that make sense for the \"cloud\" use case of Ironic (i.e. behind Nova, not a stand alone Ironic).","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"c71e42ddcb03ee1c8fa167c2d26c441034eb272d","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            \"interface_type\": {"},{"line_number":150,"context_line":"                \"type\": \"string\","},{"line_number":151,"context_line":"                \"enum\": [\"sata\", \"scsi\", \"sas\"],"},{"line_number":152,"context_line":"                \"description\": \"The interface type of disk. Valid values are \u0027sata\u0027, \u0027scsi\u0027 and \u0027sas\u0027. If this is not specified, interface type will not be a selection criterion for choosing backing physical disks. Optional.\""},{"line_number":153,"context_line":"            },"},{"line_number":154,"context_line":"            \"number_of_physical_disks\": {"},{"line_number":155,"context_line":"                \"type\": \"integer\","}],"source_content_type":"text/x-rst","patch_set":6,"id":"9a30ddce_dd922757","line":152,"in_reply_to":"da36d5c6_9d5d8149","updated":"2017-03-07 15:15:02.000000000","message":"Done","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"9686dce463fc7c74538b165726420df2cd885e41","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            ...,"},{"line_number":173,"context_line":"            \"destination_type\": {"},{"line_number":174,"context_line":"                \"type\": \"string\","},{"line_number":175,"context_line":"                \"enum\": [\"local\", \"volume\", \"raid\"]"},{"line_number":176,"context_line":"            },"},{"line_number":177,"context_line":"            \"raid\": { \"$ref\": \"#/definitions/raid\" },"},{"line_number":178,"context_line":"       },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da36d5c6_580cf73a","line":175,"updated":"2017-02-23 21:54:57.000000000","message":"it\u0027s not *really* a destination type, though is it? :) RAID configuration describes the *structure* of block devices, not the *type* of block devices...","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"321e6cce6e056ada783ef8ce27da065d3be07823","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            ...,"},{"line_number":173,"context_line":"            \"destination_type\": {"},{"line_number":174,"context_line":"                \"type\": \"string\","},{"line_number":175,"context_line":"                \"enum\": [\"local\", \"volume\", \"raid\"]"},{"line_number":176,"context_line":"            },"},{"line_number":177,"context_line":"            \"raid\": { \"$ref\": \"#/definitions/raid\" },"},{"line_number":178,"context_line":"       },"}],"source_content_type":"text/x-rst","patch_set":6,"id":"da36d5c6_6349f9b6","line":175,"in_reply_to":"da36d5c6_580cf73a","updated":"2017-02-24 15:16:55.000000000","message":"That\u0027s a good one...\n\nI think it sort of is, in a sense that a RAID combines multiple disks and exposes them as a *single* logical unit to be used as a disk. Not sure if \"destination\" is misleading here or not, but this is what BDM seems to be about - mapping source disks (whether those are ephemerals or volumes) to disks within an instance. Isn\u0027t a RAID config an another case of such mapping of multiple disks into a single thing?\n\nSo I\u0027m not sure, this seemed to be the best place to put RAID config to me :P","commit_id":"8942b0585a354096e929e28d43247310bf0333af"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f3a1ba213a718d9c2e506c22d94faf9b9295813e","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of spec. It\u0027s interesting that public cloud providers actually mention"},{"line_number":27,"context_line":"configuration of RAID for **virtual** machines in their docs"},{"line_number":28,"context_line":"(`RAID configuration in AWS EC2`_), but it\u0027s entirely a user concern:"},{"line_number":29,"context_line":"a software RAID is configured within the guest OS after an instance is booted."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"5a22e58a_e2a59fb5","line":29,"updated":"2017-03-14 11:02:46.000000000","message":"What you really want is to boot \"ironic gold\" and pass a hint to which of its available disk options you want.\n\nLets think about other traits we want to expose, like enable/disable hyper-threading.\n\nWe really want a flavor to expose a set of traits that are available on boot. The user can then pick which ones are wanted for this specific instance.\n\nNow this is much less flexible than letting folks pick arbitrary RAID configs, but its hard to work out what is possible, as a user, packaging up a few standardised options can be very helpful here.\n\nIts possible one of the presets could be \"read from user_data\", i.e. allow the full range of ironic options.","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"213da8297c0f9fdf7be4660ee603544cf4627c32","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of spec. It\u0027s interesting that public cloud providers actually mention"},{"line_number":27,"context_line":"configuration of RAID for **virtual** machines in their docs"},{"line_number":28,"context_line":"(`RAID configuration in AWS EC2`_), but it\u0027s entirely a user concern:"},{"line_number":29,"context_line":"a software RAID is configured within the guest OS after an instance is booted."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_d0173745","line":29,"in_reply_to":"3a1ff146_eae10300","updated":"2017-04-03 15:26:41.000000000","message":"Done","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9f723f0775728e4ff2cd676869839065d827245a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of spec. It\u0027s interesting that public cloud providers actually mention"},{"line_number":27,"context_line":"configuration of RAID for **virtual** machines in their docs"},{"line_number":28,"context_line":"(`RAID configuration in AWS EC2`_), but it\u0027s entirely a user concern:"},{"line_number":29,"context_line":"a software RAID is configured within the guest OS after an instance is booted."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a1ff146_fe5b812c","line":29,"in_reply_to":"3a1ff146_eae10300","updated":"2017-03-14 16:10:59.000000000","message":"Sure, this reference was specifically to EBS.\n\nThe RAID configuration in Ironic is not limited to the root disk, though. I\u0027ll try to rephrase this or remove completely to avoid the confusion. Thanks!","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9f723f0775728e4ff2cd676869839065d827245a","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of spec. It\u0027s interesting that public cloud providers actually mention"},{"line_number":27,"context_line":"configuration of RAID for **virtual** machines in their docs"},{"line_number":28,"context_line":"(`RAID configuration in AWS EC2`_), but it\u0027s entirely a user concern:"},{"line_number":29,"context_line":"a software RAID is configured within the guest OS after an instance is booted."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a1ff146_13ce9683","line":29,"in_reply_to":"5a22e58a_e2a59fb5","updated":"2017-03-14 16:10:59.000000000","message":"\u003e\u003e\u003e We really want a flavor to expose a set of traits that are available on boot. The user can then pick which ones are wanted for this specific instance.\n\nHmm, what would be the mechanism for passing such a hint on boot? Metadata?\n\n\u003e\u003e\u003e Now this is much less flexible than letting folks pick arbitrary RAID configs, but its hard to work out what is possible, as a user, packaging up a few standardised options can be very helpful here.\n\nDo you mean that we\u0027d expose all allowed permutations of configurations as traits?\n\nI like the idea of having a reasonable default specified in flavor extra specs.\n\n\u003e\u003e\u003e Its possible one of the presets could be \"read from user_data\", i.e. allow the full range of ironic options.\n\nTrue. A similar approach is mentioned in the \"Alternatives\" section. But without making RAID an API concept we can\u0027t give proper error messages at this level. That being said, if there is a strong push back on BDMs, then this could be a viable alternative.","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"9faf3fa05b9cdf75dd278e85ae6cb3e85f268beb","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of spec. It\u0027s interesting that public cloud providers actually mention"},{"line_number":27,"context_line":"configuration of RAID for **virtual** machines in their docs"},{"line_number":28,"context_line":"(`RAID configuration in AWS EC2`_), but it\u0027s entirely a user concern:"},{"line_number":29,"context_line":"a software RAID is configured within the guest OS after an instance is booted."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a1ff146_eae10300","line":29,"in_reply_to":"5a22e58a_e2a59fb5","updated":"2017-03-14 14:43:11.000000000","message":"It\u0027s important to put the context on RAID use here, those are about using EBS. EBS has historically been terrible on both reliability and performance, so very early on people developed a pattern of using *at least* 4 EBS devices in a stripe setup to get reasonable performance. This is done with data volumes, not with root volume. \n\nIt would be the equivalent of booting a server, attaching 4 cinder volumes in, and doing software raid on them. That\u0027s a very different scenario than what is listed here. I think referencing the EC2 RAID situation is a red herring, and should be removed from the spec, as it\u0027s not the same.","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"213da8297c0f9fdf7be4660ee603544cf4627c32","unresolved":false,"context_lines":[{"line_number":26,"context_line":"of spec. It\u0027s interesting that public cloud providers actually mention"},{"line_number":27,"context_line":"configuration of RAID for **virtual** machines in their docs"},{"line_number":28,"context_line":"(`RAID configuration in AWS EC2`_), but it\u0027s entirely a user concern:"},{"line_number":29,"context_line":"a software RAID is configured within the guest OS after an instance is booted."},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"Use Cases"},{"line_number":32,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_100ebf31","line":29,"in_reply_to":"5a22e58a_e2a59fb5","updated":"2017-04-03 15:26:41.000000000","message":"John,\n\nI\u0027ve tried to incorporate your idea into the \"Passing a RAID configuration as instance metadata\" alternative.\n\nThanks!","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2074a7a4936c585013a2e550b9547ca47e94524e","unresolved":false,"context_lines":[{"line_number":54,"context_line":"a new instance to check that it\u0027s a valid JSON according to the defined schema."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Ironic virt driver will then convert the common presentation of RAID"},{"line_number":57,"context_line":"configuration as a BDM (Block Device Mapping) to the format understood by"},{"line_number":58,"context_line":"Ironic API and pass it to the latter as described in"},{"line_number":59,"context_line":"`Ironic RAID configuration during deployment`_ spec."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a30ddce_1d932cfb","line":57,"range":{"start_line":57,"start_character":19,"end_line":57,"end_character":22},"updated":"2017-03-12 02:33:02.000000000","message":"I really don\u0027t like the idea of storing this all in BDMs which are already super confusing and hard to maintain given the permutations of how those can be setup, and there are parts of BDMs in the request that we can\u0027t validate with jsonschema as it is, we have to validate with conditional logic in code so maintaining this is already hard and I wouldn\u0027t want to add more to it.","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9f723f0775728e4ff2cd676869839065d827245a","unresolved":false,"context_lines":[{"line_number":54,"context_line":"a new instance to check that it\u0027s a valid JSON according to the defined schema."},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"Ironic virt driver will then convert the common presentation of RAID"},{"line_number":57,"context_line":"configuration as a BDM (Block Device Mapping) to the format understood by"},{"line_number":58,"context_line":"Ironic API and pass it to the latter as described in"},{"line_number":59,"context_line":"`Ironic RAID configuration during deployment`_ spec."},{"line_number":60,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a1ff146_9e360db3","line":57,"range":{"start_line":57,"start_character":19,"end_line":57,"end_character":22},"in_reply_to":"9a30ddce_1d932cfb","updated":"2017-03-14 16:10:59.000000000","message":"Understood. As much as we all hate BDMs it seemed to be the best fit for modeling RAID configs in our API :P","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2074a7a4936c585013a2e550b9547ca47e94524e","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Ironic API and pass it to the latter as described in"},{"line_number":59,"context_line":"`Ironic RAID configuration during deployment`_ spec."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Using of Virt Device Tagging feature"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a30ddce_fdae582c","line":61,"updated":"2017-03-12 02:33:02.000000000","message":"As PTL of the compute program, maybe I shouldn\u0027t even mention this, but honestly have you looked at or talked to the people working on Mogan which is essentially a stripped down Nova with a baremetal-specific API which is really kind of just for this type of stuff. This doesn\u0027t really fit right now into the Nova API or model since it\u0027s really single-virt backend specific (Ironic) and is therefore not interoperable. We already have several APIs like that added years ago and are just technical debt now (I\u0027m thinking diskConfig and agent_builds, stuff like that which was specific to xenserver).\n\nThe whole point of Mogan, as I understand it, is to basically be Nova but only for baremetal and therefore be able to evolve the API for that use case.\n\nMaybe I should be defensive about other projects trying to step into what has traditionally been Nova\u0027s \"territory\" but this just doesn\u0027t seem like a good fit for Nova in this proposed form (at least for the BDM changes I don\u0027t like).","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9f723f0775728e4ff2cd676869839065d827245a","unresolved":false,"context_lines":[{"line_number":58,"context_line":"Ironic API and pass it to the latter as described in"},{"line_number":59,"context_line":"`Ironic RAID configuration during deployment`_ spec."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Using of Virt Device Tagging feature"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a1ff146_fe13810b","line":61,"in_reply_to":"9a30ddce_fdae582c","updated":"2017-03-14 16:10:59.000000000","message":"I should probably mention Mogan as one of the alternatives, then. Zhenguo told me that this may be a good fit for Mogan, but definitely is not on their priority list right now.\n\nI guess, as a user, I\u0027d like to use a single API for running different types of workloads - both virtual and baremetal machines, rather than switch between two different services.\n\nPerhaps, if there is strong push back on making RAID config a concept of Compute API, metadata could be a compromise solution.","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6618,"name":"Ruby Loo","email":"opensrloo@gmail.com","username":"rloo"},"change_message_id":"d1ee8180218ece9639927c596859058c3587df1f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Using of Virt Device Tagging feature"},{"line_number":65,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"As `Virtual guest device role tagging`_ blueprint was merged recently we could"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a30ddce_0357a126","line":64,"updated":"2017-03-09 15:51:54.000000000","message":"nit. s/Using/Use/","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"213da8297c0f9fdf7be4660ee603544cf4627c32","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Using of Virt Device Tagging feature"},{"line_number":65,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"As `Virtual guest device role tagging`_ blueprint was merged recently we could"}],"source_content_type":"text/x-rst","patch_set":7,"id":"dfeb2761_70574b04","line":64,"in_reply_to":"9a30ddce_0357a126","updated":"2017-04-03 15:26:41.000000000","message":"Done","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9f723f0775728e4ff2cd676869839065d827245a","unresolved":false,"context_lines":[{"line_number":61,"context_line":"Alternatives"},{"line_number":62,"context_line":"------------"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"Using of Virt Device Tagging feature"},{"line_number":65,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"As `Virtual guest device role tagging`_ blueprint was merged recently we could"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a1ff146_9e11adb2","line":64,"in_reply_to":"9a30ddce_0357a126","updated":"2017-03-14 16:10:59.000000000","message":"Thanks! will fix in the next upload.","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2074a7a4936c585013a2e550b9547ca47e94524e","unresolved":false,"context_lines":[{"line_number":95,"context_line":"      to be changed to ``MEDIUMTEXT`` to allow for storing of complex JSON"},{"line_number":96,"context_line":"      formatted RAID configurations"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Passing a RAID configuration as instance metadata"},{"line_number":99,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"As Ironic already defines a JSON format for flexible RAID configuration"},{"line_number":102,"context_line":"`Ironic RAID configuration JSON schema`_ we might simply accept it as instance"},{"line_number":103,"context_line":"metadata on boot and then pass it through to Ironic API as is from within the"},{"line_number":104,"context_line":"Ironic virt driver. This would effectively mean that RAID configuration is"},{"line_number":105,"context_line":"specific to baremetal instances and not abstracted in any way by Nova. The"},{"line_number":106,"context_line":"obvious drawback is that metadata values supplied by end users are not"},{"line_number":107,"context_line":"constrained by any schema - the soonest we can report an error in this case is"},{"line_number":108,"context_line":"when a request reaches the virt driver on a compute node. Another problem is"},{"line_number":109,"context_line":"that RAID-specific metadata keys would be exposed to a user instance intermixed"},{"line_number":110,"context_line":"with user-defined ones."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Data model impact"},{"line_number":113,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a30ddce_fd8738b2","line":110,"range":{"start_line":98,"start_character":0,"end_line":110,"end_character":23},"updated":"2017-03-12 02:33:02.000000000","message":"True that we couldn\u0027t validate the raid schema in the metadata from the API, but you could have a library or CLI or something that sits on top that is a convenience layer that validates the metadata before it goes to the compute API - Jay has the enamel project for stuff like this, for example:\n\nhttps://github.com/jaypipes/enamel","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9f723f0775728e4ff2cd676869839065d827245a","unresolved":false,"context_lines":[{"line_number":95,"context_line":"      to be changed to ``MEDIUMTEXT`` to allow for storing of complex JSON"},{"line_number":96,"context_line":"      formatted RAID configurations"},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"Passing a RAID configuration as instance metadata"},{"line_number":99,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"As Ironic already defines a JSON format for flexible RAID configuration"},{"line_number":102,"context_line":"`Ironic RAID configuration JSON schema`_ we might simply accept it as instance"},{"line_number":103,"context_line":"metadata on boot and then pass it through to Ironic API as is from within the"},{"line_number":104,"context_line":"Ironic virt driver. This would effectively mean that RAID configuration is"},{"line_number":105,"context_line":"specific to baremetal instances and not abstracted in any way by Nova. The"},{"line_number":106,"context_line":"obvious drawback is that metadata values supplied by end users are not"},{"line_number":107,"context_line":"constrained by any schema - the soonest we can report an error in this case is"},{"line_number":108,"context_line":"when a request reaches the virt driver on a compute node. Another problem is"},{"line_number":109,"context_line":"that RAID-specific metadata keys would be exposed to a user instance intermixed"},{"line_number":110,"context_line":"with user-defined ones."},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"Data model impact"},{"line_number":113,"context_line":"-----------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a1ff146_3e86f9b9","line":110,"range":{"start_line":98,"start_character":0,"end_line":110,"end_character":23},"in_reply_to":"9a30ddce_fd8738b2","updated":"2017-03-14 16:10:59.000000000","message":"True, but we do not have control over clients of our API except for python-novaclient :( I\u0027d much rather have this validation in the API layer, but I can\u0027t think of anything other than a WSGI middleware for doing that...","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2074a7a4936c585013a2e550b9547ca47e94524e","unresolved":false,"context_lines":[{"line_number":112,"context_line":"Data model impact"},{"line_number":113,"context_line":"-----------------"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"The existing DB model ``BlockDeviceMapping`` and Nova versioned object of the"},{"line_number":116,"context_line":"same name are reused. No changes to the object, DB schema or data migrations"},{"line_number":117,"context_line":"are needed."},{"line_number":118,"context_line":""}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a30ddce_3d8e30d0","line":115,"range":{"start_line":115,"start_character":24,"end_line":115,"end_character":42},"updated":"2017-03-12 02:33:02.000000000","message":"Again, I really really don\u0027t want to shove anything like this into the BDMs table. BDMs have a very specific meaning today and I don\u0027t think that we want to just munge this into this data model just because we can and it\u0027s convenient up-front but the long term maintenance costs would be high I think.","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2074a7a4936c585013a2e550b9547ca47e94524e","unresolved":false,"context_lines":[{"line_number":116,"context_line":"same name are reused. No changes to the object, DB schema or data migrations"},{"line_number":117,"context_line":"are needed."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"RAID specific properties can be stored as a serialized JSON string in"},{"line_number":120,"context_line":"``connection_info`` column , which is now used in a similar manner for BDMs"},{"line_number":121,"context_line":"with destination type ``volume`` (we **might** consider renaming of the column"},{"line_number":122,"context_line":"in the future to denote the fact that its content depends on the BDM type)."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"REST API impact"},{"line_number":125,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"9a30ddce_9db55c7f","line":122,"range":{"start_line":119,"start_character":0,"end_line":122,"end_character":75},"updated":"2017-03-12 02:33:02.000000000","message":"Again, totally -1 on this exactly for the issue you point out, this is known as the set of connection information that Nova uses for connecting to the volume backend, and we really don\u0027t want to mix this up - especially with all of the churn we\u0027re about to go through with using the new cinder v3 APIs for storing attachments and supporting multi-attach.","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"9f723f0775728e4ff2cd676869839065d827245a","unresolved":false,"context_lines":[{"line_number":116,"context_line":"same name are reused. No changes to the object, DB schema or data migrations"},{"line_number":117,"context_line":"are needed."},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"RAID specific properties can be stored as a serialized JSON string in"},{"line_number":120,"context_line":"``connection_info`` column , which is now used in a similar manner for BDMs"},{"line_number":121,"context_line":"with destination type ``volume`` (we **might** consider renaming of the column"},{"line_number":122,"context_line":"in the future to denote the fact that its content depends on the BDM type)."},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"REST API impact"},{"line_number":125,"context_line":"---------------"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a1ff146_d9f25f06","line":122,"range":{"start_line":119,"start_character":0,"end_line":122,"end_character":75},"in_reply_to":"9a30ddce_9db55c7f","updated":"2017-03-14 16:10:59.000000000","message":"Understood. I guess, what I was looking for here is a column for storing JSON, rather than adding one more column for a new BDM type, that would always be NULL for other types.","commit_id":"04ec5ab04380c76784fc4007fff95557a44b45fe"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"a86181529d7e69fee7919ab711887acf35cf23a3","unresolved":false,"context_lines":[{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As an End User I want to be able to configure a RAID for a baremetal instance"},{"line_number":32,"context_line":"created by the means of Ironic virt driver via OpenStack Compute API."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_a011d406","line":32,"updated":"2017-04-04 13:56:52.000000000","message":"This feels like the solution not the use case. The use case is:\n\n\"As an End User I would like to be able to specify certain disk guaruntees of the server that is being provisioned.\"\n\nBecause it\u0027s really weird to me to think about \"show up at the cloud, with no idea what the disk geometry is of any servers, and start declaring RAID configurations\". Because you kind of need to know a lot more about the hardware you would get before doing a thing like that.\n\nI also don\u0027t like the idea of the fact you are going to push this on a server request, and really have no idea if it\u0027s a thing the cloud can or would do. Raid 6, and turns out there are no 4 drive environments free, so fail. But without enough information to understand how you don\u0027t fail. And the decision on whether you would want to do RAID5 or not is going to be impacted on whether there is battery backup in a hardware raid controller, which is a thing you can\u0027t know in advance.\n\nAll of this make this leaky abstraction seem really really the wrong choice. And instead we should come up with some way of defining disk_class or something in flavor, that Ironic deployments could translate into something more reasonable.","commit_id":"5c49c751a6b6fa6b22a3daa04f0fc93ec09a6f44"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"ed1d71fa9b6d44163243e7a067fc2c1982783fa6","unresolved":false,"context_lines":[{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As an End User I want to be able to configure a RAID for a baremetal instance"},{"line_number":32,"context_line":"created by the means of Ironic virt driver via OpenStack Compute API."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"bff0334d_66092adc","line":32,"in_reply_to":"dfeb2761_501f75b6","updated":"2017-04-05 13:41:57.000000000","message":"I disagree. Nova tries really hard not to be a pass through vendor API for drivers, so that it is pretty easy to deploy against VMs from different hypervisors and baremetal in the same ways.","commit_id":"5c49c751a6b6fa6b22a3daa04f0fc93ec09a6f44"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"c6720b1d555d5fdf302f377eb28c2225ba50bb4c","unresolved":false,"context_lines":[{"line_number":29,"context_line":"---------"},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"As an End User I want to be able to configure a RAID for a baremetal instance"},{"line_number":32,"context_line":"created by the means of Ironic virt driver via OpenStack Compute API."},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Proposed change"},{"line_number":35,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":8,"id":"dfeb2761_501f75b6","line":32,"in_reply_to":"dfeb2761_a011d406","updated":"2017-04-04 16:25:37.000000000","message":"That\u0027s a good point, but I think there are two different questions here:\n\n1) how we make sure we end up on an \"eligible\" node (the one that supports RAID at all or, ideally, supports the specific configuration that was requested)\n\n2) how we pass the desired RAID config to Ironic\n\nSo far this spec has only been focused on the latter. As for the former, I guess, we could try to solve this with traits, so that flavor extra specs would require support of a specific level of RAID. Flavor extra specs could also come with a predefined set of valid configurations, as suggested for one of the alternatives below.\n\nThat being said, I think we should allow for passing of fine-grained configuration to Ironic. Though, I agree, that we can\u0027t fully check it early and some things will only fail during provisioning of a node in Ironic.","commit_id":"5c49c751a6b6fa6b22a3daa04f0fc93ec09a6f44"}]}
