Configurable hostnames for physical nodes
Implements: blueprint node-naming Change-Id: I08febdbc80bf64baac7e1926b255df0825a6a548
This commit is contained in:
parent
b4b03b8730
commit
e9e8478a40
198
specs/7.0/configurable-hostnames-for-physical-nodes.rst
Normal file
198
specs/7.0/configurable-hostnames-for-physical-nodes.rst
Normal file
@ -0,0 +1,198 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
==========================================
|
||||||
|
Configurable hostnames for physical nodes
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/fuel/+spec/node-naming
|
||||||
|
|
||||||
|
Configure the hostnames of the slave nodes that Fuel will deploy based on
|
||||||
|
custom naming convention.
|
||||||
|
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
The name that is visible in the UI/CLI/API for the node is NOT what is applied
|
||||||
|
as the hostname when the node is deployed. The hostname is dynamically
|
||||||
|
generated (i.e. node-1 .. node-n).
|
||||||
|
New mechanism should has possibility changing hostname before provision
|
||||||
|
process to enable customers to access the device for updates, security checks,
|
||||||
|
etc. and prevent confusion.
|
||||||
|
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
This spec proposes to extend UI, fuel-cli and nailgun API as well in
|
||||||
|
order to use custom hostnames prior provisioning stage.
|
||||||
|
|
||||||
|
* New field 'setup hostname' should be added to the UI node settings part
|
||||||
|
* New field should has ability to forbid to rename node after provisioning
|
||||||
|
* Extend node essence with new hostname field in nailgun API
|
||||||
|
extend nailgun node validation API
|
||||||
|
based on custom naming convention checks
|
||||||
|
|
||||||
|
* Extend fuel-cli to support to set up hostname
|
||||||
|
for example::
|
||||||
|
|
||||||
|
fuel node --node-id 15 --set-hostname node-3
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
Node model will include hostname field in nailgun
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
NodeValidator should be extended to handle incorrect node's hostname format and
|
||||||
|
duplicates of hostnames within a cluster as well.
|
||||||
|
In case when hostname is not set for node hostname will generated by standard
|
||||||
|
method (node-1...etc)
|
||||||
|
|
||||||
|
Upgrade impact
|
||||||
|
--------------
|
||||||
|
|
||||||
|
After upgrade to 7.0 version hostname field will be updated to current
|
||||||
|
generated node hostname:
|
||||||
|
In this case will used standard hostname generation method (node-$ID)
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
None
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
End user gets ``--set-hostname`` additional option via CLI, that not required
|
||||||
|
for changes. Deployed env can work properly with default values.
|
||||||
|
|
||||||
|
End user gets new optional field in UI node settings.
|
||||||
|
Where hostname can be changed
|
||||||
|
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Plugin impact
|
||||||
|
-------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Infrastructure impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
Ivan Ponomarev
|
||||||
|
|
||||||
|
Developer:
|
||||||
|
Artur Svechnikov
|
||||||
|
|
||||||
|
QA:
|
||||||
|
Dmirtry Kruglov
|
||||||
|
|
||||||
|
Design Review:
|
||||||
|
Evgeny Li
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Forbid to change node hostname after provisioning
|
||||||
|
* Extend Fuel UI node settings to add new field hostname
|
||||||
|
* Extend fuel-cli to use ``--set-hostname`` option
|
||||||
|
* Modify NodeValidation API of Nailgun
|
||||||
|
* Modify nailgun node object, node db model
|
||||||
|
* Modify Upgrade process to add node hostname field
|
||||||
|
* Modify Nailgun unit tests to test functional of hostname logic
|
||||||
|
* Write a documentation
|
||||||
|
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
* Acceptance criteria:
|
||||||
|
|
||||||
|
- Admin user can specify a custom hostname to be applied as the hostname
|
||||||
|
for a node, via Fuel CLI or Fuel UI
|
||||||
|
- Admin user can set custom hostname only before the node provisioning
|
||||||
|
- If a custom node hostname is not provided, the default mechanism of
|
||||||
|
autogenerating node hostnames (i.e. 'node-1', etc.) is used
|
||||||
|
- Custom node hostname is validated to have the proper hostname format
|
||||||
|
and not to duplicate existing hostnames in the cluster
|
||||||
|
- On upgrade to MOS 7.0 the new hostname attribute is filled in the default
|
||||||
|
mechanism of autogenerating node hostnames (i.e. 'node-1', etc.)
|
||||||
|
|
||||||
|
**Automated testing scenario**
|
||||||
|
|
||||||
|
Set custom node hostname for a node via CLI:
|
||||||
|
|
||||||
|
1. Set a new hostname for a node via Fuel CLI
|
||||||
|
2. Provision and deploy the node
|
||||||
|
3. Run Network check
|
||||||
|
4. Connect remotely to the node and verify that the new hostname is applied
|
||||||
|
5. Run OSTF tests set
|
||||||
|
|
||||||
|
**Manual testing scenario**
|
||||||
|
|
||||||
|
Set custom node hostname for a node via Fuel UI:
|
||||||
|
|
||||||
|
1. Set a new hostname for a node via Fuel UI
|
||||||
|
2. Deploy the changes
|
||||||
|
3. Run Network check
|
||||||
|
4. Connect remotely to the node and verify that the new hostname is applied
|
||||||
|
5. Run OSTF tests set
|
||||||
|
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
* A note should be added to Fuel Deployment Guide to describe the possibility
|
||||||
|
to specify custom node hostname.
|
||||||
|
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
None
|
Loading…
Reference in New Issue
Block a user