Skip to content

Commit 55531dc

Browse files
committed
Add TCM cluster connecting and configuration
1 parent 7fb9492 commit 55531dc

7 files changed

+269
-8
lines changed

doc/reference/tooling/tcm/index.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,15 @@
33
Tarantool Cluster Manager
44
=========================
55

6+
.. ee_note_tcm_start
7+
68
.. admonition:: Enterprise Edition
79
:class: fact
810

911
|tcm_full_name| is a part of the `Enterprise Edition <https://www.tarantool.io/compare/>`_.
1012

13+
.. ee_note_tcm_end
14+
1115
|tcm_full_name| (|tcm|) is a web-based visual tool for configuring, managing, and
1216
monitoring Tarantool EE clusters. It provides a GUI for working with clusters
1317
and individual instances, from monitoring their state to executing commands interactively
@@ -31,6 +35,8 @@ to read data. LDAP authorization is supported as well.
3135
.. toctree::
3236
:maxdepth: 1
3337

38+
tcm_connect_clusters
39+
tcm_cluster_config
3440
tcm_access_control
3541
tcm_audit_log
3642
tcm_configuration

doc/reference/tooling/tcm/tcm_access_control.rst

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
Access control
44
==============
55

6-
.. admonition:: Enterprise Edition
7-
:class: fact
8-
9-
|tcm_full_name| is a part of the `Enterprise Edition <https://www.tarantool.io/compare/>`_.
6+
.. include:: index.rst
7+
:start-after: ee_note_tcm_start
8+
:end-before: ee_note_tcm_end
109

1110
|tcm_full_name| features a role-based access control system. It enables flexible
1211
management of access to |tcm| functions, connected clusters, and stored data.

doc/reference/tooling/tcm/tcm_audit_log.rst

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33
Audit log
44
=========
55

6-
.. admonition:: Enterprise Edition
7-
:class: fact
8-
9-
|tcm_full_name| is a part of the `Enterprise Edition <https://www.tarantool.io/compare/>`_.
6+
.. include:: index.rst
7+
:start-after: ee_note_tcm_start
8+
:end-before: ee_note_tcm_end
109

1110
|tcm_full_name| provides the audit logging functionality for tracking user activity
1211
and security-related events, such as:
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
.. _tcm_configuring_clusters:
2+
3+
Configuring clusters
4+
====================
5+
6+
.. include:: index.rst
7+
:start-after: ee_note_tcm_start
8+
:end-before: ee_note_tcm_end
9+
10+
|tcm_full_name| features a built-in text editor for Tarantool EE cluster configurations.
11+
12+
When you :ref:`connect a cluster <tcm_connect_cluster>` to |tcm|, it gains access
13+
to the cluster's centralized configuration storage: an etcd or a Tarantool cluster.
14+
|tcm| has both read and write access to the cluster configuration. This enables
15+
the configuration editor to work in two ways:
16+
17+
* If a configuration already exists, the editor shows its current state.
18+
* When you change the configuration in the editor and apply changes, they
19+
are sent to the configuration storage.
20+
21+
To learn how to write Tarantool cluster configurations, see :ref:`configuration`.
22+
23+
.. _tcm_configuring_clusters_manage:
24+
25+
Managing a cluster's configuration
26+
----------------------------------
27+
28+
The configuration editor is available on the **Cluster** > **Configuration** page.
29+
30+
To start managing a cluster's configuration, select this cluster in the **Cluster**
31+
drop-down and go to the **Configuration** page.
32+
33+
A cluster configuration in |tcm| can consist of one or multiple YAML files.
34+
When there are multiple files, they are all considered parts of a single cluster
35+
configuration. You can use this for structuring big cluster configurations.
36+
All files that form the configuration of a cluster are listed on the left side
37+
of the **Cluster configuration** page.
38+
39+
To add a cluster configuration file, click the plus icon (**+**) below the page title.
40+
41+
To open a configuration file in the editor, click its name in the file list.
42+
43+
To delete a cluster configuration file, click the **Delete** button beside the filename.
44+
45+
To download a cluster configuration file, click the **Download** button beside the filename.
46+
47+
.. warning::
48+
49+
All configuration changes are discarded when you leave the **Cluster configuration** page.
50+
:ref:`Save <tcm_configuring_clusters_save>` the configuration if you want to continue
51+
editing it later or :ref:`apply <tcm_configuring_clusters_apply>` it
52+
to start using it on the cluster.
53+
54+
.. _tcm_configuring_clusters_save:
55+
56+
Saving a configuration draft
57+
----------------------------
58+
59+
|tcm| can store configurations drafts. If you want to leave an unfinished configuration
60+
and return to it later, save it in |tcm|. Saving applies to whole cluster configurations:
61+
it records the edits of all files, file additions, and file deletions.
62+
63+
To save a cluster configuration draft after editing, click **Save** in the **Cluster configuration** page.
64+
65+
All unsaved changes are discarded when you leave the **Cluster configuration** page.
66+
67+
If you have a saved configuration draft, you can reset the changes for each of its
68+
files individually. A reset returns the file into the state that is currently used
69+
by a cluster (that is, saved in the configuration storage). If you reset a newly
70+
added file, it is deleted.
71+
72+
To reset an saved configuration file, click the **Reset** button beside the filename.
73+
74+
75+
.. _tcm_configuring_clusters_apply:
76+
77+
Applying a configuration
78+
------------------------
79+
80+
When you finish editing a configuration and it's ready to use, apply the updated
81+
configuration to the cluster. To apply a cluster configuration, click **Apply**
82+
on the **Cluster configuration** page. This sends the new configuration to the cluster
83+
configuration storage, and it comes into effect upon the cluster configuration reload.
84+
85+

