DIGIT Docs
v1.7
  • DIGIT Knowledge Base
  • Local Governance
v1.7
  • 👋Introducing Health
    • Release Notes
      • HCM v1.7 Release Notes
        • Release Checklist
        • Eligibility Checklist
        • Service Build Updates
      • HCM v1.6 Release Notes
        • Service Build Updates
        • Release Checklist
        • Migration from v1.5 to v1.6
      • HCM v1.5 Release Notes
        • Migration from v1.4 to v1.5
        • Service Build Updates
        • Release Checklist
      • HCM v1.4 Release Notes
        • Migration from v1.3 to v1.4
        • Service Build Updates
        • Release Checklist
      • v1.3 Release Notes
      • v1.3 Tech Release Summary
        • Master Data Management Service (MDMS) & Configuration Updates
        • Test Cases
        • Service Build Updates
      • v1.2 Release Notes
      • v1.0 Release Notes
  • Product Roadmap
  • 💙HEALTH CAMPAIGN MANAGEMENT
    • Understanding Health Campaign Management (HCM)
    • Value Proposition
  • 🎯HCM PRODUCT SUITE
    • Functional Specifications
      • Campaign Type Setup
      • Campaign Setup
      • Inventory
      • Boundary Hierarchy
      • Beneficiary
      • Boundary Data Specs
      • Draft System User Setup
      • Role Action Mapping
    • Building Blocks & Services
    • Health Products
      • HCM App
        • User Manual
          • Single Round Campaigns
            • Registration & Delivery
              • Registration & Delivery: IRS
          • Multi-Round Campaigns
            • Registration & Delivery
            • Download Beneficiary Data
          • Common Functions
            • User Management
            • 2D Voucher Scanning
            • Proximity-Based Search
            • Voucher-Based Registration and Distribution
            • Tracking Beneficiary Referrals
            • Tracking Side-Effects for Beneficiaries
            • Tracking Adverse Events
            • Health Facility Referral
            • Raising Complaints
            • Resolving Complaints
            • Inventory Management
              • User Manual
                • Stock Management
                • Stock Reconciliation
                • View Reports
                • Bale Scanning
            • Attendance Management
            • Payments
              • Guide to HCM Payments
            • Community Living Facilities
              • Product Requirement Document
          • Support Functions
            • Language Selection
            • Login
            • Forgot Password
            • Project Selection
            • Hamburger Menu
            • Help
            • Sync
            • Checklist
      • Campaign Management Dashboard
        • User Manual
        • Configurations
          • MDMS Configurations and s3 assets
          • IRS Dashboard Chart Configurations
        • Kibana Dashboard Integration With DSS Module
          • Auth Proxy Setup and Configuration for Kibana
        • SMC Dashboard
      • Microplanning
      • HCM Console
      • Health Payments
        • MDMS Configurations
        • Attendance Update and Approval Process
          • Project Selection
          • Register Inbox
          • View Attendance:Edit And Approve
        • Bill Generation Process
          • Project And Bill Aggregation
          • Bill Generation
          • My Bills
  • 🚀REFERENCE IMPLEMENTATIONs
    • Mozambique
      • LLIN Overview
      • Customisation
      • Rollout
  • 🧰TECHNOLOGY
    • Architecture
      • High Level Design
        • Health Campaign System High Level Design
        • Design Decision Log
      • Low Level Design
        • Registries
          • Individual
          • Household
          • Product
          • Facility
          • Attendance
          • Expense
        • Services
          • Project
          • Stock
          • Referral
          • Muster Roll
          • Expense Calculator
      • Field App Architecture
        • UI Packages
          • Closed HouseHold package
          • Registration & Delivery Package
            • Eligibility Checklist
            • Communal Living Facilities
          • Referral Reconciliation Package
          • Inventory Management Package
          • Attendance Management Package
          • DIGIT Scanner Package
          • Digit Showcase Package
          • Digit Data Model Package
          • DIGIT DSS Package
          • Complaints Package
          • Survey Form Package
          • Sync Service Package
    • Standards
    • Security
    • Interoperability
  • 🪝SETUP
    • Planning an HCM Implementation
    • Establish Project & Team
    • Gathering Requirements
    • Installation
      • Install Using GitHub Actions in AWS
      • System Data Setup
      • Project Data Setup
      • Setup Mobile App
      • Setup Kibana Dashboard
        • Create or Edit Existing Dashboards
      • Server Cleanup
    • Configuration
      • Configuring HCM to Campaign and Country Needs
      • Service Configuration
        • Individual Registry
        • Household Registry
        • Product Registry
        • Facility Registry
        • Stock & Inventory
        • Project Services
        • Referral Management
        • Attendance
        • Complaints
          • QA Sign-Off
            • Test Cases
        • User Management
          • QA Sign-Off
        • Muster Roll
        • Expense Service
        • Expense calculator
      • UI Configuration
        • Stock Management
        • Language Selection
        • Login
        • Forgot Password
        • Project Selection
        • Dashboard Configuration
          • Dashboard UI Enhancements
          • HCM Dashboard Master Promotion Guide
        • Attendance Management
          • Attendance Package Extraction and Interaction with HCM Application
    • Quality Assurance Testing
      • Regression Test cases
        • HCM Product
        • HCM Console
        • Microplanning
      • Eligibility and CLF Test cases
      • Console v0.3.1
      • Micro planning v0.2
      • HCM Payments v0.1
  • 🔵COMMUNITY
    • Source Code
    • Committee
      • Digital Product Advisory Committee Charter
      • Idea Management Process
      • Sessions
        • November 2023 Session
        • August 2024 Session
          • Minutes of the Meeting
        • December 2024 Session
    • HCM Declarative Statements & FAQs
