Skip to content

Requirements

Aarti Jivrajani edited this page Jun 7, 2020 · 1 revision

R.A.D. REQUIREMENTS


Purpose

  • Provide an automated deployment mechanism that will spin up Kubernetes clusters and bootstrap an environment for user's applications to run in the cloud.
  • Templatize the configuration files for deploying clusters in either JSON or YML files for users

Configuration File

User must specify:

  • Repo URL
    • This repo will be containerized and deployed.
    • This repo will need to be containerized.
  • Docker configuration file
    • This file will be used to containerize the application and create the images.
    • This file must also sit at the top level of the application.
    • R.A.D. will containerize using docker and the user must specify a docker-compose.yml.
      • Number of nodes
      • Number of pods
        • The user can specify which images will be deployed in which pods

User Functionality

  • R.A.D. will provide an API endpoint to trigger setup and deployment of a cluster
  • This API endpoint will take as input the configuration file
  • Upon receipt of this file, the user can now manage the lifecycle of the clusters using the clusterctl CLI tool.

Development

  • We will use the Cluster API to handle deployment because it is a production-grade deployment package
  • We will use "kind" to create local kubernetes clusters for development
  • Cluster API provides the ability to create, scale, upgrade and destroy the cluster

What does R.A.D. not do?

  • R.A.D. does not automate the management of an application
  • The user is then responsible for managing everything using clusterctl