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 repository). Essential enablers will be pre-registered, (b) Retrieve a list of currently-running enablers, (c) Depict the status of an enabler, (d) facilitate the deployment of standalone enablers (mostly for those that have to be present at any deployment).

This enabler has reached a TRL of 7 during the execution of the ASSIST-IoT project.

2.5.1.2. Features

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

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, Helm Chart, Version, K8s Cluster, Enabler Status and Detailed Status

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. There are three potential placement policies: best-fit, worst-fit, and traffic-most. The best-fit approach situates the enabler in the cluster with the most available CPU and RAM, while the worst-fit places it where the least CPU and RAM are available. The traffic-most policy situates it where there is the highest network traffic.

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. The use of a timeout is required to stop the installation of an enabler in case its time limit is exceeded.

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

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

Delete a terminated enabler

Before initiating deletion, there’s an option to forcibly delete in cases where the cluster is unreachable and deleting the enabler through regular means is not possible. When deletion is forced, the enabler is removed from the system but remains in the cluster.

Force deletion of an enabler

Finally, the persistent data can be also deleted or preserve it for installation of future releases.

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 type (public or private). These registered repositories will be added with the Add a new enabler form. Upon uploading new charts to a repository, click the Update repository button located in the Actions column to refresh/update the list of charts.

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. There are two repository options categorized by type: private or public. For a public repository, the checkbox should remain unchecked, requiring the entry of a name, description, and URL. If a private repository is selected, two additional fields—username and password—are required.

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 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/manageability-dashboard

2.5.1.7. Configuration options

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

  • web:

    • DASHBOARD_HOST_NAME: hostname of the backend.

    • DASHBOARD_HOST_PORT: port of the backend.

    • ENABLE_AUTH_IDM: enable the use of an identification manager and authorization enabler for authentication.

  • api:

    • 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.

  • db:

    • 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 2.0.0. Fully functional and aligned with the version 4.0.0 of the Smart Orchestrator enabler.

2.5.1.10. License

Apache License Version 2.0

2.5.1.11. Notice (dependencies)

ASSIST-IoT - Architecture for Scalable, Self-*, human-centric, Intelligent, Se-cure, and Tactile next generation IoT

This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 957258.

Manageability dashboard, which includes included 2 of the 3 manageability enablers: - Enabler for registration and status of enablers - Devices management enabler

Copyright 2020-2023 Universitat Politècnica de València

  1. Included Software

  1. Used Software

  1. List of licenses