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
IDEA admin clones the latest IDEA codebase locally. Onboard to Developer Onboardingand run invoke clean build package to create the latest dist archives
IDEA admin triggers idea-admin.sh patch <MODULE> --aws-region <REGION> --cluster-name <CLUSTER_NAME>
idea-admin.sh will retrieve the latest dist archive(s) (inside the dist folder generated during the invoke clean build package command)
idea-admin.sh will upload the dist file(s) to the S3 bucket created by the cdk bootstrap command during the installation of IDEA
idea-admin.sh will trigger AWS System Manager (SSM)
AWS SSM triggers a run-command on the EC2 machine running the IDEA module you are planning to update
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. ## ## # # # # # # # # # # # # # # # # # # $invokecleanbuildpackage------------------------------------------------------------------------------------------------------------------------* begin: clean all------------------------------------------------------------------------------------------------------------------------....[OUTPUT TRUNCATED]....removing'idea-data-model-3.0.0' (and everythingunderit)copyingdata-modelartifacts...copyingidea-virtual-desktop-controllerartifacts...creatingarchive...distributioncreated:idea-virtual-desktop-controller-3.0.0.tar.gz------------------------------------------------------------------------------------------------------------------------* package idea-dcv-connection-gateway------------------------------------------------------------------------------------------------------------------------copyingidea-dcv-connection-gatewayartifacts...creatingarchive...distributioncreated:idea-dcv-connection-gateway-3.0.0.tar.gz------------------------------------------------------------------------------------------------------------------------* end: package all------------------------------------------------------------------------------------------------------------------------# # # # # # # # # # # # # # # # # # # # ## 2. Run the patch command ## ## # # # # # # # # # # # # # # # # # # $./idea-admin.shpatchcluster-manager \--aws-regionus-east-2 \--cluster-nameidea-prercsearchingforapplicableec2instances...+---------------------+----------------------------+-------------------------------------------+-------------+---------+|InstanceId|InstanceName|HostName|PrivateIP|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? Yesuploadingpackage:/Users/mcrozes/Solution-for-scale-out-computing-on-aws/dist/idea-cluster-manager-3.0.0.tar.gztos3://idea-prerc-cluster-us-east-2-<REDACTED>/idea/patches/idea-cluster-manager-3.0.0.tar.gz ...patchcommand:sudo/bin/bash/root/bootstrap/latest/cluster-manager/install_app.shs3://idea-prerc-cluster-us-east-2-<REDACTED>/idea/patches/idea-cluster-manager-3.0.0.tar.gz>>/root/bootstrap/logs/patch.logPatchexecutionstatusforSSMCommandId:090070ee-aa2a-4bb6-b332-220f90aabfb7+---------------------+----------------------------+-------------------------------------------+-------------+---------+--------------+|InstanceId|InstanceName|HostName|PrivateIP|State|PatchStatus|+---------------------+----------------------------+-------------------------------------------+-------------+---------+--------------+|i-0f45cb<REDACTED> |idea-prerc-cluster-manager|ip-10-0-211-98.us-east-2.compute.internal|10.0.211.98|running|Success|+---------------------+----------------------------+-------------------------------------------+-------------+---------+--------------+Patchexecutedsuccessfully.Pleaseverifythepatchfunctionalityasperreleasenotes/changelog.
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: