In order to turn the tools catalog into an application that can administrator scripts running in clusters, we propose a set of changes:
Concepts:
- Tool
- A basic 3rd party library that is used to develop converters or extractors
- Tool Script
- A deployable component based on the tool’s library
- Can be a converter or an extractor
- Can be a Docker image or manually deployed to a VM
- Cluster
- A place where a Tool Script can be deployed
- Includes a BD-Status service and a Rabbit vhost
- Service
- An instance of a script running in the swarm
Deployment
As a Brown Dog Administrator I can...
- Select a script from the tools catalog to deploy
- Select a cluster to which the script will be deployed
- Override default values:
- The script's default queue name
- Default min and max instances
- Passed in as labels bd.replicas.min/max [ BD-1771 ]
- Memory and CPU resource requirements
- Passed in as resource property in request
- Just limits, not reservations
Default Service Name- construct as: Cluster name - type - queueName
- Disable automated queue bindings
- RABBITMQ_EXCHANGE - if empty do not bind
- if not in environment then it will bind to default
- Receive an error if:
- Queue name is already allocated in the cluster
- Docker image invalid
- Cluster unable to allocate requested resources
Pause Deployed Service
As a Brown Dog Administrator I can...
- Select a cluster to view deployed services
- Select a service and pause processing
Delete a Deployed Service
As a Brown Dog Administrator I can...
- Select a cluster to view deployed services
- Select a service and delete it and its associated queues
Administration Authorization
As a brown dog tool administrator I can...
- Query tools and scripts
- Approve tools
- Revoke approval
As a brown dog deployment administrator for a cluster I can...
- Query tools and scripts
- Deploy a script to a cluster for which I am authorized
- Pause a service on a cluster for which I am authorized
- Delete a service on a cluster for which I am authorized
Manually Bind a Service to an Exchange
As a Brown Dog Administrator I can...
- Select a cluster to view deployed services
- Select a service to manage
- See all exchanges in the cluster to which I am authorized to manage
- See existing bindings (including those generated automatically)
- Enter a binding between exchange and the service
Manually Delete Binding Between a Service to an Exchange
As a Brown Dog Administrator I can...
- Select a cluster to view deployed services
- Select a service to manage
- See all exchanges in the cluster to which I am authorized to manage
- See existing bindings (including those generated automatically)
- Delete a binding