dashboard in mimic

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

There have been some discussions about making big additions to the
dashboard module (the web gui that runs in ceph-mgr), so as a couple
of people have suggested, let's have a mailing list thread about it!

This is a bit wordy so I've written it more like a document than an
email, see below.  It's a very broad topic, so what I've written here
is far from complete.  We're still at the point of discussion, there's
no UI code being written so far for any of the stuff that I mention
below.

Cheers,
John



What?
=====

Extend the dashboard module to provide management of the cluster, in
addition to monitoring.  This would potentially include anything you
can currently do with the Ceph CLI, plus additional functionality like
calling out to a container framework to spawn additional daemons.

The idea is to wrap things up into friendlier higher-level operations,
rather than just having buttons for the existing CLI operations.
Example workflows of interest:
 - a CephFS page where you can click "New Filesystem", and the pools
and MDS daemons will all be created for you.
 - similarly for RGW: ability to enable RGW and control the number of
gateway daemons
 - driving OSD additional/retirement, and also format conversions
(e.g. filestore->bluestore)

Some of the functionality would depend on how Ceph is being run:
especially, anything that detects devices and starts/stops physical
services would depend on an environment that provides that (such as
Kubenetes).

Why build it in?
============

Historically, Ceph management UIs were usually doing lots of non-Ceph
work too, configuring the underlying OS and hardware as well as the
Ceph cluster itself.  Consequently, it often made sense build the user
interface into an external tool/framework that already knew how to do
all that labour-intensive infrastructure stuff, rather than trying to
reinvent it for a Ceph-specific management tool.

As some of us are moving towards running Ceph in container
environments like Kubernetes, the hardware/OS piece is increasingly
taken care of for us.  The container platform provides a simpler way
to discover and use hosts and block devices, which we can use directly
from Ceph (or from the ceph dashboard).

What about external UIs?
====================

Building more UI functionality into Ceph should not get in the way of
integrating with any external tools/projects.  It should actually
benefit those projects: as we connect up functionality into the
dashboard module, those same ceph-mgr/python code paths can easily be
connected to REST endpoints in the restful module.

The work to actually expose the REST bits will probably still fall on
the people who really want/need that functionality, but it should be a
very lightweight task for things where the functionality already
exists in the dashboard.

Currently modules are somewhat isolated from one another, but I've
recently added an inter-module RPC interface so that we can have
better sharing of state -- the idea is to have some common things like
a table of long-running-jobs that would be shared between the
dashboard and restful modules.

Security
======

The dashboard is currently completely read-only: that's convenient
because it makes it less scary to run it over unencrypted http and/or
without login (or in practice, leaving https/login as an exercise to
the sysadmin).  When administrative functionality is added, we'll need
some sort of login, and https too.

The https part can probably be done in the same way as the restful
module: require a user-generated certificate (i.e. for their proper
domain) by default, but also provide a helper for the adventurous user
to run with a self-signed cert if they want to.

The login part could be as simple as creating users/passwords using a
CLI and just prompting for them in the GUI, or we could also have some
GUI functionality for managing users.  I wouldn't want to go too far
with the latter: if someone has complex requirements then it's
generally better to be plugging into some external user database.

It would still be very nice to retain the read only mode as an option of course.
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux