Enable Fuel to deploy OpenStack without OS provisioning

Registered by Dmitriy Novakovskiy on 2014-01-12

User Story:
As a user, I want to deploy Mirantis OpenStack on my existing CentOS/Ubuntu hosts w/o reinstalling host OS

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/disclaimers around limits of support on user interface and documentation.
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

Not started
Mike Scherbakov
Evgeniy L
Fuel Python (Deprecated)
Series goal:
Accepted for future
Not started
Milestone target:
milestone icon next

Related branches



DN, 12.01.2014: Implemented (Partially?) in "nailgun-separate-provisioning-and-deployment-handlers". Will follow up to this BP after PoC with customer (to see if any additional bits are needed)

AndreyDanin, Jan 24, 2014: To make foreign nodes be discoverable you need at least these packages (see http://ss0078.svwh.net/fwm/4.0/ubuntu/pool/main/ for example):
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.

This blueprint contains Public information 
Everyone can see this information.