Pre-requisites

CCRS - Development Environment Prerequisites and Setup Guide

Before You Start

To develop or customise services on the DIGIT (CCRS) platform, both technical and non-technical prerequisites must be fulfilled.


🖥️ Operating System

  • Ubuntu 22.04+, or

  • Windows 10/11 Pro (64-bit) (WSL2 preferred if running Linux-based tools), or

  • macOS 12+ (Monterey or later)

⚙️ Hardware Requirements

Component
Minimum
Recommended (Ideal)

CPU

4 cores

8 cores or higher

RAM

16 GB

32 GB or higher

Disk

256 GB SSD

512 GB NVMe SSD

Network

Stable Internet

100 Mbps+ for EKS access


Technical Prerequisites

Ensure you have working knowledge of:

  • Java / J2EE

  • Spring Boot Framework

  • REST APIs (Path params, headers, JSON, etc.)

  • Git version control system

  • PostgreSQL database

  • Kafka (Messaging Queue)

Required Services (Should be running or configured with remote URLs):

  • User Service

  • MDMS (Master Data Management System)

  • Persister

  • Location Service

  • Localization Service

  • Id-Gen Service

  • Billing Service

  • URL Shortener Service


Non-Technical Prerequisites

Docker Registry Setup

A container registry (DockerHub, AWS ECR, GitHub Packages, etc.) should be configured to store and deploy Docker images.

CI/CD Pipeline Setup

Setup Instructions: Jenkins Setup for DIGIT


Tools Installation Checklist

To setup the DIGIT development environment -

  1. Run the Kafka and PostgreSQL on the development machine and re-use other services from the DIGIT development environment. The following tools are required for development:

    https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/

  2. Add configuration - Post installation of Kubectl, add the following configuration in the Kubernetes config file to enable access to resources in our sandbox environment. Kubernetes config file is available in the user's home directory (which varies from OS to OS).

    For example, on a Mac, it is available at:/Users/xyz/.kube/config

    Once the config file is created, add the following content to it.

Note: Replace the placeholder keys and tokens in the snippet below with your AWS-specific keys. Contact your system administrator for help with this.

Kubernetes Access Configuration (kubectl)

Post kubectl installation, you must configure access to the Kubernetes cluster. Below is a sample configuration (typically placed in ~/.kube/config):

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJd01EVXhNekV6TlRReE5sb1hEVE13TURVeE1URXpOVFF4Tmxvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTkJyClN6aHJjdDNORE1VZVF5TENTYWhwbEgyajJ1bkdYSWk1QThJZjF6OTgwNEZpSjZ6OS9qUHVpY3FjaTB1VURJQnUKS3hjdVFJRkozMG1MRWg3RGNiQlh2dDRnUlppZWtlZzVZNGxDT2NlTWZFZkFHY01KdDE1RVVCUFVzdlYyclRMcQp6a0ovRzVRUUFXMmhwREJLaFBoblZJTktYN1YzOU9tMUtuTklTbllPWERsZ1g3dW9Wa3I1OFhzREFHWEVsdC9uClpyc3laM2pkMWplWS8rMXlQQzlxbkorT0QwZlRQVGdCV1hMQlFwMHZKdHVzNE1JV2JLdkhlcUZ5eWtGd2V5MmoKSzk5eU1Yb0oraUpCaFJvWGllU3ZrNnFYdG44S2l4bVJtOXZPQk1hcWpuNkwwTjc3UWNCNjVRaHNKb0tWKzBiMQp5VVpJTHVTWWVTY0Yra3h6TzFVQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFNdnF3THl6d2RUL05OWlkvanNzb0lmQmIyNDgKZ3oxSHRuSXJ4UGhaY3RrYjBSMExxeTYzRFZBMFNSN0MrWk90aTNNd3BHMkFSVHVzdG1vYm9HV3poUXlXRk16awpVMVNIZSt6S3poeGcweUpjUjliZnlxM1ZtQVVCZlQyTVV5cVl2OVg0aWxpbmV0SURQaFBuWnlPMERQTHJITGoyCkcxZy8vWmZYbmFCT2k3dlZLSXFXUUR6RlltWGkwME9vOEVoalVyMU5sQ3FISnF1dUo3TlRWQWk1cXA0Qm1xWU8KUTBrbTVxTVVHbG9ZdkNmN1lHQWREWTVnWGg4dzFVMVdaNWNub0Q4WWc3aEtlSjRMRzRram1adlNucGZrS3VxNApiVDdUSjEwUEZlWFJkek8xa2FkQ3VMQSttUlg3OEd5WEw0UTZnOFdPUlhOVDYzdXN3MnlpMXVVN1lMTT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
    server: https://3201E325058272AA0990C04346DA6E82.yl4.ap-south-1.eks.amazonaws.com
  name: eks_egov-dev
contexts:
- context:
    cluster: eks_egov-dev
    namespace: egov
    user: eks_egov-dev
  name: dev
current-context: dev
kind: Config
preferences: {}
users:
- name: eks_egov-dev
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      args:
      - token
      - -i
      - egov-dev
      command: aws-iam-authenticator
      env:
      - name: AWS_ACCESS_KEY
        value: {AWS_ACCESS_KEY_PLACEHOLDER}
      - name: AWS_SECRET_ACCESS_KEY
        value: {AWS_SECRET_ACCESS_KEY_PLACEHOLDER}
      - name: AWS_REGION
        value: {AWS_REGION_PLACEHOLDER}

Note: If you see the error: error: You must be logged in to the server (Unauthorised). Try running the command with sudo, e.g., sudo kubectl get pods


This setup ensures your machine is ready for DIGIT-based service development and deployment.

Last updated

Was this helpful?