ceph/doc/mgr/dashboard_plugins/feature_toggles.inc.rst
Ernesto Puerta fcb77ee9d6
mgr/dashboard: add feature toggle for NFS
- New NFS feature toggle added.
- Fixed regression which broke FeatureToggles in the main menu.
- Added extensive unit testing to NavigationComponent
- Added ng-mocks to improve test isolation and performance (~7x, 139s to
20s)
- Added ng-bullet package to improve unit testing performance (2x, 20s
to 9s)
- Added Rxjs Schedulers to implement NgZone.runOutsideAngular in a Rxjs
friendly way (based on
    https://stackoverflow.com/questions/43121400/run-ngrx-effect-outside-of-angulars-zone-to-prevent-timeout-in-protractor)

Minor issues found from exhaustive unit testing:
- Missing permissions in Cluster menu:
  - `permissions.log.read` and `permissions.prometheus.read`
- Missing classes:
  - Block -> Images: `tc_submenuitem_block_images`
  - Block -> iSCSI: `tc_submenuitem_block_iscsi`
- Typos:
  - class `tc_submenuitem_hosts` assigned to OSD menu (instead of
      `tc_submenuitem_osd`)
  - `tc_menuitem_cephs` -> `tc_menuitem_cephfs`

Minor changes:
- Previously, Cluster Map -> CRUSH Map required both OSD and Host
permissions. Now it only requires OSD permissions (there are no
references to hosts in CRUSH Map page). Nevertheless, all system roles
setting OSD permission also set Host's, so no impact expected.
- Previously, Cluster -> Monitoring menu was hidden when both Prometheus
or Alertmanager weren't configured. Now it's displayed and when clicked
on it shows the helper banner indicating that further configuration is
required. This change removes the dependency on the PrometheusService.

Fixes: https://tracker.ceph.com/issues/43419
Fixes: https://tracker.ceph.com/issues/43715
Signed-off-by: Ernesto Puerta <epuertat@redhat.com>
2020-03-11 15:03:58 +01:00

47 lines
1.5 KiB
ReStructuredText

.. _dashboard-feature-toggles:
Feature Toggles
^^^^^^^^^^^^^^^
This plug-in allows to enable or disable some features from the Ceph Dashboard
on-demand. When a feature becomes disabled:
- Its front-end elements (web pages, menu entries, charts, etc.) will become hidden.
- Its associated REST API endpoints will reject any further requests (404, Not Found Error).
The main purpose of this plug-in is to allow ad-hoc customizations of the workflows exposed
by the dashboard. Additionally, it could allow for dynamically enabling experimental
features with minimal configuration burden and no service impact.
The list of features that can be enabled/disabled is:
- **Block (RBD)**:
- Image Management: ``rbd``
- Mirroring: ``mirroring``
- iSCSI: ``iscsi``
- **Filesystem (Cephfs)**: ``cephfs``
- **Objects (RGW)**: ``rgw`` (including daemon, user and bucket management).
- **NFS**: ``nfs-ganesha`` exports.
By default all features come enabled.
To retrieve a list of features and their current statuses::
$ ceph dashboard feature status
Feature 'cephfs': 'enabled'
Feature 'iscsi': 'enabled'
Feature 'mirroring': 'enabled'
Feature 'rbd': 'enabled'
Feature 'rgw': 'enabled'
Feature 'nfs': 'enabled'
To enable or disable the status of a single or multiple features::
$ ceph dashboard feature disable iscsi mirroring
Feature 'iscsi': disabled
Feature 'mirroring': disabled
After a feature status has changed, the API REST endpoints immediately respond to
that change, while for the front-end UI elements, it may take up to 20 seconds to
reflect it.