Nodes which were provisioned without Fuel can't be added to fuel nodes array(if we install all required packages and configure it properly). Also, nodes which were provisioned with Fuel in one cluster can't be moved to other fuel cluster without reprovision proccess.
You will get this opportunity if you comment following strings in nailgun api code:
https://github.com/stackforge/fuel-web/blob/master/nailgun/nailgun/api/handlers/node.py#L219-226
But, several bugs in fuel workflow will appear after you apply these changes:
1. provisioning and deployment processes can not be applied for single cluster node because fuel starts these processes for each cluster node
2. if you will add all node network interfaces to openvswitch bridges and then try to add this node to Fuel cluster you will get following trace:
2014-03-13 19:37:13.717 ERROR [7f548701e700] (logger) Traceback (most recent call last):
File "/opt/nailgun/lib/python2.6/site-packages/web/application.py", line 239, in process
return self.handle()
File "/opt/nailgun/lib/python2.6/site-packages/web/application.py", line 230, in handle
return self._delegate(fn, self.fvars, args)
File "/opt/nailgun/lib/python2.6/site-packages/web/application.py", line 420, in _delegate
return handle_class(cls)
File "/opt/nailgun/lib/python2.6/site-packages/web/application.py", line 396, in handle_class
return tocall(*args)
File "<string>", line 2, in PUT
File "/opt/nailgun/lib/python2.6/site-packages/nailgun/api/handlers/base.py", line 56, in content_json
data = func(*args, **kwargs)
File "/opt/nailgun/lib/python2.6/site-packages/nailgun/api/handlers/node.py", line 433, in PUT
network_manager.assign_networks_by_default(node)
File "/opt/nailgun/lib/python2.6/site-packages/nailgun/network/manager.py", line 471, in assign_networks_by_default
def_set = cls.get_default_networks_assignment(node)
File "/opt/nailgun/lib/python2.6/site-packages/nailgun/network/manager.py", line 460, in get_default_networks_assignment
" interface %r", node.name, nics[0]['name'])
IndexError: list index out of range
Extracted from: https://blueprints.launchpad.net/fuel/+spec/nailgun-provisioned-nodes-adding
What about adding SshProvision task to nailgun?
which will scp puppet manifests for repo setup, fuel-agent, mcollective-agent, netprobe, maybe smth else is required?
ofcourse list of ipaddresses, or atleast mac is required, as well as ssh access