# 1. Pre-requisites

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

1. ​[**AWS account**](https://portal.aws.amazon.com/billing/signup?nc2=h_ct\&src=default\&redirect_url=https%3A%2F%2Faws.amazon.com%2Fregistration-confirmation#/start) with admin access to provision infrastructure. You will need a paid subscription to AWS.
2. Install [**kubectl**](https://kubernetes.io/docs/tasks/tools/) (any version) on the local machine - it helps interact with the Kubernetes cluster.
3. Install [**Helm**](https://helm.sh/docs/intro/install/) - this helps package the services, configurations, environments, secrets, etc, into [**Kubernetes manifests**](https://devspace.cloud/docs/cli/deployment/kubernetes-manifests/what-are-manifests)**.** Verify that the installed version of Helm is equal to 3.0 or higher.

```
// command to check helm version
helm version
```

4. Install [tfswitch](https://github.com/warrensbox/terraform-switcher) - to run different versions of Terraform on the machine. [tfswitch](https://github.com/warrensbox/terraform-switcher) supports multiple Terraform versions on the same machine, and you can toggle between the desired versions.

```
// On Mac
brew install warrensbox/tap/tfswitch
```

```
// On Linux
curl -L https://raw.githubusercontent.com/warrensbox/terraform-switcher/master/install.sh -o install.sh
sudo bash install.sh
```

{% hint style="info" %}
Refer to [tfswitch documentation](https://tfswitch.warrensbox.com/Quick-Start/) for different platforms. Terraform version 0.14.10 can be installed directly as well.
{% endhint %}

5\. Run tfswitch, and it will show a list of Terraform versions. Scroll down and select the [**terraform**](https://releases.hashicorp.com/terraform/0.14.10/) version (0.14.10) for the [Infra-as-code](https://docs.digit.org/platform/guides/installation-guide/infrastructure-setup/sdc/2.-infra-as-code-kubespray) (IaC) to provision cloud resources as code. This provides the desired resource graph and helps destroy the cluster in one go.​

```bash
// On Linux
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt-get update && sudo apt-get install terraform
```

```bash
// On Mac
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
```

6. **Install** [**Golang**](https://go.dev/doc/install#download)

* For Linux: Follow the [instructions here](https://go.dev/doc/install#download) to install Golang on Linux.
* For Windows: Download the installer using the [link here](https://go.dev/doc/install#download) and follow the installation instructions.
* For Mac: Download the installer using the [link here](https://go.dev/doc/install#download) and follow the installation instructions.

7. **Install** [**cURL**](https://help.ubidots.com/en/articles/2165289-learn-how-to-install-run-curl-on-windows-macosx-linux) **-** for making API calls
8. **Install** [**Visual Studio Code**](https://code.visualstudio.com/download) **-** for better code visualisation/editing capabilities
9. **Install** [**Postman**](https://www.postman.com/downloads/) **-** to run digit bootstrap scripts
10. **Install** [**AWS CLI**](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