Powered by GitBook

All content on this page by eGov Foundation is licensed under a Creative Commons Attribution 4.0 International License.

On this page
  • Pre-requisites
  • Install
  • Fork the GitHub Repositories
  • Adding AWS Keys to the Repository
  • Changes to be Made in the Repository
  • How to Edit the GitHub Files
  • Replace the Master and Configuration Repositories
  • Configure infrastructure-as-code
  • Configure HCM Chart Version
  • Enable PGR Module
  • Configure application secrets
  • Finalise Installation
  • Configure domain name
  • To Enable Filestore Service

Was this helpful?

Export as PDF
  1. SETUP
  2. Installation

Install Using GitHub Actions in AWS

PreviousInstallationNextSystem Data Setup

Last updated 3 months ago

Was this helpful?

Overview

This guide provides step-by-step instructions for installing DIGIT using GitHub Actions in an AWS environment.

Pre-requisites

  • Github account -

  • Kubectl installed in the system -

  • AWS account -

  • Install AWS CLI locally -

  • Postman - and

  • A domain host - (like go daddy to configure you server to a domain)

Install

  • Prepare AWS IAM User

  • Create an IAM User in your AWS account -

  • Generate ACCESS_KEY and SECRET_KEY for the IAM user -

  • Assign administrator access to the IAM user for necessary permissions.

  • Set up the AWS profile locally by running the following commands:

    • aws configure --profile {profilename}

    • fill in the key values as they are prompted

      • AWS_ACCESS_KEY_ID: <GENERATED_ACCESS_KEY>

      • AWS_SECRET_ACCESS_KEY: <GENERATED_SECRET_KEY>

      • AWS_DEFAULT_REGION: ap-south-1

    • export AWS_PROFILE={profilename}

    Note :: AWS Account should have S3 Bucket access to make Filestore service to work

Fork the GitHub Repositories

Uncheck the copy, the master only box, as shown below:

Adding AWS Keys to the Repository

  • Go to the forked health-campaign-devops repository:

  • Navigate to the repository settings.

  • Go to Secrets and Variables.

  • Click on the actions options below secrets and variables.

  • On the new page, choose the new repository secret option in repository secrets and add the following keys mentioned below:

    • AWS_ACCESS_KEY_ID: <GENERATED_ACCESS_KEY>

    • AWS_SECRET_ACCESS_KEY: <GENERATED_SECRET_KEY>

    • AWS_DEFAULT_REGION: ap-south-1

    • AWS_REGION: ap-south-1

Changes to be Made in the Repository

  • Navigate to the release-githubactions branch in the forked DevOps repository.

  • Enable GitHub Actions.

    • Click on Actions, then click on "I understand my workflows, go ahead and enable them":

