2.5.1. Enablers manager

2.5.1.1. Introduction

This enabler will serve as a registry of enablers and, in case they are deployed, the retrieval of their status. In particular, it will: (a) Allow the registration of an enabler (this is, from an ASSIST-IoT re-pository). Essential enablers will be pre-registered, (b) Retrieve a list of currently-running enablers, (c) Depict the status and the specific logs of an enabler (the latter only if the enabler with log collection capabilities is in place), (d) facilitate the deployment of standalone enablers (mostly for those that have to be present at any deployment).

2.5.1.2. Features

This enabler presents a visual interface to deploy, terminate and delete enablers by the interaction with the Smart Orchestrator.

In future versions, the user will be able to see the logs of each deployed enabler in a user-friendly way.

2.5.1.3. Place in architecture

The Enablers manager is part of the vertical plane manageability enablers. Moreover, this enabler is a user interface that is part of the Tactile dashboard enabler.

Dashboard architecture

2.5.1.4. User guide

This enabler is included in the Tactile Dashboard of the project, so a logged user with the right permissions can access to it by clicking its menu entry.

Method

Endpoint

Description

Payload (if needed)

Response format

GET

/enabler

Enabler view of the dashboard

Web page

GET

/helmrepository

Helm chart repository view of the dashboard

Web page

2.5.1.4.1. Enablers

The enabler shows a table with the deployed enablers and some information: ID, name, K8s cluster where it is deployed, operational status, detailed status and creation date.

Devices management user interface

To deploy a new enabler, click on the Add a new enabler button and a form will appear.

The first step it to fill in the enabler name. The full name of the enabler can be overrided by checking the Fullname override checkbox. This means that the value of the field Name of the form will be used to populate the fullnameOverride value of the enabler’s Helm chart, so the K8s services names of the enabler will follow this schema: <fullnameOverride>-<component_name>. For more information, please read the D6.7 of the project.

Enabler form general information

In order to select the enabler to deploy, first select a Helm chart repository from the list. Then a selectable will appear containing all the enablers of the selected repository. Select the desired enabler and, finally, choose a version from another selectable that will appear containing the available versions of the chosen enabler.

Select the enabler from a repository

There are two options to deploy a new enabler:

  • Select manually the K8s where will be deployed: uncheck the Auto scheduler checkbox and select a cluster.

  • Use the Auto scheduler functionality of the Smart Orchestrator: check the Auto scheduler checkbox and select a Placement policy. For more infomation about these policies, see the Smart Orchestrator entry.

Only if the cloud cluster has been manually selected to deploy the enabler on it, the Multi-cluster global service checkbox will appear. This option makes the service of the enabler’s main interface available to the enablers deployed on the other clusters.

Enable multi-cluster global service

The deployment of the new enabler can be configured by filling the Additional parameters box with a raw JSON object. The values included in this JSON object will replace the default values of the values.yaml file of the enabler Helm chart. In future versions, the challenge is to customize this form for each enabler, including all the customizable parameters in a user-friendly way.

Deploy a new enabler

A deployed enabler cannot be deleted until it has been terminated. To terminate a deployed enabler, click on the Terminate enabler button of the selected enabler and confirm the action in the dialog.

Terminate a deployed enabler

To delete a terminated enabler, click on the Delete enabler button of the selected enabler and confirm the action in the dialog.

Delete a terminated enabler

2.5.1.4.2. Helm chart repositories

The enabler shows a table with the registered Helm chart repositories and some information: ID, name, description, URL, status and creation date. This registered repositories will be listed in the Add a new enabler form.

Helm chart repositories user interface

To register a new Helm chart repository, click on the Add a new repository button and a form will appear.

Register a new Helm chart repository

To delete a repository, click on the Delete repository button of the selected repository and confirm the action in the dialog.

Delete a registered Helm chart repository

2.5.1.5. Prerequisites

The Smart Orchestrator must be previously installed.

2.5.1.6. Installation

This enabler is part of the Tactile dashboard enabler, so it is installed along with the Smart Orchestrator in the latter’s installation script.

However, it can be installed using the dashboard’s Helm chart, which can be found in the Package registry of the Gitlab’s public repository:

  1. Add the Helm chart repository:

    helm repo add assist-public-repo https://gitlab.assist-iot.eu/api/v4/projects/85/packages/helm/stable

  2. Install the last version of the dashboard’s Helm chart

    helm install assist-public-repo/dashboard

2.5.1.7. Configuration options

The dashboard’s Helm chart can be configured using the following environment variables:

  • Frontend:

    • BACKEND_SCHEMA: schema of the backend endpoint (http or https).

    • BACKEND_HOST: hostname of the backend.

    • BACKEND_PORT: port of the backend.

  • Backend:

    • JAVA_OPTS: Java options of Apache Tomcat. The database connection is configured using these options.

    • ORCHESTRATOR_API_URL: URL of the Smart Orchestrator’s API.

  • Frontend:

    • POSTGRES_USER: PostgreSQL database user.

    • POSTGRES_PASSWORD: PostgreSQL database user password.

    • POSTGRES_DB: PostgreSQL database name.

2.5.1.8. Developer guide

For more information, read the Tactile dashboard enabler entry

2.5.1.9. Version control and release

Version 1.0.0. Fully functional and aligned with the version 3.0.0 of the Smart Orchestrator enabler.

2.5.1.10. License

The licenses of internal code are under analysis. The code is developed using open source technologies (Vue.js, Spring framework, …) and PUI9, a framework that is property of Prodevelop. For more information about PUI9 licenses, read the Tactile dashboard enabler entry

2.5.1.11. Notice (dependencies)

This enabler depends on the Smart Orchestrator enabler and it’s part of the Tactile dashboard enabler.