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...

  1. Select a script from the tools catalog to deploy
  2. Select a cluster to which the script will be deployed
  3. Override default values:
    1. The script's default queue name
      1. RABBITMQ_QUEUE environment variable set in the request [  BD-1835 ]
      2. RABBITMQ_URI for the vhost Exists in Polyglot and Pyclowder2 and 1
      3. Only for extractor [ BD-1837 ]
    2. Default min and max instances
      1. Passed in as labels bd.replicas.min/max [  BD-1771 ] 
      2. Memory and CPU resource requirements
      1. Passed in as resource property in request
      2. Just limits, not reservations
    3. Default Service Name
      1. construct as: Cluster name - type - queueName 
    4. Disable automated queue bindings
      1. RABBITMQ_EXCHANGE - if empty do not bind
      2. if not in environment then it will bind to default
  4. Receive an error if:
    1. Queue name is already allocated in the cluster
    2. Docker image invalid
    3. Cluster unable to allocate requested resources

Pause Deployed Service

As a Brown Dog Administrator I can...

  1. Select a cluster to view deployed services
  2. Select a service and pause processing

Delete a Deployed Service

As a Brown Dog Administrator I can...

  1. Select a cluster to view deployed services
  2. Select a service and delete it and its associated queues

Administration Authorization

As a brown dog tool administrator I can...

  1. Query tools and scripts
  2. Approve tools
  3. Revoke approval

As a brown dog deployment administrator for a cluster I can...

  1. Query tools and scripts
  2. Deploy a script to a cluster for which I am authorized
  3. Pause a service on a cluster for which I am authorized
  4. 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...

  1. Select a cluster to view deployed services
  2. Select a service to manage
  3. See all exchanges in the cluster to which I am authorized to manage
  4. See existing bindings (including those generated automatically)
  5. Enter a binding between exchange and the service

Manually Delete Binding Between a Service to an Exchange

As a Brown Dog Administrator I can...

  1. Select a cluster to view deployed services
  2. Select a service to manage
  3. See all exchanges in the cluster to which I am authorized to manage
  4. See existing bindings (including those generated automatically)
  5. Delete a binding
  • No labels