Renga-Deployer

https://travis-ci.com/SwissDataScienceCenter/renga-deployer.svg?token=mxu4owK3eZsAmMTeJPg1&branch=master

Renga Deployer Service.

Local

$ export FLASK_APP=renga_deployer/app.py
$ flask run

The first time you run the app locally, you may need to build the database tables:

$ flask shell
>>> from renga_deployer.app import db
>>> db.create_all()

Docker

$ docker build --tag renga-deployer:latest .
$ docker run -p 5000:5000 -v /var/run/docker.sock:/var/run/docker.sock renga-deployer:latest

For development, mount the code directly and enable flask debug mode:

$ docker run -p 5000:5000 \
      -e FLASK_DEBUG=1 \
      -v `pwd`:/code \
      -v /var/run/docker.sock:/var/run/docker.sock \
      renga-deployer:latest

You can test the API by pointing your browser to http://localhost:5000/v1/ui

Orchestration with Postgres and load-balancer

The packages includes two simple orchestration setup files: docker-compose.yml and docker-compose.full.yml.

The first includes only the deployer container linked to a postgres database. To use the deployer with postgres:

$ docker-compose up

As before, the service is available on port 5000.

The second can be used as a template to define your own production deployment environment including the Traefik load balancer and (self-signed) SSL certificates.

$ docker-compose -f docker-compose.full.yml up

The service is available on https://localhost/api/deployer. You can access the traefik dashboard on http://localhost:8080/.

Platform integration

The deployer can optionally integrate with other Renga Platform services. To enable integration, set the appropriate environment variables in the form of <SERVICE_NAME_URL> to point to the api URL. For example, setting KNOWLEDGE_GRAPH_URL will ensure that deployment contexts and executions are automatically added to the knowledge graph. Note that to use the resource manager, you will need to additionally set the DEPLOYER_JWT_KEY.

User’s Guide

This part of the documentation will show you how to get started in using Renga-Deployer.

API Reference

If you are looking for information on a specific function, class or method, this part of the documentation is for you.

Additional Notes

Notes on how to contribute, legal information and changes are here for the interested.