Skip to content

micado-scale/eec

Repository files navigation

MiCADO EEC

The MiCADO Execution Engine Client (EEC) for the EMGWAM component in CloudiFacturing, Co-Versatile and DIGITbrain.

Enables the deployment and execution of applications and services using the MiCADO cloud orchestration framework.

Usage

The MiCADO EEC implements a RESTful API according to v1.4.0 of the EMGWAM Execution Engine Client API. Please refer to the specification for more detail.

Deployment

The MiCADO EEC is shipped as a Docker container and makes heavy use of the MiCADO Client Library. It is deployed behind traefik and secured with SSL. Client certificate verification can be optionally enabled.

Host Specification & Requirements

Minimum specs.

  • 2 vCPUs | 4GB RAM | 20GB Disk | Ubuntu 20.04
  • FQDN that resolves to the instance public IP

Install Docker and Docker-Compose.

Clone this repository into a directory of your choice

git clone https://github.com/micado-scale/eec project_name_eec
cd project_name_eec

Initial preparation of the host

Create the following default directories on the host. You can change these by modifying the volumes sections in docker-compose.yml.

  • /etc/micado (Configuration dir for the MiCADO Client Library)
  • /etc/eec (Configuration dir for the MiCADO EEC)
  • /etc/traefik/dynamic (Configuration dir for traefik)

Preparing the configuration

If you did not use the default directories above, make sure to use the new names in the steps below

Create a credentials file at /etc/micado/credentials-cloud-api.yml and fill in your OpenStack or CloudBroker credentials. Sample credentials file are available in the Ansible-micado repository.

Copy openstack_micado_spec.yml or cloudbroker_micado_spec.yml to /etc/eec/micado_spec.yaml and populate it with the relevant cloud IDs and names that describe your desired MiCADO node on your desired cloud. This should be an instance meeting the recommended requirements with an appropriate firewall configuration.

Copy traefik.toml to /etc/traefik/traefik.toml and replace foo@example.com with a valid email address.

Copy force-https.toml to /etc/traefik/dynamic/force-https.toml

Create an empty file in which Traefik can store retrieved HTTPS certificates. Set restrictive rw------- permissions for the created file.

touch /etc/traefik/acme.json
chmod 600 /etc/traefik/acme.json

Generating SSL certificates

Edit docker-compose.yml and replace example.com with your domain. Also modify the ENV variables MICADO_CLOUD_LAUNCHER and MICADO_SPEC if necessary.

Run docker-compose up -d and the deployment is complete.

Integration

Provide an EMGWAM administrator with your domain name and details.