From 8cbfdbc9081d95d11e3db047fae4d4a98b0ef2d5 Mon Sep 17 00:00:00 2001 From: Gabor Meszaros Date: Mon, 14 Dec 2020 15:13:23 +0100 Subject: [PATCH] Implement Ceph Dashboard feature subordinate charm The Ceph Dashboard should be available for enablement and configuration as a new subordinate charm, mainly intended to be used with the ceph-mon charm. Change-Id: I36984386fd029478e7a213d5acd04c453d27f7b4 --- doc/source/specs/wallaby/index.rst | 1 + specs/wallaby/approved/ceph-dashboard.rst | 155 ++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 specs/wallaby/approved/ceph-dashboard.rst diff --git a/doc/source/specs/wallaby/index.rst b/doc/source/specs/wallaby/index.rst index edf1401..cfb1f7c 100644 --- a/doc/source/specs/wallaby/index.rst +++ b/doc/source/specs/wallaby/index.rst @@ -22,6 +22,7 @@ Wallaby approved (but not implemented) specs: :glob: :maxdepth: 1 + approved/* Wallaby backlog (carried over from previous cycle) specs: diff --git a/specs/wallaby/approved/ceph-dashboard.rst b/specs/wallaby/approved/ceph-dashboard.rst new file mode 100644 index 0000000..088d5ad --- /dev/null +++ b/specs/wallaby/approved/ceph-dashboard.rst @@ -0,0 +1,155 @@ +.. + Copyright 2020 Canonical Ltd. + + This work is licensed under a Creative Commons Attribution 3.0 + Unported License. + http://creativecommons.org/licenses/by/3.0/legalcode + +.. + This template should be in ReSTructured text. Please do not delete + any of the sections in this template. If you have nothing to say + for a whole section, just write: "None". For help with syntax, see + http://sphinx-doc.org/rest.html To test out your formatting, see + http://www.tele3.cz/jbar/rest/rest.html + +============================ +Enablement of Ceph Dashboard +============================ + +Problem Description +=================== + +The ceph-mon charm provides the cluster monitor daemon for the Ceph +distributed file system. It currently does not support enablement of +the Ceph Manager built-in Dashboard. It is a web-based Ceph management +and monitoring application through which you can inspect and administer +various aspects and resources within the cluster. It is implemented as +a Ceph Manager Daemon module. + + +Proposed Change +=============== + +The proposed solution is to make the dashboard available and default enabled +in a new subordinate charm to ceph-mon. SSL endpoint termination would be done +using the certificates relation or by providing the ssl_cert, ssl_key and +ssl_ca configuration options. User management would be done with the use of +charm actions. + +The upstream documentation of Ceph mentions Dashboard is supported, +(https://docs.ceph.com/en/latest/mgr/dashboard/). The new feature would be +supported on Ceph Octopus, OpenStack Victoria (and later) on Ubuntu 20.04 LTS. + + +Out of Scope +============ + +The following items should be covered in any future work: + - integration with current LMA stack solution + - SAML integration + - RadosGW integration + - Auditing + - iSCSI Management + - verify compatibility with previous releases, OpenStack Mimic+ (Stein) + - VIP and hacluster relation + +Alternatives +------------ + +Grafana offers some visualization possibilities, but it is limited to view +only experience. + +Implementation +============== + +Assignee(s) +----------- + +Primary assignee: + Gabor Meszaros + +Gerrit Topic +------------ + +Use Gerrit topic "ceph-dashboard" for all patches related to this spec. + +.. code-block:: bash + + git-review -t ceph-dashboard + +Work Items +---------- + +* Implement a new reactive subordinate charm, ceph-dashboard + +* Add a charm option for toggling ceph mgr dashboard + +* Add a relation that implements SSL endpoint configuration + +* Add actions to manage user accounts + + * Create admin user + +* write unit tests + +* extend current functional tests using the zaza test framework (a functional + test should include deploying ceph-mon with ceph-dashboard added, without + user management actions) + + +Timeline +-------- + +The goal is to implement this change in the OpenStack Charms 21.04 release. +The freeze date for this release is 15th Mar 2021, for a release on 9th +Apr (see release schedule). This change should be proposed for merging at +least two weeks ahead of freeze, so ideally submitted by 26th Feb 2021. + +Repositories +------------ + +Changes will be pushed to a new ceph-dashboard charm repository: + +https://git.openstack.org/openstack/charm-ceph-dashboard + + +Documentation +------------- + +The charm should contain documented options: + +* Create charm options + +* Create charm actions + +* Create charm relations + +* Create charm README + +* Update of the official charm deployment guide: [0] + +[0]: https://docs.openstack.org/project-deploy-guide/charm-deployment-guide/ + + +Security +-------- + +The Dashboard endpoint has to be TLS-terminated, therefore, an option to +provide a CA certificate is required. + +Testing +------- + +Code changes will be covered by unit tests. +Functional tests would require ceph OSD hardware or software emulation. +This is possible through Ceph cluster deployment. The deployment of the +ceph cluster would be independent from the OpenStack bundle. + + +Dependencies +============ + +- This charm will support OpenStack Victoria and + Ubuntu 20.04 Focal as its baseline +- A new project will need to be created based on the OpenStack Project + `Creator's Guide `