// vim: tw=79
= gadmin - the Gluster CLI experience
:toc:
== Why?
=== History
Through the recent releases of Gluster, glusterd
has been the preferred
method to accomplish Day1 and Day2 operations as well as publish data sets
about Day3. However, glusterd
was designed to be the config management layer
to complete transactions in the Gluster Filesystem -- expand and shrink
operations and such.
With project expanding, as other tools emerged to do the config management
better, there were many projects to handle different stages of a Gluster
deployment's, such as Day 1 (gdeploy
) and Day 3 (gstatus
,
gluster-prometheus-plugin
).
Also, for it became necessary for Gluster to integrate with projects such as
SMB, NFS-Ganesha etc. This integration was achieved via hooks provided by
glusterd
.
=== Present
The glusterd2
project is the successor to glusterd
to address scaling
concerns as Gluster deployments grow in size. While it provides a more
programmable access to its own management functionality via a RESTful interface
and plugins, its main focus is on setting up and managing a Gluster cluster.
With the scope of glusterd2
defined, the design issue is to be addressed by a
Gluster management tool is: "Between the various administrative tasks
performed by a Storage Administrator, which are Gluster specific and which are
broader Storage Management related?".
Specifically, in the context of gadmin
, it is necessary to address
high-level, workflow based Storage Administration concerns for a Gluster
based storage infrastructure, as tools such as gluster-ansible
and
glustercli
from glusterd2
enable Gluster specific low-level
administration.
== What?
Gadmin has been conceptualised as a unified CLI tool that enables a Storage Administrator to work with a Gluster based storage infrastructure. The focus is on enabling end-to-end management experience for a Gluster based storage infrastructure, without the need to delve into Gluster specific implmentation details.
The tool is aimed as part of the implementation of a Gluster Management CLI experience that must be uniform across deployment platforms, infrastructures and scenarios. In some cases some details of the experience may differ to accommodate the specifics of a platform or a scenario. However, it is key to ensure that the administrator does not need to change the thought process behind how Gluster infrastructure is managed. The project will be developed and will work in conjunction with the https://github.com/gluster/gluster-ansible[gluster-ansible] project, which automates the administration tasks required to setup Gluster infrastructure.
=== Features
gluster-ansible
and its various roles are the primary
dependencies that Gadmin needs installed and invokable on the same system.virsh
like shell session to the user.glusterd2
based GlusterFS cluster and various
supporting components such as Samba and NFS-Ganesha on different platforms,
including various pre-baked scenarios (Day 1).top
.== How?
gluster-ansible
. Much of Gadmin's
functionality requires gluster-ansible
. However, the opposite is not true.
gluster-ansible
must be able to function irrespective of
whether Gadmin is available or being used.gluster-ansible
playbooks.gluster-ansible
invocation is always a job.gluster-ansible
such that it writes its own output to disk,
in a format Gadmin can understand, in the job's directory structure.