Cluster Man is a web application that is used to manage a Brown Dog Cluster. It is designed to be re-skinned so it could be bundled with Clowder to provide this functionality without an explicit Brown Dog dependency.

It manages configuration around:

  1. Docker Swarm for starting/stopping and deleting tool instances. 
  2. RabbitMQ for binding exchanges to the queues of running tools.

With it you can:

  1. Deploy new tools
  2. Bind tools deployments to one or more projects
  3. Create new projects
  4. Perform bulk bindings of tools to a project

There are two views:

Tools

Docker Swarm services are represented as running instances of tools. The Service Name is unique, but has no system significance. There can be multiple instances of a tool running since the queue name and service name are unique.



And projects

RabbitMQ Exchanges are represented as projects. The exchanges are tagged with the tool type they support. There can be multiple exchanges in a project as long as they support different tool types.



Tool Deployment

Tool Deployment is a two-step workflow.

In the first step you choose the tool by selecting a tool type and then enteringing the name of the tool. The form will attempt to auto-complete the tool name as you type.




In the second step you can enter deployment parameters. ClusterMan will generate a unique queue name that is based on the defaul queue name specified in the tool defintion. 

Clicking Deploy will attempt to deploy the tool to the cluster.


Once the tool has been successfully deployed, the user will be asked to manage bindings for the new tool to the existing projects.

For an extractor they will have some choices to make:



For converters, there is no choice. Remind the user that the new converter has been bound to every project in the cluster.


New Project

Authorized users can add new projects to the application when a new exchange is added to RabbitMQ. When the project is created, the user can specifiy which users have administrative rights over this project. They will be entitiled to bind and unbind tools within their project.



Note that converters don't allow binding so we don't need to capture the exchange.



Bind tools to a project





  • No labels