[ironic][nova] A few notes about the Ironic<>Nova driver
Hey all, Julia Kreger, John Garbutt, and myself met today in a trio-coding session to review the Ironic virt driver in Nova, as a follow-up to some of the concerns we developed when sharding support was reverted in Bobcat. I wanted to ensure both communities knew about what we discussed. Notes were taken in the Ironic PTG etherpad starting at line 654. *Fix a Bug in list_instances/list_instance_uuids* We found a bug around list_instances and list_instance_uuids in the Ironic driver, and tracked that its main impact was performance. The bug has been documented in https://bugs.launchpad.net/nova/+bug/2043036 and we will work to ensure it's resolved this cycle. *Completing the Partially completed ironicclient -> SDK migration* The Ironic virt driver in Nova began migrating to openstacksdk, but this migration was not completed. This left the driver in a strange, in-between state which made it much easier to misunderstand microversion interactions. Even more unfortunately, we even have places where we're checking the available microversion using ironicclient, then making the actual call with openstacksdk (which may negotiate another microversion altogether). Completing this migration will be a priority; and we will attempt to complete it, barring unforeseen technical issues, before re-proposing the sharding changes. *Sharding re-proposal and testing* For sharding's re-proposal in Caracal, we discussed some details around validation and testing. Primarily, we want to ensure Ironic's sharding API has tempest test coverage, and that we have more complex testing coverage around the integrated Nova/Ironic sharding case, for when it's reproposed. As sharding will be the primary scaling method for integrated Ironic<>Nova users, it's important it's exercised well in our CI. *Pass more metadata to Ironic at provisioning* Ironic implemented several features around RBAC recently, but those have not been available for users of Nova-integrated Ironic installations. We want to change that. John proposed a blueprint, https://blueprints.launchpad.net/nova/+spec/ironic-guest-metadata , which we hope to be approved as specless, which would make the metadata set in Ironic's instance_info more consistent with what is set on a libvirt guest. With that metadata, Ironic developers could make the "automatic_lessee" feature work with Nova and unlock RBAC-goodness for users of fully integrated Ironic<>Nova clouds and Ironic deployers have a new tool they can use to troubleshoot failures using instance_info from Ironic's API. Thanks for reading. This is just a summary of our discussion and links to some artifacts from it; obviously none of this is going to happen until the blueprints are approved, code is written and lands -- but we thought the community might appreciate hearing about what we're thinking about ahead of time. Thanks, Jay Faulkner Ironic PTL
Somehow, I neglected to link that etherpad! Full notes on this are here: https://etherpad.opendev.org/p/ironic-ptg-october-2023 starting at line 654. -Jay On Wed, Nov 8, 2023 at 10:21 AM Jay Faulkner <jay@gr-oss.io> wrote:
Hey all,
Julia Kreger, John Garbutt, and myself met today in a trio-coding session to review the Ironic virt driver in Nova, as a follow-up to some of the concerns we developed when sharding support was reverted in Bobcat. I wanted to ensure both communities knew about what we discussed. Notes were taken in the Ironic PTG etherpad starting at line 654.
*Fix a Bug in list_instances/list_instance_uuids* We found a bug around list_instances and list_instance_uuids in the Ironic driver, and tracked that its main impact was performance. The bug has been documented in https://bugs.launchpad.net/nova/+bug/2043036 and we will work to ensure it's resolved this cycle.
*Completing the Partially completed ironicclient -> SDK migration* The Ironic virt driver in Nova began migrating to openstacksdk, but this migration was not completed. This left the driver in a strange, in-between state which made it much easier to misunderstand microversion interactions. Even more unfortunately, we even have places where we're checking the available microversion using ironicclient, then making the actual call with openstacksdk (which may negotiate another microversion altogether).
Completing this migration will be a priority; and we will attempt to complete it, barring unforeseen technical issues, before re-proposing the sharding changes.
*Sharding re-proposal and testing* For sharding's re-proposal in Caracal, we discussed some details around validation and testing. Primarily, we want to ensure Ironic's sharding API has tempest test coverage, and that we have more complex testing coverage around the integrated Nova/Ironic sharding case, for when it's reproposed.
As sharding will be the primary scaling method for integrated Ironic<>Nova users, it's important it's exercised well in our CI.
*Pass more metadata to Ironic at provisioning* Ironic implemented several features around RBAC recently, but those have not been available for users of Nova-integrated Ironic installations. We want to change that.
John proposed a blueprint, https://blueprints.launchpad.net/nova/+spec/ironic-guest-metadata , which we hope to be approved as specless, which would make the metadata set in Ironic's instance_info more consistent with what is set on a libvirt guest. With that metadata, Ironic developers could make the "automatic_lessee" feature work with Nova and unlock RBAC-goodness for users of fully integrated Ironic<>Nova clouds and Ironic deployers have a new tool they can use to troubleshoot failures using instance_info from Ironic's API.
Thanks for reading. This is just a summary of our discussion and links to some artifacts from it; obviously none of this is going to happen until the blueprints are approved, code is written and lands -- but we thought the community might appreciate hearing about what we're thinking about ahead of time.
Thanks, Jay Faulkner Ironic PTL
participants (1)
-
Jay Faulkner