Rebuild should also accept a configdrive

Bug #1575935 reported by Julia Kreger
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
Medium
Mathieu Gagné
OpenStack Compute (nova)
Invalid
Wishlist
Unassigned
python-ironicclient
Fix Released
Medium
Mathieu Gagné

Bug Description

Users desire the ability to rebuild pre-existing hosts and update the configuration drive, especially in CI environments.

https://github.com/openstack/ironic/blob/master/ironic/api/controllers/v1/node.py#L518

Presently does not pass a submitted configuration drive. Compared with Line 516.

That being said, logic further down in the deployment (both legacy iscsi deployment and full disk deployment) processes should be checked to ensure that nothing else is broken, however this is standard behavior PRESENTLY because this is how nova submits requests.

Tags: rfe-approved
Changed in ironic:
assignee: nobody → Stephane Miller (stephaneeee)
Dmitry Tantsur (divius)
Changed in ironic:
status: New → Triaged
summary: - Rebuild blocks ability to submit config drive
+ [RFE] Rebuild should also accept a configdrive
Changed in ironic:
status: Triaged → Confirmed
importance: Undecided → Wishlist
tags: added: rfe
Revision history for this message
Jay Faulkner (jason-oldos) wrote : Re: [RFE] Rebuild should also accept a configdrive

I don't think this is an RFE; we're breaking the driver in Nova by not throwing an error when user data is provided (that we ignore), and by using the older user data we're treating rebuild differently than other nova drivers do.

IMO this is a bug, and one that we should fix in Nova+Ironic next cycle (it'd be nearly impossible to land a fix for this in Nova at this point in the cycle).

Revision history for this message
Lucas Alvares Gomes (lucasagomes) wrote :

Yeah, let's mark it as a bug. I don't think it should be an RFE either.

Stephane, are you actively working on it?

Changed in ironic:
importance: Wishlist → High
importance: High → Medium
summary: - [RFE] Rebuild should also accept a configdrive
+ Rebuild should also accept a configdrive
tags: removed: rfe
Changed in ironic:
assignee: Stephane Miller (stephaneeee) → nobody
Revision history for this message
Jim Rollenhagen (jim-rollenhagen) wrote :

It's an API change though, this should at least go through RFE approval and maybe a spec.

Revision history for this message
Jay Faulkner (jason-oldos) wrote :

Marking this as an RFE as Jim indicated.

Changed in ironic:
status: Confirmed → Triaged
importance: Medium → Wishlist
tags: added: needs-spec rfe
Revision history for this message
Ruby Loo (rloo) wrote :

I'm not sure why it needs a spec; maybe the work involved is more complicated.

The API change is "just" allowing the configdrive to be specified when provision target = 'rebuild', right? It doesn't look like it needs an RPC change. (Haven't looked further than that.)

Revision history for this message
Julia Kreger (juliaashleykreger) wrote :

I also don't see why this requires a spec since it is really just two changes in ironic. Permitting the pass-through of the configdrive, instead of being set to None, on the do_node_deploy RPC call, and then storing/updating the config drive data for the next deploy.

Granted, it would likely need to be guarded by microversion since we presently throw an error... but still seems fairly minor to me.

Revision history for this message
Vladyslav Drok (vdrok) wrote :

I think it does not need a spec, I'd just mark it rfe-approved straight away

Revision history for this message
Dmitry Tantsur (divius) wrote :

Seems like the consensus is to not require a spec.

tags: added: rfe-approved
removed: needs-spec rfe
Mathieu Gagné (mgagne)
Changed in ironic:
assignee: nobody → Mathieu Gagné (mgagne)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/501761

Changed in ironic:
status: Triaged → In Progress
Revision history for this message
Sylvain Bauza (sylvain-bauza) wrote :

Not sure I see that as a bug for Nova. Marking it Invalid/Wishlist for that project and feel free to open a blueprint against Nova if you want to add that feature.

