Project

General

Profile

Feature #38246

Updated by Ernesto Puerta about 5 years ago

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?  


 *  
 # 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 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 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 reduce architecture complexity? 
 *** Can we simplify the end-to-end interface hops? workflow? 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)? metadata? 
 **** 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 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?

Back