# 1. On-Premise Pre-requisites

## Overview <a href="#hardware" id="hardware"></a>

Check the hardware and software prerequisites for deployment on-premise.

## Hardware Pre-requisites <a href="#hardware" id="hardware"></a>

<details>

<summary>Developement Env Setup</summary>

* One Bastion machine to run Kubespray
* HA-PROXY machine which acts as a load balancer with Public IP. (CPU: 2Core , Memory: 4GB)
* Three machines which act as master nodes. (CPU: 2Core , Memory: 4GB)
* Four machines which act as worker nodes. (CPU: 8Core , Memory: 16GB)
* One machine for database configuration. (CPU: 2Core , Memory: 8GB)
* volumes for persistence volume. (number of quantity: 13), Supported Storage Solutions Refer [here](https://kubernetes.io/docs/concepts/storage/storage-classes/), but the most popular and recommended is iSCSI.
* Kafka - 3 quantities each having a 50 GB size
* zookeeper - 3 quantities each having a 5 GB size
* es-data - 3 quantities each having a 50 GB size
* es-master - 3 quantities each having a 5 GB size
* filestore - 1 quantity with 50 GB size

</details>

<details>

<summary>Production Setup</summary>

* One Bastion machine to run Kubespray
* HA-PROXY machine which acts as a load balancer with Public IP. (CPU: 4 Core, Memory: 8GB)
* Three machines to serve as master nodes. (CPU: 2Core, Memory: 4GB)
* Six machines to serve as worker nodes. (CPU: 8Core, Memory: 16GB)
* One machine for database configuration. (CPU: 4Core, Memory: 16GB)
* volumes for persistence volume. (number of quantity: 22), Supported Storage Solutions Refer [here](https://kubernetes.io/docs/concepts/storage/storage-classes/), but the most popular and recommended is iSCSI.
* Kafka - 3 quantities (100 GB each)
* Kafka-infra - 3 quantities (100 GB each)
* zookeeper - 3 quantities (10 GB each)
* es-data - 3 quantities (100 GB each)
* es-data-infra - 3 quantities (100 GB each)
* es-master - 3 quantities (10 GB each)
* es-master-infra - 3 quantities (10 GB each)
* filestore - 1 quantity (100 GB)

</details>

## **Software Pre-requisites**

1. **Kubernetes nodes**
   1. Ubuntu 18.04
   2. SSH
   3. Privileged user
   4. Python
2. **Bastion machine**
   1. Ansible
   2. Git
   3. Python
