Skip to content

High Level Workflow

Aarti edited this page Apr 28, 2020 · 2 revisions

The high-level workflow of this platform is as follows -

1. The user is presented with a bare-metal machine running a small k8s cluster. This k8s cluster will act as a master/management k8s cluster.

2. On this management k8s cluster, a light application is run which serves 2 functions:

  • Provide an HTTP endpoint for the user to trigger the deployment pipeline
  • Provide a TCP connection over which the progress of the cluster creation is streamed back to the user.

3. When the user invokes the trigger, certain values need to be passed as part of the request body:

  • GitHub link
  • Mapping of the Dockerfile, k8s deployment name, and the corresponding k8s service. PS: The prerequisite here is that the Dockerfiles are available in the root directory of the GitHub repository

4. On receiving the trigger, the management cluster initiates the process of a new k8s cluster creation, followed by deployment of the user application. For the user application deployment, we build the Docker image locally and embed that in the k8s configuration file.

5. The k8s application configuration files are templatized, which allows us to maintain a certain degree of generality.