[ironic] the driver composition and breaking changes to the supported interfaces

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[ironic] the driver composition and breaking changes to the supported interfaces

Dmitry Tantsur
Hi folks!

I want to raise something we haven't apparently thought about when working on
the driver composition reform.

For example, an iRMC patch [0] replaces 'pxe' boot with 'irmc-pxe'. This is the
correct thing to do in this case. They're extending the PXE boot, and need a new
class and a new entrypoint. We can expect more changes like this coming.

However, this change is breaking for users. Imagine a node explicitly created with:

  openstack baremetal node create --driver irmc --boot-interface pxe

On upgrade to Pike, such nodes will break and will require manual intervention
to get it working again:

  openstack baremetal node set <UUID> --boot-interface irmc-pxe

What can we do about it? I see the following possibilities:

1. Keep "pxe" interface supported and issue a deprecation. This is relatively
easy, but I'm not sure if it's always possible to keep the old interface working.

2. Change the driver composition reform to somehow allow the same names for
different interfaces. e.g. "pxe" would point to PXEBoot for IPMI, but to
IRMCPXEBoot for iRMC. This is technically challenging.

3. Only do a release note, and allow the breaking change to happen.

WDYT?

[0] https://review.openstack.org/#/c/416403

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [hidden email]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [ironic] the driver composition and breaking changes to the supported interfaces

tiendc@vn.fujitsu.com
Hi,

Dmitry: Thanks for bringing this issue into discussion.

For the iRMC patch, I would vote for the first option as it is commonly used. But overall, I think it's great if ironic can provide a mechanism like the second one. But as you said, that is technically challenging.

Regards
TienDC

-----Original Message-----
From: Dmitry Tantsur [mailto:[hidden email]]
Sent: Monday, June 12, 2017 20:44
To: OpenStack Development Mailing List (not for usage questions) <[hidden email]>
Subject: [openstack-dev] [ironic] the driver composition and breaking changes to the supported interfaces

Hi folks!

I want to raise something we haven't apparently thought about when working on the driver composition reform.

For example, an iRMC patch [0] replaces 'pxe' boot with 'irmc-pxe'. This is the correct thing to do in this case. They're extending the PXE boot, and need a new class and a new entrypoint. We can expect more changes like this coming.

However, this change is breaking for users. Imagine a node explicitly created with:

  openstack baremetal node create --driver irmc --boot-interface pxe

On upgrade to Pike, such nodes will break and will require manual intervention to get it working again:

  openstack baremetal node set <UUID> --boot-interface irmc-pxe

What can we do about it? I see the following possibilities:

1. Keep "pxe" interface supported and issue a deprecation. This is relatively easy, but I'm not sure if it's always possible to keep the old interface working.

2. Change the driver composition reform to somehow allow the same names for different interfaces. e.g. "pxe" would point to PXEBoot for IPMI, but to IRMCPXEBoot for iRMC. This is technically challenging.

3. Only do a release note, and allow the breaking change to happen.

WDYT?

[0] https://review.openstack.org/#/c/416403

__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [hidden email]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [hidden email]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: [ironic] the driver composition and breaking changes to the supported interfaces

Dmitry Tantsur
Thanks!

I think this is what we seem to agree so far: keep the old interface and
deprecate it usage.

On 06/13/2017 01:39 PM, [hidden email] wrote:

> Hi,
>
> Dmitry: Thanks for bringing this issue into discussion.
>
> For the iRMC patch, I would vote for the first option as it is commonly used. But overall, I think it's great if ironic can provide a mechanism like the second one. But as you said, that is technically challenging.
>
> Regards
> TienDC
>
> -----Original Message-----
> From: Dmitry Tantsur [mailto:[hidden email]]
> Sent: Monday, June 12, 2017 20:44
> To: OpenStack Development Mailing List (not for usage questions) <[hidden email]>
> Subject: [openstack-dev] [ironic] the driver composition and breaking changes to the supported interfaces
>
> Hi folks!
>
> I want to raise something we haven't apparently thought about when working on the driver composition reform.
>
> For example, an iRMC patch [0] replaces 'pxe' boot with 'irmc-pxe'. This is the correct thing to do in this case. They're extending the PXE boot, and need a new class and a new entrypoint. We can expect more changes like this coming.
>
> However, this change is breaking for users. Imagine a node explicitly created with:
>
>    openstack baremetal node create --driver irmc --boot-interface pxe
>
> On upgrade to Pike, such nodes will break and will require manual intervention to get it working again:
>
>    openstack baremetal node set <UUID> --boot-interface irmc-pxe
>
> What can we do about it? I see the following possibilities:
>
> 1. Keep "pxe" interface supported and issue a deprecation. This is relatively easy, but I'm not sure if it's always possible to keep the old interface working.
>
> 2. Change the driver composition reform to somehow allow the same names for different interfaces. e.g. "pxe" would point to PXEBoot for IPMI, but to IRMCPXEBoot for iRMC. This is technically challenging.
>
> 3. Only do a release note, and allow the breaking change to happen.
>
> WDYT?
>
> [0] https://review.openstack.org/#/c/416403
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: [hidden email]?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: [hidden email]?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>


__________________________________________________________________________
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: [hidden email]?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
Loading...