Skip to content

Commit 3bc4063

Browse files
feat: Applications page (#204)
Refs NethServer/dev#7506
1 parent eba83ae commit 3bc4063

File tree

4 files changed

+171
-115
lines changed

4 files changed

+171
-115
lines changed

index.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ NethServer 8 administrator manual
2121

2222
introduction
2323
release_notes
24-
modules
2524
subscription
2625

2726
.. toctree::
@@ -30,19 +29,20 @@ NethServer 8 administrator manual
3029

3130
system_requirements
3231
install
32+
user_domains
33+
software_center
34+
modules
3335

3436
.. toctree::
3537
:maxdepth: 2
3638
:caption: Configuration
3739

3840
cluster
39-
user_domains
4041
log_server
4142
proxy
4243
certificates
4344
backup
4445
firewall
45-
software_center
4646
email_notifications
4747
metrics
4848

modules.rst

Lines changed: 114 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,117 @@
66
Applications
77
============
88

9-
A NS8 application is implemented by a unit called *module*. It is usually
10-
composed of one or more Linux containers and a user interface for its
11-
configuration.
12-
13-
The terms *application* and *module* are almost synonims in the context of
14-
NethServer 8, however there can be modules that actually do not implement
15-
applications because they are just services for other modules, so they do
16-
not provide any user configuration interface at all.
17-
18-
Every time a module instance is added to the cluster, the new instance is
19-
named like the module itself followed by a progressive number starting
20-
from 1. Given a module named ``myapp``, instances will be named
21-
``myapp1``, ``myapp2`` and so on. It is possible to set a more meaningful
22-
name for the instance from the :ref:`software_center-section` page.
23-
24-
Some applications or modules require specific resources that cannot be
25-
shared among instances installed on the same cluster node. As an example,
26-
the Mail application needs to reserve SMTP and IMAP well-known TCP ports.
27-
You can install only one instance per node of this kind of applications.
28-
29-
On the contrary, applications that do not require exclusive access to
30-
resources can be installed multiple times on the same node. As an example,
31-
you can install multiple Nextcloud applications on a single node.
9+
The ``Applications`` page lists the applications installed in the cluster.
10+
The list can be filtered by:
11+
12+
- ``Type``, for example to list only Nextcloud applications.
13+
- ``Node``, to limit the list to applications installed on a specific
14+
cluster node.
15+
- Free text, to display only applications matching a certain string.
16+
17+
A single click on the application **name** opens its configuration page.
18+
19+
A click on the application **type** shows detailed information about the
20+
application itself. This information, including the **version**, is also
21+
available from the :ref:`Software center <software_center-section>` page.
22+
23+
Each item in the list has a **three-dots menu** with the available
24+
**actions** for that application.
25+
26+
.. |bento| image:: _static/bento.png
27+
:alt: application drawer
28+
29+
Installed applications are also listed in the **application drawer**, by
30+
clicking the |bento| menu in the top-right corner of the screen. The
31+
drawer shows only installed applications, not those available for
32+
installation.
33+
34+
The application name
35+
====================
36+
37+
Every time an application is added to the cluster, it is uniquely
38+
identified by its name followed by a sequential number. Given the
39+
application *Myapp*, installed instances will be named ``myapp1``,
40+
``myapp2`` and so on.
41+
42+
This internal, unique identifier is assigned by the cluster and cannot be
43+
changed, but the ``Edit label`` action allows assigning a custom label.
44+
45+
Furthermore, a small text note can be attached to the application with the
46+
``Edit note`` action. When an application has an attached note, a small
47+
circled *i* with a tooltip appears next to the application name.
48+
49+
50+
.. _move_clone-section:
51+
52+
Clone and move
53+
==============
54+
55+
The ``Clone`` and ``Move`` actions create a **destination** application
56+
that is a copy of the **source** one.
57+
58+
The cluster node where the destination runs can be the same as the source.
59+
Instead, when moving an application, you must select a target node
60+
different from the one where the source is currently running.
61+
62+
Generally, there are no limitations on running multiple applications of
63+
the same type on the same node. However, in some cases, cloning or moving
64+
to certain nodes may be restricted due to application policies, node
65+
resource limits (CPU, memory), or because the application requires
66+
exclusive access to a system resource, such as binding a fixed TCP port.
67+
68+
Once started, ``Clone`` and ``Move`` actions run through these steps:
69+
70+
1. Create the destination application.
71+
2. Start the data transfer between source and destination. During this
72+
step, the source remains up and running.
73+
3. Briefly stop the source application (when required by its data
74+
synchronization strategy).
75+
4. Execute the final data synchronization.
76+
5. The final step differs between the two actions:
77+
78+
- *For Clone*, start both the source and the destination applications.
79+
80+
- *For Move*, **start the destination** application and **remove the
81+
source** one.
82+
83+
If the moved application is referenced by a fully qualified domain name
84+
(FQDN), ensure that external DNS records are updated to point to the
85+
target node. The cluster reverse proxy is automatically reconfigured.
86+
87+
Restart application
88+
===================
89+
90+
The ``Restart`` action fully stops the application and starts its services
91+
again, performing the same operations normally executed at node boot time.
92+
93+
This action should be used sparingly and preferably during non-working
94+
hours, as it interrupts application operation with unpredictable effects on
95+
the end-user experience.
96+
97+
Some unpredictable events, such as lack of disk space or memory
98+
exhaustion, may degrade application functionality. In these situations,
99+
``Restart`` may resolve the issue, provided that sufficient resources are
100+
available again.
101+
102+
Core apps
103+
=========
104+
105+
From the ``Applications`` page, select the :guilabel:`Core apps` button to
106+
see a full list of installed Core applications and their versions. Core
107+
updates, when available, are always applied at the same time.
108+
109+
The *module* term
110+
=================
111+
112+
The *module* term is often used by developers. An NS8 application is
113+
implemented by a unit called a *module*. It is usually composed of one or
114+
more Linux containers and a user interface for its configuration. A module
115+
is the deployable unit managed by the cluster orchestrator.
116+
117+
The terms *application* and *module* are almost synonyms in the context of
118+
NS8. However, some modules provide services to other modules and do not
119+
include a configuration UI. For example, Core components such as
120+
:ref:`Loki <logs-persistence-section>` and :ref:`Grafana
121+
<grafana_access-section>` are implemented as modules running on the leader
122+
node.

software_center.rst

Lines changed: 15 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44
Software center
55
===============
66

7-
The Software Center displays and manages applications available from all
8-
configured repositories [#fileserver]_\ .
7+
The Software Center page displays and manages applications available from
8+
all configured repositories.
99

1010
Application information
11-
========================
11+
=======================
1212

1313
Each application is represented by a card displaying its name, level of
1414
certification, and category. Click on the application's name to view
@@ -65,27 +65,27 @@ To install a new application, simply click the :guilabel:`Install` button
6565
of the application card. If your cluster has multiple nodes, you will also
6666
need to select the target node.
6767

68-
To install an additional instance of an existing application, click on the
68+
To install more applications of the same type, click on the
6969
``Instances`` link within the application's card. Then, select
7070
:guilabel:`Install new instance`. Note that in some cases, installation on
7171
certain cluster nodes may be restricted due to application policies or
7272
node resource limitations.
7373

7474
.. _application-instances:
7575

76-
Application instances
76+
Installed applications
7777
======================
7878

79-
Once an application has one or more installed instances, click on the
79+
Once an application has been installed, click on the
8080
``Instances`` link within the application's card. You can perform various
8181
actions on each instance by clicking on its three-dots menu:
8282

8383
- ``Update to testing version``: This action is visible only when a
84-
testing version is available as an instance update. Carefully review the
84+
testing version is available. Carefully review the
8585
pre-release documentation or consult the app developer before
8686
proceeding.
87-
- ``Add to favorites``: The application will always be listed at the top
88-
of the application drawer.
87+
- ``Add to favorites``: Pin the application at the top of the
88+
**application drawer**.
8989
- ``Edit instance label``: Add a custom name to the instance.
9090
- ``Clone``: Clone the application. See :ref:`move_clone-section`.
9191
- ``Move``: Move the application to another node. See
@@ -94,12 +94,15 @@ actions on each instance by clicking on its three-dots menu:
9494
again, similar to a system reboot but limited to the application.
9595
- ``Uninstall``: Remove the application and all related data.
9696

97+
The :ref:`Applications page <applications-section>` is an alternative and
98+
comprehensive place where the applications installed in the cluster can be
99+
managed.
100+
97101
.. |bento| image:: _static/bento.png
98102
:alt: application drawer
99103

100-
Installed application instances are also accessible from the application
101-
drawer by clicking on the |bento| menu in the top-right corner of the
102-
screen.
104+
Installed applications are also listed in the **application drawer**, by
105+
clicking on the |bento| menu in the top-right corner of the screen.
103106

104107
.. _software_repositories-section:
105108

@@ -213,55 +216,3 @@ see all module instances that require an update. You can update each
213216
instance separately by clicking on the :guilabel:`Update` button. If you
214217
prefer to update all instances of the same module, just click
215218
:guilabel:`Update all instances` button.
216-
217-
218-
.. _move_clone-section:
219-
220-
Clone and move applications
221-
===========================
222-
223-
An application instance can be cloned to any cluster node. The clone
224-
procedure creates a new application instance that is equivalent to the
225-
source one.
226-
227-
The cluster node where the destination instance runs can be the same as
228-
the source instance. Generally, there should be no limitation on running
229-
multiple application instances on the same node. However, in some cases,
230-
cloning to certain cluster nodes may be restricted due to application
231-
policies, node resource limitations, or because the instance requires
232-
exclusive access to a system resource, such as binding a fixed TCP port
233-
number.
234-
235-
In a nutshell the clone procedure:
236-
237-
1. Creates a new application instance for the destination.
238-
2. Starts the data transfer between the instances, during this phase the
239-
source is still up and running.
240-
3. Stops briefly the source instance.
241-
4. Executes the final data synchronization.
242-
5. Starts the source and the destination instances.
243-
244-
Instead, when moving an application, you must select a target node other
245-
than the one where the instance is currently running.
246-
247-
The move procedure
248-
249-
1. Creates a new application instance for the destination.
250-
2. Starts the data transfer between the instances, during this phase the
251-
source is still up and running.
252-
3. Stops briefly the source instance.
253-
4. Executes the final data synchronization.
254-
5. Starts the destination instance and removes the source one.
255-
256-
If the moved application is referenced by a fully qualified domain name
257-
(FQDN), ensure you update the DNS record to point to the address of the
258-
target node.
259-
260-
To start moving/cloning an application instance see the
261-
:ref:`application-instances` section.
262-
263-
264-
.. rubric:: Footnotes
265-
266-
.. [#fileserver] Except for :ref:`file-server-section`, that is provided
267-
by a core module, installed with :ref:`active_directory-section`

user_domains.rst

Lines changed: 39 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,50 @@
44
User domains
55
============
66

7-
Users and groups are stored in an LDAP database, served by one **account
8-
provider module**. Multiple modules can work together to serve the same
9-
LDAP database as replicas. An LDAP database represents an account
10-
**domain**.
11-
12-
The NS8 cluster can host multiple local account domains from different
13-
implementations. It is possible to configure and connect external LDAP
14-
services, too. Supported LDAP schemas are
15-
16-
* Active Directory - `Samba <https://www.samba.org/>`_
17-
* Unix attributes `RFC2307 <https://www.rfc-editor.org/rfc/rfc2307>`_ - `OpenLDAP <https://www.openldap.org/>`_
18-
19-
Besides choosing to bind an external provider or install an internal one, the
20-
administrator has to decide which backend type suits his needs.
21-
The Samba File server application
22-
can authenticate SMB/CIFS clients only when using an Active Directory domain.
23-
On the other hand, the internal OpenLDAP provider is easier to install and
24-
configure.
25-
In the end, if the SMB file sharing protocol support is not required, an
26-
LDAP provider is the best choice.
27-
28-
Also note that you can host multiple OpenLDAP instances on the same node,
29-
while you can install only one Samba instance per node.
7+
Users, passwords, and groups are stored in LDAP databases and constitute a
8+
**user domain**.
9+
10+
An NS8 cluster can host multiple *internal* user domains of different LDAP
11+
schemas. It is also possible to configure *external* user domains that
12+
connect NS8 with LDAP services running outside the cluster. Supported LDAP
13+
schemas are:
14+
15+
* Active Directory - Samba_
16+
* Unix attributes RFC2307_ - OpenLDAP_
17+
18+
.. _Samba: https://www.samba.org/
19+
.. _RFC2307: https://www.rfc-editor.org/rfc/rfc2307
20+
.. _OpenLDAP: https://www.openldap.org/
21+
22+
With an *internal* user domain, the same LDAP database can be replicated
23+
and provided by multiple cluster nodes to ensure availability for
24+
applications running on those nodes (see also
25+
:ref:`provider_replica-section`).
26+
27+
With an *external* user domain, it is still possible to configure multiple
28+
LDAP replicas, but they must be reachable from every node of the cluster.
29+
30+
An LDAP replica is called an **account provider**.
31+
32+
Besides choosing to bind an external provider or install an internal one,
33+
consider that the LDAP schema and its implementation may provide different
34+
features. Some important examples:
35+
36+
- The Samba File Server application works only with Active Directory.
37+
38+
- With OpenLDAP, multiple providers can be hosted on the same node, while
39+
Samba can host only one user domain per node.
40+
41+
- RFC2307 providers may not fully support advanced password policies.
42+
3043

3144
.. _active_directory-section:
3245

3346
Active Directory
3447
================
3548

36-
To install a new user domain with a local Samba Active Directory as provider:
49+
To install a new user domain with an internal Samba Active Directory as
50+
provider:
3751

3852
* access the ``Domains and users`` page
3953
* click on :guilabel:`Create domain` button and choose ``Internal``
@@ -115,7 +129,7 @@ must also be able to resolve AD domain names.
115129
LDAP server RFC2307
116130
===================
117131

118-
To install a new user domain with a local OpenLDAP as provider:
132+
To install a new user domain with an internal OpenLDAP as provider:
119133

120134
* access the ``Domains and users`` page
121135
* click on :guilabel:`Create domain` button and choose ``Internal``

0 commit comments

Comments
 (0)