Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This page captures basic requirements for the NDS Labs GUI.

Scenario:

An NDS Labs pilot project has been approved and compute and storage quotas allocated. The project administrator has been sent credentials to access the NDS Labs project administration GUI 

Definitions:

  • Service: An individual Kubernetes service
  • Stack: A named set of related services (e.g., clowder services)
  • Endpoint: A publicly accessible endpoint for a service (e.g., NodePort)

Project Admin GUI Use cases:

Prerequisites:

Project admin has credentials to access the NDS Labs GUI

Use cases

Login

  • If the project admin enters a valid username/password, they are logged in for the duration of a session or until they hit logout.
  • If an invalid username or password are entered, an error message is displayed.

Logout

  • Selecting "logout" terminates the session. The user must re-login to make changes to the system.

View list of available services

  • A list of available services is displayed ordered by name
  • The admin can search the list of services or add/configure a service

Search list of available services

  • The admin can search

Security

  • Credentials

Versioning

  • How can we support deploying multiple versions of the same service?

Project Admin GUI

 Prerequisite:

...

  1. Session and token?
  2. "Keep me logged in to this computer"

...

  • the list of available services by name

...

  1. Display description/introduction information
  2. List required and optional dependencies
  3. Select or deselected optional dependencies (required are checked by default)
  4. Display volume requirements: If a service requires a volume: (1 volume per service)
    1. Display the limits to the project
    2. Minimum recommended for each service (default)
    3. Reuse existing volumes, re-initialize
  5. Confirmation
    1. Display dependencies of dependencies 
    2. final summary of what's will be deployed
    3. Notion of stacks? 
  6. Finish: 
    1. Selected services are added to the "inactive" part of namespace (not started status)
    2. "Configured Services" panel displays:
      1. "Configured services" grouped by "stack" name
      2. Project admin can play/stop/remove "stack"
      3. Project admin can add optional services to existing stack. (Add service to stack – "wrench" icon)

...

  1. Polling/watching individual service statuses

...

  • or keyword (tag)

Add service or set of services (stack) – configuration wizard

  • The admin selects the "add" button next to a service
  • The admin is prompted to complete a configuration workflow:
    • The system displays descriptive information about the selected serviec
    • The system displays a list of required (pre-selected) and optional dependencies
    • The admin can select or deselect optional dependencies
    • The system displays volume requirements. 
      • The system displays project storage quota and available space
      • For each required volume, the system displays the minimum recommended storage (default). The user can specify storage allocation for each volume.
      • If a volume exists for this service, the user is prompted to reuse or reinitialize the existing volume
    • Confirmation
      • The system displays a complete list of required and optional dependencies, volumes and allocations
    • Finish
      • The selected services are added as a "stack" to the inactive part of the namespace with status "not started"

Configured services:

  • For each service stack, the system displays the following:
    • A table of services grouped by "stack" name
    • Start/stop/remove
    • Endpoint URL
    • Service and stack status
  • From this interface, the project admin can start, stop or remove a stack
  • From this interface, the project admin can add optional services to an existing stack

Start/stop service

  • The project admin can start or stop a service stack. The stack status is displayed as services are started.
  • The admin is prompted to confirm stopping a service stack.
  • If the service is stopped, the endpoint URL is no longer available

Add/remove optional services from stack

Precondition:

  • Stack is stopped

Primary flow:

  • The project admin can add or remove optional services from an existing stack

Alternative flows

  • The project admin cannot remove required subservices of optional services (e.g., you cannot remove Rabbit without first removing Image Preview in Clowder)

Remove stack

  • The project admin can remove a stack. 

  • They are prompted to confirm removal

  • They are prompted to remove or retain allocated storage for the stack.

Save stack

  • (Tentative) The project admin can save the stack configuration.

View stack status

  • The project admin can view the status of a running stack

Endpoints

  • The project admin can view the list of available endpoints for a service stack.
  • The project admin can remotely access or share service endpoint URLs.

Logs:

  • Tentative: The project admin can view logs for a service

 

Console

  • The project admin can access the console of running stack services.

Assumptions/Questions

  • A service can only be deployed once in a given a project? (or stack) but may be restarted/reconfigured.
  • How can we support deploying multiple versions of the same service?

UI Mockups

Express Setup

Gliffy Diagram
nameNDS Labs GUI - Express Setup

Expert Setup

Gliffy Diagram
nameNDS Labs GUI - Expert Setup

 

...