fuel-devops: Support master node installation as node extension
In scope of  node role extensions were introduced. This spec offers to use
them for bootstrapping of Fuel master node.
There are 2 places in code where installation of Fuel master node is done:
These two places do the same thing but also they have different implementation.
It is not optimal from development and architecture points of view.
Unify methods fuel-qa and fuel-devops, to get in fuel-devops a single way
for setup of master node instead of dependencies on unsuitable
Also the process should be splitted into 4 steps:
- Sending of scancodes of keys into boot menu
- Waiting for ssh port to open
- Waiting for appearance of deploy end phrase in logs (optinally waiting for
unpacking of docker containers)
Example of required steps to bootstrap admin node:
master_node = env.get_node(name='admin')
admin_node.kernel_cmd = "<custom kernel command>"
- Primary assignee:
- Other contributors:
- Mandatory design review:
- Investigate the existing code
- Move/Rewrite fuel-devops/helpers/node_manager.py to extension files
- Remove node_manager.py and use extension code in shell.py
- Update fuel-qa/fuelweb_test/models/environment.py to use node extension
- Setup of fuel master node is done inside of setup method of
node_extension for 5.0, 6.1 and 7.0 versions of Fuel.
- API remains back-compatible to previous versions.