/
Post-Campaign Infrastructure Optimization

Post-Campaign Infrastructure Optimization

 

Scaling Down Deployments

scale_down.sh Script

The scale_down.sh script is designed to scale down specified core services within the egov namespace to a single replica and scale down all other services to zero replicas. It also records the original replica counts for future scaling operations.

#!/bin/bash # File to store the replica count for each deployment replica_info_file="replica_counts.txt" > "$replica_info_file" # Clear the file before starting # List of core services to be maintained and scaled down to 1 replica core_services=( "egov-accesscontrol" "egov-enc-service" "egov-localization" "egov-location" "egov-mdms-service" "egov-user" "zuul" "dss-service" "boundary-service" ) # Function to save and scale down replicas scale_down() { service=$1 namespace=$2 current_replicas=$(kubectl get deployment "$service" -n "$namespace" -o jsonpath='{.spec.replicas}') echo "$service $current_replicas" >> "$replica_info_file" kubectl scale deployment "$service" --replicas=1 -n "$namespace" sleep 1 echo "$service scaled down." } # Scale down core services in egov namespace to 1 replica for service in "${core_services[@]}"; do echo "Scaling down deployment $service in namespace egov to 1 replica..." scale_down "$service" "egov" done # Scale Kibana in the es-cluster-v8 namespace scale_down "release-name-kibana" "es-cluster-v8" # Scale down all other services in the egov namespace to 0 replicas all_services=$(kubectl get deployments -n egov -o jsonpath='{.items[*].metadata.name}') for service in $all_services; do if [[ ! " ${core_services[@]} " =~ " $service " ]]; then echo "Scaling down deployment $service in namespace egov to 0 replicas..." scale_down "$service" "egov" kubectl scale deployment "$service" --replicas=0 -n egov fi done

Execution Steps

  1. Ensure Executable Permissions:

    chmod +x scale_down.sh
  2. Run the Script:

    ./scale_down.sh

Scaling Up Deployments

scaleup.sh Script

The scaleup.sh script restores the replica counts of deployments based on the information saved in replica_counts.txt.

Execution Steps

  1. Ensure Executable Permissions:

  2. Run the Script:


Postgres RDS Termination and Deployment on Kubernetes

Backup and Terminate Existing RDS

  1. Take a Backup of the Existing Postgres RDS:

    • Use AWS RDS console or CLI to create a final snapshot.

    • Ensure the snapshot is successfully created before proceeding.

  2. Terminate the Existing Postgres RDS:

    • Navigate to the RDS console.

    • Select the Postgres RDS instance.

    • Choose Delete and follow the prompts to terminate the instance.

    Note: Ensure all necessary data is backed up and verified before termination.

Deploy Postgres on Kubernetes Pod

  1. Obtain Existing Database Credentials:

    • Get the Database Name:

      Example Output:

    • Get the Database Username:

      Example Output:

    • Get the Database Password:

      Example Output:

  2. Update the PostgreSQL Helm Chart and Deploy:

    • Retrieve PostgreSQL RDS Version from AWS:

      • Navigate to the AWS RDS console.

      • Locate the Postgres RDS instance and note the version (e.g., 12).

    • Install PostgreSQL Using Helm:

    Note: Adjust the image.tag, auth.username, auth.password, and auth.database values as per your requirements.


Post Deployment Configuration

Update ConfigMap

After deploying PostgreSQL, update the egov-config ConfigMap with the new database host and URL.

Restart Deployments

To apply the new configurations, restart all deployments in the egov namespace.

Related content

EKS Upgrade
More like this
How to configure autoscaling for existing AWS EKS Cluster
How to configure autoscaling for existing AWS EKS Cluster
More like this
eGov ERP Stack Setup
eGov ERP Stack Setup
More like this
Understanding DIGIT Infra, Services Integration & deployment
Understanding DIGIT Infra, Services Integration & deployment
More like this
ERP ES data and index mapping to Microservice ES cluster
ERP ES data and index mapping to Microservice ES cluster
More like this
Punjab Cluster Resizing
Punjab Cluster Resizing
More like this