Spec for Openstack Environment Dashboard
adding a new tab on Fuel UI - an entry point for plugins and a place with OpenStack environment cumulated information, proposed actions, documentation links Blueprint post-deployment-dashboard Change-Id: I5c828db86287dc7ca440e2b51596333d862d0008
This commit is contained in:
parent
b4b03b8730
commit
cd6524b8ea
BIN
images/7.0/fuel-ui-dashboard/deployment_in_progress.png
Normal file
BIN
images/7.0/fuel-ui-dashboard/deployment_in_progress.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 258 KiB |
BIN
images/7.0/fuel-ui-dashboard/deployment_success.jpg
Normal file
BIN
images/7.0/fuel-ui-dashboard/deployment_success.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 94 KiB |
BIN
images/7.0/fuel-ui-dashboard/deployment_warnings.png
Normal file
BIN
images/7.0/fuel-ui-dashboard/deployment_warnings.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 281 KiB |
BIN
images/7.0/fuel-ui-dashboard/new_cluster.png
Normal file
BIN
images/7.0/fuel-ui-dashboard/new_cluster.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 264 KiB |
320
specs/7.0/fuel-ui-dashboard.rst
Normal file
320
specs/7.0/fuel-ui-dashboard.rst
Normal file
@ -0,0 +1,320 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
==========================================
|
||||||
|
OpenStack environment Dashboard
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/fuel/+spec/post-deployment-dashboard
|
||||||
|
|
||||||
|
Create a single entry point for user to have access to all the necessary
|
||||||
|
information before, in progress and after deployment.
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
It might be quite hard for a newbie user to understand what he should do after
|
||||||
|
OpenStack environment creation. To help user setup the OpenStack environment
|
||||||
|
and show what can be done with it we'll introduce dashboard.
|
||||||
|
Dashboard will accumulate information about the OpenStack environment
|
||||||
|
It also will give the user an idea of what to do next and what in general can
|
||||||
|
be done with OpenStack environment.
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
Create a separate tab in UI combining all the necessary information and useful
|
||||||
|
links for the user. This tab will also replace current Actions tab, combining
|
||||||
|
data from there.
|
||||||
|
|
||||||
|
The main information should be displayed in the separate block - with
|
||||||
|
instructions what to do next and what currently is wrong.
|
||||||
|
|
||||||
|
For the new just-created OpenStack environment there should be:
|
||||||
|
|
||||||
|
* link to *Add nodes screen* with warning *No nodes added to OpenStack*
|
||||||
|
*environment*
|
||||||
|
* for OpenStack environments with nodes, but no network verification -
|
||||||
|
corresponding warning and link to Networks tab
|
||||||
|
|
||||||
|
To be short - all warnings and errors, shown in Deploy changes dialog should be
|
||||||
|
shown here.
|
||||||
|
|
||||||
|
For deployed OpenStack environment there will be link to Horizon, OSTF tests
|
||||||
|
status with link to Healthcheck tab. For new OpenStack environment Healthcheck
|
||||||
|
block will be shown but disabled.
|
||||||
|
|
||||||
|
For error OpenStack environment here will be error message, replacing
|
||||||
|
the one under OpenStack environment page breadcrumbs.
|
||||||
|
|
||||||
|
The additional content here will be:
|
||||||
|
|
||||||
|
* nodes statistics - number of online nodes in OpenStack environments, in graph
|
||||||
|
view, donut chart. Number of error nodes - just in red (in case of error
|
||||||
|
offline node this node will be counted as an error one)
|
||||||
|
* link to plugins documentation
|
||||||
|
* link to Openstack documentation
|
||||||
|
* storage backend info - what volume and image type is selected (Cinder or
|
||||||
|
Ceph) (is needed to know in order to not search this information
|
||||||
|
through the whole settings tab)
|
||||||
|
* other OpenStack environment information (in one cumulated block) - OpenStack
|
||||||
|
environment name, operating system, OpenStack release, selected compute
|
||||||
|
hypervisors (KVM, QEMU with vCenter or not), network option (Neutron or Nova)
|
||||||
|
* nodes configuration (HDD, CPU, RAM)
|
||||||
|
* urls, provided by plugins(services like Murano, Sahara, Ceilometer are
|
||||||
|
treated as plugins also) via API described in corresponding chapter
|
||||||
|
`REST API impact`_. Plugin entries will be displayed in the order of date
|
||||||
|
creation.
|
||||||
|
|
||||||
|
The suggestion is to have a unified source of truth for either deployed
|
||||||
|
OpenStack environment and a new one, this tab would be the first one and Nodes
|
||||||
|
tab will go after it.
|
||||||
|
|
||||||
|
The proposed mockups of dashboard: for new OpenStack environment:
|
||||||
|
|
||||||
|
.. image:: ../../images/7.0/fuel-ui-dashboard/new_cluster.png
|
||||||
|
|
||||||
|
For new OpenStack environment being deployed:
|
||||||
|
|
||||||
|
.. image:: ../../images/7.0/fuel-ui-dashboard/deployment_in_progress.png
|
||||||
|
|
||||||
|
For OpenStack environment already deployed:
|
||||||
|
|
||||||
|
.. image:: ../../images/7.0/fuel-ui-dashboard/deployment_success.jpg
|
||||||
|
|
||||||
|
and in case of warnings:
|
||||||
|
|
||||||
|
.. image:: ../../images/7.0/fuel-ui-dashboard/deployment_warnings.png
|
||||||
|
|
||||||
|
|
||||||
|
For nailgun
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Provide API with links to all possible necessary resources after OpenStack
|
||||||
|
environment deployment.
|
||||||
|
|
||||||
|
* link to Horizon
|
||||||
|
* link to Zabbix
|
||||||
|
* link to Murano (description and what to do with it)
|
||||||
|
* link to Sahara (description and what to do with it)
|
||||||
|
* link to Ceilometer (description and what to do with it)
|
||||||
|
* any other links provided by plugins
|
||||||
|
|
||||||
|
We'll have special /cluster/:id/dashboard_entries url by GETting which it will
|
||||||
|
be possible to get the list of dashboard entries in the format like this:
|
||||||
|
|
||||||
|
.. code-block:: json
|
||||||
|
|
||||||
|
[
|
||||||
|
{
|
||||||
|
title: 'plugin',
|
||||||
|
description: '',
|
||||||
|
url: '',
|
||||||
|
id: Number
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
with optional 'description' field.
|
||||||
|
|
||||||
|
To solve authentication issues we'll use auth exemption.
|
||||||
|
|
||||||
|
|
||||||
|
For UI
|
||||||
|
-----------
|
||||||
|
|
||||||
|
UX will be affected in several aspects with this change:
|
||||||
|
|
||||||
|
* Actions tab will be substituted with Dashboard tab, providing all the
|
||||||
|
necessary info about the OpenStack environment for the user
|
||||||
|
* Deploy button will be moved to Dashboard
|
||||||
|
* Deployment result message (both success and error or warning-containing) will
|
||||||
|
be moved to dashboard
|
||||||
|
* Deployment/resetting/stopping progress will be displayed on the Dashboard tab
|
||||||
|
* List of changes will be displayed on the dashboard replacing Deploy Changes
|
||||||
|
dialog
|
||||||
|
* Discard changes button will be moved to Dashboard
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
The new table for dashboard entries should be created, containing the
|
||||||
|
following fields:
|
||||||
|
|
||||||
|
+----+--------+-------------+--------+------------+
|
||||||
|
| id | Title | Description | url | cluster_id |
|
||||||
|
+====+========+=============+========+============+
|
||||||
|
| id | String | String | String | id |
|
||||||
|
+-------------+-------------+--------+------------+
|
||||||
|
|
||||||
|
cluster_id field means one cluster may have many dashboard entries for plugin,
|
||||||
|
but it will belong to one cluster (one-to-many relationship)
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
API POST, PUT and DELETE method should be available for plugins in their post-
|
||||||
|
deployment hooks.
|
||||||
|
|
||||||
|
There will be a new REST API url added:
|
||||||
|
|
||||||
|
+--------+--------------------------------+--------------------------+-------+
|
||||||
|
| method | URL | action | auth |
|
||||||
|
| | | | exempt|
|
||||||
|
+========+================================+==========================+=======+
|
||||||
|
| POST | /api/v1/clusters/:cluster_id/ | create a new item | true |
|
||||||
|
| | dashboard_entries | for dashboard entries | |
|
||||||
|
+--------+--------------------------------+--------------------------+-------+
|
||||||
|
| GET | /api/v1/clusters/:cluster_id/ | get a list of | false |
|
||||||
|
| | dashboard_entries | dashboard entries | |
|
||||||
|
+--------+--------------------------------+--------------------------+-------+
|
||||||
|
| PUT | /api/v1/clusters/:cluster_id/ | update a dashboard entry | false |
|
||||||
|
| | dashboard_entries/:entry_id | with specified id | |
|
||||||
|
+--------+--------------------------------+--------------------------+-------+
|
||||||
|
| DELETE | /api/v1/clusters/:cluster_id/ | delete a dashboard | false |
|
||||||
|
| | dashboard_entries/:entry_id | entry with specified id | |
|
||||||
|
+--------+--------------------------------+--------------------------+-------+
|
||||||
|
|
||||||
|
GET returns JSON like this:
|
||||||
|
|
||||||
|
.. code-block:: json
|
||||||
|
|
||||||
|
[
|
||||||
|
{
|
||||||
|
title: 'Zabbix',
|
||||||
|
description: 'Zabbix is software that monitors numerous' +
|
||||||
|
+ 'parameters of a network and the health and integrity' +
|
||||||
|
+ ' of servers',
|
||||||
|
url: 'http://www.zabbix.com/',
|
||||||
|
id: Number(identificator)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Murano',
|
||||||
|
url: 'https://wiki.openstack.org/wiki/Murano',
|
||||||
|
id: Number(identificator)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'My plugin',
|
||||||
|
description: 'My awesome plugin',
|
||||||
|
url: '/my_plugin',
|
||||||
|
id: Number(identificator)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
Upgrade impact
|
||||||
|
--------------
|
||||||
|
|
||||||
|
A migration should be created for DashboardEntries model, also
|
||||||
|
migrations are needed to generate dashboard entries for old OpenStack
|
||||||
|
environments - for Horizon, Sahara and Murano entries.
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
Unlikely.
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Will improve user experience.
|
||||||
|
Unlikely to impact python-fuelclient.
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Plugin impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Will provide an entry point for plugins to access post-deployment
|
||||||
|
dashboard.
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
Aleksandra Morozova <astepanchuk@mirantis.com>
|
||||||
|
Other contributors:
|
||||||
|
* Bogdan Dudko <bdudko@mirantis.com> - designer
|
||||||
|
* Steve Doll <sdoll@mirantis.com> - designer
|
||||||
|
* Vitaly Kramskikh <vkramskikh@mirantis.com> - backend developer
|
||||||
|
Approver:
|
||||||
|
* Nathan Trueblood <ntrueblood@mirantis.com>
|
||||||
|
* Sheena Gregson <sgregson@mirantis.com>
|
||||||
|
Reviewer:
|
||||||
|
* Vitaly Kramskikh <vkramskikh@mirantis.com>
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
Blueprint will be implemented in several stages:
|
||||||
|
|
||||||
|
* Initial design and logic approval
|
||||||
|
* Markup implementation
|
||||||
|
* Javascript React components implementation
|
||||||
|
* Backend implementation
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
Tests to be created for new REST API items.
|
||||||
|
UI side of Dashboard implementation should also be covered with
|
||||||
|
functional and unit tests - React components, new UX, new js model.
|
||||||
|
|
||||||
|
Acceptance criteria
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
User can access OpenStack documentation, list of changes, available actions,
|
||||||
|
cumulated information and what is missing for OpenStack environment, also
|
||||||
|
plugin urls will be shown on this separate Dashboard tab.
|
||||||
|
Cumulated environment information, actions that can be done with environment
|
||||||
|
and links to OpenStack documentation should always be visible for the user.
|
||||||
|
Before deployment user can see list of changes, a list of warnings/errors if
|
||||||
|
any in addition to information displayed always.
|
||||||
|
In the process of environment deployment, user can see current deployment
|
||||||
|
progress state, besides the information mentioned above.
|
||||||
|
After OpenStack deployment has successfully completed, the default displayed
|
||||||
|
tab shows links out to all relevant dashboards (Horizon, Murano, plugin
|
||||||
|
UIs). If plugins were included, links should include plugin-relevant UI blocks.
|
||||||
|
Changing plugin settings and/or removing plugins is not a part of this page.
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
Part about user flow, with new Dashboard tab should be updated.
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
1. https://blueprints.launchpad.net/fuel/+spec/post-deployment-dashboard
|
Loading…
Reference in New Issue
Block a user