DIGIT Installation on Azure

DIGIT services deployment in azure cloud platform

Pre-requisites

  • Make sure you have your Azure account with the necessary credentials.

  • Install Golang - Use these links to install- Linux or Windows or Mac

  • ​All DIGIT services are packaged using helm charts, Install helm using the link Installing Helm

  • ​kubectl is a CLI to connect to the Kubernetes cluster on your machine

  • Install CURL for making API calls

  • ​Install VisualStudio IDE Code for better code visualization/editing capabilities

  • ​Install Postman to run digit bootstrap scripts

  • Install Terraform to provide infrastructure on Azure

  • Install Azure CLI and git

Infra Setup

  • Clone the DIGIT-DevOps Repo and check out to the Azure branch

git clone https://github.com/egovernments/DIGIT-DevOps.git
cd DIGIT-DevOps
git checkout azure-install
code
  • Change to the remote state in the sample-azure directory

  • Login to Azure using the below command in the terminal

  • Update the variables in variables.tf file

  • Run the below commands to create resource-group, storage-account and container

  • Copy the storage account name and change to the sample-azure directory

  • Open main.tf file and update the below placeholder details

  • Create client-id and client-secret with necessary permissions

  • Open variables.tf file - update the variables and run the below commands

  • Note the db_name and server_name

  • Fetch the kubeconfig using the below command. This will automatically store your kubeconfig in .kube folder

  • Check the kubeconfig and pods by running the below commands

Deployment

  • Change to the environments directory and open egov-demo.yaml

  • Update the below configurations in egov-demo.yaml

  • Open the egov-demo-secrets.yaml file and update db details and private key

Generate SSH key pairs (Use either method (a) or method (b)) to update the private key.

a. Using the online website (not recommended for production setup. To be only used for demo setups): https://8gwifi.org/sshfunctions.jsp

b. Using OpenSSL :

openssl genpkey -algorithm RSA -out private_key.pem openssl rsa -pubout -in private_key.pem -out public_key.pem

Add the public key to your GitHub account (reference: https://www.youtube.com/watch?v=9C7_jBn9XJ0&ab_channel=AOSNote )

  • Change to the deployer directory

  • Run the below command to deploy nginx-ingress

  • Check the pods once all services are deployed successfully

  • Run the below command to get the load balancer id

  • Copy the load balancer id and add it to your domain provider against your domain name.

Last updated

Was this helpful?