How to Edit the GitHub Files

  • The following steps can be done either directly in the browser or the local system if you are familiar with git usage.

  • Before following any of the steps switch to the release-githubactions branch.

  1. Steps to edit in the local system if you are familiar with Git basics:

    1. Git clone {forked DevOps repolink}

    2. Follow the below steps and make changes

    3. Then commit and push to the release-githubactions branch

    4. NOTE: Complete all changes at once then commit and push the code to remote to trigger the installation.

Replace the Master and Configuration Repositories

  • Note: Make these repository/branch changes before installation; making changes to the configuration repository link in the DevOps repository after installation without understanding what impact they may have will lead to failure in the application functionality.

  • Navigate to egov-demo.yaml (config-as-code/environments/egov-demo.yaml).

  • Under the egov-persister: change the gitsync link of the health-campaign-config repository to the forked config repository and the branch to DEMO.

  • Under the egov-indexer: change the gitsync link of the health-campaign-config repository to the forked config repository and the branch to DEMO.

  • Under the pdf-service: change the gitsync link of the health-campaign-config repository to the forked config repository and the branch to DEMO.

Configure infrastructure-as-code

  • Navigate to infra-as-code/terraform/sample-aws.

  • Open input.yaml and enter details such as domain_name, cluster_name, bucket_name, and db_name.

Configure HCM Chart Version

  • Navigate to file deploy-as-code/deployer/digit_installer.go

  • Search for health-demo in the file and check for health-demo-vX.X

  • Change the version to v1.7 -> health-demo-v1.7

Enable PGR Module

  • Navigate to the file deploy-as-code/deployer/digit_installer.go

  • Search for m_health , and add this below this line selectedMod = append(selectedMod, "m_pgr")

Configure application secrets

  • Generate SSH key pair.

  • How to Generate SSH Key Pair - choose one of the following methods to generate an SSH key pair:

    • Method b: Use OpenSSL commands:

      • openssl genpkey -algorithm RSA -out private_key.pem

      • ssh-keygen -y -f private_key.pem > ssh_public_key

      • To view the key run the commands or use any text editor to open the files

        • vi private_key.pem

        • vi ssh_public_key

  • Once generated Navigate to config-as-code/environments

  • Open egov-demo-secrets.yaml

  • Search for PRIVATE KEY and replace from -----BEGIN RSA PRIVATE KEY----- to -----BEGIN RSA PRIVATE KEY----- with private_key generated (note: please make sure the private key is indented as given)

Finalise Installation

  • Once all details are entered, push these changes to the remote GitHub repository. Open the Actions tab in your GitHub account to view the workflow. You should see that the workflow has started, and the pipelines are completed successfully.

Configure domain name

  • Connect to the Kubernetes cluster, from your local machine by using the following command:

aws eks update-kubeconfig --region ap-south-1 --name $CLUSTER_NAME
  • Get the CNAME of the nginx-ingress-controller

kubectl get svc nginx-ingress-controller -n egov -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
  • The output of this will be something like this:

To Enable Filestore Service

After connecting to Kubernetes cluster , edit the deployment of FileStore service using the following command:

export KUBE_EDITOR='code --wait'
kubectl edit deployment egov-filestore -n egov

The deployment.yaml for Filestore Service will open in VS Code , add the aws key and secret key provided to you in the way shown below:

Close the deployment.yaml file opened in your VS Code editor and the deployment will be updated.

Fork the following repositories with all the branches into your organisation account on :

(We dont need master data repo, since we use mdms-v2 by default with data seeded)

Steps to edit the git repository in the browser -

Method a: Use an online website. (Note: This is not recommended for production setups, only for demo purposes):

Add the public_key to your GitHub account -

Add the displayed CNAME to your domain provider against your domain name. e.g. GoDaddy domain provider -

🪝
signup
installation guide
signup
installation guide
installation guide
import data guide
official document
AWS document
GitHub
Health-campaign-devops
configs
Master data
Git guide
https://8gwifi.org/sshfunctions.jsp
Git guide
ae210873da6ff4c03bde2ad22e18fe04-233d3411.ap-south-1.elb.amazonaws.com
https://www.godaddy.com/en-in/help/add-a-cname-record-19236