Actions
Feature #38246
openmgr/dashboard: ideas to speed-up/unlock dashboard development
Status:
New
Priority:
Normal
Assignee:
-
Category:
General
Target version:
-
% Done:
0%
Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:
Description
This is a tracking issue to collect ideas on how to speed-up Ceph-dashboard development in order to keep pace with core Ceph, as well as to identify blocking issues.
Problem: "Ceph Dashboard does not expose lots of features from Ceph core"
- Are new features/improvements designed and implemented dashboard-friendly?
- Are other Ceph teams Dashboard-aware?
- Do they try Dashboard regularly? Ever?
- Are other Ceph team members regularly involved in Dashboard activities/PRs/etc?
- Are Dashboard members regularly involved in other teams activities?
- Would it help to share a checklist of guidelines to make new features/improvements dashboard-friendly.
- Can we make dashboard development so easy that other team members can do it on their own?
- Are other Ceph teams Dashboard-aware?
- Is dashboard easy to extend?
- What are the pain points for a new and a regular contributor to Dashboard?
- Can we lower the entry barrier?
- Can we reduce 2-3 programming languages (Python, Typescript+Angular, potentially C++) to 1 (e.g.: Python)?
- Can we convert the front-end UI into a generic presentation layer fully built up from back-end config, so that creating/extending a Ceph feature only requires Python coding 90% time?
- Can Ceph-dashboard be broken down to a bunch of generic widgets? Tables, Forms, Modals, Charts?
- Can we convert the front-end UI into a generic presentation layer fully built up from back-end config, so that creating/extending a Ceph feature only requires Python coding 90% time?
- Can we reduce 2-3 programming languages (Python, Typescript+Angular, potentially C++) to 1 (e.g.: Python)?
- Can we speed up daily work?
- Can building be sped up?
- What about a "make dashboard" that builds everything needed for running Ceph-mgr + dashboard?
- Can we share ready-to-use IDE defaults & recommendations?
- VisualStudio Code? Atom? Vim/Emacs? Packages to install?
- Can testing feedback loop be automated/reduced?
- Quick Jenkins job running tests that do not need Ceph built?
- Can debugging be improved?
- DEBUG flag enabled Ceph-Mgr wide? Or dashboard-only?
- Can building be sped up?
- Can we extend collaboration beyond Ceph and gaining external contributions?
- Can we increase the use of ready-to-use components? Angular NPM? Python PIP?
- Can we contribute our improvements back to those projects?
- Is it easy for us to use latest versions of components/libraries?
- Yes with Angular. No with Python.
- Can we increase the use of ready-to-use components? Angular NPM? Python PIP?
- Can we reduce architecture complexity?
- Can we simplify the end-to-end interface hops? Ceph component <-> Mon <-> Mgr C++ <-> Mgr Python API <-> Dashboard Python REST back-end <-> Dashboard Angular front-end? (Different for RGW)
- Can new features be discovered and exposed from Ceph core metadata (embedded schemas or self-typed or variant-like)?
- Can Ceph interfaces be inferred from metadata?
- Can we extend Ceph-mgr polling/caching to make it work for new data structures on demand?
- Can we simplify the end-to-end interface hops? Ceph component <-> Mon <-> Mgr C++ <-> Mgr Python API <-> Dashboard Python REST back-end <-> Dashboard Angular front-end? (Different for RGW)
- Can we reduce code complexity?
- Are we measuring and tracking code duplication, cyclomatic complexity (pylint?), etc?
- Can we replace Ceph-Mgr Python C API with something simpler/safer?
Actions