Self-orchestrator

Introduction

The aerOS self-orchestrator module is one of the 4 essential modules within the aerOS self-* capabilities set. Composed by a rules engine, a facts generator, a trigger and wrapped by an API, it is capable of managing facts, rules and alerts, obtaining information from the self-awareness, self-realtimeness, self-healing and self-optimisation and adaptation modules to send warnings about problems in the IE to the aerOS EAT, with the goal to improve the management and coordination of their own workloads. This improves the scalability of tasks and reduces the number of errors that occur during task execution.

Features

Place in architecture

The following figure describe the self-orchestrator module inside the IE and the relationships with another self-* modules.

self-orchestrator module inside the IE and the relationships with another self-* modules

User guide

To start using the self-orchestrator module, please visit the Common deployments repository for more information.

Warning

Remember to manually create facts and rules folders if you run the image in Docker. In Kubernetes they are created automatically:
  • facts: /etc/aeros/self-orchestrator/facts

  • rules: /etc/aeros/self-orchestrator/rules

Prerequisities

Installation

To test the code locally:

  1. Download package.json and script.js files in the same folder.

  2. In the same directory where the files were downloaded, run the following command to create two folders called facts and rules:

mkdir facts rules
  1. In the same directory where the files were downloaded, run the following command to install the necessary dependencies:

npm install
  1. In the same directory where the files were downloaded, run the following command to launch the self-orchestrator:

node script.js

Configuration options

  • AEROS_EAT_URL: the URL where EAT is running.

    • Value: IP and port.

  • AEROS_IOTA: indicates whether IOTA is enabled in the domain or not.

    • Value: true/false.

  • AEROS_IOTA_URL: the URL where IOTA is running.

    • Value: IP and port.

    • Optional (if AEROS_IOTA is false).

  • AEROS_IOTA_NODE: IOTA node to send the message to.

    • Value: IOTA node name.

    • Optional (if AEROS_IOTA is false).

API

A swagger.yaml file is available for consultation.

Developer guide

Authors

Universitat Politècnica de València

License

Notice (dependencies)