General Bare-Metal Provisioning Framework

Registered by Mikyung Kang

We have already implemented bare-metal provisioning of compute nodes for Tilera TILEmpower 64-core tiled processor systems.
Now we (USC/ISI + NTT DOCOMO + VirtualTech Japan Inc.) want to propose a general baremetal provisioning framework to support

(1) PXE and non-PXE (Tilera) provisioning with bare-metal DB (Review#1)
(2) Architecture-specific provisioning entity (Review#1)
(3) Fault tolerance of bare-metal nodes (Review#2)
(4) Openflow related stuff (Review#3)

http://wiki.openstack.org/GeneralBareMetalProvisioningFramework
http://etherpad.openstack.org/FolsomBareMetalCloud

Blueprint information

Status:
Complete
Approver:
Vish Ishaya
Priority:
Low
Drafter:
Mikyung Kang
Direction:
Approved
Assignee:
USC-ISI
Definition:
Approved
Series goal:
Accepted for grizzly
Implementation:
Implemented
Milestone target:
milestone icon 2013.1
Started by
Vish Ishaya
Completed by
Russell Bryant

Related branches

Sprints

Whiteboard

NTT-Docomo has done a lot of work along these lines, so please collaborate with them on this. --Vish
NTT-DOCOMO's code is available at http://bit.ly/Oias0e . --Ken

Gerrit topic: https://review.openstack.org/#q,topic:bp/general-bare-metal-provisioning-framework,n,z

Addressed by: https://review.openstack.org/10726
    Implements blueprint general-bare-metal-provisioning-framework

Addressed by: https://review.openstack.org/11088
    Added bare-metal documents.

Addressed by: https://review.openstack.org/11354
    Updated bare-metal provisioning framework to use MySQL DB and PXE support.

Addressed by: https://review.openstack.org/11357
    Added bare-metal host manager.

Addressed by: https://review.openstack.org/11366
    Scripts for bare-metal node management.

Addressed by: https://review.openstack.org/13920
    Updated scheduler and compute for multiple capabilities.

Addressed by: https://review.openstack.org/15547
    Make HostManager.get_all_host_states() return an iterator

Addressed by: https://review.openstack.org/15830
    PXE bare-metal provisioning helper server

Addressed by: https://review.openstack.org/16326
    remove old baremetal driver

Addressed by: https://review.openstack.org/16498
    Change baremetal driver to read from _extra_specs

Addressed by: https://review.openstack.org/16607
    Add exceptions to baremetal/db/api

Addressed by: https://review.openstack.org/16608
    Add Tilera back-end for baremetal

Addressed by: https://review.openstack.org/17796
    baremetal IPMI driver can set next boot device

Addressed by: https://review.openstack.org/17797
    multi-node compute should set instance['node']

Addressed by: https://review.openstack.org/17590
    Set instance_ref['node'] in _set_instance_host_and_node

Addressed by: https://review.openstack.org/17994
    add "baremetal_" prefix to bm config options

Addressed by: https://review.openstack.org/18435
    Baremetal VIF and Volume sub-drivers.

Addressed by: https://review.openstack.org/18473
    attach/detach_volume() take instance as a parameter

Addressed by: https://review.openstack.org/18563
    Move baremetal options to [BAREMETAL] OptGroup

Addressed by: https://review.openstack.org/18574
    Implement IPMI sub-driver for baremetal compute

Addressed by: https://review.openstack.org/18586
    Fix baremetal/driver unit tests

Addressed by: https://review.openstack.org/18697
    baremetal power driver takes **kwargs

Addressed by: https://review.openstack.org/18733
    Improve baremetal driver error handling

Addressed by: https://review.openstack.org/18734
    Implement baremetal PXE driver

Addressed by: https://review.openstack.org/18911
    Convert short doc strings to be on one line

Addressed by: https://review.openstack.org/19077
    Add REST api to manage bare-metal nodes

Addressed by: https://review.openstack.org/19078
    Check admin context in bm_interface_get_all()

Addressed by: https://review.openstack.org/19218
    Fix baremetal VIFDriver

Addressed by: https://review.openstack.org/19281
    Tests for PXE bare-metal provisioning helper server.

Addressed by: https://review.openstack.org/19364
    Use instance itself to attach volumes in BareMetalDriver.spawn()

(?)

Work Items

Work items:
USC-ISI (1) add heterogeneous architecture scheduler, (2) adapt nova/nova/virt/baremetal/*.py codes to add NTT-Docomo codes, add ARM support, and bug-fixes, (3) add fault-tolerance stuff : TODO
NTT-Docomo - adapt curent NTT docomo codes (PXE/Volume/VNC/Network) to add them into nova/nova/virt/baremetal/ : TODO