New Stateless iPXE driver

Registered by Lucas Alvares Gomes

The currently PXE driver supports booting (even with iPXE mode enabled),
do cache PXE configuration files and images to the disk, it also does
update Neutron DHCP agent dynamically to inform the DHCP server from which
`ironic-conductor` a certain node needs to PXE boot from. The problem
with this approach is because it does creates a dependency between a
given conductor and a given node (even when a conductor does not have a
lock on a node), so in case of a conductor die and the nodes get remapped
the new conductor should regenerate the new configuration files, cache
images and inform Neutron about the changes.

In addition, the way we detect that a remap have occurred is by using a
periodic task (`_sync_local_state()`), this periodic task runs each pool
interval (default is 180 seconds) so between one interval and another
a node that was just remapped will be unmanageable.

Another problem with the PXE driver is that images are transfered over
TFTP, which is extremely unreliable (the first T of TFTP stands for
trivial) and slow. If used with the iPXE mode enabled it's possible to
transfer the images over HTTP but that would require a HTTP server (apart
from the TFTP server that is still used to transfer the configuration
files and the iPXE boot image to be chainloaded) configurable and
accessible by the conductor.

Blueprint information

Status:
Complete
Approver:
None
Priority:
Undefined
Drafter:
Lucas Alvares Gomes
Direction:
Needs approval
Assignee:
Lucas Alvares Gomes
Definition:
Superseded
Series goal:
None
Implementation:
Unknown
Milestone target:
None
Completed by
Lucas Alvares Gomes

Related branches

Sprints

Whiteboard

I will break this spec in two: One for the configuration files to be dynamically generated and another to add Swift support. That's because the Swift is now optional to make the driver complete stateless, in Kilo we added support for non-glance images and we could use a simple HTTP server to make it stateless

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.