yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #96553
[Bug 2126675] [NEW] ironic compute driver hardcodes volume fields which does not work for many driver types
Public bug reported:
The ironic compute driver in nova/virt/ironic/driver.py in the
get_volume_connector() hardcodes a number of fields and the way the
operation works in a way that's only compatible with iSCSI (as
documented by the function) but then its not compatible with all cinder
driver backends.
There likely needs to be some coordination between Ironic, Cinder and
Nova as to how these fields should be mapped and standardized. For
example, the Nova code reads from Ironic the 1st "iqn" and passes it to
Cinder in the "initiator" field. But not all Cinder backends
consistently use that. Some have used "iqn".
While the comments in the function say that its only compatible with
iSCSI, if there was some flexibility in these field names then other
drivers could be supported. For example, NVMeoF works for other backends
if the field is passed in as "nqn".
Another field is the "os_type" field. It is currently hardcoded to
"baremetal" but not all Cinder backends will accept this for iSCSI and
NVMe and have different values for a "generic" type.
It feels like there should ultimately be a cinder-lib like neutron-lib
which defines standard keys and standard values which this driver could
use and Ironic could use to facilitate in the connection.
** Affects: nova
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/2126675
Title:
ironic compute driver hardcodes volume fields which does not work for
many driver types
Status in OpenStack Compute (nova):
New
Bug description:
The ironic compute driver in nova/virt/ironic/driver.py in the
get_volume_connector() hardcodes a number of fields and the way the
operation works in a way that's only compatible with iSCSI (as
documented by the function) but then its not compatible with all
cinder driver backends.
There likely needs to be some coordination between Ironic, Cinder and
Nova as to how these fields should be mapped and standardized. For
example, the Nova code reads from Ironic the 1st "iqn" and passes it
to Cinder in the "initiator" field. But not all Cinder backends
consistently use that. Some have used "iqn".
While the comments in the function say that its only compatible with
iSCSI, if there was some flexibility in these field names then other
drivers could be supported. For example, NVMeoF works for other
backends if the field is passed in as "nqn".
Another field is the "os_type" field. It is currently hardcoded to
"baremetal" but not all Cinder backends will accept this for iSCSI and
NVMe and have different values for a "generic" type.
It feels like there should ultimately be a cinder-lib like neutron-lib
which defines standard keys and standard values which this driver
could use and Ironic could use to facilitate in the connection.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/2126675/+subscriptions
Follow ups