[RFE] iPXE to use Swift Temporary URLs

Bug #1526404 reported by Vladyslav Drok
4
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
Wishlist
Pavlo Shchelokovskyy

Bug Description

It is proposed to add support for generating Swift temporary URLs for the
deploy and image's ramdisk(s) and kernel(s) when booting with iPXE.

Currently the iPXE driver requires an external HTTP server to serve
the deploy and image's ramdisk and kernel. When used with Glance, the
``ironic-conductor`` fetches the images from it and place them under the
HTTP root directory, and if a rebalance happens in the hash right the
new ``ironic-conductor`` taking over the node have to do the same thing,
fetch the images and cache it locally to be able to manage that node.

Having an external HTTP server should not be required when Glance is used
with a Swift backend, with Swift we can generate temporary URLs that can
be passed to iPXE to download the images without requiring credentials.

Vladyslav Drok (vdrok)
Changed in ironic:
status: New → Confirmed
importance: Undecided → Wishlist
tags: added: rfe
Revision history for this message
Ruby Loo (rloo) wrote :
Changed in ironic:
assignee: nobody → Lucas Alvares Gomes (lucasagomes)
tags: added: rfe-approved
removed: rfe
Revision history for this message
Pavlo Shchelokovskyy (pshchelo) wrote :

Can we indeed enable temp urls for the kernel and ramdisk of user image when boot is not local? AFAIU this will break an attempt to reboot the server by the user (not via Ironic API) when the temp urls time out.

Revision history for this message
Pavlo Shchelokovskyy (pshchelo) wrote :
Changed in ironic:
assignee: Lucas Alvares Gomes (lucasagomes) → Pavlo Shchelokovskyy (pshchelo)
status: Confirmed → In Progress
Revision history for this message
Pavlo Shchelokovskyy (pshchelo) wrote :

I also do not understand why the related spec is depending on https://bugs.launchpad.net/ironic/+bug/1526275 (dynamic iPXE configuration).

For me these two seem independent, and implementing this feature alone would also be of great benefit for scalability (ipxe config are rather small compared to deployment ramdisk).

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

Hi @Pavlo,

The idea of having this spec to depend on #1526275 (dynamic iPXE configuration) was to deal with the problem you pointed at at comment #2. With dynamic iPXE configuration in place the temp URLs would work for both local and non-local deployments because the tempurls would be generated on-the-fly.

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

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/344160
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=497be96d4a18e4f2893147ecff6f83d5d64a984e
Submitter: Jenkins
Branch: master

commit 497be96d4a18e4f2893147ecff6f83d5d64a984e
Author: Pavlo Shchelokovskyy <email address hidden>
Date: Thu Aug 18 12:06:18 2016 +0300

    Allow using TempURLs for deploy images

    when iPXE is enabled, it is possible for the bootloader to download
    the deploy kernel and ramdisk directly from Swift TempURL instead of
    downloading them to conductor and serving from local HTTP server.

    This patch adds the required logic and a new config option
    `ipxe_use_swift` (default False), setting which to True enables
    using Swift TempURLs for deploy ramdisk and kernel.

    Note that local caching and serving for kernel and ramdisk of user image
    is still performed for partition images that require non-local boot,
    as moving those to use TempURLs will make it impossible for the user
    to reboot the instance when TempURLs time out or image is deleted from
    Glance/Swift.

    Change-Id: I106cc6148c329e784bfbb5019fdfeb0509a9de09
    Closes-Bug: #1526404
    Co-Authored-By: Andrey Shestakov <email address hidden>

Changed in ironic:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ironic-specs (master)

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

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

Reviewed: https://review.openstack.org/372682
Committed: https://git.openstack.org/cgit/openstack/ironic-specs/commit/?id=964f07e7207421f1c3f727e4feb04c294f789659
Submitter: Jenkins
Branch: master

commit 964f07e7207421f1c3f727e4feb04c294f789659
Author: Pavlo Shchelokovskyy <email address hidden>
Date: Mon Sep 19 21:22:20 2016 +0300

    Amend ipxe-swift-tempurls spec

    The corresponding patch was merged.

    The spec is amended with actual implementation details:
    - actual config option names
    - caching behavior for kernel/ramdisk of user image for netboot case

    Change-Id: I0053b3790a2da36f5df1b649e31acb7cba55442b
    Related-Bug: #1526404

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

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

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

Reviewed: https://review.openstack.org/379358
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=a48f317c3892512e887cd6bd8e7e778b8c643816
Submitter: Jenkins
Branch: master

commit a48f317c3892512e887cd6bd8e7e778b8c643816
Author: Pavlo Shchelokovskyy <email address hidden>
Date: Thu Sep 29 13:34:38 2016 +0300

    [install-guide] describe pxe.ipxe_swift_tempurl

    Adds description and gotchas for this config option (new in Newton).

    Change-Id: I667ecee9a18f467b39b0d4e0ce2c8d654048aee8
    Related-Bug: #1526404

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ironic (stable/newton)

Related fix proposed to branch: stable/newton
Review: https://review.openstack.org/382478

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix merged to ironic (stable/newton)

Reviewed: https://review.openstack.org/382478
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=c958774a08a2b59980ebe5508ef06a34cdd3bae2
Submitter: Jenkins
Branch: stable/newton

commit c958774a08a2b59980ebe5508ef06a34cdd3bae2
Author: Pavlo Shchelokovskyy <email address hidden>
Date: Thu Sep 29 13:34:38 2016 +0300

    [install-guide] describe pxe.ipxe_swift_tempurl

    Adds description and gotchas for this config option (new in Newton).

    Change-Id: I667ecee9a18f467b39b0d4e0ce2c8d654048aee8
    Related-Bug: #1526404
    (cherry picked from commit a48f317c3892512e887cd6bd8e7e778b8c643816)

tags: added: in-stable-newton
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to ironic (master)

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

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on ironic (master)

Change abandoned by Pavlo Shchelokovskyy (<email address hidden>) on branch: master
Review: https://review.openstack.org/402387
Reason: squashed into parent DNM patch

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.