Integrated Digital Engineering on AWS
  • 🚀First Time Users
    • What is IDEA?
    • Install IDEA
      • Pre-Requisites
      • Standard Installation
    • Access your IDEA cluster
      • Web Interface
      • Virtual Desktops (Linux/Windows)
      • SSH
      • APIs
    • File Browser
    • Let's get started
    • Cluster operations
      • Update IDEA cluster
        • Patch IDEA module (idea-admin.sh patch)
        • Update IDEA configuration (idea-admin.sh config)
        • Update IDEA backend resource (idea-admin.sh deploy)
      • Uninstall IDEA
  • 🤖Modules
    • What is a module?
    • Virtual Desktop Interfaces
      • User Documentation
        • Create a virtual desktop (Linux/Windows)
        • Stop/Delete/Hibernate a virtual desktop
        • Modify a virtual desktop
        • Share a virtual desktop
        • Virtual desktop scheduling
      • Admin Documentation
        • Dashboard
        • Sessions
        • Virtual Desktop Images (Software Stacks)
        • Permissions management
      • Technical
        • APIs
    • HPC Workloads
      • User Documentation
        • Submit a job
        • Control my jobs
        • Supported EC2 parameters
        • Job Storage
        • Troubleshooting
          • My job is not starting
      • Admin Documentation
        • Queue Profiles
        • Create Web Based Job Submission Worfklows
        • Configure Floating License resources
    • Cluster Manager
      • Projects Management
      • Users Management
      • Groups Management
      • Cluster Status
      • Email Templates
      • APIs
    • Shared Storage
      • Storage Management
  • 👑Best Practices
    • Analytics
      • OpenSearch
        • Configure your OpenSearch
        • Create your own analytics visualizations
    • Budget
      • Review your AWS spend
      • Control your AWS spend
      • Set up budget per project
    • Security
      • Backup IDEA environment
  • 🧱Architecture
    • High Level Overview
  • 🛠️Developer Portal
    • IDEA CLI utility
    • Developer Onboarding
  • 🚨Help and Support
    • FAQ
    • Raise a bug
Powered by GitBook
On this page
  • Pre-Requisite
  • Workflow
  • Example: Updating the cluster-manager module of a running IDEA environment
  1. First Time Users
  2. Cluster operations
  3. Update IDEA cluster

Patch IDEA module (idea-admin.sh patch)

PreviousUpdate IDEA clusterNextUpdate IDEA configuration (idea-admin.sh config)

Last updated 1 year ago

Use the Patch command if you have updated the codebase of one of your module (e.g: developed new API, updated a function/class). Refer to Update IDEA configuration (idea-admin.sh config) for other types of updates.

To patch/update one IDEA module, run the following idea-admin.sh patch <MODULE_NAME> command.

Pre-Requisite

You must have completed your Developer Onboarding and generated the local dist archives by running invoke clean build package

You also must be running this command on a system that has the permission to upload objects into the s3 bucket created during the CDK bootstrap phase.

Workflow

  1. IDEA admin clones the latest IDEA codebase locally. Onboard to Developer Onboardingand run invoke clean build package to create the latest dist archives

  2. IDEA admin triggers idea-admin.sh patch <MODULE> --aws-region <REGION> --cluster-name <CLUSTER_NAME>

  3. idea-admin.sh will retrieve the latest dist archive(s) (inside the dist folder generated during the invoke clean build package command)

  4. idea-admin.sh will upload the dist file(s) to the S3 bucket created by the cdk bootstrap command during the installation of IDEA

  5. idea-admin.sh will trigger AWS System Manager (SSM)

  6. AWS SSM triggers a run-command on the EC2 machine running the IDEA module you are planning to update

  7. EC2 machine will download the dist archive(s) from S3, install it and then restart the relevant IDEA services

Example: Updating the cluster-manager module of a running IDEA environment

# This guide assume your local system followed Developer Onboarding guide 
# # # # # # # # # # # # # # # # # # # 
#                                   #
# 1. Generate the dist package.     #
#                                   #
# # # # # # # # # # # # # # # # # # # 
$ invoke clean build package
------------------------------------------------------------------------------------------------------------------------
* begin: clean all
------------------------------------------------------------------------------------------------------------------------
....
[OUTPUT TRUNCATED]
....
removing 'idea-data-model-3.0.0' (and everything under it)
copying data-model artifacts ...
copying idea-virtual-desktop-controller artifacts ...
creating archive ...
distribution created: idea-virtual-desktop-controller-3.0.0.tar.gz
------------------------------------------------------------------------------------------------------------------------
* package idea-dcv-connection-gateway
------------------------------------------------------------------------------------------------------------------------
copying idea-dcv-connection-gateway artifacts ...
creating archive ...
distribution created: idea-dcv-connection-gateway-3.0.0.tar.gz

------------------------------------------------------------------------------------------------------------------------
* end: package all
------------------------------------------------------------------------------------------------------------------------

# # # # # # # # # # # # # # # # # # # 
#                                   #
# 2. Run the patch command          #
#                                   #
# # # # # # # # # # # # # # # # # # # 
$ ./idea-admin.sh patch cluster-manager \
   --aws-region us-east-2 \
   --cluster-name idea-prerc
   
searching for applicable ec2 instances ...
+---------------------+----------------------------+-------------------------------------------+-------------+---------+
| Instance Id         | Instance Name              | Host Name                                 | Private IP  | State   |
+---------------------+----------------------------+-------------------------------------------+-------------+---------+
| i-0f45cb<REDACTED> | idea-prerc-cluster-manager | ip-10-0-211-98.us-east-2.compute.internal | 10.0.211.98 | running |
+---------------------+----------------------------+-------------------------------------------+-------------+---------+
? Are you sure you want to patch the above running ec2 instances for module: cluster-manager? Yes
uploading package: /Users/mcrozes/Solution-for-scale-out-computing-on-aws/dist/idea-cluster-manager-3.0.0.tar.gz to 
s3://idea-prerc-cluster-us-east-2-<REDACTED>/idea/patches/idea-cluster-manager-3.0.0.tar.gz ...
patch command: sudo /bin/bash /root/bootstrap/latest/cluster-manager/install_app.sh s3://idea-prerc-cluster-us-east-2-<REDACTED>/idea/patches/idea-cluster-manager-3.0.0.tar.gz >> 
/root/bootstrap/logs/patch.log
Patch execution status for SSM Command Id: 090070ee-aa2a-4bb6-b332-220f90aabfb7
+---------------------+----------------------------+-------------------------------------------+-------------+---------+--------------+
| Instance Id         | Instance Name              | Host Name                                 | Private IP  | State   | Patch Status |
+---------------------+----------------------------+-------------------------------------------+-------------+---------+--------------+
| i-0f45cb<REDACTED> | idea-prerc-cluster-manager | ip-10-0-211-98.us-east-2.compute.internal | 10.0.211.98 | running | Success      |
+---------------------+----------------------------+-------------------------------------------+-------------+---------+--------------+
Patch executed successfully. Please verify the patch functionality as per release notes / change log.

invoke clean build package can take some time as IDEA will generate the dist builds for all modules. You can speed up the process by manually specify which package you want to build by specify the package name:

invoke devtool.build -m <MODULE>

🚀
Patch process