Introduction
Purpose
Provide ability that user can use UCS blades as hardware resource pool in CloudStack, and provisioning operation system/hypervisor on UCS blade by CloudStack baremetal feature
Document History
Glossary
Feature Specifications
- The feature would allow user to register UCS manager through CloudStack UI and provision OS/hypervisor on blades by CloudStack baremetal feature
- Currently this feature would only support:
- Registering UCS manager
- Listing UCS template in CloudStack UI
- Creating UCS profile from UCS template
- Applying UCS profile to a selected blade
- Provisioning the blade in previous step with baremetal template
- Only supporting CloudStack basic mode
-
Use cases
- user has a UCS chassis setup in their lab, and a UCS manager managing UCS chassis
- user creates one or more UCS template to describe what kind of hardware they want to realize on UCS blade
- user go to CloudStack to register UCS manager with necessary UCS credentials. The UCS manager is zone wide
- CloudStack connects to UCS manager and discovers available blades and create a resource pool based on these blades
- user create a baremetal cluster in CloudStack
- user chooses some blades from resource pool and add them to baremetal cluster
- when adding a blade to baremetal cluster, user select a UCS template which tells CloudStack hardware specification of this blade
- CloudStack connects to UCS manager and initializes a UCS profile from UCS template selected in step 7
- CloudStack uses profile initialized in step 8 to realize the blades to add in baremetal cluster
- after blades being added to baremetal cluster, user is able to provision these hosts using common CloudStack baremetal feature
Architecture and Design description
Concepts:
- A new concept of UCS manager will be added, it's a zone wide resource
- user can add multiple UCS managers into a zone
- CloudStack creates one resource pool for each UCS manager. In future release, CloudStack should be able to create multiple resource pools per UCS manager
- CloudStack discovers used/available UCS blades managed by UCS manager and add them into resource pool created in step2
- On each resource pool, UI provides a button to add a blade in pool to an existing CloudStack cluster
- at this release, the CloudStack cluster is a CloudStack baremetal cluster
- when adding a blade, CloudStack provides a dropdown box showing all UCS templates in UCS manager
- user select a template and instruct CloudStack to realize blade from the template
Workflow:
This feature is default enabled as long as cloud-hypervisor-ucs.jar presents in classpath of CloudStack. User doesn't need to do any extra work to get the feature working,
a typical workflow is:
- open Zone page, click button 'Add Resource Pool'
- in 'Add Resource Pool' wizzard, select 'UCS' as type
- fill up information required for adding UCS manger, e.g IP address, username, password ...
- click 'Add'. Cloudstack will automatically create the pool and discover the resources (UCS blades)
Implementations:
The feature is implemented as a plugin locating in incubator-cloudstack/plugins/hypervisors/ucs
web services APIs
AddUcsManagerCmd
example:
curl "http://localhost:8096/?command=addUcsManager&zoneid=$zoneid&name=ucsmanager&url=$url&username=admin&password=C1tr1x99"
curl "http://localhost:8096/?command=addUcsManager&zoneid=$zoneid&name=ucsmanager&url=$url&username=admin&password=C1tr1x99"
AssociateUcsProfileToBladeCmd
example:
curl "http://localhost:8096/?command=associatesUscProfileToBlade&ucsmanagerid=$ucsid&profiledn=$profileDn&bladeid=$bladeId"
ListUcsBladeCmd
example:
curl "http://localhost:8096/?command=listUcsBlade&ucsmanagerid=$ucsid"
ListUcsManagerCmd
example:
TODO
ListUcsProfileCmd
example:
curl "http://localhost:8096/?command=listUcsProfile&ucsmanagerid=$ucsid"
UI flow
- A new page for adding resource pool
- A new page for adding UCS manage in 'Add Resrouce Pool' page
- A new page for associating UCS profile to a selected UCS blade
- A new page for convert a UCS blade to Baremetal host
Appendix
Appendix A:
Appendix B: