New Stateless iPXE driver
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_
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
- Started by
- Completed by
- Lucas Alvares Gomes
Related branches
Related bugs
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