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
This commit is contained in:
Gabor Meszaros 2020-12-14 15:13:23 +01:00 committed by Gábor Mészáros
parent f333404a66
commit 8cbfdbc908
2 changed files with 156 additions and 0 deletions

View File

@ -22,6 +22,7 @@ Wallaby approved (but not implemented) specs:
:glob:
:maxdepth: 1
approved/*
Wallaby backlog (carried over from previous cycle) specs:

View File

@ -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 <gabor.meszaros@canonical.com>
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 <https://docs.openstack.org/infra/manual/creators.html>`