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 the list of available services by name 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
- The project admin can add or remove optional services from an existing stack
- Ideally, this is done via a "Add/remove services" button from within the stack interface
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
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
Expert Setup