Go to file
Marco Lettere c4bb342b3f changed naming of service to incorporate infrastructure 2021-05-31 18:04:17 +02:00
inventory inventory fix 2021-05-20 17:21:48 +02:00
local-site tuned generation for all environments and added local-site 2021-05-19 17:02:57 +02:00
roles changed naming of service to incorporate infrastructure 2021-05-31 18:04:17 +02:00
.gitignore Initial commit 2020-10-26 12:19:58 +00:00
CHANGELOG.md complete refactoring and removal of dynomite 2020-11-19 18:04:30 +01:00
FUNDING.md First commit 2020-10-26 13:27:25 +01:00
LICENSE.md First commit 2020-10-26 13:27:25 +01:00
README.md tuned generation for all environments and added local-site 2021-05-19 17:02:57 +02:00
ansible.cfg Proposed changes to better separate the environments. 2020-11-20 12:06:48 +01:00
site-dev.yaml changed naming of service to incorporate infrastructure 2021-05-31 18:04:17 +02:00
site-local.yaml conductor 3.0.4 with oauth2 and pep 2021-05-18 15:10:08 +02:00
site-nw-cluster.yaml changed naming of service to incorporate infrastructure 2021-05-31 18:04:17 +02:00
site-pre.yaml changed naming of service to incorporate infrastructure 2021-05-31 18:04:17 +02:00
site-prod.yaml set callback uri to https 2021-05-20 17:50:45 +02:00

README.md

Conductor Setup

Conductor Setup is composed of a set of ansible roles and a playbook named site-*.yaml useful for deploying a docker swarm running Conductor microservice orchestrator by Netflix OSS.

Current setup is based on Conductor 3.0.4 version adapted by Nubisware S.r.l. It uses the docker images on dockerhub:

  • nubisware/conductor-server:3.0.4
  • nubisware/conductor-ui-oauth2:3.0.4 (which has been improved with Oauth2 login in collaboration with Keycloak)

Besides the basic components Conductor itself (server and ui) and Elasticsearch 6.1.8, the repository can be configured to launch postgres or mysql persistence plus basic python based workers for running PyRest, PyMail, PyExec and PyShell in the same Swarm. In addition a nginx based PEP can be executed to protect the conductor REST API server. It is also possible to connect to an external postgres for stateful deployments.

Structure of the project

The folder roles contains the necessary roles for configuring the different configurations There are 4 file for deploying to local, nw-cluster or D4SCience dev, pre and prod environments.

To run a deployment

ansible-playbook site-X.yaml

whereas

ansible-playbook site-X.yaml -e dry=true

only generates the files for the stack without actually deploying it.

The folder local-site contains a ready version for quickly launching a conductor instance with no replications (except workers), no auth in the Conductor UI and no PEP.

docker stack deploy -c elasticsearch-swarm.yaml -c postgres-swarm.yaml -c conductor-swarm.yaml -c conductor-workers-swarm.yaml -c pep-swarm.yaml conductor

When you have ensured that Postgres and Elasticsearch are running, execute:

docker stack deploy -c conductor-swarm.yaml conductor

This will create a local stack accessible through permissive pep at port 80. Please add two mappings for localhost in your /etc/hosts

127.0.1.1 conductor-server conductor-ui

and point your browser to http://conductor-ui.

Built With

Examples

Checkout the files site-X.yaml as a reference for different configurations.

Change log

See CHANGELOG.md.

Authors

How to Cite this Software

[Intentionally left blank]

License

This project is licensed under the EUPL V.1.1 License - see the LICENSE.md file for details.

About the gCube Framework

This software is part of the gCubeFramework: an open-source software toolkit used for building and operating Hybrid Data Infrastructures enabling the dynamic deployment of Virtual Research Environments by favouring the realisation of reuse oriented policies.

The projects leading to this software have received funding from a series of European Union programmes see FUNDING.md

Acknowledgments

[Intentionally left blank]