Enable Fuel to deploy OpenStack without OS provisioning
User Story:
As a user, I want to deploy Mirantis OpenStack on my existing CentOS/Ubuntu hosts w/o reinstalling host OS
Motivation:
There's a certain type of customers who don't want/can't "afford" Mirantis OpenStack to be deployed with full PXE-boot and OS provisioning flow. They need to deploy on pre-installed OS. Examples:
- Large enterprises, where OpenStack deployment and server infrastructure provisioning and management have are decoupled; servers are pre-provisioned with specific security measures and software sets
- Appliance vendors, who want to partner with Mirantis and deliver OpenStack solution on top of their products, but don't want Fuel to change OS on a well-tested and functioning device
- Public hosting (like Softlayer), where PXE provisioning may be not available and/or substitution of host OS may be undesirable
Risks & limitations:
Obviously running Mirantis OpenStack on top of untested OS stack limits the "default" option of commercial support. For customers willing to get support we'll need to go through additional certification / custom support contract process, while also provide comprehensive messaging/
But I believe this is out of scope for a technical discussion about feature :)
Implementation approach:
I believe that community will elaborate the most optimal solution for this requirement :), so here I'll just share a few ideas I've got from Fuel "practitioners" who already approached this problem at some point:
A1. Allow user to "pre-seed" existing CentOS/Ubuntu node with a set of packages required to make it "discoverable" by Fuel master node (puppet, mcollective, nailgun etc). This can be done in a number of ways:
A1.1. upload "pre-seed" package to hosts whose IP's user explicitly specifies
A1.2. enable the "pre-seed" package to be "generated" (by Fuel master node for a currently relevant fuel version/build) and then integrated into customer's CI/CD and/or infrastructure management system (so that all newly provisioned nodes of large enterprise will contain all that's required to get the node discovered in Fuel)
Blueprint information
- Status:
- Not started
- Approver:
- Mike Scherbakov
- Priority:
- Medium
- Drafter:
- Evgeniy L
- Direction:
- Approved
- Assignee:
- Fuel Python (Deprecated)
- Definition:
- New
- Series goal:
- Accepted for future
- Implementation:
- Not started
- Milestone target:
- next
- Started by
- Completed by
Related branches
Sprints
Whiteboard
DN, 12.01.2014: Implemented (Partially?) in "nailgun-
AndreyDanin, Jan 24, 2014: To make foreign nodes be discoverable you need at least these packages (see http://
nailgun-agent, nailgun-mcagents and all their deps (ohai, mcollective etc.).
Also you may need nailgun-net-check and dhcp-checker packages.
Work Items
Dependency tree
* Blueprints in grey have been implemented.