Changed in nova:
status: New → Invalid
importance: Undecided → Wishlist
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to nova (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/503088

Revision history for this message
Mathieu Gagné (mgagne) wrote :
Ruby Loo (rloo)
Changed in ironic:
importance: Wishlist → Medium
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/501761
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=6a8b38a2caafe89ebd73fda8c72b8f4fbbdc9f6b
Submitter: Zuul
Branch: master

commit 6a8b38a2caafe89ebd73fda8c72b8f4fbbdc9f6b
Author: Mathieu Gagné <email address hidden>
Date: Thu Sep 7 10:34:45 2017 -0400

    Add ability to provide configdrive when rebuilding

    Previously, the configdrive could only be set when setting
    the node's provisioning state to "active". When rebuilding,
    the old configdrive was used and therefore was never updated
    with latest content.

    This change introduces the API microversion 1.35 which will allow
    configdrive to be provided when setting the node's provisioning state
    to "rebuild".

    Closes-bug: #1575935
    Change-Id: I9a5529f9fa796c75621e9f4354886bf3032cc248

Changed in ironic:
status: In Progress → Fix Released
Ruby Loo (rloo)
Changed in python-ironicclient:
status: New → Triaged
assignee: nobody → Mathieu Gagné (mgagne)
Revision history for this message
Ruby Loo (rloo) wrote :

wrt python-ironicclient:

- the max API version needs to be updated to 1.35
- configdrive support needs to be added to 'openstack baremetal node rebuild' [1]. It should be fairly similar to 'openstack baremetal node deploy' [2].

[1] https://docs.openstack.org/python-ironicclient/latest/cli/osc/v1/index.html#baremetal-node-rebuild.
[2] https://docs.openstack.org/python-ironicclient/latest/cli/osc/v1/index.html#baremetal-node-deploy

Changed in python-ironicclient:
importance: Undecided → Medium
Changed in python-ironicclient:
status: Triaged → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to python-ironicclient (master)

Reviewed: https://review.openstack.org/517436
Committed: https://git.openstack.org/cgit/openstack/python-ironicclient/commit/?id=07290220762e023f1e197a7d854228d4d09fce7a
Submitter: Zuul
Branch: master

commit 07290220762e023f1e197a7d854228d4d09fce7a
Author: Mathieu Gagné <email address hidden>
Date: Thu Nov 2 16:45:52 2017 -0400

    Add ability to provide configdrive when rebuilding with OSC

    Ironic introduces the API microversion 1.35 which allows
    configdrive to be provided when setting the node's provisioning state
    to "rebuild".

    This change adds the ability to provide a config-drive
    when rebuilding a node.

    Closes-bug: #1575935
    Change-Id: I950ac35bcde97b0f93225f80f989d42c5519faf2

Changed in python-ironicclient:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/python-ironicclient 2.0.0

This issue was fixed in the openstack/python-ironicclient 2.0.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/ironic 9.2.0

This issue was fixed in the openstack/ironic 9.2.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to nova (master)

Reviewed: https://review.openstack.org/503088
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=878c44f0cff4f11b2a01e60019d79ccf5e5d707a
Submitter: Zuul
Branch: master

commit 878c44f0cff4f11b2a01e60019d79ccf5e5d707a
Author: Mathieu Gagné <email address hidden>
Date: Thu Sep 7 13:10:00 2017 -0400

    Regenerate and pass configdrive when rebuild Ironic nodes

    Previously, the configdrive could only be set when setting
    the node's provisioning state to "active". When rebuilding,
    the old configdrive was used and therefore was never updated
    with latest content.

    Since Ironic API microversion 1.35, it is now allowed to provide
    a configdrive when setting the node's provisioning state to "rebuild".

    Blueprint: rebuild-ironic-config-drive
    Related-bug: #1575935
    Depends-On: I9a5529f9fa796c75621e9f4354886bf3032cc248
    Change-Id: I1f9056f66519b9ca2f4e23143559735f2bff8943

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.