doc/reference/tooling/tcm/tcm_configuration.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
Configuration
44
=============
55

6+
7+
.. include:: index.rst
8+
:start-after: ee_note_tcm_start
9+
:end-before: ee_note_tcm_end
10+
611
.. TODO: write specific configuration tutorials for http, security, logging, and so on. (https://github.com/tarantool/doc/issues/3545)
712
813
This topic describes how to configure |tcm_full_name|. For the complete

doc/reference/tooling/tcm/tcm_configuration_reference.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
Configuration reference
44
=======================
55

6+
.. include:: index.rst
7+
:start-after: ee_note_tcm_start
8+
:end-before: ee_note_tcm_end
9+
610
This topic describes :ref:`configuration parameters <tcm_configuration>` of |tcm_full_name|.
711

812
There are the following groups of |tcm| configuration parameters:
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
.. _tcm_connect_clusters:
2+
3+
Сonnecting clusters
4+
===================
5+
6+
.. include:: index.rst
7+
:start-after: ee_note_tcm_start
8+
:end-before: ee_note_tcm_end
9+
10+
|tcm_full_name| works with clusters that:
11+
12+
* run on Tarantool EE 3.0 or later
13+
* use :ref:`centralized configuration <configuration>` stored in etcd or another Tarantool cluster.
14+
15+
A single |tcm| installation can have multiple connected clusters. A connection to
16+
|tcm| doesn't affect the cluster's functioning. You can connect clusters to |tcm|
17+
and disconnect them on the fly.
18+
19+
There are two ways to add a cluster to |tcm|:
20+
21+
- Connect an existing cluster.
22+
- Add a new cluster and :ref:`write its configuration <tcm_cluster_config>` from scratch in the |tcm| web UI.
23+
24+
In both cases, you need to deploy Tarantool and start the cluster instances using
25+
the :ref:`tt-cli` or another suitable way.
26+
27+
.. _tcm_connect_clusters_parameters:
28+
29+
Connection parameters
30+
---------------------
31+
32+
When connecting a cluster to |tcm|, you need to provide two sets of connection parameters:
33+
for the cluster instances and for the centralized configuration storage.
34+
35+
Configuration storage connection
36+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37+
38+
The cluster configuration can be stored in either an :ref:`etcd <configuration_etcd>`
39+
cluster or a separate Tarantool-based storage. In both cases, the following connection
40+
parameters are required:
41+
42+
* A key prefix used to identify the cluster in the configuration storage.
43+
A prefix must be unique for each cluster in storage.
44+
* URIs of all instances of the configuration storage.
45+
* The credentials for accessing the configuration storage: an `etcd user <https://etcd.io/docs/v3.5/op-guide/authentication/rbac/>`__
46+
or a :ref:`Tarantool user <authentication>` and .
47+
48+
Additionally, if SSL or TLS encryption is enabled for the configuration storage,
49+
provide the corresponding encryption configuration: keys, certificates, and other
50+
parameters. For the complete list of parameters, consult the `etcd documentation <https://etcd.io/docs/v3.5/op-guide/configuration/#security>`__
51+
or Tarantool :ref:`enterprise-iproto-encryption`.
52+
53+
Cluster connection
54+
~~~~~~~~~~~~~~~~~~
55+
56+
For interaction with the cluster instances, |tcm| needs the following access parameters:
57+
58+
* A :ref:`Tarantool user <authentication>` that exists in the cluster and their password.
59+
|tcm| connects to the cluster on behalf of this user.
60+
* An :ref:`SSL configuration <enterprise-iproto-encryption>` if the traffic encryption
61+
is enabled on the cluster.
62+
63+
Managing connected clusters
64+
---------------------------
65+
66+
Administrators can add new clusters, edit, and remove existing ones from |tcm|.
67+
68+
Connected clusters are listed on the **Clusters** page.
69+
70+
.. _tcm_connect_clusters_connect_preconf:
71+
72+
Connecting a pre-configured cluster
73+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74+
75+
If you already have a cluster and want connect it to |tcm|,
76+
follow these steps:
77+
78+
#. Go to **Clusters** and click **Add**.
79+
#. Fill in the general cluster information:
80+
81+
* Specify an arbitrary name.
82+
* Optionally, provide a description and select a color to mark this cluster in |tcm|.
83+
* Optionally, enter the URLs of additional services for the cluster. For example,
84+
a Grafana dashboard that monitors the cluster metrics, ot a syslog server
85+
for viewing the cluster logs. |tcm| provides quick access to these URLs on
86+
the cluster **Stateboard** page.
87+
88+
3. Provide the details of the cluster configuration storage:
89+
90+
* Storage type: **etcd** or **tarantool**.
91+
* The **Prefix** specified in the cluster configuration.
92+
* The URIs of the configuration storage instances.
93+
* The credentials for accessing the configuration storage.
94+
* The SSL/TLS parameters if the connection encryption is enabled on the storage.
95+
96+
4. Provide the credentials for accessing the cluster: a Tarantool user's name, their password,
97+
and SSL parameters in case :ref:`traffic encryption <enterprise-iproto-encryption>`
98+
is enabled on the cluster.
99+
100+
.. _tcm_connect_clusters_connect_new:
101+
102+
Adding a new cluster
103+
~~~~~~~~~~~~~~~~~~~~
104+
105+
If you don't have a cluster yet, you can add one in |tcm| and write its configuration
106+
from scratch using the :ref:`built-in configuration editor <tcm_configuring_clusters>`.
107+
108+
.. important::
109+
110+
When adding a new cluster, you need to have a storage for its configuration up
111+
and running so that |tcm| can connect to it. Cluster instances can be deployed later.
112+
113+
To add a new cluster:
114+
115+
#. Go to **Clusters** and click **Add**.
116+
#. Fill in the general cluster information:
117+
118+
* Specify an arbitrary name.
119+
* Optionally, provide a description and select a color to mark this cluster in |tcm|.
120+
* Optionally, enter the URLs of additional services for the cluster. For example,
121+
a Grafana dashboard that monitors the cluster metrics, ot a syslog server
122+
for viewing the cluster logs. |tcm| provides quick access to these URLs on
123+
the cluster **Stateboard** page.
124+
125+
#. Select the type of the cluster configuration storage: **etcd** or **tarantool**.
126+
#. Define a unique **Prefix** for identifying this cluster in the configuration storage.
127+
#. Provide the connection details for the cluster configuration storage:
128+
129+
* The URIs of configuration storage instances.
130+
* The credentials for accessing the configuration storage.
131+
* The SSL/TLS parameters if the connection encryption is enabled on the storage.
132+
133+
#. Provide the cluster credentials: a username, a password, and SSL parameters in
134+
case :ref:`traffic encryption <enterprise-iproto-encryption>` is enabled on
135+
the cluster.
136+
137+
Once you add the cluster:
138+
139+
* Set up the cluster configuration using the |tcm| :ref:`configuration editor <tcm_configuring_clusters>`.
140+
* Deploy Tarantool on the cluster nodes using the :ref:`tt-cli` or other suitable tools.
141+
* Start the cluster using the :ref:`tt-cli` or other suitable tools.
142+
143+
.. _tcm_connect_clusters_edit:
144+
145+
Editing a connected cluster
146+
~~~~~~~~~~~~~~~~~~~~~~~~~~~
147+
148+
To edit a connected cluster, go to **Clusters** and click **Edit** in the **Actions**
149+
menu of the corresponding table row.
150+
151+
.. _tcm_connect_clusters_disconnect:
152+
153+
Disconnecting a cluster
154+
~~~~~~~~~~~~~~~~~~~~~~~
155+
156+
To disconnect a cluster from |tcm|, go to **Clusters** and click **Disconnect**
157+
in the **Actions** menu of the corresponding table row.
158+
159+
.. note::
160+
161+
Disconnecting a cluster does not affect its functioning. The only
162+
thing that is changed is that it's no longer shown in |tcm|.
163+
You can connect this cluster again at any time.

0 commit comments

Comments
 (0)