Registered by Sirushti Murugesan

This blueprint aims to propose an addition on the decision mechanism on how linux and windows images are deployed to baremetal machines.

Furthermore, since it's not manageable via Linux to choose Swap/Root partitions for Windows, we'd have to simply copy the image to the entire disk rather than the partition and let windows resize the disk as required. This is under the assumption that the Bootloader along with the disk structure will be contained within the image.

Currently, the ironic deploy mechanism requires a ramdisk and kernel to be given. This will not work with windows and the way we deploy baremetal machines in ironic needs to be changed in order to deploy windows. PXE Config needs to be changed based on the Image type whether its a disk or a partition image.

On making a decision on whether to deploy Windows or Linux, we'd have to query Glance and set a property and assume it has been set by the user for deploying windows based images else we fall back to default Linux deployment mode.

Blueprint information

aeva black
Sirushti Murugesan
Sirushti Murugesan
Series goal:
Accepted for kilo
Milestone target:
milestone icon 2015.1.0
Started by
aeva black
Completed by
John Stafford

Related branches



Can you clarify how this blueprint is different than windows-pxe-localboot0? Or, is this blueprint meant to replace that one? Peter hasn't been actively working on it, so I am fine with it either way.

Thanks, -Deva

For Peter's solution to work, the baremetal disks MBR has to have boot loader code. However, ironic only creates partition and does not configure boot loader on the disk. So even if PXE is updated to perform a *localboot 0*, it will not work as there is not boot loader code on the MBR of the target baremetal disk.
For Peter's code to work, we need to change the way Windows images are deployed on the baremetal disk. It should be a disk to disk dd and not partition to partition dd as disk to disk dd will ensure that the MBR and Boot loader gets copied properly and then PXE to *localboot 0* will work fine. So in a way, it is supplement to Peter's proposal.
We are also proposing to have a user specified property on the image which will help us determine if the image is of Windows or Linux. In case if the property is missing, we fall back to Linux image approach.

Thanks, -Om

Thanks for the explanation; that sounds reasonable to me. Please go ahead and incorporate any details from Peter's blueprint into this one that you feel are lacking. I will mark the other one as superceded by this one, since it is not actively being worked on. How soon do you think you can put some code up? I'll be thrilled to see all of this supported in Ironic!

Cheers, -Deva

We have updated this blueprint and we should be able to put initial code for review by mid-next week (around 12th Feb).


Gerrit topic: https://review.openstack.org/#q,topic:bp/windows-disk-image-support,n,z

Addressed by: https://review.openstack.org/73054
    Adds support for deploying Disk Images

Hi, I have some questions:
 - what about EFI systems - there we don't need a bootloader, just an appropriate EFIBoot partition with the OS files dropped in it - its a well known interface, and all modern Windows support EFI, no ? Perhaps we should be going for EFI PXE Boot?
 - whole disk may be attractive to some linux users too, so perhaps we should separate conerns here - boot config and deploy approach are separate.

Hi, We do have plans for EFI systems but that would probably have to wait until Juno. For now i.e Icehouse, we only wanted a simple unattended Windows deployment via a Disk Image in Ironic. However, we'd be happy to further discuss EFI PXE Boot if necessary.
As for having separate concerns for boot config and deploy approach, could you elaborate a little more on this?

Thanks, -Sirushti

Deploying to local disk would solve an issue with trying to seed a cloud and then have the cloud use ironic to maintain itself. If all linux boxes need to netboot, if the whole cloud goes down, there isn't a machine anymore that can come up and be used to bring the rest up. If you install linux with a disk-image, then on power up, the core cloud nodes can come up, and then you can bring the rest up. So I think this feature should definitely be generic, not just for windows.

Thanks, kfox1111

Gerrit topic: https://review.openstack.org/#q,topic:spec/disk-image-support,n,z

Addressed by: https://review.openstack.org/97150
    Whole Disk Image Support for PXE Deploy Driver

Gerrit topic: https://review.openstack.org/#q,topic:bp/whole-disk-image-support,n,z

Addressed by: https://review.openstack.org/150142
    Adds support for deploying whole disk images

Addressed by: https://review.openstack.org/#/c/153196
    Validate Ironic's Nova primitives during scheduling

Nova has blocked the above patch for Kilo, and requested a spec be proposed for Liberty. I spoke with Sirushti, and agree that it is reasonable to proceed with this work in Ironic for Juno. We can also land the Nova scheduler filter in our tree for now, and port it to Nova's tree in the next cycle.
-- Devananda, 04 March 2015

Addressed by: https://review.openstack.org/163589
    Add whole disk image support in iscsi_ilo driver

Addressed by: https://review.openstack.org/164440
    Raise exception for Agent Deploy driver when using partition images

Addressed by: https://review.openstack.org/165847
    Add whole disk image support for iscsi_ilo using agent ramdisk

Addressed by: https://review.openstack.org/181771
    Add whole disk image support for iscsi_irmc driver


Work Items