Nova/Blueprints/pxe-boot-instance

= PXE Boot Instance [DRAFT] =


 * Launchpad entries:
 * TBD: pxe-boot-instance-base
 * TBD: pxe-boot-instance-libvirt
 * TBD: diskless-instance
 * Created: 25 Nov 2013
 * Contributors: Stephen Gordon, Rhys Oxenham

=Summary=

Currently, compute instances must be booted from images (or snapshots) stored in Glance or volumes stored in Cinder. This specification and the associated blueprints aim to provide a design for booting compute instances from a PXE boot server, i.e. bypassing the image/snapshot/volume requirement. It is intended that users would also be able to pick which NIC to use for PXE boot where more than one is attached to an instance. Ultimately it is intended that this would allow for the creation of diskless instances, ones that boot from PXE continually; the default configuration would likely create an ephemeral disk as per the flavor, however an additional API flag to disable the creation would assist with this requirement.

Rationale
Traditional and virtualized environments frequently distribute installation media or even stateless operating system images using a PXE server. Whilst it's possible to boot from PXE if an empty disk is provided, this is not an efficient way to support network booting, nor would it allow for PXE to be the primary boot device (e.g. in circumstances where PXE is always the required boot source).

User Stories
=Detailed Design=

Requirements

 * Ability to select "network" as a boot device when launching an instance.
 * Ability to select the vNIC to use as a boot device when more than one is present.
 * Ability to optionally disable the creation of ephemeral/persistent storage for the instance (based on flavor type)

Assumptions

 * The PXE boot service is managed externally via another machine within a tenant/provider network, this Wiki entry is not defining a "PXE-as-a-Service" offering.
 * Once PXE/Network booting is selected by the user as the instance boot source, this will always be the default boot option for the instance's entire lifecycle. i.e. it won't just PXE boot one-time and then revert back to default disk booting. The management and responsibility of ensuring that the instance isn't stuck in a PXE-boot loop (or indeed a reinstall every reboot) would need to reside with the PXE server itself.

Test/Demo Plan
=Implementation=

Nova (Libvirt Driver)

 * New boot device should be entered into the Libvirt XML attributes where required (i.e.  )

Horizon

 * Requirement for new entry in "Instance Boot Source" for network booting, e.g. "Boot from Network"
 * Upon selection of above, UI elements to allow the disabling of disk creation should appear

=Release Notes=

=Comments and Discussion=