Hi,
openstack-virtual baremetal carried patches[1] to enable PXE booting instances, I think the nova project declined including them back when, I do not know why ...
Another potential solution is to use block_device_mappings and attach an iPXE image as a secondary disk and set that as boot_index: 0. I use the following when creating an instance, the "server_img.id" can be a "blank" image initially. Then the second image is an iPXE image. The result is that the instance boots into iPXE which does network boot ...
block_device_mapping = [
{'uuid': server_img.id,
'boot_index': 1,
'source_type': 'image',
'destination_type': 'volume',
'device_type': 'disk',
'volume_size': VOLUME_SIZE,
'delete_on_termination': True,
},
{'uuid': ipxe_image.id,
'boot_index': 0,
'source_type': 'image',
'destination_type': 'volume',
'device_type': 'cdrom',
'disk_bus': 'sata',
'volume_size': VOLUME_SIZE,
'delete_on_termination': True,
}
]