Thunder Management API (Cube) - RohanNagar/thunder GitHub Wiki

The Thunder Management API (tentatively named cube - comes from merging cloud and kube) will be responsible for managing Thunder as a Service. It should be aware of users of Thunder and their deployments of Thunder across multiple cloud providers (AWS, Azure, GCP).

TODO Research to see if some of this functionality already exists.

Requirements

Users

  • Cube will use Thunder to hold User information. Why offer our product if we don't trust it ourselves? 😄
  • The user object should have properties to keep track of which deployments are theirs and their billing information.

Additional Database

  • May need to be a separate database to store deployment information

Funtionality

  • Keep track of User and Deployment relationships
  • Keep track of deployment configurations
  • Be able to deploy Thunder into Kubernetes clusters across AWS, Azure, GCP
  • Be able to monitor Thunder deployments
  • Be able to perform updates when configuration changes
  • Be able to perform updates when a new version of Thunder is released

API

  • Should be able to call Cube's Thunder instance to get user information
  • Call Cube's API to get:
    • billing information
    • detailed information about a deployment
  • Call Cube's API to create a new deployment
  • Update an existing deployment
  • Delete a deployment