Digit Infra Setup
Pre-requisites:
Go lang (v. 1.13)
Domain
SSL certificate
Infra Requirements https://docs.digit.org/v/v2.0/devops/setup-digit/cluster-requirements
SDC Setup:
1. HA-PROXY machine which acts as a load balancer.
2. Three machines which act as master nodes.
3. Four machines act as worker nodes.
4. One machine for database configuration.
5. ISCSI Volumes for Backbones services.Local Digit Setup:
1. Minikube installation
2. Volumes for backbone services.Cloud Infra requirements:
1. Supported Cloud (AWS, Azure, GCP, NIC ) Account
AWS:
1. AWS account with the IAM permissions listed on the EKS module documentation
2. AWS CLI configured
3. AWS IAM Authenticator
AZURE:
1. Azure subscription: If you don't have an Azure subscription, create a free account before you begin.
2. Configure Terraform: Follow the directions in the article, Terraform and configure access to Azure
3. Azure service principal: Follow the directions in the Create the service principal section in the article, Create an Azure service principal with Azure CLI. Take note of the values for the appId, displayName, password, and tenant.
GCP:
1. GCP subscription: If you don't have a GCP subscription, create a free account before you begin.
Digit Deployment Steps:
Deploy cluster with the supported cloud provider.
1. AWS: Provision of EKS cluster.
2. AZURE: Provision of AKS cluster.
3. SDC: Provision k8s cluster in SDC.
4. Local: Provision Minikube
1. Once you deploy the nginx-ingress, you get the DNS name(LoadBalancer hostname ). Create a
CNAME record (map loadbalancer hostname with your domain).
2. If you are going to use a free certificate like Let's Encrypt, deploy the cert-manager. More
information about cert-manager
go run main.go deploy -c -e uat 'cert-manager'
Note: replace uat with your respective environment
3. In the Case of SDC and Local environments, use NodePort instead of LoadBalancer.
Deploy the respective services to the environments, If you want to deploy billing-service and bpa-services deploy a respective image name with tag, use the following cmd to deploy,
Example:
go run main.go deploy -c -e uat ‘billing-service:v1.2.1-6342a7f-65,bpa-services:v1.1.1-08161234-2,chatbot:v1.0.0-f905f54,citizen:v1.3.0-b70c2fb3f-851’
Note: replace uat with your respective environment. You deploy multiple services like the above example.
Related Documents
Learn about the Ingress API
Learn about Ingress controllers
Learn about Cert-manager
Creating a pipeline for new service and deployment